Az ATmega328 egy egycsipes mikrovezérlő, amelyet az Atmel állít elő és a megaAVR sorozat tagja. A 8 bites Atmel AVR processzoron alapul, amelyet flashmemória és különböző perifériák egészítenek ki. A vezérlők programozás után akár önmagukban is működőképesek, tápfeszültség és órajelütemező kvarckristály segítségével.[1]
A frissen vásárolt csipek általában nem tartalmaznak bootloader-t vagyis rendszerbetöltő programot, ezt az első használat előtt nekünk kell beleégetni. Ezzel a témával kapcsolatban rengeteg, főleg angol nyelvű leírást lehet találni, az alábbiakban összegyűjtöttem néhányat:
https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard
http://www.instructables.com/id/Burning-the-Bootloader-on-ATMega328-using-Arduino-/
http://www.instructables.com/id/burning-atmega328-pu-and-atmega328p-pu-bootloader/step2/The-software/
Én ez a videó alapján dolgoztam, a bekötést és a bootloader égetés folyamatát részletesen leírja. A bootloader arduino kifejezésre keresve a youtube-on az első találat.
Mielőtt hozzákezdenénk, vessünk egy pillantást az ATmega328 lábkiosztására.
http://jobs.arduinoexperts.com/wp-content/uploads/2013/03/atmega328w.png
Összekötés
Működés közbeni összeköttetések az ATmega328 csipen belül
Bootloader égetése, és a felprogramozás közben alkalmazott összeköttetések
ATmega328 Arduino 1 → 10 17 → 11 18 → 12 19 → 13
1. Miután megvagyunk az összeköttetéssel USB porton keresztül csatlakoztatjuk az Arduino-t a számítógéphez, elindítjuk az Arduino szoftvert (https://www.arduino.cc/en/Main/Software).
2. Ami a videóból kimaradt, megnyitjuk az ArduinoISP programot, majd feltöltjük az Arduino modulra. File→Examples→ArduinoISP
3. Arduino-t programozó módba állítjuk
Tools→Programmer→Arduino as ISP
4. Majd beégetjük a bootloadert
Tools→Burn bootloader
Ez néhány mp alatt megvan, ha a TX és RX ledek az Arduino-n vadul villognak, akkor mindent jól csináltunk. Ezután egy próbaprogramot töltünk fel File→Examples→01.Basic→Blink. A program megnyitása után nyomva tartjuk a shift billentyűt, majd az Upload nyílra kattintunk, ami ebben az esetben Upload Using Programmer-re változik. Ha ezt nem tesszük meg a program az Arduino-ra fog feltöltődni és nem a programozni kívánt csipre. Persze ki is cserélhetjük a csipet ahogy a srác a videóban csinálta, de így szerintem egyszerűbb.
Az ATmega328 csip 19 lábára, ami most az Arduino 13 digitális kimenetének felel meg rákötünk egy LED-et (220Ω ellenállások keresztül), ha ez villog akkor jók vagyunk.
2018-08-25
Egy kis kiegészítés a cikkhez, a minap belefutottam egy hibaüzenetbe bootloader égetés közben: Expected signature for ATmega328P is 1E 95 0F
Mindig ATMEGA 328P-PU csipet használtam, amikor kifogyott a készlet újrarendeltem és ATMEGA 328-PU-t kaptam, amibe nem tudtam beégetni a bootloader-t. Felszínesen utánaolvastam a neten, és arra jutottam, hogy nagyon hasonlóak, amire én használom a különbség nem érzékelhető, szerencsére megoldást is találtam a problémára így nem kellett visszaküldenem sem a mikrovezérlőket.
Arduino/hardware/arduino/avr könyvtárban a boards.txt file-t kell átírni úgy hogy a benne szereplő összes ATMEGA328P jelölésből kitöröljük a P-t (kis p-t is) elmentjük majd a bootloader égetés sikeres lesz. Természetesen korábban csináltunk egy mentést a boards.txt file-ról, amivel visszaállítjuk az eredeti formájába.
Felhasznált irodalom
[1] https://hu.wikipedia.org/wiki/ATmega328
https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard
http://www.instructables.com/id/Burning-the-Bootloader-on-ATMega328-using-Arduino-/
http://www.instructables.com/id/burning-atmega328-pu-and-atmega328p-pu-bootloader/step2/The-software/
Error thrown
Call to undefined function profitmag_categorized_blog()