tmp006.h

Interface definition for the TMP006 sensor driver.

TMP006_CONFIG_CR_AS1

Conversion Time 0.25s, AVG Samples: 1.

1
(0x00)
TMP006_CONFIG_CR_AS2

Conversion Time 0.5s, AVG Samples: 2.

1
(0x01)
TMP006_CONFIG_CR_AS4

Conversion Time 1s, AVG Samples: 4.

1
(0x02)
TMP006_CONFIG_CR_AS8

Conversion Time 2s, AVG Samples: 8.

1
(0x03)
TMP006_CONFIG_CR_AS16

Conversion Time 4s, AVG Samples: 16.

1
(0x04)
TMP006_CONFIG_CR_DEF

Default for Testing.

1
TMP006_CONFIG_CR_AS4
TMP006_CCONST_S0

Calibration Factor.

1
(6.4E-14)
TMP006_CCONST_A1

Constant .

1
(1.75E-3)
TMP006_CCONST_A2

Constant .

1
(-1.678E-5)
TMP006_CCONST_TREF

Constant .

1
(298.15)
TMP006_CCONST_B0

Constant .

1
(-2.94E-5)
TMP006_CCONST_B1

Constant .

1
(-5.7E-7)
TMP006_CCONST_B2

Constant .

1
(4.63E-9)
TMP006_CCONST_C2

Constant .

1
(13.4)
TMP006_CCONST_LSB_SIZE

Sensor Voltage Register LSB Size.

1
(156.25E-9)
TMP006_I2C_ADDRESS

TMP006 Default Address.

1
(0x41)
TMP006_CONVERSION_TIME

Default Conversion Time in us.

1
(1E6)
TMP006_USE_LOW_POWER

Default low power mode.

1
(0)

If set to 0, the device will be always-on If set to 1, the device will be put in low power mode between measurements. This adds a TMP006_CONVERSION_TIME us delay to each measurement call for bringing the device out of standby.

TMP006_USE_RAW_VALUES

Default raw value mode.

1
(0)

If set to 0, measurements will be converted to Celsius. If set to 1, raw adc readings will be returned.

enum @166
TMP006_OK
Success, no error.
TMP006_ERROR_BUS
I2C bus error.
TMP006_ERROR_DEV
internal device error
TMP006_ERROR_CONF
invalid device configuration
TMP006_ERROR
general error
int tmp006_init(tmp006_t * dev, const tmp006_params_t * params)

Initialize the TMP006 sensor driver.

Parameters

dev:device descriptor of sensor to initialize
params:configuration parameters

Return values

  • 0 on success
  • -TMP006_ERROR_BUS on I2C bus error
  • -TMP006_ERROR_DEV if sensor test failed
  • -TMP006_ERROR_CONF if sensor configuration failed
int tmp006_reset(const tmp006_t * dev)

Reset the TMP006 sensor, afterwards it should be reinitialized.

Parameters

dev:device descriptor of sensor

Return values

  • 0 on success
  • -1 on error
int tmp006_set_active(const tmp006_t * dev)

Set active mode, this enables periodic measurements.

Parameters

dev:device descriptor of sensor

Return values

  • 0 on success
  • -1 on error
int tmp006_set_standby(const tmp006_t * dev)

Set standby mode.

Parameters

dev:device descriptor of sensor

Return values

  • 0 on success
  • -1 on error
int tmp006_read(const tmp006_t * dev, int16_t * rawv, int16_t * rawt, uint8_t * drdy)

Read sensor’s data.

Parameters

dev:device descriptor of sensor
rawv:object voltage value
rawt:raw die temperature
drdy:data ready, 0 if a conversion is in progress

Return values

  • 0 on success
  • -1 on error
void tmp006_convert(int16_t rawv, int16_t rawt, float * tamb, float * tobj)

Convert raw sensor values to temperature.

Parameters

rawv:object voltage value
rawt:raw die temperature value
tamb:converted ambient temperature
tobj:converted object temperature

int tmp006_read_temperature(const tmp006_t * dev, int16_t * ta, int16_t * to)

Convenience function to get ambient and object temperatures in [°C].

Note

Temperature scaled by x100 for accuracy and avoid floats

Parameters

dev:device descriptor of sensor
ta:converted ambient temperature
to:converted object temperature

struct tmp006_params_t

Parameters needed for device initialization.

i2c.h::i2c_t i2c

I2C device, the sensor is connected to.

uint8_t addr

the sensor’s slave address on the I2C bus

uint8_t rate

number of averaged samples

struct tmp006_t

Device descriptor for TMP006 sensors.

tmp006_params_t p

Configuration parameters.