Programování Atmega

Jirka zaloha na volny.cz
Pátek Prosinec 5 21:38:05 CET 2014


Je jich víc, třeba 
http://eleccelerator.com/fusecalc/fusecalc.php?chip=atmega8 nebo 
http://www.engbedded.com/fusecalc/ atd.

Nevím ale o žádném, který by to dělal inverzně (tj. ze zadaného hex 
krakorce ukázal názorně nastavení pojistek).

Tak moc se tím ale nezabývám a doufám, že nebudu muset (i když 
odříkaného chleba...).

--
Jirka


> Na to je někde na webu Atmega FUSES calculator, použil jsem to. ( německy)
>
> Dne 5.12.2014 21:06, Pavel Kutina napsal(a):
>> Kdyz koukam na ten screenshot - k dokonalosti tomu jedna podstatna
>> drobnost chybi: Moznost zadat pojistky hexadecimalne.
>>
>> Obcas se stane (mne napriklad u toho AVRtesteru), ze clovek ma cizi
>> hex a potrebuje ho dostat do AVR. A zkoumat, jak by asi mohly byt
>> pojistky nastaveny a snazit se reverzni analyzou zjistit, co tam
>> nastavit, je trochu k vzteku. Jiste, je to edukativni - ale pomale a
>> extremne otravne.
>>
>> Cituji ze stranky AVRtesteru (pro ukazku, jak by to melo vypadat - do
>> jinych programatoru to jde napsat primo):
>>
>> /*
>> Nastavení pojistek:
>>
>> ATmega328:
>> Interní RC osc 8MHz - lfuse:0xe2 hfuse:0xd9 efuse:0xfc
>> Externí krystal 8MHz - lfuse:0xff hfuse:0xd9 efuse:0xfc
>>
>> ...
>> */
>>
>> Nez clovek u takovehoto klikatka zjisti, ktera bije, muze to trvat i
>> vic nez jeden otraveny vecer...  Zvlast, kdyz uz se clovek tesi spis
>> na to, jak a co bude se zarizenim delat, nez na to, jak si bude cist
>> datasheet toho AVR...
>>
>>
>> Pavel Kutina
>>
>>
>>
>> Dne 5.12.2014 20:51, Jirka napsal(a):
>>> Ještě k tomu dodám svoje poznatky coby podobného zajíce...
>>>
>>> 1) PIC si konfiguraci pojistek nese s sebou v *.hex (možná nemusí, ale
>>> to nevím přesně, zpravidla tam je).
>>>
>>> 2) Atmega (Atmely obecně?) toto neumějí a pojistky je vždy nutno
>>> nastavovat separátně. Pokud ale nechám ty od výrobce (nebo jiné
>>> korektní) a přepisuju jen paměť programu, pak by k zablokování
>>> (především přepisem nastavení na externí CLK) dojít nemělo.
>>>
>>> Asix UP (programátor Presto) to umí hezky vyřešit tak, že lze
>>> programovat buď vše najednou, nebo jen program, jen data nebo jen
>>> pojistky. Screenshot znázorňující situaci pro ATmega8 je na
>>>
>>> http://www.jpeg.cz/images/2014/12/05/xri3I.png
>>>
>>> Kromě toho si UP umí nastavení pojistek pro ATmega samostatně uložit do
>>> projektu (nepoužívám).
>>>
>>> Program AVRdude (který jsi asi použil) má i různé GUI nástavby, ale tak
>>> dobře udělané ovládání jako v UP jsem nikde neviděl.
>>>
>>> Jinak je samozřejmě AVRdude skvělé; v kombinaci USBasp (ten Tvůj
>>> třídolarový programátor) a příkazového řádku pro AVRdude je
>>> nepřekonatelná láce a jednoduchost...
>>>
>>> --
>>> Jirka
>>>
>>>> Děkuji všem za kompletní osvětlení problému. Jsem jenom uživatel typu
>>>> naleju program a osadím do patice, ale tohle byla na mě pěkná bouda.
>>>> Procesor totiž už nešel přečíst, hlásilo to chyby atd... přitom
>>>> prázdný(
>>>> nový ) šel číst OK.
>>>> Jak jsem psal , s PIC tohle neznám, proto jsem se ptal.
>>>> Jo člověk je zas o něco málo chytřejší. :-)
>>>>
>>>> Dne 4.12.2014 8:54, Jan Waclawek napsal(a):
>>>>>> Atmega si tedy pøi programování nastaví "fuses" tak, že bez tìch
>>>>>> hodin
>>>>>> už pak nemùže bejt a proto nedojde k té verifikaci?
>>>>> Ano, v tomto ohlade ma AVR programovane beznym (nizkonapatovym) ISP
>>>>> samovrazedne sklony. Ale nic to nemeni na fakte, ze clovek ma
>>>>> vediet, co
>>>>> robi (a trapne citat datasheet).
>>>>>
>>>>> Podobne ISP-samovrazedne je u niektorych AVR preprogramovanie RESET
>>>>> pinu na
>>>>> IO. Jedine, ako nejde spachat samovrazdu je preprogramovanie SPI
>>>>> bitu vo
>>>>> fuses, to si kupodivu strazia.
>>>>>
>>>>> Ale je tu este iekolko veci, ktore by mali nejakym podobnym
>>>>> samovrazdam
>>>>> zabranit. Jedna z nich je, ze fuses treba pre jedno zariadenie (kde
>>>>> teda
>>>>> snad uz vopred viem, ci v nom mam ten suter alebo nie) programovat len
>>>>> jeden jediny krat, bo chiperase (t.j. nasledne ladenie atd.) ich
>>>>> neovplyvnia. Druha je ta verifikacia.
>>>>>
>>>>>> Naprogramoval jsem pomocí toho tøídolarového programátoru do USB
>>>>>> Atmegu
>>>>>> s nastavením osc. na ext. krytal 8MHz.
>>>>>> Bohužel neprobìhla verifikace, ta se povede až po pøimojení šutru k
>>>>>> procesoru.
>>>>> Toto je dalsia vec - hodnoty fuses sa neaplikuju hned, ale len po
>>>>> ukonceni
>>>>> programovacieho rezimu (alebo power-on resete), t.j. verifikaciu je
>>>>> mozne
>>>>> urobit este kym je v programovacom rezime a urobit pripadne retrye
>>>>> ak sa
>>>>> to nepodari naprogramovat spravne. Toto samozrejme musi vediet urobit
>>>>> programator (vacsinou teda kombinacia programovacieho adapteru a
>>>>> softwaru
>>>>> v PC). Obavam sa vsak, ze vo Vasom pripade by to nepomohlo, bo asi
>>>>> neslo o
>>>>> zle naprogramovane bity ale o zle rozhodnutie uzivatela... ;-)
>>>>>
>>>>>
>>>>> Ako uz bolo napisane, HV programovanie by to vzdy malo zachranit, ale
>>>>> nie
>>>>> som si isty, ze HV programovanie vedia vsetky AVRka - tie starsie
>>>>> urcite.
>>>>> A neorientujem sa v modernom jednovyvodovom programovani radov Tiny
>>>>> ani
>>>>> xMega.
>>>>>
>>>>> Inak ja mam vzdy poruke "nejaky" relativne pomaly (cca 1MHz)
>>>>> oscilator -
>>>>> presnejsie, STK500 ma oscilator ako vlastnost - a ak sa mi nieco
>>>>> podobne
>>>>> stane (resp. sa to stava spekulativnej casti nasich klientov), tak
>>>>> jednoducho pripojim oscilator k prislusnej nohe mcu (XTAL1) a nastavim
>>>>> prislusne rychlost ISP hodin, prepalim fuses podla potreby, a potom
>>>>> uz je
>>>>> vsetko dobre... :-)
>>>>>
>>>>> wek



Další informace o konferenci Hw-list