Zdravím, prosím, potřeboval bych pomoct s “diagnostikou” , jak poznám odpálený port na ATMEGA32 ? Koupil jsem nový kus a nejde mi nastavit žádný z výstupů na jendičku, JTAG jsem vypnul.
Dá se to nějak změřit ? Nebo jsem zapoměl něco zapnout ?
Kód , kterým se o to snažím :
ldi R16,255
out DDRA,R16
out DDRB,R16
out DDRC,R16
out PORTA,R16
out PORTB,R16
out PORTC,R16
Před tím je ještě tabulka vektorů přerušení opsaná z datasheetu, výstup zkouším LED diodou přes omezovací odpor 500ohm a voltmetrem . Na všech výstupech je napětí kolem 0,3V
administrator: přejmenováno z "Odpálené všchny porty ?"
nn, pull-upy si musíš zapnout když je chceš použít, defaultně zapnuty nejsou - mohly by za určitých podmínek zvyšovat spotřebu.
Taky myslím, že mu nejdou hodiny nebo má na začátku v programu něco, co zablrání vykonání zde uvedeného.
S programátorem se to baví normálně , Fuses jsem měnil, pouze jsem vypínal JTAG(zabral si jeden port) , co naprogramuju, to z čipu zase přečtu , na ATMEGA 8 mi to fungovalo , než jsem ho přepóloval , Pak už nebyl k sehnání , tak jsem si koupil ATMEGA 32 , studuju a učím se , ještě mě napadá , jestli nemusí být spojeno GND na pinu 11 s GND na pinu 31 …
CKSEL3:0=9=1001 => “External Low-frequency Crystal”
Kdyby byla hodnota ve skutečnosti negována, bylo by to 0110 => “External RC 0.9-3 MHz”.
Pro interní RC 8MHz => CKSEL3:0 = 0100.
Tak válčím s fuses zatím se zdá, že jsem nic moc nerozbil, jen mi procesor přestal hlásit signaturu Ale naprogramovat jde a dokonce dělá, co mu naprogramuju, ale ne to, co chci … Děkuju za odhalení problému s porty
S nastavováním fuses bych na nějaký udělátka radši moc nespoléhal.
Psal jsi něco o vyndávání z patice, takže máš asi nějaký paralelní výtvor nebo isp s vlastním zrojem hodin. Když napíšeš nesmysl do programu, obvykle se inc neděje. Pokud bys však programoval ISP/JTAG, nesprávným počochtáním fuse a lock bitů si můžeš zařídit příjemnou výměnu procesoru .
V datasheetu každého avrka je sekce “Memory Programming”, kde jsou tyto věci popsané. Když už nějaké to udělátko používáš, radši si tam zkontroluj, co ti to vytvořilo za nastavení než to tam naleješ
Používám STK 200, s oddělením registrem . připojeno přes lpt . JInak ty fuses konzultuju s datasheetem av nějak tomu nerozumím , pokud to vezmu podle datasheetu , tak výběr oscilátoru je ve FUSE LOW , to mi pr 8 Mhz vychází 1110 0100, tedy E4 , nebo jsem si popletl MSB a LSB ?
Podle té samé logiky by E3 mělo být interní 4 MHz , to funguje , ale na E4 to prostě nekmitá.
Z patice procesor přendavám , protože jsem tu objevil 2ks ZIF patici, tak mám jednu v programátoru a druhou v pokusné desce, nějak se mi nelíbila představa ISP vzhledem k citlivosti LPT portu
Rozumíš tomu správně. Jesli ti to na 8MHz nejede, tak je tam buď jiná závada nebo horší kousek.
Ještě by měla být CKOPT=1, piny XTAL nezapojeny.
Blokovací kondík na napájení předpokládám máš.
Jaký je to přesně typ mcu? Má správné napájení?
CKOPT je 1
Procesor je ATMEGA32-16PU , podle datasheetu by měl 8 MHz umět možná je nějak poškozen, protože nechtěl nastavovat piny ještě před změnou fuses , něco bylo na LOG1, ale jak jsem vyzkoumal z dokumentace, dělal to zapnutý JTAG Do lock bitů se raději nepouštím, vlastně tam ani není nic, co bych momentálně potřeboval nastavit.
Záhadou zůstává ta smazaná signatura , do té by teoreticky nemělo jít sahat
Ještě k napájení. Napájím to přes stabilizátor 78L05 , na vstupu filtrace 470uF + blokovací kondenzátory u stabilizátoru , ješte zkusím připojit kondík 100nF přímo k napájení procesoru.
Na procesoru je 4.95V