diff options
author | Tomasz Michalec <tm@semihalf.com> | 2021-04-21 20:46:28 +0200 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-05-20 10:12:31 +0000 |
commit | 7b271975c0b6f0f4263e85d5142cf0baed2e3414 (patch) | |
tree | 865ecd604e009d522e8b4247eb09ee5accad5e8c | |
parent | 4dad2896a34b42c446ca8e6ad0cce10f98cf2b82 (diff) | |
download | chrome-ec-7b271975c0b6f0f4263e85d5142cf0baed2e3414.tar.gz |
thermistor: update Steinhart-Hart equations
Fix data table for:
- 3v3 51.1K pull-up resistor divider with the 47K thermistor
- 3v3 13.7K pull-up resistor divider with the 47K thermistor
- 3v0 22.6K pull-up resistor divider with the 47K thermistor
Now they are using table based on manufacturer resistance table instead
of constant B parameter Steinhart-Hart equation.
BRANCH=none
BUG=b:184857072
TEST=makeall
Signed-off-by: Tomasz Michalec <tm@semihalf.com>
Change-Id: Ib1998c5e528731e4c2f00e0eb76a568eb4acba6e
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2886887
Reviewed-by: Jett Rink <jettrink@chromium.org>
-rw-r--r-- | driver/temp_sensor/thermistor.c | 74 |
1 files changed, 37 insertions, 37 deletions
diff --git a/driver/temp_sensor/thermistor.c b/driver/temp_sensor/thermistor.c index 550b2447c2..d895aa58f0 100644 --- a/driver/temp_sensor/thermistor.c +++ b/driver/temp_sensor/thermistor.c @@ -102,19 +102,19 @@ static int thermistor_get_temperature(int idx_adc, int *temp_ptr, */ #define THERMISTOR_SCALING_FACTOR_51_47 11 static const struct thermistor_data_pair thermistor_data_51_47[] = { - { 2512 / THERMISTOR_SCALING_FACTOR_51_47, 0 }, - { 2158 / THERMISTOR_SCALING_FACTOR_51_47, 10 }, - { 1772 / THERMISTOR_SCALING_FACTOR_51_47, 20 }, - { 1398 / THERMISTOR_SCALING_FACTOR_51_47, 30 }, - { 1070 / THERMISTOR_SCALING_FACTOR_51_47, 40 }, - { 803 / THERMISTOR_SCALING_FACTOR_51_47, 50 }, - { 597 / THERMISTOR_SCALING_FACTOR_51_47, 60 }, - { 443 / THERMISTOR_SCALING_FACTOR_51_47, 70 }, - { 329 / THERMISTOR_SCALING_FACTOR_51_47, 80 }, - { 285 / THERMISTOR_SCALING_FACTOR_51_47, 85 }, - { 247 / THERMISTOR_SCALING_FACTOR_51_47, 90 }, - { 214 / THERMISTOR_SCALING_FACTOR_51_47, 95 }, - { 187 / THERMISTOR_SCALING_FACTOR_51_47, 100 }, + { 2484 / THERMISTOR_SCALING_FACTOR_51_47, 0 }, + { 2142 / THERMISTOR_SCALING_FACTOR_51_47, 10 }, + { 1767 / THERMISTOR_SCALING_FACTOR_51_47, 20 }, + { 1400 / THERMISTOR_SCALING_FACTOR_51_47, 30 }, + { 1072 / THERMISTOR_SCALING_FACTOR_51_47, 40 }, + { 802 / THERMISTOR_SCALING_FACTOR_51_47, 50 }, + { 593 / THERMISTOR_SCALING_FACTOR_51_47, 60 }, + { 436 / THERMISTOR_SCALING_FACTOR_51_47, 70 }, + { 321 / THERMISTOR_SCALING_FACTOR_51_47, 80 }, + { 276 / THERMISTOR_SCALING_FACTOR_51_47, 85 }, + { 237 / THERMISTOR_SCALING_FACTOR_51_47, 90 }, + { 204 / THERMISTOR_SCALING_FACTOR_51_47, 95 }, + { 177 / THERMISTOR_SCALING_FACTOR_51_47, 100 }, }; static const struct thermistor_info thermistor_info_51_47 = { @@ -138,19 +138,19 @@ int get_temp_3v3_51k1_47k_4050b(int idx_adc, int *temp_ptr) */ #define THERMISTOR_SCALING_FACTOR_13_47 13 static const struct thermistor_data_pair thermistor_data_13_47[] = { - { 3044 / THERMISTOR_SCALING_FACTOR_13_47, 0 }, - { 2890 / THERMISTOR_SCALING_FACTOR_13_47, 10 }, - { 2680 / THERMISTOR_SCALING_FACTOR_13_47, 20 }, - { 2418 / THERMISTOR_SCALING_FACTOR_13_47, 30 }, - { 2117 / THERMISTOR_SCALING_FACTOR_13_47, 40 }, - { 1800 / THERMISTOR_SCALING_FACTOR_13_47, 50 }, - { 1490 / THERMISTOR_SCALING_FACTOR_13_47, 60 }, - { 1208 / THERMISTOR_SCALING_FACTOR_13_47, 70 }, - { 966 / THERMISTOR_SCALING_FACTOR_13_47, 80 }, - { 860 / THERMISTOR_SCALING_FACTOR_13_47, 85 }, - { 766 / THERMISTOR_SCALING_FACTOR_13_47, 90 }, - { 679 / THERMISTOR_SCALING_FACTOR_13_47, 95 }, - { 603 / THERMISTOR_SCALING_FACTOR_13_47, 100 }, + { 3033 / THERMISTOR_SCALING_FACTOR_13_47, 0 }, + { 2882 / THERMISTOR_SCALING_FACTOR_13_47, 10 }, + { 2677 / THERMISTOR_SCALING_FACTOR_13_47, 20 }, + { 2420 / THERMISTOR_SCALING_FACTOR_13_47, 30 }, + { 2119 / THERMISTOR_SCALING_FACTOR_13_47, 40 }, + { 1799 / THERMISTOR_SCALING_FACTOR_13_47, 50 }, + { 1485 / THERMISTOR_SCALING_FACTOR_13_47, 60 }, + { 1197 / THERMISTOR_SCALING_FACTOR_13_47, 70 }, + { 947 / THERMISTOR_SCALING_FACTOR_13_47, 80 }, + { 839 / THERMISTOR_SCALING_FACTOR_13_47, 85 }, + { 741 / THERMISTOR_SCALING_FACTOR_13_47, 90 }, + { 653 / THERMISTOR_SCALING_FACTOR_13_47, 95 }, + { 576 / THERMISTOR_SCALING_FACTOR_13_47, 100 }, }; static const struct thermistor_info thermistor_info_13_47 = { @@ -210,19 +210,19 @@ int get_temp_6v0_51k1_47k_4050b(int idx_adc, int *temp_ptr) */ #define THERMISTOR_SCALING_FACTOR_22_47 11 static const struct thermistor_data_pair thermistor_data_22_47[] = { - { 2625 / THERMISTOR_SCALING_FACTOR_22_47, 0 }, - { 2425 / THERMISTOR_SCALING_FACTOR_22_47, 10 }, - { 2170 / THERMISTOR_SCALING_FACTOR_22_47, 20 }, + { 2619 / THERMISTOR_SCALING_FACTOR_22_47, 0 }, + { 2421 / THERMISTOR_SCALING_FACTOR_22_47, 10 }, + { 2168 / THERMISTOR_SCALING_FACTOR_22_47, 20 }, { 1875 / THERMISTOR_SCALING_FACTOR_22_47, 30 }, { 1563 / THERMISTOR_SCALING_FACTOR_22_47, 40 }, - { 1263 / THERMISTOR_SCALING_FACTOR_22_47, 50 }, - { 995 / THERMISTOR_SCALING_FACTOR_22_47, 60 }, - { 770 / THERMISTOR_SCALING_FACTOR_22_47, 70 }, - { 589 / THERMISTOR_SCALING_FACTOR_22_47, 80 }, - { 514 / THERMISTOR_SCALING_FACTOR_22_47, 85 }, + { 1262 / THERMISTOR_SCALING_FACTOR_22_47, 50 }, + { 994 / THERMISTOR_SCALING_FACTOR_22_47, 60 }, + { 769 / THERMISTOR_SCALING_FACTOR_22_47, 70 }, + { 588 / THERMISTOR_SCALING_FACTOR_22_47, 80 }, + { 513 / THERMISTOR_SCALING_FACTOR_22_47, 85 }, { 448 / THERMISTOR_SCALING_FACTOR_22_47, 90 }, - { 391 / THERMISTOR_SCALING_FACTOR_22_47, 95 }, - { 341 / THERMISTOR_SCALING_FACTOR_22_47, 100 }, + { 390 / THERMISTOR_SCALING_FACTOR_22_47, 95 }, + { 340 / THERMISTOR_SCALING_FACTOR_22_47, 100 }, }; static const struct thermistor_info thermistor_info_22_47 = { @@ -241,7 +241,7 @@ int get_temp_3v0_22k6_47k_4050b(int idx_adc, int *temp_ptr) #ifdef CONFIG_STEINHART_HART_3V3_30K9_47K_4050B /* * Data derived from Steinhart-Hart equation in a resistor divider circuit with - * Vdd=3000mV, R = 30.9Kohm, and thermistor (B = 4050, T0 = 298.15 K, nominal + * Vdd=3300mV, R = 30.9Kohm, and thermistor (B = 4050, T0 = 298.15 K, nominal * resistance (R0) = 47Kohm). */ #define THERMISTOR_SCALING_FACTOR_31_47 11 |