Răsfoiți Sursa

Merge branch 'Bugfix/fix_tsen_issue' into 'master'

Temperature sensor: fix return value issue @low temp on H2

See merge request espressif/esp-idf!23648
Michael (XIAO Xufeng) 2 ani în urmă
părinte
comite
e20a57d42e

+ 3 - 0
components/esp_hw_support/port/esp32h2/pmu_init.c

@@ -15,6 +15,7 @@
 #include "pmu_param.h"
 #include "esp_private/esp_pmu.h"
 #include "soc/regi2c_pmu.h"
+#include "soc/regi2c_bias.h"
 #include "regi2c_ctrl.h"
 
 // TODO: IDF-6267
@@ -205,6 +206,8 @@ void pmu_init()
     REGI2C_WRITE_MASK(I2C_PMU, I2C_PMU_OR_XPD_DIG_REG, 0);
     REGI2C_WRITE_MASK(I2C_PMU, I2C_PMU_OR_XPD_TRX, 0);
 
+    REGI2C_WRITE_MASK(I2C_BIAS, I2C_BIAS_DREG_0P8, 8);  // fix low temp issue, need to increase this internal voltage
+
     WRITE_PERI_REG(PMU_POWER_PD_TOP_CNTL_REG, 0);
     WRITE_PERI_REG(PMU_POWER_PD_HPAON_CNTL_REG, 0);
     WRITE_PERI_REG(PMU_POWER_PD_HPCPU_CNTL_REG, 0);

+ 5 - 1
components/soc/esp32h2/include/soc/regi2c_bias.h

@@ -1,5 +1,5 @@
 /*
- * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
+ * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
  *
  * SPDX-License-Identifier: Apache-2.0
  */
@@ -17,6 +17,10 @@
 #define I2C_BIAS            0X6A
 #define I2C_BIAS_HOSTID     0
 
+#define I2C_BIAS_DREG_0P8 0
+#define I2C_BIAS_DREG_0P8_MSB 7
+#define I2C_BIAS_DREG_0P8_LSB 4
+
 #define I2C_BIAS_DREG_1P1_PVT 1
 #define I2C_BIAS_DREG_1P1_PVT_MSB 3
 #define I2C_BIAS_DREG_1P1_PVT_LSB 0