ADC převodník ATmega8 versus ADC ATmega644p - Bascom
Moderátor: Moderátoři
ADC převodník ATmega8 versus ADC ATmega644p - Bascom
prosím Vás o radu a pomoc..
Jaký je rozdíl mezi ADC převodníkem ATmega8 a ADC převodníkem ATmega644p?
U atmega 8 používám toto nastavení
Config Adc = Single , Prescaler = Auto , Reference = Internal
jednak u Atmega644p musím smazat to Reference=internal, jinak to nefunguje, tedy:
Config Adc = Single , Prescaler = Auto
U atmega8 vše funguje správně (potenciometr na ADC), ale u Atmega644p hodnota, kterou získávám z převodníku, která je v romezí 0-4999 samovolně vzrůstá i když potenciometr mám v klidu....
děje se to, že hodnota kolísá dle nastaveného potenciometru +-10 jednotek...ale pomaličku vzrůstá, tzn. kdyby hodnota dle potenciometru byla na začátku 100, tak za dvě hodiny se samovolně dostane na 4999..
čím to prosím může být nebo setkali jste se s tímto někdy?
Na Atmega8 se mi to neděje, tam vše normálně chodí.
Díky
(pročítám, že v AVR je "sample-and-hold capacitor" a s tím prý může být nějaký problém.
DODATEK: S atmega8 jsem zkoušel jen tento jeden potenciometr měřit a vše v pořádku a u ATmega644p chci zapojit 5 potenciometrů....
zatím mám zapojeny k Atmega644p 3 potenciometry a se třemi zapojenými potenciometry to zkouším a vám popisuju.... u dvou je vše v pořádku, pouze tento jeden hapruje, ovšem je to ten samý potenciometr, který jinak zkouším na Atmega8
Napiš
Kód: Vybrat vše
Config Adc = Single , Prescaler = Auto , Reference = Internal_1.1 Kód: Vybrat vše
Config Adc = Single , Prescaler = Auto , Reference = Internal_2.56 Přesnou hodnotu referenčního napětí pak změř na pinu AREF.
nefunguje to. Změny tam jsou, ale nefunguje to, stále ten duch vzrůstajících hodnot.
Už zkouším ADC různě, nyní i s napěťovým děličem.
(podotýkám znovu s ADC jsem neměl nikdy problémy kromě teď čipu atmega644p, na kterém zkouším ověřené postupy z nižších AVR (atmega8,16,32) )
problém je to, že hodně skáčou hodnoty´...a navíc postupně se hodnota napětí klidového stavu, např. napěťového děliče, který teď aktuálně testuju zvyšuje až na nejvyšší hodnotu (napětí měřím na pinu A3 a přepočítávám do ADC hodnot 0 - 4999, které si zobrazuju na LCD)
V klidovém stavu mám na pinu A3 měřit 2500 jednotek, což je v pořádku, ale to se samo zvýší během hodiny až na 4000, což na nižších AVR mi nedělá, pouze tady....
už to nechápu, ale bude to osobní boj...už jsem zkoušel odrušování 100n kondenzátory, ale nepomohlo (avref,avcc)
AVCC a AREF jsem zapojil u atmegy8 i 644 takto:
http://avrmercubuana.files.wordpress.co ... dc_lcd.jpg
vše funguje, nechápu to, nebo spíš chápu, je to ten plošný spoj. Ale fakt je, že odstupuju od zbytečně velkého Atmega644 na atmega8, protože mám zbytečně nevyužité místo pro programový kód, byl to spíš hec tenhle obvod a prostě na atmega8 dosahuju i lepších hodnot měření - méně kolísá měření ADC. Sice na atmega8 chybí pár pinů pro připojení více diod, které "zobrazují" hodnotu a/d převodníku alias bargraf = od červených diod přes oranžové do zelených, ale raději pohodlná, zlatá atmega8 bez jakýchkoliv problémů.
Všem vám chci poděkovat za pomoc a nezlobte se, že to bylo mou vinou, musím poctivěji udělat plošňák, možná opravdu i to zapojení s tlumivkou a dvěma 100n kondenzátorama udělalo své.