mcp9808 - Driver for MCP9808 digital temperature sensor¶
- group mcp9808
ESP-IDF driver for MCP9808 Digital Temperature Sensor.
Copyright (c) 2020 Ruslan V. Uss unclerus@gmail.com
BSD Licensed as described in the file LICENSE
Defines
-
MCP9808_I2C_ADDR_000¶
I2C address, pins: A0=0, A1=0, A2=0.
-
MCP9808_I2C_ADDR_001¶
I2C address, pins: A0=1, A1=0, A2=0.
-
MCP9808_I2C_ADDR_010¶
I2C address, pins: A0=0, A1=1, A2=0.
-
MCP9808_I2C_ADDR_011¶
I2C address, pins: A0=1, A1=1, A2=0.
-
MCP9808_I2C_ADDR_100¶
I2C address, pins: A0=0, A1=0, A2=1.
-
MCP9808_I2C_ADDR_101¶
I2C address, pins: A0=1, A1=0, A2=1.
-
MCP9808_I2C_ADDR_110¶
I2C address, pins: A0=0, A1=1, A2=1.
-
MCP9808_I2C_ADDR_111¶
I2C address, pins: A0=1, A1=1, A2=1.
Enums
-
enum mcp9808_mode_t¶
Device mode.
Values:
-
enumerator MCP9808_CONTINUOUS¶
Continuous measurement mode, default.
-
enumerator MCP9808_SHUTDOWN¶
Shutdown mode.
-
enumerator MCP9808_CONTINUOUS¶
-
enum mcp9808_hysteresis_t¶
T upper and T lower hysteresis.
Values:
-
enumerator MCP9808_HYST_0¶
0.0 deg.C, default
-
enumerator MCP9808_HYST_1_5¶
1.5 deg.C
-
enumerator MCP9808_HYST_3¶
3.0 deg.C
-
enumerator MCP9808_HYST_6¶
6.0 deg.C
-
enumerator MCP9808_HYST_0¶
-
enum mcp9808_alert_mode_t¶
Alert output mode.
Values:
-
enumerator MCP9808_ALERT_DISABLED¶
Alert output disabled, default.
-
enumerator MCP9808_ALERT_COMPARATOR¶
Alert output in comparator mode.
-
enumerator MCP9808_ALERT_INTERRUPT¶
Alert output in interrupt mode.
-
enumerator MCP9808_ALERT_DISABLED¶
-
enum mcp9808_alert_select_t¶
Alert output select.
Values:
-
enumerator MCP9808_ALERT_UP_LOW_CRIT¶
Alert when T > T upper or T < T lower or T > T crit, default.
-
enumerator MCP9808_ALERT_CRIT¶
Alert when T > T crit.
-
enumerator MCP9808_ALERT_UP_LOW_CRIT¶
-
enum mcp9808_alert_polarity_t¶
Alert output polarity.
Values:
-
enumerator MCP9808_ALERT_LOW¶
Active-low, pull-up resistor required, default.
-
enumerator MCP9808_ALERT_HIGH¶
Active-high.
-
enumerator MCP9808_ALERT_LOW¶
-
enum mcp9808_resolution_t¶
Temperature resolution.
Values:
-
enumerator MCP9808_RES_0_5¶
Resolution = +0.5 deg.C, conversion time = 30 ms, typical sample rate = 33 Hz.
-
enumerator MCP9808_RES_0_25¶
Resolution = +0.25 deg.C, conversion time = 65 ms, typical sample rate = 15 Hz.
-
enumerator MCP9808_RES_0_125¶
Resolution = +0.125 deg.C, conversion time = 130 ms, typical sample rate = 7 Hz.
-
enumerator MCP9808_RES_0_0625¶
Resolution = +0.0625 deg.C, conversion time = 250 ms, typical sample rate = 4 Hz, default.
-
enumerator MCP9808_RES_0_5¶
Functions
-
esp_err_t mcp9808_init_desc(i2c_dev_t *dev, uint8_t addr, i2c_port_t port, gpio_num_t sda_gpio, gpio_num_t scl_gpio)¶
Initialize device descriptor.
- Parameters
dev – Device descriptor
addr – Device I2C address
port – I2C port
sda_gpio – SDA GPIO
scl_gpio – SCL GPIO
- Returns
ESP_OK
on success
-
esp_err_t mcp9808_free_desc(i2c_dev_t *dev)¶
Free device descriptor.
- Parameters
dev – Device descriptor
- Returns
ESP_OK
on success
-
esp_err_t mcp9808_init(i2c_dev_t *dev)¶
Init device.
Set device configuration to default, clear lock bits
- Parameters
dev – Device descriptor
- Returns
ESP_OK
on success
-
esp_err_t mcp9808_set_mode(i2c_dev_t *dev, mcp9808_mode_t mode)¶
Set device mode.
- Parameters
dev – Device descriptor
mode – Power mode
- Returns
ESP_OK
on success
-
esp_err_t mcp9808_get_mode(i2c_dev_t *dev, mcp9808_mode_t *mode)¶
Get device mode.
- Parameters
dev – Device descriptor
mode – [out] Current power mode
- Returns
ESP_OK
on success
-
esp_err_t mcp9808_set_resolution(i2c_dev_t *dev, mcp9808_resolution_t res)¶
Set temperature resolution.
- Parameters
dev – Device descriptor
res – Resolution
- Returns
ESP_OK
on success
-
esp_err_t mcp9808_get_resolution(i2c_dev_t *dev, mcp9808_resolution_t *res)¶
Get temperature resolution.
- Parameters
dev – Device descriptor
res – [out] Resolution
- Returns
ESP_OK
on success
-
esp_err_t mcp9808_set_alert_config(i2c_dev_t *dev, mcp9808_alert_mode_t mode, mcp9808_alert_select_t sel, mcp9808_alert_polarity_t polarity, mcp9808_hysteresis_t hyst)¶
Configure alert parameters.
- Parameters
dev – Device descriptor
mode – Alert mode
sel – Alert window (see datasheet)
polarity – Alert output polarity
hyst – Alert limits hysteresis
- Returns
ESP_OK
on success
-
esp_err_t mcp9808_get_alert_config(i2c_dev_t *dev, mcp9808_alert_mode_t *mode, mcp9808_alert_select_t *sel, mcp9808_alert_polarity_t *polarity, mcp9808_hysteresis_t *hyst)¶
Get alert configuration.
- Parameters
dev – Device descriptor
mode – [out] Alert mode
sel – [out] Alert window (see datasheet)
polarity – [out] Alert output polarity
hyst – [out] Alert limits hysteresis
- Returns
ESP_OK
on success
-
esp_err_t mcp9808_set_limits(i2c_dev_t *dev, float t_upper, float t_lower, float t_crit)¶
Set alert temperature limits.
- Parameters
dev – Device descriptor
t_upper – Upper temperature
t_lower – Lower temperature
t_crit – Critical temperature
- Returns
ESP_OK
on success
-
esp_err_t mcp9808_get_limits(i2c_dev_t *dev, float *t_upper, float *t_lower, float *t_crit)¶
Get alert temperature limits.
- Parameters
dev – Device descriptor
t_upper – [out] Upper temperature
t_lower – [out] Lower temperature
t_crit – [out] Critical temperature
- Returns
ESP_OK
on success
-
esp_err_t mcp9808_set_alert_status(i2c_dev_t *dev, bool alert)¶
Set alert status.
- Parameters
dev – Device descriptor
alert – True for alert
- Returns
ESP_OK
on success
-
esp_err_t mcp9808_get_alert_status(i2c_dev_t *dev, bool *alert)¶
Get current alert status.
- Parameters
dev – Device descriptor
alert – [out] Alert status
- Returns
ESP_OK
on success
-
esp_err_t mcp9808_clear_interrupt(i2c_dev_t *dev)¶
Clear interrupt bit.
- Parameters
dev – Device descriptor
- Returns
ESP_OK
on success
-
esp_err_t mcp9808_get_temperature(i2c_dev_t *dev, float *t, bool *lower, bool *upper, bool *crit)¶
Read temperature.
- Parameters
dev – Device descriptor
t – [out] Ambient temperature
lower – [out] True if T a < T lower, can be NULL
upper – [out] True if T a > T upper, can be NULL
crit – [out] True if T a >= T critical, can be NULL
- Returns
ESP_OK
on success
-
MCP9808_I2C_ADDR_000¶