at30tse75x.h

Driver for the AT30TSE75x temperature sensor with serial EEPROM.

AT30TSE75X_TEMP_ADDR
1
(0x48)
AT30TSE75X_EEPROM_ADDR
1
(0x50)
AT30TSE75X_REG__TEMPERATURE
1
(0x00)
AT30TSE75X_REG__CONFIG
1
(0x01)
AT30TSE75X_REG__LIMIT_LOW
1
(0x02)
AT30TSE75X_REG__LIMIT_HIGH
1
(0x03)
AT30TSE75X_REG__NV_CONFIG
1
(0x11)
AT30TSE75X_REG__NV_LIMIT_LOW
1
(0x12)
AT30TSE75X_REG__NV_LIMIR_HIGH
1
(0x13)
AT30TSE75X_INTEGER_MASK
1
(0x00ff)
AT30TSE75X_INTEGER_SHIFT
1
(0)
AT30TSE75X_FRACTIONAL_MASK
1
(0xf000)
AT30TSE75X_FRACTIONAL_SHIFT
1
(12)
AT30TSE75X_FRACTIONAL_BASE
1
(0.0625f)
AT30TSE75X_CONFIG__OS_BIT
1
(1 << 7)
AT30TSE75X_CONFIG__RESOLUTION_MASK
1
(0x60)
AT30TSE75X_CONFIG__RESOLUTION_SHIFT
1
(5)
AT30TSE75X_CONFIG__FTQ_MASK
1
(0x18)
AT30TSE75X_CONFIG__FTQ_SHIFT
1
(3)
AT30TSE75X_CONFIG__ALERT_POL_BIT
1
(1 << 2)
AT30TSE75X_CONFIG__ALARM_MODE_BIT
1
(1 << 1)
AT30TSE75X_CONFIG__SHUTDOWN_BIT
1
(1 << 0)
AT30TSE75X_CMD__SAVE_TO_NVRAM
1
(0x48)
AT30TSE75X_CMD__RESTORE_FROM_NVRAM
1
(0xb8)
AT30TSE75X_CMD__GENERAL_CALL_RESET
1
(0x06)
AT30TSE75X_CMD__GENERAL_CALL_RELATCH
1
(0x04)
AT30TSE75X_BUS_FREE_TIME_US
1
(1U)
enum at30tse75x_resolution_t
AT30TSE75X_RESOLUTION_9BIT = 0
AT30TSE75X_RESOLUTION_10BIT = 1
AT30TSE75X_RESOLUTION_11BIT = 2
AT30TSE75X_RESOLUTION_12BIT = 3
enum at30tse75x_mode_t
AT30TSE75X_MODE_COMPARATOR
AT30TSE75X_MODE_INTERRUPT
AT30TSE75X_MODE_ONE_SHOT
enum at30tse75x_fault_tolerance_t
AT30TSE75X_ALARM_AFTER_1 = 0
AT30TSE75X_ALARM_AFTER_2 = 1
AT30TSE75X_ALARM_AFTER_4 = 2
AT30TSE75X_ALARM_AFTER_6 = 3
enum at30tse75x_alarm_polatity_t
AT30TSE75X_ALARM_ACTIVE_LOW
AT30TSE75X_ALARM_ACTIVE_HIGH
int at30tse75x_init(at30tse75x_t * dev, i2c.h::i2c_t i2c, uint8_t addr)

Initialize a AT30TSE75x device.

Parameters

dev:device descriptor
i2c:I2C bus the device is connected to
addr:I2C address of the device
The valid address range is 0x48 - 0x4f depending on the configuration of the address pins A0-A2.

Return values

  • 0 on success
  • -1 on error
  • -2 on invalid address
int at30tse75x_save_config(const at30tse75x_t * dev)

Save configuration register to non-volatile backup register.

Parameters

dev:device descriptor

Return values

  • 0 on success
  • -1 on error
int at30tse75x_restore_config(const at30tse75x_t * dev)

Restore configuration register from non-volatile backup register.

Parameters

dev:device descriptor

Return values

  • 0 on success
  • -1 on error
int at30tse75x_get_config(const at30tse75x_t * dev, uint8_t * data)

Get content of configuration register.

Parameters

dev:device descriptor
data:buffer where config register will be written to

Return values

  • 0 on success
  • -1 on error
int at30tse75x_set_config(const at30tse75x_t * dev, uint8_t data)

Set content of configuration register.

Parameters

dev:device descriptor
data:new value for configuration register

Return values

  • 0 on success
  • -1 on error
int at30tse75x_set_resolution(const at30tse75x_t * dev, at30tse75x.h::at30tse75x_resolution_t resolution)

Set temperature resolution.

Parameters

dev:device descriptor
resolution:temperature resolution

Return values

  • 0 on success
  • -1 on error
  • -2 on bad user input
int at30tse75x_set_mode(const at30tse75x_t * dev, at30tse75x.h::at30tse75x_mode_t mode)

Set operation mode.

Parameters

dev:device descriptor
mode:operation mode

Return values

  • 0 on success
  • -1 on device error
  • -2 on bad user input
int at30tse75x_set_alarm_polarity(const at30tse75x_t * dev, at30tse75x.h::at30tse75x_alarm_polatity_t polarity)

Set polarity of ALERT pin.

Parameters

dev:device descriptor
polarity:polarity of ALERT pin

Return values

  • 0 on success
  • -1 on device error
  • -2 on bad user input
int at30tse75x_set_fault_tolerance(const at30tse75x_t * dev, at30tse75x.h::at30tse75x_fault_tolerance_t tolerance)

Set tolerance to outlying measurements.

Parameters

dev:device descriptor
tolerance:tolerance

Return values

  • 0 on success
  • -1 on device error
  • -2 on bad user input
int at30tse75x_set_limit_low(const at30tse75x_t * dev, int8_t t_low)

Set T_Low limit.

Parameters

dev:device descriptor
t_low:lower temperature limit

Return values

  • 0 on success
  • -1 on device error
  • -2 on bad user input
int at30tse75x_set_limit_high(const at30tse75x_t * dev, int8_t t_high)

Set T_High limit.

Parameters

dev:device descriptor
t_high:upper temperature limit

Return values

  • 0 on success
  • -1 on error
int at30tse75x_get_temperature(const at30tse75x_t * dev, float * temperature)

Get measured temperature.

Parameters

dev:device descriptor
temperature:float buffer where temperature will be written to

Return values

  • 0 on success
  • -1 on error
struct at30tse75x_t

Device descriptor for a AT30TSE75x device.

i2c.h::i2c_t i2c

I2C device that sensor is connected to.

uint8_t addr

I2C address of this particular sensor.