added chip temp to EMC2101.c

This commit is contained in:
Skot Croshere 2023-01-20 00:04:00 -05:00
parent b69e0a54b4
commit 345676e506
3 changed files with 28 additions and 11 deletions

View File

@ -35,8 +35,10 @@ static esp_err_t register_write_byte(uint8_t reg_addr, uint8_t data) {
//takes a fan speed percent
void EMC2101_set_config(uint8_t reg) {
ESP_ERROR_CHECK(register_write_byte(EMC2101_REG_CONFIG, reg));
void EMC2101_init(void) {
//set the TACH input
ESP_ERROR_CHECK(register_write_byte(EMC2101_REG_CONFIG, 0x04));
}
//takes a fan speed percent
@ -65,10 +67,24 @@ uint16_t EMC2101_get_fan_speed(void) {
return RPM;
}
void EMC2101_read(void) {
uint8_t data;
// void EMC2101_read(void) {
// uint8_t data;
/* Read the EMC2101 WHO_AM_I register, on power up the register should have the value 0x16 or 0x28 */
ESP_ERROR_CHECK(register_read(EMC2101_REG_CONFIG, &data, 1));
ESP_LOGI(TAG, "EMC2101 Config register = 0x%02X", data);
// /* Read the EMC2101 WHO_AM_I register, on power up the register should have the value 0x16 or 0x28 */
// ESP_ERROR_CHECK(register_read(EMC2101_REG_CONFIG, &data, 1));
// ESP_LOGI(TAG, "EMC2101 Config register = 0x%02X", data);
// }
float EMC2101_get_chip_temp(void) {
uint8_t temp_msb, temp_lsb;
uint16_t reading;
ESP_ERROR_CHECK(register_read(EMC2101_EXTERNAL_TEMP_MSB, &temp_msb, 1));
ESP_ERROR_CHECK(register_read(EMC2101_EXTERNAL_TEMP_LSB, &temp_lsb, 1));
reading = temp_lsb | (temp_msb << 8);
reading >>= 5;
return (float)reading / 8.0;
}

View File

@ -57,8 +57,9 @@ typedef enum {
} emc2101_rate_t;
void EMC2101_set_fan_speed(float);
void EMC2101_read(void);
//void EMC2101_read(void);
uint16_t EMC2101_get_fan_speed(void);
void EMC2101_set_config(uint8_t);
void EMC2101_init(void);
float EMC2101_get_chip_temp(void);
#endif /* EMC2101_H_ */

View File

@ -46,11 +46,11 @@ void app_main(void) {
DS4432U_set_vcore(1.25);
//Fan Tests
EMC2101_set_config(0x04); //set the tach input
EMC2101_read();
EMC2101_init();
EMC2101_set_fan_speed(0.5);
vTaskDelay(500 / portTICK_RATE_MS);
ESP_LOGI(TAG, "Fan Speed: %d RPM", EMC2101_get_fan_speed());
ESP_LOGI(TAG, "Chip Temp: %.2f C", EMC2101_get_chip_temp());
//Current Sensor tests
ESP_LOGI(TAG, "Current: %d mA", INA260_read_current());