Programování Atmega

Pavel Kutina hw na prelude.cz
Pátek Prosinec 5 21:06:38 CET 2014


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
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list