PGA CH32V203, bylo: Peripetie s termočlánky
Miroslav Mraz
mrazik na volny.cz
Čtvrtek Leden 9 17:23:36 CET 2025
Tak jsem prozkoumal to PGA. Ze začátku mi to přišlo hodně divné, ale
měřit ty uV není žádná sranda. Nastavil jsem zesílení na 64x, pustil do
toho 40mV a nachytal data. Očekával jsem, že ta pravděpodobnost udělá
nějakou gaussovku a bude konec. Nebylo tomu tak. Po stranách se objevily
laloky, které neumím vysvětlit. A směrodatná odchylka byla obrovská - na
40mV činila skoro 1mV. FFT ukázala, že je tam dost velké rušení od sítě
50Hz. Tak jsem odpojil voltmetr (s metrovými přívody) a ejhle - rušení
50Hz pokleslo o 20dB a směrodatná odchylka se zmenšila 10x. A stejně je
to rušení od sítě vidět.
Je zřejmé, že měřit napětí z termočlánku by s tím teoreticky snad šlo,
ale odfiltrovat rušení a kompenzovat ofset by bylo tolik práce, že to
nestojí za to. Napsat vhodný IIR nebo FIR filtr v malých celých číslech
tak, aby zaokrouhlovací chyby nezničily výsledek nebude sranda. I ten
pitomý klouzavý průměr s postupným zapomínáním jsem musel upravit,
protože naivní implementace strašně kecá.
Mrazík
On 02. 01. 25 18:16, Miroslav Mraz wrote:
> Že se k tomu vracím. Mám CH32V203 a zjistil jsem, že to má PGA taky.
> Sice to číňan popisuje tak, že se to dá zapnout a nastavit zesílení až
> 64x, ale co z toho vlastně leze o tom taktně mlčí. Fajn, tak jsem to
> vyzkoušel. Sice to funguje, ale moc použitelné mi to nepřipadá. Nula
> skáče kolem 260 (z rozsahu 0-4095) jako koza. Tak jsem si vyrobil
> termočlánek typu T z kusu odporového drátu, který o sobě tvrdil, že je
> konstantan. Jeden bit pak představuje změnu teploty cca o 0.3°C.
> Když to zprůměruji z řádově stovek vzorků, dostanu se na přesnost asi
> +/-2°C (~ 3 poslední bity jsou stejně šum).
> Takže spíš to něco ukazuje než měří. Je zřejmé, že když se pohybujeme v
> řádu µV tak jednoduché a levné řešení asi neexistuje.
> A teploměr na čipu může ukazovat třeba o 10°C víc jak se čip zahřívá. To
> je dřívější zkušenost s STM32F051.
>
> Mrazík
>
Další informace o konferenci Hw-list