Programování Atmega

Jirka zaloha na volny.cz
Pátek Prosinec 5 21:32:48 CET 2014


Ale ono to jde:

http://www.jpeg.cz/images/2014/12/05/CnF2.png

http://www.jpeg.cz/images/2014/12/05/9xNB.png

Jen já prostě nejsem hex ani jiný podobný masochista.

Analogový a "diskrétně digitální" klasik je rád, když mu čas od času 
nějaký procesor funguje a hlavně, že pochopil alespoň základní myšlenky 
programátora...

--
Jirka

> 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