Stránka 1 z 1

ADC převodník ATmega8 versus ADC ATmega644p - Bascom

Napsal: 31 led 2011, 09:19
od michalino
Ahoj všem,

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

Napsal: 31 led 2011, 11:21
od AB1
Mega644 má dvě interní reference: 1.1V a 2.56V.

Napiš

Kód: Vybrat vše

Config Adc = Single , Prescaler = Auto , Reference = Internal_1.1 
nebo

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.

Napsal: 31 led 2011, 11:30
od michalino
AB1, dobrý den.

Děkuji, vyzkouším v kódu co píšete a napíšu Vám, jak to dopadlo.

Napsal: 01 úno 2011, 08:31
od michalino
Dobrý den AB1 a všem...

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)

Napsal: 01 úno 2011, 08:43
od iginoiii
pre istotu taka obligátna otázka: skúšal ste viac procesorov atmega644 zapojiť, a pri všetkých(najmenej dvoch) máte tú istú chybu?

Napsal: 01 úno 2011, 08:49
od michalino
Dobrý den, ano, zkoušel jsem to u dvou, u obou je stejná chyba

Napsal: 01 úno 2011, 09:05
od Andrea
Když ten procesor zresetuješ, tak se to okamžitě vrátí na 2500?

Napsal: 01 úno 2011, 09:11
od michalino
Dobrý den Andreo,

to jsem nezkoušel, vyzkouším hned jak se k čipu dostanu. Díky všem za rady a náměty.

PS: Prozatím informace: když čip vypnu zapnu od napětí, děje se to samé, začíná to od 2500 a hodnota jde nahoru .... když ho přeprogramuju, také se děje to samé, začíná od 2500 a jde nahoru

Napsal: 01 úno 2011, 14:38
od Andrea
Víš co je to reset?

Napsal: 01 úno 2011, 16:11
od AB1
Filtrační kondenzátory 100n nemáš zkoušet, ty mají být trvale na VCC, AVCC, AREF proti zemi.

Jsou propojeny piny GND?
Je AVCC spojeno s VCC?
Je v pořádku zdroj?

Případně nám ukaž celý kód.

Napsal: 02 úno 2011, 08:42
od michalino
Tak jsem vše přenesl na zkušební desku nepájivé pole a zkusil jsem vše zapojit mimo plošňák a hlavně s kratšíma drátkama k napěťpvému děliči, který už jsem měl z pokusů pocínovaný až až..a to byl asi problém

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é.