Tesszük ISP-programozó Arduino
Azt hiszem, ez nem titok, hogy az eredeti program mikrokontroller van töltve egy speciális eszköz - a programozó. Természetesen arduinschikam általában nem kell aggódnia, hogy - van egy bootloader (bootloader), pre-varrt a mikrokontroller firmware és tart az UART keresztül COM-porton vagy USB-n keresztül. De ahhoz, hogy villog a bootloader vagy más firmware egy „tiszta” MC programozó van szükség.
De ebben a cikkben nem vesszük figyelembe az összeszerelési és forrasztási a programozás az alapoktól kezdve és használja a lehetőségeket az Arduino. Az a tény, hogy a legtöbb Arduino táblák változat Uno rendelkezik FT232RL chip vállalat FTDI.

Ez a chip egy átalakító UART-> USB, amely lehetővé teszi az operációs rendszer virtuális COM-port működő USB-n keresztül. De ebben az esetben szükségünk van egy másik lehetőség is - ellenőrzése az egyes terminálok chip, a továbbiakban a mód bit-bang, amely lehetővé teszi, hogy „lezárja” tetszőleges protokoll USB. A kihívás abban áll, hogy kapcsolja be az USB flash MK protokoll.
Microcontrollers AVR, használt Arduino, varrott a számunkra ismerős keresztül SPI protokoll áramköri programozási csatlakozó - ISP (I n-R endszer P ROGRAMOZÁS). Ő az úgynevezett, mert lehetővé teszi a flash MK egyenesen a végső eszköz. Itt látható a csatlakozó az alaplapon CraftDuino:

MISO MOSI, SCK, RESET - ez mind az SPI busz vonal, de ahelyett, SS - RESET.
De még mindig az elérni kívánt eredmények FT232RL, amelyen keresztül villogni fog, és Arduino fejlesztők gondoskodott róla, hogy a csatlakozó X3 (X-három):

Ha az alaplap csak párna X3, meg kell forrasztani egy darab PLS-fésű is.
Ez a csatlakozó csapok az alábbi funkciókat ISP-programozó:- 1 (CTS) - MISO
- 2 (DSR) - SCK
- 3 (DCD) - MOSI
- 4 (RI) - RESET

- 1 (CD) - MOSI
- 6 (DSR) - SCK
- 8 (CTS) - MISO
- 9 (RI) - RESET

Az egyik végét a kábel - csatlakozók Arduino X3 / CraftDuino UART, és az ellátási:

És a másik végén - a standard ISP csatlakozó:

Ha fut a Linux, akkor meg kell tenni néhány lépés (FTDI szeret minket):
- Ölj vezető ftdi_sio. amely megakadályozza avrdude nyitott COM-port FTDI:
Ha azt szeretnénk, akkor adja meg a kernel modul feketelistára, miután hangolni /etc/modprobe.d/blacklist.conf:
Csak tartsd észben, hogy annak érdekében, hogy működjön együtt a virtuális port / dev / ttyUSB0 stb (Need Arduino IDE), ez a modul is futnia kell. Ezt meg lehet tenni a parancsUSB Vendor ID és a termékazonosító lehet tisztázni hűség lsusb parancsot. ha Arduino csatlakozik a számítógéphez:
Akkor kell létrehozni FTDI-felhasználói csoport és hozzá magát, hogy:
akkor meg kell kijelentkezni.
A cikket a programozási AVR C elvtárs noonv már leírt. hogyan kell használni avrdude. Fogom leírni csak töltse ki a rakodó a Arduino Diecimila a ATmega168:
- Állítsa szükséges gyors EEPROM rakodó biztosítós bit kvarc> 8 MHz, az osztó 8 beépített ki:
- Töltsük meg a rakodó:
De a konzol nem mindig jobb Gui, különösen beállítására biztosíték bit, és vannak sokkal kényelmesebb és megbízhatóbb módon - a program használatát SinaProg által kifejlesztett iráni programozók. Az oldalon van rég halott, de a program él és jól van a mai napig. A konfigurációs részletesen írt Di HALT'a, nos, akkor nem vesztegeti az idejét, és hogy a kész szabott összeállítás foltozott avrdude (összeszerelés Di HALT'a hiba az egyik konfigurációs fájlok). Version Linux alatt, sajnos, nem létezik.

A Hex filejaban választjuk hex-fájlt szeretné kitölteni, vagy olvasni. Olvasása és írása lehet, mint a program memória (Flash), és nem illó (EEPROM). Az eszköz részben meg kell adnia egy bizonyos MC, a programozó szakasz - programozó (mi ez ftbb) port (FTDI0) és a port sebességét (9600).
Nos, mit érdemes használni ezt a programot - szakasz Biztosítékok. A legördülő listából válassza ki az előre definiált konfigurációs biztosíték beállított bitek a Fuse.txt. De a legfontosabb, hogy megnyitja a szemünket, ha megnyomja a Speciális gombra:

Itt nyomkodjuk biztosítós bájt kézzel, vagy nyomja meg a «C» gomb mellett a bájtérték és tegye Fyuz dugta kullancsok leírással. Ahhoz, hogy töltse ki a rakodó, első kattintással mellett Read gombra. olvasni az aktuális értéket biztosító, majd állítsa be az alacsony biztosítékot. frekvencia kvarc - több mint 8 MHz, a kezdési időpont MK - 65 ms, a térelválasztó 8 off:

Beállítása után megnyomjuk írása gombot, és várja meg a feliratot «Writing Biztosítók ... OK».
Most már a fő ablakban a Hex fájl részben kiválaszthatja ATmegaBOOT_168_diecimila.hex rakodó fájlt a Flash részben nyomja meg a Program gombot. Ha a folyamat az hibát okoz, akkor az állapotjelző sávon van egy „>” gombot, amely megnyitja az oldalán a napló avrdude munka ablakot.
És nézzük proshom más MC - például ATtiny13.

Tedd MK maketku, csatlakozhat hozzá minden ISP csatlakozó vonal a bit-bumm-programozó, pótkocsik LED keresztül 500 ohm ellenállást a harmadik láb (DB4) RESET és felhúzó ellenállás 10 ohm:


Készíts egy hex-fájl firmware:
Perevtykaem Arduino egy USB és nézni a villogó LED a feltétellel, hogy nincs kapcsolat a hibákat (:
Ez így van, egyszerű manipulációk kéz és agy, akkor tedd magad egy USB ISP-programozó, úgyhogy nem kell fürödni a hiánya LPT a modern számítógépek és a COM-port szinte bármilyen laptop - ez USB, vagyis mindenhol.