Arduino vypálení bootloaderu do atmega328

Raspberry, Arduino, Mini-PC a další

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
ebastlirna
Příspěvky: 84
Registrován: 10 říj 2013, 02:00

Arduino vypálení bootloaderu do atmega328

#1 Příspěvek od ebastlirna »

Dobrý den,

prosím Vás o radu ohledně toho jak nahrát bootloader do čistého brouka atmega328. Vyzkoušel jsem snad všechny návody, ale pokaždé se objeví nějaká chyba hned na začátku vypalování.
Mám k dispozici funkční (?) arduino UNO (smd čip -> nelze vyndat), pár atmega328 a případně i TTL usb převodník.
Do funkčního arduina jsem nahrál sketch ArduinISP, dle blikání ledek (externí ledky na pinech 7, 8, 9) si myslím, že by měl být funkční, poté jsem k arduinu zapojil prázdný čip dle schématu pro nahrání bootloaderu. Nastavím programátor "arduino as ISP", dám vypálit bootloader a vyhodí mi to chybu:

"avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.

Chyba při vypalování zavaděče."

Nevíte, kde může být chyba?

Děkuji.

Uživatelský avatar
MetalGod
Příspěvky: 6556
Registrován: 30 kvě 2006, 02:00
Bydliště: Seč

#2 Příspěvek od MetalGod »

Chybovou hlášku si neumíš přeložit? Dyť to tam máš napsaný! Nebo pro koho myslíš, že tam je?
Píše to, že je neplatnej podpis zařízení a že buďto máš (dvakrát) ověřit zapojení, nebo v příkazu použít parametr -F, abys onu kontrolu obešel.
Bóóóže :roll:
Kdo není ve dvaceti levičák, nemá srdce,
kdo je levičák ve čtyřiceti, nemá rozum.
— Winston Churchill

Uživatelský avatar
Honza_dy
Příspěvky: 2172
Registrován: 20 srp 2004, 02:00
Bydliště: Brno-venkov

#3 Příspěvek od Honza_dy »

Metalgod: Ty v sobě Linuxaka nezapřeš, takhle arogantní odpověď jsem dostal pokaždé když jsem od nich žádal radu. Raději mu zkus vysvětlit kam má ten parametr -F nebo co napsat, protože podle mě položil relevantní dotaz.

Uživatelský avatar
trimen_
Příspěvky: 12
Registrován: 14 říj 2015, 02:00
Bydliště: Praha 7

#4 Příspěvek od trimen_ »

Inu, napadá mě několik věcí:

1) Pokud se jedná pouze o IO, tak vývody jsou následovně:
VODIČ--Č.VÝVODU IO--ARDUINO
MISO--18--12
MOSI--17--11
SCK--19--13
RST--1--10

2)Pokud je vše zapojené, tak je tam krystal?

3)Pokud není zrada v HW tak máš v IDE správně zvolený typ procesoru, možná záměna 328 za 168.

Uživatelský avatar
MetalGod
Příspěvky: 6556
Registrován: 30 kvě 2006, 02:00
Bydliště: Seč

#5 Příspěvek od MetalGod »

Honza_dy píše:Metalgod: Ty v sobě Linuxaka nezapřeš, takhle arogantní odpověď jsem dostal pokaždé když jsem od nich žádal radu. Raději mu zkus vysvětlit kam má ten parametr -F nebo co napsat, protože podle mě položil relevantní dotaz.
Houno arogantní. Tak snad mu to nepíše chybovou hlášku ze srandy, ne? A že ji ignoruje, nebo ji neumí přeložit a neumí si vygooglovat jakejkoliv překladač, to není moje blbost. Jen jsem mu ji přeložil, zbytek je na něm. Myslím, že v tý chybový hlášce je toho napsáno dost.
Přirozeně, pokud mu konkrétní program, pomocí nějž se snaží zapisovat, jako jednu z možností řešení nabídne zadat parametr -F (zřejmě force, tady ve smyslu vynutit), pak určitě ne do "Malování", ale programu (avrdude), kterej tu chybovou hlášku vysypal, takže třeba namísto:
program <ňáký parametry> vstupní_soubor blablabla
spustí:
program -F <ňáký parametry> vstupní_soubor blablabla

Ale to bych volil jako poslední možnost, když bude zapojení na 100% správný a funkční a ani nepomůže nic, co napsal trimen_.

Kdyby mu to nic nenapsalo, nebo něco, co je nicneříkající, jako třeba "Segmentation fault" a nic k tomu, tak ani nepípnu.
Kdo není ve dvaceti levičák, nemá srdce,
kdo je levičák ve čtyřiceti, nemá rozum.
— Winston Churchill

Uživatelský avatar
Honza_dy
Příspěvky: 2172
Registrován: 20 srp 2004, 02:00
Bydliště: Brno-venkov

#6 Příspěvek od Honza_dy »

I když se mě to netýká, tak jsem zkoušel něco najít. Je pravda že google vysypal spoustu odkazů na "invalid device signature arduino bootloader".
Tady by mělo být řešení.

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#7 Příspěvek od FHonza »

Napiš sem jakou signaturu přečteš. Jestli samé 0x00 nebo 0xFF tak to parametr -F nevyřeší. Problém bych hledal v nastavení Fuse. Velmi pravděpodobně má programovaná atmega nastavený oscilátor jinak než to máš zapojené (externí krystal ...)

Uživatelský avatar
pocitujlasku
Příspěvky: 1757
Registrován: 12 pro 2005, 01:00

#8 Příspěvek od pocitujlasku »

Tiez som skusal napalit bootloader cez arduino, a mal som rovnaky problem. Skusal som rozne navody, ale bez uspechu. Nakoniec som si zbuchal LPT programator (krystal+ par odporov) a cez to mi ten bootloader napalilo bez problemov.

MetalGod: trocha slusnosti by nezaskodilo. On to nahrava cez arduino IDE, kde sa nic nenastavuje, len kliknes na napalit. To IDE potom zavola avrdude s parametrami podla typu arduino dosky. Nie je tam moznost len tak pridat nejaky parameter.
No vidis, a tak si sa bal

Uživatelský avatar
Honza_dy
Příspěvky: 2172
Registrován: 20 srp 2004, 02:00
Bydliště: Brno-venkov

#9 Příspěvek od Honza_dy »

Arduina si pálím běžně, ale mám desku s mcu v DIPce a k tomu USBasp z DX. Podobné problémy jsem nikdy neměl, jen jsem musel udělat kabelovou redukci z 10pin na 8pin? Teď přesně nevím...

Uživatelský avatar
Honza_dy
Příspěvky: 2172
Registrován: 20 srp 2004, 02:00
Bydliště: Brno-venkov

#10 Příspěvek od Honza_dy »

Jeejda: Uživatele ebastlirna a jeho odbornost neznám, ale ve svém dotazu uvedl dostatek informací k tomu, aby dostal jinou odpověď než "bóóóže" (MetalGode tohle není narážka na Tvoji osobu) Z vlastní zkušenosti vím, že někdy stačí pouze nakopnout správným směrem a člověk se už potom k výsledku prokouše sám.
Prostě se mi jen zpětně vybavil ten pocit marnosti z doby, kdy jsem se jako ucho pokoušel začít s Linuxem, nevěděl odkud začít a na abclinuxu dostával podobné odpovědi na dotazy.
Toť vše jako vysvětlení, ebastlirna se od té doby neozval a nechci zanášet fórum zbytečnými spory.

Uživatelský avatar
mtajovsky
Příspěvky: 3694
Registrován: 19 zář 2007, 02:00
Bydliště: Praha

#11 Příspěvek od mtajovsky »

Honza_dy píše:... ebastlirna se od té doby neozval...
Pokud se mu jako první odpovědi dostane něco, co začíná:

Chybovou hlášku si neumíš přeložit? Dyť to tam máš napsaný! Nebo pro koho myslíš, že tam je? a končí bóóóže

namísto stručné relevantní rady, tak se mu vůbec nedivím. Osobně bych mu poradil vykašlat se na programování bootloaderu přes arduino a vůbec na bootloader a nahrávat přeložené skeče přes USBasp.

Uživatelský avatar
Jurik-EB
Příspěvky: 206
Registrován: 02 říj 2009, 02:00
Bydliště: Rožnov pod Rad.

#12 Příspěvek od Jurik-EB »

Ignoruji citové výlevy pánů co si zde honí svá ega a vycházím vstříc tazateli který si neví rady se zavedením bootloaderu do externího ATmega328P jelikož mu to při kompilaci vyhazuje chyby.
Takže příteli, ne každý kdo do IDE nahraje ArduinoISP si tuto skicu řádně prostuduje. A věř že je to nutné protože se z ní dozvíš že jsou tam dvojí definice. Jedna která nasměruje aktivitu na HW ISP (kterou nepotřebujeme) a druhá (ta naše potřebná) která vede přez Arduino a vytváří tak Arduino as ISP.
Takže co je potřeba udělat abychom docílili přenosu bootloaderu do externího ATmega328P?
Sami Arduináři to jasně uvádějí ve svých příspěvcích a já to tu také rozvinu.

1. Zapojit LED diody s odpory 220Ω na piny 7;8;9
2. Ve skice odkomentovat (smazat //) u:
#define USE_OLD_STYLE_WIRING
3. Zkontrolovat zda je udána definice:
#define BAUDRATE 19200
Dále kontrola v nastavení v IDE:
Nástroje -> vývojová deska -> Arduino Uno
Nástroje -> Port -> u mne COM4

Takto nastavenou skicu spustit (měla by se do Arduina nahrát bez chyby)

A nyní jedna lišárna, mezi zem a RES Arduina zasunout 20µF kondenzátor (je nutný a pozor na polaritu)
Nyní si nastavíme:
Nástroje -> Programátor -> Arduino as ISP
Nástroje -> Vypálit zavaděč

Na mojem Arduino IDE 1.6.11 to funguje dobře.
Pokud máš nějaké *.eep a *.hex soubory a chtěl bys je takříkajíc vypálit do ATmegaXXX nebo Jiné IO pak je dobré si stáhnout AVRDUDESS 2.4 a pomocí něho nahrát (vypálit) tyto soubory přes Arduino ISP do AT.

Já jsem si například nahrál Do ATmega238P program pro ESR v posledním vydání a šlo to jak po másle.
Případné dotazy piš na můj imail.

Uživatelský avatar
miravorlik
Příspěvky: 14
Registrován: 26 zář 2013, 02:00

#13 Příspěvek od miravorlik »

Zdravím všechny, už půl dne brouzdám návody na vypálení bootloaderu do SMD 328p a to s vnitřním oscilátorem 8MHz. Z oficialních stránek jsem stahnul pro tento případ board ale stále bezúspěšné nahrání. Má někdo zaručený funkční postup ? Stále hlášení:

avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.

A ano zkoušel jsem vše co v tomto příspěvku zaznělo. A i jinde co jsem našel.
Děkuji za jakoukoli pomoc.

Uživatelský avatar
Jurik-EB
Příspěvky: 206
Registrován: 02 říj 2009, 02:00
Bydliště: Rožnov pod Rad.

#14 Příspěvek od Jurik-EB »

Piš mi na email, povedu tě.

Uživatelský avatar
mluno
Příspěvky: 227
Registrován: 18 dub 2011, 02:00
Bydliště: Benešov (u Prahy)

#15 Příspěvek od mluno »

miravorlik píše:Má někdo zaručený funkční postup...
Já mám vyzkoušený ponny prog ( http://www.lancos.com/prog.html ). Je k tomu potřeba PC s paralelním portem a pokud má windows 7 nebo novější (w9x, XP, Vista, linuxy jsou v pohodě) jsou tam potřeba nějaké další věci, ale i to už je vyřešené, jen je potřeba hledat. Dále nějaký oddělovač (např 74LS244 ale 7404 nebo cokoliv jiného půjde taky), přímo z portu mi to nikdy spolehlivě nefungovalo, i když to lze taky tak zapojit, kontaktní pole a pár drátů (na jednorázové použití nemá cenu si stavět programátor natrvalo, jinak se spolehlivě vejde do pouzdra konektoru paralelního portu). Hardwarově to zapojit dá trochu práci, musí se vyjít ze schémat, které jsou na stránkách ponny prog a podle schématu arduina to správně propojit (tj. GND, mosi, miso, sck, reset, případně napájení, pokud nebude vnější). Doporučuju proti původnímu plánu dát si červenou ledku která bude svítit, když je reset v nule (pozná se tak, že program s tím hw vůbec komunikuje), využije se tak jedno hradlo, které by zůstalo při dodržení původního schématu nevyužité a velmi to usnadní zprovoznění i používání (pro finální verzi ještě zelenou indikující napájení).
Nakonec rozchodit, což může být brnkačka (většinou to funguje napoprvé nebo po krátkém nakonfigurování ponny prog), ale nemusí (kromě problémů typu windows7 jsou ještě problémy s tím, že jsou paralelní porty dnes na jiných adresách a je potřeba je programu prozradit - postup je popsaný ve faq) a pak je to detektivní práce.
Chybnou signaturu lze nechat ignorovat i v avrdude, pokud člověk ví co dělá, tedy pokud to není z vadného zapojení, ale je to třeba novější součástkou. (Než autor pp přidal podporu mega1284 programoval jsem ho jako mega128 pojistky pak jako mega644 s tím žen jsem právě invalid signature nechal ignorovat, předtím jsem ale důkladně pročetl datasheety, abych zjistil, že se to programuje stejně).

Že to funguje i na arduino jsem zkoušel, přecejenom než jsem se v něm začal vrtat, zazálohoval jsem si jeho stávající obsah (jinak je bootloader někde v útrobách adresáře kde je arduino IDE i se zdrojáky, ale to jsem tehdy ještě nevěděl). Ještě mě napadá taková jedna věc, nevím jestli nebylo potřeba přeložený samotný bootloader nějak posouvat na správnou adresu, jestli to nechtěl ponny prog vypalovat od adresy 0, což je špatně, protože tam patří program. Kdyby byly nějaké problémy, mám schované soubory s původním obsahem arduino uno a možná i mega (i když u toho jsem to asi nedělal, tím že jsem jich koupil víc, předpokládal jsem, že bootloader nezničim ve všech najednou). Já začínal samotnými mikrokontroléry avr, tedy jsem je musel umět naprogramovat; k arduinu a jeho IDE jsem se dostal až posléze a pořád jsem se s ním moc nesžil, přecejenom jsem rozmazlený jinými vývojovými nástroji, které poskytují daleko větší oporu (pokud jde o avr třeba AVRstudio než se z něj stal nepoužitelný bloatware, takže používám maximálně verzi 5). To se ví, že začínat dneska, jdu rovnou do arduina, za cenu mega328 je hotový celý jeho klon adruino uno. Ale v dobách kdy jsem s avr začínal byly ceny jiné, to se teprve začínalo lámat.

Odpovědět

Zpět na „Miniaturní počítače (Arduino, Raspberry a další)“