Zahada s termistorem a referenci
Pavel Hudecek
edizon na seznam.cz
Sobota Březen 3 18:52:13 CET 2018
Dobrý den všem,
v jednom zařízení mám externí kalibraci reference při výrobě. Při zpracování
dat z ADC se pak provádí se všemi kanály následující výpočet:
adPrum[n] = (((ADt[n] * eCalConst[n]) / ADC_kroku) * AD_intDiv) / eRefKor;
(hodně závorek je tam proto, aby mi optimalizátor výpočty neprohodil a
nepřetekl celočíselný výpočet)
Přičemž eRefKor je korekce reference, číslo něco kolem 1000, např. 1005,
kdyby byla o 5 promile vyšší.
Takhle to dobře funguje.
Tedy až na teplotu (přesněji tisícinásobek poměru aktuálního a nominálního R
termistoru) . Ta je z děliče z termistoru a referenčního odporu, které dělí
referenci. Výsledek by tedy neměl na referenci záviset.
Tak jsem tam ještě přidal:
AD_T = (AD_T * eRefKor) / 1000;
(AD_T je nadefinováno jako adPrum[TEMP_ind])
A myslel jsem si, že se tím prostě zbavím vlivu eRefKor. Realita je ovšem
taková, že hodnota se při kalibraci změní. Např. z 1200 na 1080.
Co jsem přehlédl?
Díky,
PH
Další informace o konferenci Hw-list