This driver provides API for AT30TSE75X temperature sensor through I2C interface.
See Quick Start Guide for the SAM AT30TSE75X Temperature Sensor Driver.
This driver depends on the following module:
Functions | |
void | at30tse_eeprom_read (uint8_t *data, uint8_t length, uint8_t word_addr, uint8_t page) |
Reads data from the EEPROM. More... | |
void | at30tse_eeprom_write (uint8_t *data, uint8_t length, uint8_t word_addr, uint8_t page) |
Writes the EEPROM with data provided. More... | |
void | at30tse_init (void) |
Configures the SERCOM I2C master to be used with the AT30TSE75X device. More... | |
uint16_t | at30tse_read_register (uint8_t reg, uint8_t reg_type, uint8_t reg_size) |
Reads the value from the register reg. More... | |
double | at30tse_read_temperature (void) |
Reads the temperature value. More... | |
void | at30tse_set_register_pointer (uint8_t reg, uint8_t reg_type) |
Sets the register pointer with specified reg value. More... | |
void | at30tse_write_config_register (uint16_t value) |
Writes the configuration register reg with the value passed. More... | |
void | at30tse_write_register (uint8_t reg, uint8_t reg_type, uint8_t reg_size, uint16_t reg_value) |
Writes the specified register reg with the reg_value passed. More... | |
#define AT30TSE752_EEPROM_TWI_ADDR 0x57 |
#define AT30TSE754_EEPROM_TWI_ADDR 0x56 |
#define AT30TSE758_EEPROM_TWI_ADDR 0x54 |
Referenced by at30tse_eeprom_read(), and at30tse_eeprom_write().
#define AT30TSE_CONFIG_CMP_INT (1 << 9) |
#define AT30TSE_CONFIG_FT0 (1 << 11) |
#define AT30TSE_CONFIG_FT1 (1 << 12) |
#define AT30TSE_CONFIG_FTQ | ( | value | ) | ((AT30TSE_CONFIG_FTQ_Msk & ((value) << AT30TSE_CONFIG_FTQ_Pos))) |
#define AT30TSE_CONFIG_FTQ_1_fault 0 |
#define AT30TSE_CONFIG_FTQ_Msk (0x03 << AT30TSE_CONFIG_FTQ_Pos) |
#define AT30TSE_CONFIG_FTQ_Pos 13 |
#define AT30TSE_CONFIG_NVRBSY (1 << 0) |
#define AT30TSE_CONFIG_OS (1 << 15) |
#define AT30TSE_CONFIG_POL (1 << 10) |
#define AT30TSE_CONFIG_R0 (1 << 13) |
#define AT30TSE_CONFIG_R1 (1 << 14) |
#define AT30TSE_CONFIG_REG 0x01 |
Referenced by at30tse_write_config_register().
#define AT30TSE_CONFIG_REG_SIZE 2 |
Referenced by at30tse_write_config_register().
#define AT30TSE_CONFIG_RES | ( | value | ) | ((AT30TSE_CONFIG_RES_Msk & ((value) << AT30TSE_CONFIG_RES_Pos))) |
#define AT30TSE_CONFIG_RES_10_bit 1 |
Referenced by at30tse_read_temperature().
#define AT30TSE_CONFIG_RES_11_bit 2 |
Referenced by at30tse_read_temperature().
#define AT30TSE_CONFIG_RES_12_bit 3 |
Referenced by at30tse_read_temperature().
#define AT30TSE_CONFIG_RES_2_fault 1 |
#define AT30TSE_CONFIG_RES_4_fault 2 |
#define AT30TSE_CONFIG_RES_6_fault 3 |
#define AT30TSE_CONFIG_RES_9_bit 0 |
Referenced by at30tse_read_temperature().
#define AT30TSE_CONFIG_RES_Msk (0x03 << AT30TSE_CONFIG_RES_Pos) |
Referenced by at30tse_write_config_register().
#define AT30TSE_CONFIG_RES_Pos 13 |
Referenced by at30tse_write_config_register().
#define AT30TSE_CONFIG_SD (1 << 8) |
#define AT30TSE_NON_VOLATILE_REG 0x00 |
Referenced by at30tse_read_temperature(), and at30tse_write_config_register().
#define AT30TSE_TEMPERATURE_REG 0x00 |
Referenced by at30tse_read_temperature().
#define AT30TSE_TEMPERATURE_REG_SIZE 2 |
Referenced by at30tse_read_temperature().
#define AT30TSE_TEMPERATURE_TWI_ADDR 0x4F |
Referenced by at30tse_read_register(), at30tse_set_register_pointer(), and at30tse_write_register().
#define AT30TSE_THIGH_REG 0x03 |
#define AT30TSE_THIGH_REG_SIZE 2 |
#define AT30TSE_TLOW_REG 0x02 |
#define AT30TSE_TLOW_REG_SIZE 2 |
#define AT30TSE_VOLATILE_REG 0x10 |
void at30tse_eeprom_read | ( | uint8_t * | data, |
uint8_t | length, | ||
uint8_t | word_addr, | ||
uint8_t | page | ||
) |
Reads data from the EEPROM.
[out] | *data | Pointer to the data buffer. |
[in] | length | Number of data bytes. |
[in] | word_addr | Word address of the EEPROM. |
[in] | page | Page number of the EEPROM. |
References i2c_master_packet::address, AT30TSE758_EEPROM_TWI_ADDR, i2c_master_packet::data, dev_inst_at30tse75x, i2c_master_read_packet_wait(), and i2c_master_write_packet_wait_no_stop().
void at30tse_eeprom_write | ( | uint8_t * | data, |
uint8_t | length, | ||
uint8_t | word_addr, | ||
uint8_t | page | ||
) |
Writes the EEPROM with data provided.
[out] | *data | Pointer to the data buffer. |
[in] | length | Number of data bytes. |
[in] | word_addr | Word address of the EEPROM. |
[in] | page | Page number of the EEPROM. |
References i2c_master_packet::address, AT30TSE758_EEPROM_TWI_ADDR, dev_inst_at30tse75x, and i2c_master_write_packet_wait().
void at30tse_init | ( | void | ) |
Configures the SERCOM I2C master to be used with the AT30TSE75X device.
References AT30TSE_PINMUX_PAD0, AT30TSE_PINMUX_PAD1, AT30TSE_SERCOM, i2c_master_config::buffer_timeout, dev_inst_at30tse75x, i2c_master_enable(), i2c_master_get_config_defaults(), i2c_master_init(), i2c_master_config::pinmux_pad0, and i2c_master_config::pinmux_pad1.
Referenced by main().
uint16_t at30tse_read_register | ( | uint8_t | reg, |
uint8_t | reg_type, | ||
uint8_t | reg_size | ||
) |
Reads the value from the register reg.
[in] | reg | Register to read. |
[in] | reg_type | Type of the register (Volatile or Non-volatile). |
[in] | reg_size | Register size. |
References i2c_master_packet::address, AT30TSE_TEMPERATURE_TWI_ADDR, dev_inst_at30tse75x, i2c_master_read_packet_wait(), and i2c_master_write_packet_wait_no_stop().
Referenced by at30tse_read_temperature().
double at30tse_read_temperature | ( | void | ) |
Reads the temperature value.
References AT30TSE_CONFIG_RES_10_bit, AT30TSE_CONFIG_RES_11_bit, AT30TSE_CONFIG_RES_12_bit, AT30TSE_CONFIG_RES_9_bit, AT30TSE_NON_VOLATILE_REG, at30tse_read_register(), AT30TSE_TEMPERATURE_REG, AT30TSE_TEMPERATURE_REG_SIZE, and i2c_master_packet::data.
Referenced by main().
void at30tse_set_register_pointer | ( | uint8_t | reg, |
uint8_t | reg_type | ||
) |
Sets the register pointer with specified reg value.
[in] | reg | Register value of the pointer register. |
[in] | reg_type | Register type being pointed by pointer register. |
References i2c_master_packet::address, AT30TSE_TEMPERATURE_TWI_ADDR, dev_inst_at30tse75x, and i2c_master_write_packet_wait().
void at30tse_write_config_register | ( | uint16_t | value | ) |
Writes the configuration register reg with the value passed.
[in] | value | Register value to be written. |
References AT30TSE_CONFIG_REG, AT30TSE_CONFIG_REG_SIZE, AT30TSE_CONFIG_RES_Msk, AT30TSE_CONFIG_RES_Pos, AT30TSE_NON_VOLATILE_REG, and at30tse_write_register().
void at30tse_write_register | ( | uint8_t | reg, |
uint8_t | reg_type, | ||
uint8_t | reg_size, | ||
uint16_t | reg_value | ||
) |
Writes the specified register reg with the reg_value passed.
[in] | reg | Register to write. |
[in] | reg_type | Type of the register (Volatile or Non-volatile). |
[in] | reg_size | Register size. |
[in] | reg_value | Value to be written to reg. |
References i2c_master_packet::address, AT30TSE_TEMPERATURE_TWI_ADDR, i2c_master_packet::data, dev_inst_at30tse75x, and i2c_master_write_packet_wait().
Referenced by at30tse_write_config_register().