From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932270AbbJMDjD (ORCPT ); Mon, 12 Oct 2015 23:39:03 -0400 Received: from mail-am1on0132.outbound.protection.outlook.com ([157.56.112.132]:17664 "EHLO emea01-am1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752009AbbJMDjA (ORCPT ); Mon, 12 Oct 2015 23:39:00 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=bhuvanchandra.dv@toradex.com; From: Bhuvanchandra Subject: Re: [PATCH] vf610_adc: Fix internal temperature calculation To: Stefan Agner References: <1443015807-17764-1-git-send-email-bhuvanchandra.dv@toradex.com> <0b977c21c414aef0c250755c9d772ead@agner.ch> CC: , , , , , , , , , Message-ID: <561C7C93.4090608@toradex.com> Date: Tue, 13 Oct 2015 09:07:55 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <0b977c21c414aef0c250755c9d772ead@agner.ch> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [115.115.225.206] X-ClientProxiedBy: HKXPR03CA0063.apcprd03.prod.outlook.com (25.163.104.21) To DB3PR05MB267.eurprd05.prod.outlook.com (10.141.4.26) X-Microsoft-Exchange-Diagnostics: 1;DB3PR05MB267;2:fmTPgi2z6fbDAvH8h98riolYpmx/dnsoyQsEoMlKLiG8/NvF6m4FqEVEsHlQAQdwKYmOmj3xpvRXLBq6LiRRS87xXCh0hKZGsp4f1eTvVQ+Z0roJg2M4QZqzyCOX2R7mrbseNjOCfhbJ6J5kaNVMIQcKUi/jikZqhhcu34lu7As=;3:t1sUekvlVyaSRj3Hld0lrfkKNeqKbpctiubqs1ezBM7brT1UA6UyIg/jmzacgnvt5kW1xjY7xSQ2Mnqcx0nkCJndk8XNyao/BTRo6c4q8+KlrTx6oeEXn3UJ215UKnLd45tDmhXpGU+L+iq3boRiGg==;25:wx7cTavEXUsQ3Rl6eQt7vRSd+liF457ddt3xxZHaSocaH2+BKDczMZioDWCM0M3OeB+TLNf0LJ6R7u1YHzU3KBQaLWe7jlFot7Wlvt868+KeRx809R7TTUnbMWyJewOZjMM77kBF4mBe71qyNrFVUEuwgOSIkKzZJJ4+SssdSebbkTMbL5T6+f8pCWiifrPhBU+g/I2BvvemIndZfagLk6Ere/MCUJn8AdSuBKkcICFgio0mwY7vljVgYa0FV4Vkp7+ZVdbOXi6KfySxCkxoYg==;20:icq0m4VwM2KvPt8tpoxdbnwBqGY3oJmX0UR+QbvAnIklAux9LfwlnmVl8/8hUKzpvt++oVfltUpS0pLJR9Z+xiHdk9qcW/b+iPIQZN68HUyirUka/o4yusRTwvNbPxqF+kDPTst/rxtpD2QnOZLp9Q+qPj7MCGnR5AstpzrRVHqmLAoOCXHyjiL7S7p9C2q8UnldInhq0IiiyKhx/RbdNrJsHWoskY007eAMepnCIWTXpWkPVPi/sU16r2jyGFdu0DiYtgSAOqTfKsGYwJOclw21EMYsSgwbH2QXdpjntfURZmv3RpIcyI6zGPYNf4Muq1MB2as5OkBr81km2EKTHA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB3PR05MB267; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(3002001);SRVR:DB3PR05MB267;BCL:0;PCL:0;RULEID:;SRVR:DB3PR05MB267; X-Microsoft-Exchange-Diagnostics: 1;DB3PR05MB267;4:3p32p3fqHzjKJFtW3BalUIfU/07cVjgd9uuB0sfjN+yesJRoi+/r/Ptqk6DKma1dP1RnUHEbOzoz1sHbR1Lu5OK4jCoh6F9JdrnzMh2Erpo5WNkGjOvSI8iP079rBdBCPzPxDwll8lqNvl8e5xXJ/x0eORQix9Z7uQQAwOnSX8jWCBjQ+Hu0CIYA/72eOVvICubV8wsAvXXvOJdXyJwjMaavzLIVeSa5FjhKPDsLLLTqmxf85kUgZm5dZ0emuGJqc1FhfjtGFU4I7TNd1Dj2FdpnYzdZwEg8UlhhrrCBIn4H/UGA5rN1CGC1fe65ULnFChDMiey2W9s39cdEk8UpVStaFa9ABJkysdtqkpAloPs= X-Forefront-PRVS: 07283408BE X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6049001)(6009001)(377424004)(199003)(479174004)(189002)(377454003)(24454002)(86362001)(65806001)(64126003)(76176999)(65816999)(54356999)(87266999)(33656002)(50986999)(101416001)(36756003)(5008740100001)(4001350100001)(5001960100002)(81156007)(87976001)(64706001)(2950100001)(66066001)(65956001)(97736004)(83506001)(47776003)(107886002)(189998001)(110136002)(5004730100002)(92566002)(46102003)(40100003)(80316001)(23676002)(42186005)(5007970100001)(59896002)(19580395003)(122386002)(50466002)(19580405001)(77096005)(105586002)(106356001)(7059030)(4001430100001);DIR:OUT;SFP:1102;SCL:1;SRVR:DB3PR05MB267;H:[10.18.0.138];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjNQUjA1TUIyNjc7MjM6bnQ3MWNwdUc2N3R4aGFZVUtQME4wNTJkbHEw?= =?utf-8?B?ZFZpdVFvZC9hY1ZsL1k1SlZDS0R2Uy9JSW9pSXh1WU9hbzR0d1ZBYW42QnBN?= =?utf-8?B?WE8yTVp5UjlXSVY4VjVld3hpcG9FLzhUMFhYL3RmYnZTNncvYlQxSE10Ym5U?= =?utf-8?B?aFFPb3lDYzR6OWxLLzU4dFJLVVJHOEluNGxMcU8yZXg3d1lnYk02bWszQ0NO?= =?utf-8?B?TWh0ZDV1YUFHeGNWcGpjekNUN2tPZ1luSUw1YUUyVmkvL255ZUQ1dm5VVWFu?= =?utf-8?B?d3NhdU9VNlJPMG9kKzdodnFRY3BWMitFbk9QekFKeVEvNk9qZFRMbCsyRjR0?= =?utf-8?B?azVHaUY0MkJQL0h5Sm1GbDFTVnpBRFV4Ump4eEtJRHlOYXhUYWIrU1BYdTRi?= =?utf-8?B?aXdxSy8xWVlCNE1xa3NMOWgrbjFuT2dvbU4xRFlvaG5nZHBZMkRQalg1c1RB?= =?utf-8?B?STI3SkdiNVd5TXJsVHpHT3hBckNiL0p5d1I1ZXp1Mm8xVFdNUXpuNUQ0K005?= =?utf-8?B?NnpJb0ErcGZRNmdxbFAxblIxNDBhNm5GZEp6RGVja1JsS0hKQnVSdWFoZU5q?= =?utf-8?B?UDlZV2k0eGNGRCtVUzY0UFFQRWNlYW9lK0kwRWtGVlFBTWtwSG9tcUFKY29X?= =?utf-8?B?eDVyV1BzWlQzcWE0Ti8yUmN1TzQ4RVRQd0xoUHNuNCtZUDJud2w3N29VdnlT?= =?utf-8?B?eUFsK0ExdjlsaWtiYkhVU0theU9GY0c4U093d2p2eUtUL1JWM2k3ZXBZOUwz?= =?utf-8?B?YXozcnM5QkpuL3FWYjZqbTBJbWN1MEZVSzgwUm9Jdmorb1gzTlRUSkJnYVhp?= =?utf-8?B?Ymwzd1dVN0VHaGJqbUhIV0NSR05TQkRqSEMvQ3pKdkVHVExzYTBRa3phZ3JW?= =?utf-8?B?UllSTVdiVG4vTUlqOHZQVm9DZmdzMjF2elRqb0NFeklkNGNwdTRWQUxrYWZM?= =?utf-8?B?V3l6b24rYmVyeHJTZ0M1SE1PazN6ckhzUHh6ZVl6ejRQTFVJRWN0NnZFVkdp?= =?utf-8?B?VVhOSXFhMXZRN3F0d3lXRUppSytlOXFRVHVpUjZyek5VWnh1anZ6RUs2N1N3?= =?utf-8?B?QmlBZzVKbHZKOEE3T3FTcHpEYWU1Tnp6cm9aV1RERkxLZzJ2UEhjUG1wRGta?= =?utf-8?B?N2VvMUkwTWFhS2VMeVgyV3BuREZmZlhnSUhQODlhc0xMemhzMXZwdVFNbSt2?= =?utf-8?B?ZDVYQzJNaTErbk0ramdpcklvaDlwZCtaRjNaUmtQTUlXWWVQWkNsK0lZekRi?= =?utf-8?B?aGEwMXdTMlcvSVRZaW5qWGtBRmV1WUNvT2hZbHl5cEVCcStJL0Jxb0k2TmlZ?= =?utf-8?B?S1l1YWJIQy9yc0dhV1RhbWptT0xmYk95TndpaDF2SDRINVE1OVRWR0hCS3lX?= =?utf-8?B?TmZrRE5wM28wUGNidGwwWUN2ZzM0ZUJtNzJRb3RZQnVhK0dTenNZTlhKYzNs?= =?utf-8?B?ekVOWHdpZEVPaXRUVVJhZFVWZzg3MHlyMXJmdHpTeTFyMnRJOUE1OVdHWjQx?= =?utf-8?B?QmJYQytXM1dxVWI4Qi9GSmluaWZCaU9UMUJSNlVpbjF5TlFCZThGcGprWlkw?= =?utf-8?B?VEV0Nk5rR3p3T2ROU09CNU8vVytMWEdhZDlkT2tUV2UxRU91dzl5QVBMUVR4?= =?utf-8?B?bG0xaWUzR1BQTzNLUlRMdkdiUUVLM1VyYzVKcEx1TVB1WVdudUtxWXJvMFZW?= =?utf-8?B?VEQ1ZUdQQ01aTDJUYWFUM1BrUGE0VlFlYTNqeG9uRHc3bzlaNllkL0NLZGE1?= =?utf-8?B?VlY3R3pLM0dLMnYzbDByMkIwdFpVRzg5VUFDUFIzSVR6NjRDazF3dFd0aW1Y?= =?utf-8?B?djZETG5XVlJNcndkZUxCTmlCQ3VlVkpLaHdZeGtQTS9nZz09?= X-Microsoft-Exchange-Diagnostics: 1;DB3PR05MB267;5:MF9uFargAf0fEHqFylHJvy9rVnBpH7EZcc3S1ik4ZWei1fw10AwyJFkTUw+rPKxPvBiA03grOEgX4Fw803PXCYm6be3ZcqGGI18YghKZbBNVS/KPQLGzS2N4ywa7odr2f8iobUMZLnEnnCbGNoIzjw==;24:rdTiF2AcPk8og9Ro11/wc8bK18GXRedFY6OZkZTKEN2gROV7qel4ms2HfEAeobAyM6Eox4zJBG/B8fsgW0tkQT35evXLY+/LRyEORos8Qlo=;20:YdL1JF3iE1a9obHbIKCB4bUHkg2excO2O4dUwxxc9BQ0+uhrbrKf370iOsDRTS5M9QItA2DzUIU/HJo9VIhjDw== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: toradex.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2015 03:38:49.4386 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR05MB267 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Stefan, Sorry! for the delay. On 10/08/2015 11:46 AM, Stefan Agner wrote: > Hi Bhuvan, > > On 2015-09-23 06:43, Bhuvanchandra DV wrote: >> There is an observed temperature difference of ~20°C with the >> internal temperature reading and the temperature measured on >> SoC package. Existing calculations consider the typical values >> provided in datasheet. Those typical values are valid for >> VREFH_ADC at 3.0V. Voltage at 25°C is different for different >> VREFH_ADC voltages. With VREFH_ADC at 3.3V, voltage at 25°C is >> 0.699V. Hence update the VTEMP25 to 0.699V which gives ADCR@Temp25 >> as 867 and the final temperature readings differs with ~5°C from >> the external readings. > I am not entirely happy with the message. The proposed changes seem not > to alter the offset which would explain a ~20°C difference... Where do > this 20°C come from? The ~20°C difference is observed at higher temperatures when VTEMP25 at VREDH_ADC of 3V0 is considered. Will update the comment according to the updated VTEMP25 constant instead of the 20°C difference which is confusing wrt the changes done here. Best regards, Bhuvan > -- > Stefan > >> Formula for finding ADCR@Temp25: >> ADCR@Temp25 = (ADCR@Vdd * V@TEMP25 * 10) / VDDconv >> >> ADCR@Vdd for 12-Bit ADC = 4095 >> VDDconv = VREFH_ADC * 10 >> >> VREFH_ADC@3.3V >> ADCR@Temp25 = (4095 * .699 * 10) / 33 >> ADCR@Temp25 ~= 867 >> >> | VREFH_ADC | V@TEMP25 | VDDconv | ADCR@Temp25 | >> | 3.0V | 0.696mV | 30 | 950 | >> | 3.3V | 0.699mV | 33 | 867 | >> >> Signed-off-by: Bhuvanchandra DV >> --- >> drivers/iio/adc/vf610_adc.c | 19 ++++++++++++++----- >> 1 file changed, 14 insertions(+), 5 deletions(-) >> >> diff --git a/drivers/iio/adc/vf610_adc.c b/drivers/iio/adc/vf610_adc.c >> index f4df2a7..e7abc13 100644 >> --- a/drivers/iio/adc/vf610_adc.c >> +++ b/drivers/iio/adc/vf610_adc.c >> @@ -103,6 +103,13 @@ >> >> #define DEFAULT_SAMPLE_TIME 1000 >> >> +/* V at 25°C of 696 mV */ >> +#define VF610_VTEMP25_3V0 950 >> +/* V at 25°C of 699 mV */ >> +#define VF610_VTEMP25_3V3 867 >> +/* Typical sensor slope coefficient at all temperatures */ >> +#define VF610_TEMP_SLOPE_COEFF 1840 >> + >> enum clk_sel { >> VF610_ADCIOC_BUSCLK_SET, >> VF610_ADCIOC_ALTCLK_SET, >> @@ -636,11 +643,13 @@ static int vf610_read_raw(struct iio_dev *indio_dev, >> break; >> case IIO_TEMP: >> /* >> - * Calculate in degree Celsius times 1000 >> - * Using sensor slope of 1.84 mV/°C and >> - * V at 25°C of 696 mV >> - */ >> - *val = 25000 - ((int)info->value - 864) * 1000000 / 1840; >> + * Calculate in degree Celsius times 1000 >> + * Using the typical sensor slope of 1.84 mV/°C >> + * and VREFH_ADC at 3.3V, V at 25°C of 699 mV >> + */ >> + *val = 25000 - ((int)info->value - VF610_VTEMP25_3V3) * >> + 1000000 / VF610_TEMP_SLOPE_COEFF; >> + >> break; >> default: >> mutex_unlock(&indio_dev->mlock);