Strana 1 z 1

Attiny45 kalibracia adc prevodníku

Napísané: 04 Feb 2023, 17:24
od používateľa Dumitru
Ahojte potreboval by som pomoc niekde pravdepodobne robím chybu, pretože hodnoty po kalibracii vyzerajú ešte horšie než pred :D :D :D :D
image.png

Re: Attiny45 kalibracia adc prevodníku

Napísané: 04 Feb 2023, 18:01
od používateľa balu
V první řadě, jakou používáš referenci pro AD převodník ?

Já jsem AD převodník v AVR procesorech používal hodněkrát a nikdy jsem nemusel řešit kalibraci.

Re: Attiny45 kalibracia adc prevodníku

Napísané: 04 Feb 2023, 18:24
od používateľa Dumitru
Používam TL431 + LM317 meral som je tam 5,249V

image.png

ADC používam ako diferenciálny

Re: Attiny45 kalibracia adc prevodníku

Napísané: 04 Feb 2023, 19:17
od používateľa balu
Nevím, co tím měříš, ale pokud to jde, nastav měřenou veličinu na maximum, co lze a zjisti, co Ti dává AD převodník za hodnotu (musí být do 1022, jinak hrozí, že se dostaneš za rozsah AD převodníku). Podle toho pak nastav přepočet z hodnoty AD na velikost měřené veličiny. Případně můžeš na nějaké minimální hodnotě blízké 0 (případně přímo 0) zjistit počáteční offset a pak podle toho udělat přepočet z AD na veličinu.

Re: Attiny45 kalibracia adc prevodníku

Napísané: 04 Feb 2023, 19:31
od používateľa misocko
Okrem toho by som meral napätie priamo na pine , nie nejakych 30V cez delič.

Re: Attiny45 kalibracia adc prevodníku

Napísané: 05 Feb 2023, 09:28
od používateľa budvar10
Podľa toho grafu je viditeľné, že to sleduje zmeny a aj celkový tvar krivky, len maximálna hodnota je nastavená zle.
Tu referenciu nechápem. Načo tam je LM317? 5V referencia sa dá vytvoriť čisto s TL431.

Re: Attiny45 kalibracia adc prevodníku

Napísané: 05 Feb 2023, 09:33
od používateľa budvar10
balu napísal:
04 Feb 2023, 19:17
... (musí být do 1022, jinak hrozí, že se dostaneš za rozsah AD převodníku).
Tomu nerozumiem. Normálne sa dá použiť 0-1023. Síce som zatiaľ pracoval len s ATmega, ale nikde tam nevidím rozdiel. Samozrejme, napätie na vstupe ATtiny nesmie prekročit povolenú hodnotu.

Re: Attiny45 kalibracia adc prevodníku

Napísané: 05 Feb 2023, 09:37
od používateľa budvar10
misocko napísal:
04 Feb 2023, 19:31
Okrem toho by som meral napätie priamo na pine , nie nejakych 30V cez delič.
Nerozumiem. Na akom pine? Ak chce merať 30V, musí použiť delič taký, aby na vstupe ATtiny neprekročil max. povolenú hodnotu inak poškodí vstup. Autor nedal žiadnu schému, okrem referencie. Niečo mi uniklo?

Re: Attiny45 kalibracia adc prevodníku

Napísané: 05 Feb 2023, 10:14
od používateľa balu
budvar10 napísal:
05 Feb 2023, 09:33
balu napísal:
04 Feb 2023, 19:17
... (musí být do 1022, jinak hrozí, že se dostaneš za rozsah AD převodníku).
Tomu nerozumiem. Normálne sa dá použiť 0-1023. Síce som zatiaľ pracoval len s ATmega, ale nikde tam nevidím rozdiel. Samozrejme, napätie na vstupe ATtiny nesmie prekročit povolenú hodnotu.
Při 1023, což je maximální hodnota AD převodníku) nevíš, jestli je na vstupu hodnota odpovídající 1023 nebo víc. Proto je 1022 maximum, při kterém víš, že vstup ještě nepřekročil maximální rozsah.

Příklad : Máš nastavenou referenci 1,1V a chceš měřit vstupní napětí 0-10V s tím, že zdroj máš až 0-15V. Dáš dělič 10k-1k, takže 10V na zdroji odpovídá cca 0,91V na pinu. Pro 12V je to už 1,09V, pro 15V je to už 1,36V na pinu.
1,1V/1024 = 1,07421875mV/bit
1023 = 1,0989V na pinu, což odpovídá 12,08818359375V
1022 = 1,0978V na pinu, což odpovídá 12,0763671875V

10V => 0,91V na pinu => AD = 874
12V => 1,09V na pinu => AD = 1014
13V => 1,18V na pinu => AD = 1023
14V => 1,27V na pinu => AD = 1023
15V => 1,36V na pinu => AD = 1023

Když z AD převodníku dostaneš 1023 - jak víš, že tam je 12,08818359375V a ne třeba 15V ?

Navíc je vhodné nechat si kvůli bitové chybě ještě jeden bit jako rezervu (tedy měřit do 1021), ale to už není úplně nutné.

Už víš, proč 1022 ?

Re: Attiny45 kalibracia adc prevodníku

Napísané: 05 Feb 2023, 11:01
od používateľa misocko
budvar10 napísal:
05 Feb 2023, 09:37
misocko napísal:
04 Feb 2023, 19:31
Okrem toho by som meral napätie priamo na pine , nie nejakych 30V cez delič.
Nerozumiem. Na akom pine? Ak chce merať 30V, musí použiť delič taký, aby na vstupe ATtiny neprekročil max. povolenú hodnotu inak poškodí vstup. Autor nedal žiadnu schému, okrem referencie. Niečo mi uniklo?
Ano na pin musí isť max 5V. Ale on meria 30V. Neviem aku chybu mu tam vnáša delič. Meral by som preto priamo 0-5V na pine, a nie 0-30V pred deličom.

Re: Attiny45 kalibracia adc prevodníku

Napísané: 05 Feb 2023, 11:48
od používateľa peterple
Ešte by som doplnil že nie je celkom pravda že na pine MCU nemôže byť napätie väčšie ako je 5V. Záleží od toho aký je ten zdroj tvrdý. Ak má zdroj výsoký odpor tak sa s tým vysporiada ochrana pinu clamping diodami.
Na obrázku je ukázané ako je možné pripojiť 230V priamo na pin MCU. Stačí pridať 2MΩ.
image.png
V konečnom dôsledku tam to napätie vyššie o moc nebude. konkrétne tak o 0,6V čo je úbytok na ochrannej diode.

V prípade merania ADC sa to dá využiť na také jednoduché automatické prepínanie rozsahov. Ak si dobre nastavíte tie odporové deliče tak si ich môžete pripojiť viacej a keď hodnota prekročí 1022 (ako píše balu) tak merať na ďalšom deliči ktorí delí viacej.

finta so sledovaním sieťového napätia je z originál dokumentácie k MCU
https://ww1.microchip.com/downloads/en/ ... AVR182.pdf
Len varujem že v takom prípade pracujete s nn s treba mať na to patričné paragrafy.

Re: Attiny45 kalibracia adc prevodníku

Napísané: 05 Feb 2023, 11:58
od používateľa Dumitru
Okrem toho by som meral napätie priamo na pine , nie nejakych 30V cez delič.
Meral som to aj na pinoch, sedí to s nameranou hodnotou Real[V]/6, samozrejme nejaká mala chyba tam je rádovo 0.01V/0.02, ale nie 0.5V, príklad pri nameranej hodnote 29.9 na pine je 4,98V
Podľa toho grafu je viditeľné, že to sleduje zmeny a aj celkový tvar krivky, len maximálna hodnota je nastavená zle.
Tu referenciu nechápem. Načo tam je LM317? 5V referencia sa dá vytvoriť čisto s TL431.
Napajam s toho ešte LCD1602
Nevím, co tím měříš, ale pokud to jde, nastav měřenou veličinu na maximum, co lze a zjisti, co Ti dává AD převodník za hodnotu (musí být do 1022, jinak hrozí, že se dostaneš za rozsah AD převodníku). Podle toho pak nastav přepočet z hodnoty AD na velikost měřené veličiny. Případně můžeš na nějaké minimální hodnotě blízké 0 (případně přímo 0) zjistit počáteční offset a pak podle toho udělat přepočet z AD na veličinu.

Maximalna hodnota ADC je 987 a meriam to tu :
image.png

Rušenie na meranom pine:
image.png

Re: Attiny45 kalibracia adc prevodníku

Napísané: 05 Feb 2023, 12:15
od používateľa budvar10
@balu
Samozrejme, že rozsah musí byť trochu väčší, ako max. meraná hodnota.

@misocko
Takto to dáva zmysel.

@Dumitru "Napajam s toho ešte LCD1602"
Z referencie? Z tej by nemalo byť napájané nič, ide predsa o presnoť merania.

Re: Attiny45 kalibracia adc prevodníku

Napísané: 05 Feb 2023, 15:24
od používateľa Dumitru
Zistil som, že problém je pravdepodobne v diferenciálnom móde nastavil som ADC, ako SINGLE ENDED a namerané hodnoty sú oveľa lepšie vzladom k presnosti 30/1024 = 0,03V a rušeniu 0,004V*6 = 0,024V

image.png
image.png (7.98 KiB) 2441 zobrazení


:pain:

Teraz je otázka prečo

Re: Attiny45 kalibracia adc prevodníku

Napísané: 05 Feb 2023, 16:19
od používateľa Miko6005
odporucam si prestudovat application notes TB3209, kludne zacni od strany osem.
https://ww1.microchip.com/downloads/en/ ... 003209.pdf

Re: Attiny45 kalibracia adc prevodníku

Napísané: 05 Feb 2023, 19:00
od používateľa balu
Otázkou je, jestli se AD převodník chová u nové řady AVR procesorů (od Microchipu) stejně jako u té původní (ještě z dílny Atmelu).