• 26 odgovora
  • 9.290 pregleda
Problem sa programiranjem AVR-a 27.10.2008. u 11:50 · pre 219 meseci #1
Narucio sam USBtinyISP http://www.ladyada.net/make/usbtinyisp/ i isprogramirao firmware uspesno pomocu avrdude ali mikrokontroler ne radi kako treba i nekako sporo reaguje na ulaze pa kontam da je problem sa fuse-ovima i clockom. Nista nisam setovao samo sam sprzio hex. Fuse-ovi treba da budu setovani na sledeci nacin:

• brown out detection at 4.3v
• preserve eeprom through chip erase cycle
• boot size equals 256
• boot reset vector enabled
• external oscillator greater than 8mhz 16k clock plus 65ms

sve ostalo ne treba da se setuje

Uz pomoc AVR fuse kalkulatora

http://www.engbedded.com/cgi-b...;B_BODLEVEL0=P&B_BOOTRST=P

...sam dobio sledeci rezultat:

• Low: FD
• High: B4
• Ext: F9

Kad sam pokusao da izmenim fuse-ove u avrdude sledecom komandom:

avrdude -c usbtiny -p atmega162 -U lfuse:w:<0xFD>:m
avrdude -c usbtiny -p atmega162 -U hfuse:w:<0xB4>:m
avrdude -c usbtiny -p atmega162 -U efuse:w:<0xF9>:m

...ovaj mi je javio: "The system cannot find the file specified"

Ima li neko pojma sta je problem i kako da ga resim. Do sada sam programirao samo PIC-ove gde nema nikakvog smaranja a sa AVR-om nemam nikakvog iskustva.

Unapred hvala

Potpis
Pozdrav, Saša
Re: Problem sa programiranjem AVR-a 27.10.2008. u 14:49 · pre 219 meseci #2
Pogledaj prvo avrdude dokumentaciju, na strani 8 stoji:
m162 ATmega162
znaci samo izmeni u tvojoj komandi ATmega162 sa m162 i trebalo bi raditi.
Re: Problem sa programiranjem AVR-a 29.10.2008. u 11:06 · pre 218 meseci #3
Hm, cudno... samo programiranje mi je proslo sa punim nazivom i komandom:
avrdude -c usbtiny -p atmega162 -U flash:w:x0xb0x.hex
Bar mi je avrdude prijavio da je sve OK. Pokusacu sa m162 kad dodjem kuci. Hvala na odgovoru
Potpis
Pozdrav, Saša
Re: Problem sa programiranjem AVR-a 29.10.2008. u 15:05 · pre 218 meseci #4
Citat:
avrdude -c usbtiny -p atmega162 -U lfuse:w:<0xFD>:m
avrdude -c usbtiny -p atmega162 -U hfuse:w:<0xB4>:m
avrdude -c usbtiny -p atmega162 -U efuse:w:<0xF9>:m


Zar ne bi trebalo da hex vrednost bude "čista", bez "<>"?
Pogledaj uostalom dokumentaciju, na strani 16 imaš primer:

Citat:
% avrdude -p m128 -u -U flash:w:diag.hex \
> -U eeprom:w:eeprom.hex \
> -U efuse:w:0xff:m \
> -U hfuse:w:0x89:m \
> -U lfuse:w:0x2e:m
Re: Problem sa programiranjem AVR-a 31.10.2008. u 14:48 · pre 218 meseci #5
Tacno, hex vrednost ipak treba da bude cista. Hvala Branko.
Ovo mi je dozvolilo da izmenim fuse-ove ali ni nakon ovoga masina ne radi a MCU ne moze da se inicijalizuje pa cak ni reprogramira. Procesljao sam uputstvo za avrdude ali mi nije bas pomoglo da resim problem.

Moze li neko da mi razjasni malo ove AVR-ove i fuse-ove... da li se uvek prvo sprzi hex pa tek onda menjaju fuse-ovi ili to zavisi od programatora odnosno software-a za programiranje?
Potpis
Pozdrav, Saša
Re: Problem sa programiranjem AVR-a 01.11.2008. u 21:37 · pre 218 meseci #6
Izgleda da taj kalkulator ima Bug.
Po toj semi sa 12MHz kvarzom bi trebalo da je lfuse FE ili FF.
Pogledaj uostalom Datasheet.

Probaj da taj ATmega ozivis nekim kvarzom od 3 do 8MHz, mislim zameni ga.
Re: Problem sa programiranjem AVR-a 03.11.2008. u 12:03 · pre 218 meseci #7
Saša evo da ponovimo još jednom šta si ustvari napisao:
Citat:
Fuse-ovi treba da budu setovani na sledeci nacin:

• brown out detection at 4.3v


Taj brown out generiše reset ako je napon napajanja manji od 4,3V, tu ne treba da si napravio grešku.

Citat:

• preserve eeprom through chip erase cycle

To isto ne bi trebalo da pravi problema.
Citat:

• boot size equals 256

Jesi li siguran da si baš to želeo?
Naime, posle reseta se izvrašava BOOT program, a ne GLAVNI program?
Taj BOOT program fabrički nije upisan nego ga moraš sam pisapi i Flash-ovati.
Citat:

• boot reset vector enabled

Ovo je još problematičnije, ta konfiguracija menja VECTOR tabelu!
To je samo za one koji tačno znaju šta rade!
Citat:

• external oscillator greater than 8mhz 16k clock plus 65ms

To sav već napisao u predhodnom postu.

U principu su ti Fuse registri jedna slabost AVR-a.
Ako ne znaš tačno šta radiš možeš da "zaglaviš" mikrokontroler tako da se više "ne odaziva".
Ja obično ne menjam stanje svih Fuse registara preko komande nego idem prvo u Termilal modus:
Code:
avrdude -p m128 -u -c stk500 -t


Kada je program u "Terminal Mode" javlja se sa:
Code:
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x1e9702
avrdude: current erase-rewrite cycle count is 52 (if being tracked)
avrdude>



Onda ispitujem stanje pojedinih Fuse registra:
Code:
avrdude> d hfuse
>>> d hfuse
0000 99


I menjam ih sa:
Code:
avrdude> w hfuse 0 0x89
>>> w hfuse 0 0x89


Pa ponovo kontrolišem šta je programator uradio:
Code:
avrdude> d hfuse
>>> d hfuse
0000 89


Pre svega toga DOBRO prekontrolišem šta ću upisati u Fuse, je ako tu pogrešim onda moram da "spašavam" sistem
tako što ću da dovedem spoljni CLOCK na XTAL1 ili mi je Bog na pomoći.

[Ovu poruku je menjao branko_g dana 03.11.2008. u 14:11 GMT+1]
Re: Problem sa programiranjem AVR-a 03.11.2008. u 14:40 · pre 218 meseci #8
Probao sam pre dosta vremena da se poigram sa avrdude i imao sam problem sa fuse programiranjem ali se vise nesecam u cemu su sve bili problemi.Posle zrtvovanja 10-tak tiny2313 vratio sam se na kanda200-300 i codevision,tu bar osnovni fuse-ovi tipa brownout,svi clock-ovi itd rade bez problema
Re: Problem sa programiranjem AVR-a 10.11.2008. u 15:00 · pre 218 meseci #10
Evo, da javim da sam uspeo da izmenim sve fuse-ove. Naime, nakon menjanja high fuse-a MCU ocekuje externi clock pa sam morao da nalemim keramicki rezonator na ICSP adapter i uspeo sam da izmenim i ostala dva fuse-a bez problema. Iako resih problem, i dalje mi se vise dopadaju PIC-ovi i programiranje iz windowsa. ;)
Hvala svima na pomoci i sugestijama.
Potpis
Pozdrav, Saša
Re: Problem sa programiranjem AVR-a 28.11.2008. u 23:43 · pre 217 meseci #11
Nešto slično. Treba da isprogramiram Atiny2313. Programator je cuveni paralelni sa 74HC244. Ranije sam programirao par Atmega8515 preko ISP-a i tu nije bilo problema. Fuses su bili dati preko hex vrednosti i preko Fuse Calculatora sam to ubacio u ponyprog.
Kod ovog 2313 osigurači su trebali da budu CKDIV8=1, CKSEL 1111 i BodLevel 100. Iće će uz oscilator od 16 MHz. Nov Attiny sam lepo učitao, međutim, kod upisa sam nešto zabrljao pošto više ne mogu da ga učitam nikako. Samo još da dodam da ovaj AVR nisam programirao preko ISP-a, već samostalno i to tako što sam dodao dva kondenzatora i kristal od 4Mhz i naravno napajanje. Da li postoji način da se on ipak učita i da se promene osigurači.
Oni me stalno zbunjuju i da li gornje vrednosti znače da treba da obrišem sve (uncheck) i onda čekiram samo BODLEVEL1 i BODLEVEL2?

[Ovu poruku je menjao radoz dana 29.11.2008. u 01:15 GMT+1]

[Ovu poruku je menjao radoz dana 29.11.2008. u 01:15 GMT+1]
Re: Problem sa programiranjem AVR-a 29.11.2008. u 22:03 · pre 217 meseci #12
Citat:
Programator je cuveni paralelni sa 74HC244.

Taj je verovatno STK200 kompatibilan.
Citat:
Iće će uz oscilator od 16 MHz.

Ovim si nam sve rekao;-)
Koji oscilator? Budi precizniji.
Eksterni oscilator, kvarcni kristal ili keramicki rezonator?
Citat:
međutim, kod upisa sam nešto zabrljao pošto više ne mogu da ga učitam nikako

Verovatno si Fuse inverzno programirao, tamo gde treva 1 zapisao si 0 i obrnuto.
Ne zaboravi, 1 znaci da Fuse bit NIJE PROGRAMIRAN.
Citat:
Samo još da dodam da ovaj AVR nisam programirao preko ISP-a, već samostalno i to tako što sam dodao dva kondenzatora i kristal od 4Mhz i naravno napajanje

Daj prevedi tu recenicu na tehnicki razumljiv jezik. Sta je "samostalno"?

Procitaj jos jednom dokumentaciju tvog ponyprog-a, tu sve stoji.
Re: Problem sa programiranjem AVR-a 01.12.2008. u 06:34 · pre 217 meseci #13
Citat:
Taj je verovatno STK200 kompatibilan.

Jeste.

Citat:
Koji oscilator? Budi precizniji.

Kvarcni kristal

Citat:
Verovatno si Fuse inverzno programirao, tamo gde treva 1 zapisao si 0 i obrnuto.

To sam ustanovio kasnije.

Citat:
Daj prevedi tu recenicu na tehnicki razumljiv jezik. Sta je "samostalno"?

Nisam AVR stavio na pločicu gde će inače biti (16Mhz) već sam na podnožje zalemio dva kondenzatora od 27 pf, 4 Mhz kristal i doveo napajanje na AVR.
Kad sam postavio osigurače kako treba jedan avr sam lepo isprogramirao, ali kasnije nisam mogao da ga pročitam. Onda sam stavio eksterni oscilator od 16 Mhz i nakon toga jedan AVR bez problema čita i u upisuje, a drugi se i dalje ponaša čudno - nekad može da se pročita, nekad da neke čudne vrednosti, javlja grešku pri verifikaciji upisa i slično. Da li moguće da je taj drugi "sam po sebi" neispravan, ili sam ga ja negde sredio?
Re: Problem sa programiranjem AVR-a 01.12.2008. u 06:49 · pre 217 meseci #14
Citat:
javlja grešku pri verifikaciji upisa i slično. Da li moguće da je taj drugi "sam po sebi" neispravan


Pre da je problem u tajmingu, to se i meni dešava, ali sa avrdude.
Rešenje bi bilo da probaš da tu vezu nekako usporiš, ako postoji takva opcija kod ponyprog.
Re: Problem sa programiranjem AVR-a 12.08.2012. u 20:08 · pre 172 meseci #15
Izvinjavam se sto pokrecem veoma staru temu,ali bolje nego da otvaram novu,jer je ovo tacno ono sto mi treba.

Imam ATMEGA16,sa WinAVR-om isprogramiram sta treba,dobijem ovo:

Citat:
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.03s

avrdude: Device signature = 0x1e9403
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "main.hex"
avrdude: input file main.hex auto detected as Intel Hex
avrdude: writing flash (15468 bytes):

Writing | ################################################## | 100% 5.98s

avrdude: 15468 bytes of flash written
avrdude: verifying flash memory against main.hex:
avrdude: load data flash data from input file main.hex:
avrdude: input file main.hex auto detected as Intel Hex
avrdude: input file main.hex contains 15468 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 5.48s

avrdude: verifying ...
avrdude: 15468 bytes of flash verified

avrdude done. Thank you.


Dakle,AVR je ovim 'flashovan' ali nisu podeseni fuse-ovi?

Naime,imam problem u tome sto ne mogu da procitam nista sto sacuvam u flash ROM-u cipa,iako se sve uredno sacuva. F_CPU mi je 8 Mhz,koliko ja kapiram,tako treba da podesim fuse-ove na ovom kalkulatoru:

http://www.engbedded.com/fusecalc/

U sustini,sve mogu da ostavim na default vrijednostima,podesim fekvenciju na 8Mhz (+64s) samo me buni ovaj red:

--------Boot Reset vector Enabled (default address=$0000); [BOOTRST=0]--------

Dakle,ja NE zelim da zakljucam cip,hocu da ga koristim i dalje.Da li da cekiram ili da ostavim necekiranu ovu stavku?


Hvala puno unaprijed na pomoci!



Potpis
Potpis!
Re: Problem sa programiranjem AVR-a 13.08.2012. u 21:25 · pre 172 meseci #16
Kako mislis ne mozes da procitas?
Sta to upisujes pa ne mozes da procitas?
Podesi samo kristal koji koristis i ostatak ostavi na "default" u onom kalkulatoru i programiraj...
Lepo se vidi "verifying" opcija u AVRDude consoli, znaci da programator komunicira sa cipom i da sve prolazi ok...
Potpis
There are only 10 types of people in the world:
those who understand binary, and those who don't.
Re: Problem sa programiranjem AVR-a 14.08.2012. u 00:39 · pre 172 meseci #17
uC je povezan sa LCD-om i tastaturom.Tekst koji kucam,a prikazuje se na LCD-u treba da se sacuva,da ga posle mogu otvoriti/izmijeniti.On se sacuva,ali kad ga otvorim prikaze samo prazan LCD.

Dobro,je li default opcija ova koja je tu kad se otvori kalkulator,dakle NECEKIRANO Boot Reset vector Enabled?
To znaci da posle opet mogu da programiram cip?

Ovo je stanje fuse-ova sad:



ali tu ne mogu da vidim sta je podeseno za Boot Reset vector,jer me usmjerava na datasheet.

Potpis
Potpis!
Re: Problem sa programiranjem AVR-a 14.08.2012. u 14:03 · pre 172 meseci #18
Citat:
uC je povezan sa LCD-om i tastaturom.Tekst koji kucam,a prikazuje se na LCD-u treba da se sacuva,da ga posle mogu otvoriti/izmijeniti.On se sacuva,ali kad ga otvorim prikaze samo prazan LCD.

???
Jel ti to ozbiljno postavio pitanje i ocekujes odgovor?
Sacuvati? od koga/cega?
Prikaci kod.
Re: Problem sa programiranjem AVR-a 14.08.2012. u 14:27 · pre 172 meseci #19
Ni meni nije jasno kako mislis da cuvas text koji unosis sa tastature?
Jedini nacin je da ga smestas u Eeprom i odatle iscitavas/menjas/ispisujes na LCD...

Ili okaci kôd, ili budi malo precizniji sa pitanjem...
Potpis
There are only 10 types of people in the world:
those who understand binary, and those who don't.
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme