ATmega8-16

Naprogramování pomocí Arduina naprosto jednoduchou ATmegu8-16

- seženete v každém elektro obchodě za cca 50Kč

 

Proč?

No, protože ATmega328P, co používá arduino duemilanove, váš přijde cca na 200Kč a to je co si budeme povídat celkem drahá sranda.

proto jsem hledal a našel že jde naprogramovat i ATmega8, ale zde se to začíná komplikovat, jelikož ATmega328P má bootloader, kdežto ATmega8-16 ne.

Ale to není žádný problém.

Zde je postup:

1. Pokud máte stažené IDE programovací prostředí novější verzi (já mám 0021 – v 0017 to není)  tak si otevřete: File/examples/ArduinoISP, a to nahrajete do PŮVODNÍ ATmegy328P (je to pouhý program a kdykoliv se dá zase změnit takže si ji tím neznehodnotíte).

2. ATmegu328P ponechte ve slotu na arduinu, a připojte mojí nástavbovou desku (ta deska není pravděpodobně příliš vhodná pro leptání a bylo by lepší ji udělat spíše na gravírce, kvůli levé části, kde se dá vypálit bootloader a nahrát programovat do SMD verze ATmegy8-16 ale teoreticky to tam vůbec nemusíte mít zapojené stačí vám jen ten velký nalevo v klasickém pouzdře DIL28.

v případě naprosté nouze si můžete takto složit na nepájivém poli ale nedoporučuji to, jelikož hrozí neúplné doléhání drátků atd…

plošný spoj v PDF: spoj nástavba – ATmega8.pdf

osazení: Osazení.pdf

 

3. Nyní přijde nahrání bootloaderu. klikněte na Tools a zvolte možnost Board a zde nastavte Arduino NQ or older w/ATmega8 (nebo nějak podobně – musí tam být ATmega8)

4. A nyní už stačí pouze dát Tools/Burn Bootloader a tam zvolit w/Arduino as ATmega8 

nyní se vám rozblikají indykačníled RX a TX a také informační LED na pinu 13. V IDE vám píše že vypaluje bootloader. Mějte strpení trvá to celkem dlouho cca 30 vteřin.

5. vyjměte ATmegu8-16 z nástavbové desky (popřípadě nepájivého pole) a dejte jí místo ATmegy328P do slotu na arduinu. v tools musíte ponechat nastevený Board jako Arduino NQ or older w/ATmega8 a poté můžete zcela bez problémů naprosto jednoduše nahrát program do vaší nové ATmegy8 s bootloaderem pro arduino

 

zdroje: obrázek zapojení na nepájivém poli je z oficiálních stránek arduino.cc

 

AKTUALIZACE:

Myslím že není co dodat. Konečně jsme přišel na to, proč má ATmega8-16 10 vteřinový boot a byl následně opraven.

Zde je video s návodem a soubor s novým bootloaderem je ZDE

 

 

Zde je Video s Tutoriálem:


 

Všem díky moc za věrnost ;)

39 odpovědi to “ATmega8-16”

  • Michal:

    Zdravím, vše jsem si zapojil na nepájivém poli ale ať dělam co dělám nefunguje mi to. Když Tools/Burn Bootloader a tam zvolit w/Arduino as ISP. Vypíše mi to chybu:

    avrdude: avrdude: stk500_getsync(): not in sync: resp=0×15

    Pravděpodobně to bude chyba v synchronizaci. Nemám totiž k atmeze na nepjivém poli připojen oscilátor a kondenzátory. Šlo by to nějak udělat bez toho krystalu? Díky za odpověď.

    • Radek Buš:

      Ahoj Michale!
      Jsme rád že zde vidím dalšího nadšence :-) již jste 3 se kterými osobně píšu… rád pokecám na skypu. :-)
      Ale teď k tvému dotazu… Oscilátor neboli krystal a kondenzátory 2x 22p vůči zemi tam na 100% musíš mít! Stejně jako napájení. (pokud by jsi začal vypalovat bootloader při nezapojeném napájení pravděpodobně by jsi odpravil do křemíkového nebe ATmegu8) Obejít to nijak nejde… ten čip totiž musí taktovat, aby mohl provádět nějaké operace. :-) Děkuji za dotaz.
      Budu se těšit na další komentáře popřípadě kontaktování na skypu: busak007.psp
      Rád pomohu se vším co jen bude v mé síle :-)

      • Michal:

        Ahoj, moc díky za odpověď. Napájení jsem měl připojené jen jesem neměl po ruce ty kondenzátory a krystal ale už sem si to pořídil tak hned vyzkouším.

        • Radek Buš:

          OK, pak nezapomeň dát vědět jak jsi dopadl :-)

          • Michal:

            Tak nejspíš jsem tu amtegu oddělal protože ani s kondenzátorama a krystelem to nefunguje. Asi nejde nějak zjistit že je ta atmega mrtvá že?

          • No nenapadá mě žádný způsob jak to zjistit… možná že dát na 13.pin (v arduino-schematu) to znamená skutečný pin 19 připojit ledku vůči GND a sledovat zda problikne při připojení napájení nebo ne… a pokud to při bootku vyhazuje chyby tak pravděpodobně někde něco špatně doléhá (předpokládám že to děláš na nepájivém poli) Vše ještě jednou překontroluj :)

          • Michal:

            Tak problém ankonec vyřešen. POkud Vám to bude psát stejnou chybu jako mě stačí mezi reset a +5V připojit odpor 120 ohm viz. http://www.arduino.cc/playground/Code/MegaISP http://www.arduino.cc/playground/Main/DisablingAutoResetOnSerialConnection

            Ted jdu vyzkoušet nahrání programu do atmegy. abych to tam mohl nahrát tak musím propojit RX a tX že?

          • pro nahrání programu doporučuji ponechat piny 13 12 11 propojené a připojit ještě RX a TX a propojit RESET pin arduina s RESET čipu (u pouzdra DIL je to hned 1. pin). napájení +5V a GND je samozřejmostí :-)

          • Nikki,A great little erojpct and well done encouraging others to build their own DIY duinos.Your stripboard layout could benefit from keeping the wiring to the crystal as short as possible.Insert the crystal as close to pins 9 and 10 as possible, straddling the two tracks, and then fit the caps so that they connect directly across to pin 8 which is 0V.Another tip is to link across between pins 8 and 22, which are both ground. This can be done under the socket, or on the underside of the board.It’s also good practice to fit 100nF decoupling capacitors as close to the power pins as possible i.e. between pin 7 and 8, and possibly between Avref and GND pins 21 and 22.Link AVcc to Vcc with a short link.The 28pin ATmega has an excellent pin-out ideal for short and sensible wiring, so best to make the most of it.Another good feature would be to add the 6 pin header for a FTDI serial cable. That way you can program and power the barebones over the FTDI cable. A worthwhile investment on any micro design.I’m writing a simple serial command interpreter for the Arduino, as a reusable framework for several design ideas.It allows you to use simple commands like s120, which are typed into a terminal emulator and via the serial link would move a servo to 120 degrees, but any letter and number combination can be decoded to perform a certain action in the code.I’m extending the format to allow for more flexability eg. s1,120 would move servo 1 to 120 degrees.The serial commands are an ideal way of getting numerical data into the Arduino such as programming the correct time into a real time clock application.It also allows a master Arduino to control slave Arduinos, just by linking their serial ports.

    • Hi Ken, thanks for your input.The trpisboard circuit shown is my first attempt, after I had to learn from scratch and *fast*! Loads of room for improvement, I’m sure, so thanks for the top tips.I’ve got some 100nF capacitors for the kits. Someone had suggested putting one near the voltage regulator (I’m not sure where exactly without excavating some notes) and also a resistor after the supply to protect the chip. Would this capacitor be doing the same job as the ones you suggested? Also, any thoughts about the resistor?Sorry it’s all a bit vague I’ll do a layout diagram to make it clearer what I mean!There are several different programmers being used in the group, so I decided to keep things simple and let folks sort themselves out with whatever headers they need! There’s some conversation about this going on at the discussion group Your command interpreter sounds interesting hope to find out more about it in the future!

  • Jarda:

    Dobrý den
    Mám arduino z ebaye a je v něm čip atmega 168-20PU půjde s tím naprogramovat čistou atmegu? Můj odhad je že ano, ale je to jen odhad :-) . Dále kterou atmegu si mám koupit – je jich totiž mnoho a nejsem si uplně jist která z řady 8-16 (následuje různá kombinace písmen) je vhodná pro naprogramování dle vašeho tutoriálu. Pokud by se mi podařilo naprogramovat čip ve stejném pouzdře jako je ten originál, mohu ho vložit do patice originelní desky a chovat se k němu jako k originálu i s vývojovým prostředím? Dik za odpovědi.

    • Ano přesně jak píšeš ;) mělo by to s ní jít programovat dále ;) ale nemohu to potvrdit na 100% :) jinak atmega8-16 je tip a ty písmena za ní třeba AU je tip pouzdra .. toto je zrovna SMD tuším, že by tma mělo být PU ale nejsme si uplně jist :) a ano jde poté použít do vývojové desky arduino :) Díky za dotaz :)

  • Jarda:

    Taky díky, začínám a chtěl bych použít hlavně čip k ovládání různých přístrojů a desku si nechat jen pro přehrání programů a vývoj. Samozřejmě by tam musel být ten krystal a kondenzátory ale chodit by to předpokládám mělo. Zlevnilo by tak možné praktické využití arduina.

  • Tomáš:

    Dobrý den,
    chtěl jsem se zeptat, jestli vývojová deska s ATmega328P umí nahrát bootloader do čistý ATmega328P podle tvého tutorialu.

    • Ahoj Tomáši, klidně si tykejme :D
      Podle mých informací by to mělo být možné a teď si vlastně vzpomínám že jsme takto oživovali jednu mojí atmegu, takže to možné je jen je potřeba pochopitelně přeměnit ATmega8 na například ArduinoUNO popřípadě Arduino Duemilanove :)
      Rád jsem pomohl.
      S pozdravem Radek Buš

      • Tomáš:

        Dík moc za odpověď,zkusím a uvidím jestli se povede :-)

        • nemáš za co :) určitě potom dej vědět :)

          • Tomáš:

            šlo to v pohodě :-)

          • No tak vidíš :)
            díky za dobré reference! :)
            PS.: sleduj můj web tvoří se tu něco jako eshop za luxusní ceny o kterých se ti ani nezdálo. Sortiment klasické součástky: odpory, kondenzátory (pouze výběr hodnot pro začátek), nějaký plošňáky k arduinu, Ultrazvuk, a spousta dalšího. :) tak sleduj :)
            S pozdravem admin Radek Buš :)

          • Tomáš:

            Ahoj,řeším teď jeden problém a nemůžu na to přijít,zkouším nahrát bootlader do smd atmega328 a
            píše mi to hlášku avrdude: stk500_getsync(): not in sync: resp=0×15
            dal jsem teda mezi reset a 5v 120 ohm a pak vyskočí tahle hláška :-(
            avrdude: Yikes! Invalid device signature.
            Double check connections and try again, or use -F to override
            this check.
            Nevíš co by mohlo být špatně?

          • Ahoj
            píše ti to něco ve smyslu, že to má příznaky invalidní (pokažené) atmegy a máš 2x zkontrolovat ono zapojení. Toto to většinou píše když někde špatně doléhají drátky/kontakty :) neztrácej hlavu a zkoušej znovu a znovu. PS.: musíš mít připojený krystal a také napájení které máš vyfiltrované nějakým kondíkem plácnu 100nF. Pokud by jsi zkusil nahrát boot do atmegy ke které by jsi neměl připojené napájení tak si ji na 99% odpálíš tak pozor na to :)

          • Tomáš:

            Tak do toho smdéčka ten bootloader nemůžu dostat, vše mám správně zapojený a stejně nic,už nevím:-(

          • Tak to je mi vážně divné :( Je to možná banalita a nechcu tě zhazovat :D ale určitě máš správně připojené piny? atmega v SMD má tuším 3x Vcc a 3x GND a nejsu si jist ale všecky jsem měl propojené + piny jsou pochopitelně jinak než u DIL pouzdra :) ale to určitě víš. Hele přidej si mě na Skypu (busak007.psp) pořešíme to tam :) merknu po googlu a zkusím něco najít a rád budu mít v kontaktech dalšího člověka co se zajímá o elektro a programování :)

          • Tomáš:

            Jo to všecko právě mám a proto mi to nejde do hlavy,pořád mi to píše ty hlášky.

          • doopravdy divné.. ale to se určitě nějak objasní ;) přidej si mě na tom skypu ať to tu nespamujeme moc :) Díky.. :)

          • Teď jsem si vlastně uvědomil, že mám Arduino NANO na kterém je atmega328 a zavaděč má což znamená že to nějak musí jít :D a v tom programingu dávám Arduino Duemilanove/arduino NANO tak dávej to a nearduino UNO :) vyzkoušej a dej vědět ;)

  • Tomáš Stránský:

    Ahoj .. hale prosimtě jakej odpor tam mam dát ?.. teoreticky by to šlo i na přímo těch 5 voltů ne ?.. ale chci to nějak omezit , ale ne zas tak že by ATmega byla nestabilní

  • Martin:

    Ahoj, chcem sa spytat aky je vlastne rozdiel kupit atmega s bootloaderom a bez neho ?
    Co to vlastne je ? Ospravedlnujem sa som v tom zaciatocnik. Kupil som si Usb programator(prevodnik) a knihy
    Programovanie v C a Pascale a chcem to skusit. Vdaka

  • Petr:

    Ahoj, super návod ale pořád se mi nedaří. Arduino mi píše:
    avrdude: Yikes! Invalid device signature.
    Double check connections and try again, or use -F to override
    this check.
    Propoje jsem zkontroloval a vše ok. Používám Atmega8-16PU, ale teď koukám že mám 12MHz oscilátor mohlo by to být tím?

  • Jirka:

    Ahoj, teď si hraju s ATMegama, co mi přišli z eaby a vše funguje, je to paráda (sice jsem musel chvilku laborovat, protože kód nešel nahrát ale stačí hodit reset na GND, dát upload a vytrhnout ten resert z GND a už to jde :D ).
    Takže chci poděkovat za super návod, moc to pomohlo, nicméně jsem nebyl schopný odstranit ten boot-time :/ I s tvým hex kódem, který jsem nahrál do složky bootloaders/atmega8/“ATmegaBOOT.hex“ (tvůj soubor jsem přejmenoval na ten originální – doufám, že to dělám správně) a při vypálení bootloaderu a nahráním blinku pořád doba zůstává někde kolem 8-10 vteřin při bootu :(
    Máte nějaké nápady? Kdokoliv? Ještě se pokusím znovu podívat na video a upravit vše podle videa – kdyby to vyšlo dám vědět – ale nemyslím si, že tam je chyba. Uvidíme :)
    Ještě bych rád odpověděl i Martinovi z předpoledního příspěvku – Co to je bootloader:
    Vše, co je v odpovědi je pravda ale podle mě nejdůležitější vlastnost je změna komunikace, kdy se nevyužívá MISO, MOSI, SCK a RESET (+ napájení) ale vystačíme si s TX a RX komunikací. USB-asp nebo USB-isp programátory už jsou cenově celkem přístupné ale pořád je rozdíl zaplatit 100 za USB-asp/isp a nebo 40 kč za USB-ttl převodník :) Jinak řečeno, díky bootloaderu ušetřím na desce vyvedení programovacích pinů a vystačím si jen s TX a RX + ušetřím peníze za převodník :)
    Děkuji za reakce :)

    • Jirka:

      Tak nic, už jsem na to přišel, v novém prostředí jsou dva HEX soubory, přepsal jsem ten druhý a už to šlape s cca 2 vteřinovým bootem :)
      Díky za super návody, už se těším na další projekty :)

  • Jirka:

    Ahoj, chtěl bych se zeptat, budeš se někdy zabývat i programováním ATMegy16? Mám dvě na stole, do obou jsem v bez problému nahrál bootloader (trošku jsem si musel upravit boards.txt) ale komunikovat pomocí TX, RX a RESET + napájení vůbec nechce :/ I když mám jek Arduino kit bez procesoru, pochopitelně :) Nějaké nápady?
    Děkuji :)

  • Sharkus:

    Jen mala poznamka. On ten krystal pro samotne naprogramovani noveho procaku ve skutecnosti ubec nutny neni. z vyroby jsou procaky nastavene na vnitrni RC oscilator a tak ho stejne nepouzijou

Leave a Reply for Vince