AtMega 328P-PU Arduino bootloader
Moderátor: Moderátoři
AtMega 328P-PU Arduino bootloader
potřeboval bych si vyrobit pár čipů s Arduino bootloaderem jenže:
1) NEMÁM VŮBEC ŽÁDNÉ ZKUŠENOSTI s "napalováním" uP
2) Jsem vůl, protože jsem místo 328-PU koupil 328P-PU a jak tak procházím internetem, nacházím zprávy že jsou s tím problémy.
Vypalovat bych chtěl nástrojem v IDE.
Koupil jsem tento programátor se kterým by to mělo jít. Mimo to mám ještě desku UNO R3. Redukci 10p -> 6p si vyrobím.
S angličtinou nemám větší problémy, ale jelikož je to pro mě velká neznámá, chtěl bych nějaký odkaz nebo nakopnutí v češtině, protože vidina několika zničených procesorů po 80,-Kč je dost deprimující.
Je tady někdo znalý problematiky ochotný mě za ručičku provést celým procesem?
Vypalovat bych chtěl nástrojem v IDE
Jelikož tvůj programátor je klon USBasp, programuj nejlépe programem AVRDude + GUI. Žádná záludnost v tom není.
Tady je odkaz na AVRDude v5.11, pak grafické rozhraní pro něj. A nakonec driver pro programátor. Todle mě funguje ve Win7 x64.
Po naisntalování připojíš programátor k procesoru, spustíš AVRDude-GUI.exe. Nastavíš typ programátoru na USBasp, port na USB. Pak vybereš správný typ procesoru, v řádce Flash vybereš hex soubor který chceš do procesoru nahrát. A nakonec stiskneš tlačítko Erase-Write-Verify.
Případně že Audrino potřebuje nastavené Fuse bity jinak než je default, tak je vyplníš v řádcích Fuse a tlačítkem Write zapíšeš.
.hex nemám, teoreticky ho nepotřebuji a nastavování pojistek v nějakém avrdude se chci vyhnout, protože napoprvé bych zničil procesorů za několik stovek, než by se to povedlo.
Jak už jsem psal, nemám žádné zkušenosti! Nevím jaký je rozdíl mezi USBasp a USBisp programátorem, nevím co znamenají jednotlivé pojistky.
Vědět to pro tento případ ani nepotřebuji, IDE by mělo udělat většinu věcí za mě.
ALe než se do toho pustím, chtěl bych víc informací od někoho zkušenějšího.
Nejprve nainstaluj driver pro programátor (já používám ten v odkazu jak jsem psal, s tím co se instaluje volitelně s Arduino IDE mě programátor nefungoval). AVRdude se nainstaluje spolu s Arduino IDE. V záložce Tools vyber typ programátoru. V tomto případě USBasp. Důležité je v záložce Tools vybrat správný typ Arduino desky. Program podle toho totiž vybere správný hex bootloaderu a nastaví i fuse bity. Potom už jenom stačí z menu Tools zvolit Burn Bootloader. Program sám spustí AVRdude s příslušnými parametry, ověří signaturu procesoru a zapíše hex soubor.
Nemusíš se bát, ani při chybném naprogramování se procesor nezničí a vše je opakovatelné.
Celé se to dá udělat i ručně, zdrojové kódy i hex od bootloaderu jsou v adresáři <program files>\Arduino\hardware\arduino\bootloaders
Nastavení typu procesoru a fuse bitů pro každou desku je uloženo v textovém souboru <program files>\Arduino\hardware\arduino\boards.txt
2/ Důležité je, aby jsi při programování "prázdného" chipu splnil podmínky pro ISP programování (správné napájení, připojení vývodů RESET, MOSI, MISO, SCK,+V,GND)
3/ Neznám tvůj programátor, já na tvém místě bych nejprve zkusil získat nějakou zručnost s mazáním, se zápisem a čtením flash a se zápisem a čtením fuse bitů. (fuse bity opatrně!)
4/ Vypálení bootloaderu spočívá v tom, že zapíšeš přiložený .hex do flash a následně nastavíš správně fuse bity. Flash najdeš zde:
(E:\programs\arduino-1.0.4\hardware\arduino\bootloaders\atmega\ATmegaBOOT_168_atmega328.hex)
Pojistky by měly být tyto:
atmega328_isp: HFUSE = DA
atmega328_isp: LFUSE = FF
atmega328_isp: EFUSE = 05
5/ Jakmile je bootloader v chipu, tak se chip po restartu snaží "spojit" s IDE Arduino. Nezapomeň, že pokud připojíš jiný krystal než 16MHz, nebude tento bootloader fungovat (bude komunikovat jinou rychlostí).
Odkazy:
http://forum.arduino.cc
http://www.engbedded.com/fusecalc/
www.google.cz/search?q=how+to+burn+arduino+bootloader
edit1/
Anebo pro začátek koupit jeden Arduino board již kompletní a pomocí něj vypalovat chipy dle návodu např. zde:
http://learn.adafruit.com/arduino-tips- ... arduinoisp
tomuhle jsem se právě chtěl vyhnout protože se tam dá nasekat spousta chyb. Desku samozřejmě mám, ale chtěl jsem si vyrobit čipy do konstrukcí, protože používat celé desky by bylo dost neekonomické.
Mimochodem ČR vs. DX (nahoře si přepněte na CZK) docela rozdíl ne?