mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-08-10 01:43:40 +00:00
833990f44d
Driver for ENS160 sensor: https://www.sciosense.com/wp-content/uploads/2023/12/ENS160-Datasheet.pdf
66 lines
1.2 KiB
Go
66 lines
1.2 KiB
Go
package ens160
|
|
|
|
// DefaultAddress is the default I2C address for the ENS160 when the ADDR pin is
|
|
// connected to high (3.3V). When connected to low (GND), the address is 0x52.
|
|
const DefaultAddress = 0x53
|
|
|
|
// Registers
|
|
const (
|
|
regPartID = 0x00
|
|
regOpMode = 0x10
|
|
regConfig = 0x11
|
|
regCommand = 0x12
|
|
regTempIn = 0x13
|
|
regRhIn = 0x15
|
|
regStatus = 0x20
|
|
regAQI = 0x21
|
|
regTVOC = 0x22
|
|
regECO2 = 0x24
|
|
regDataT = 0x30
|
|
regDataRH = 0x32
|
|
regMISR = 0x38
|
|
regGPRWrite = 0x40
|
|
regGPRRead = 0x48
|
|
)
|
|
|
|
// Operating modes
|
|
const (
|
|
ModeDeepSleep = 0x00
|
|
ModeIdle = 0x01
|
|
ModeStandard = 0x02
|
|
ModeReset = 0xF0
|
|
)
|
|
|
|
// Status register bits
|
|
const (
|
|
statusSTATAS = 1 << 7
|
|
statusSTATER = 1 << 6
|
|
|
|
statusValidityMask = 0x0C
|
|
statusValidityShift = 2
|
|
|
|
statusNEWDAT = 1 << 1
|
|
statusNEWGPR = 1 << 0
|
|
)
|
|
|
|
// Validity flags
|
|
const (
|
|
ValidityNormalOperation = 0x00
|
|
ValidityWarmUpPhase = 0x01 // need ~3 minutes until valid data
|
|
ValidityInitialStartUpPhase = 0x02 // need ~1 hour until valid data
|
|
ValidityInvalidOutput = 0x03
|
|
)
|
|
|
|
// Commands
|
|
const (
|
|
cmdNOP = 0x00
|
|
cmdGetAppVer = 0x0E
|
|
cmdClrGPR = 0xCC
|
|
)
|
|
|
|
// Part IDs
|
|
const (
|
|
LowPartID = 0x60
|
|
HighPartID = 0x01
|
|
)
|