Cred că nu este un secret faptul că programul original în microcontroler este umplut cu un dispozitiv special - programator. Desigur, arduinschikam de obicei, nu trebuie să vă faceți griji cu privire la faptul că - ei au un bootloader (bootloader), pre-capsate la firmware-ul microcontroler și este nevoie de pe UART prin COM-port sau prin USB. Dar, în scopul de a lumineze intermitent bootloader sau alt firmware-ul într-un programator MC „pur“ este nevoie.
Dar, în acest articol nu vom lua în considerare asamblarea și lipirea programarea la sol în sus și de a folosi posibilitățile Arduino. Faptul că cele mai multe placi Arduino la versiunea Uno are compania FT232RL cip FTDI.
Acest chip este un convertor UART-> USB, permițând sistemului de operare virtual COM-portul de lucru prin USB. Dar, în acest caz, avem nevoie de o altă oportunitate de ea - controlul individuale cip terminale, denumit bit-bang-ului în modul, care vă permite să „wrap“ un protocol USB arbitrar. Provocarea este de a transforma într-un protocol flash USB MK.
Microcontrolere AVR, utilizat în Arduino, cusute pe familiare nouă prin protocolul SPI pentru conector de programare in-circuit - ISP (I n-S ystem P rogramming). El este numit așa pentru că permite să clipească MK direct în dispozitivul final. Aici este conectorul de pe placa de baza CraftDuino:
MISO, MOSI, SCK, RESET - aceasta este toată linia de autobuz SPI, dar în loc de SS - RESET.
Dar noi încă mai doresc să acceseze constatările FT232RL, prin care va fi intermitent, iar dezvoltatorii Arduino au avut grijă de ea, ceea ce face X3 conectorul (X-trei):
În cazul în care placa de tampoane numai pentru X3, va trebui să lipire o bucată de PLS-pieptene în sine.
Acest conector pini au următoarele funcții pentru ISP-programator:
Și în schimb CraftDuino X3 are un conector standard RS232, același conductor de legare la FT232RL, de la care avem nevoie de aceeași 4O:
- 1 (CD) - MOSI
- 6 (DSR) - SCK
- 8 (CTS) - MISO
- 9 (RI) - RESET
Poraskinuv creierul pentru a face un cablu pentru improvizație nostru ISP-programator:
De la un capăt al cablului - conectori pentru Arduino X3 / CraftDuino UART, și pentru furnizarea:
Și la celălalt capăt - conectorul standard de ISP:
De obicei, AVR firmware-ul folosind popular avrdude instrument. care sprijină mulți programatori diferite și modele de MC, folosește chiar și mediu Arduino IDE pentru turnarea schiță. Pentru acest utilitar, există un patch care vă permite să lumineze intermitent IC cip prin intermediul FT232RL, folosind modul bit-bang. Au existat oameni buni care au deja patch-uri Windows-versiunea de avrdude de a lucra cu bit-bang-programator bazat pe acest cip, și am făcut același lucru, și în Linux:
- Versiunea 5.3.1 Patched pentru Windows.
- Versiunea 5.10, deb-pachet pentru Linux i386 și amd64 (x86_64).
- Versiunea sursă de tarball 5.10, o bibliotecă libftd2xx-1.0.4 de pe site-ul oficial al Consiliului de administrație și FTDI Makefile.in și avrdude.conf. că totul se va instala și rula corect. Testat numai pe Ubuntu 11.04 (i386 și amd64).
Dacă executați pe Linux, va trebui să facă câteva acțiuni (FTDI ne iubește):
- Kill ftdi_sio conducător auto. care previne avrdude FTDI deschis COM-Port:
Dacă doriți, puteți introduce modulul de kernel să fie pe lista neagră, după ce a adus în linie /etc/modprobe.d/blacklist.conf:
Doar ține cont de faptul că, în scopul de a lucra cu port virtual / dev / ttyUSB0 etc. (Aveți nevoie de Arduino IDE), acest modul trebuie să fie difuzate. Acest lucru se poate face prin comanda
USB ID furnizor și ID-ul produsului poate fi clarifica pentru comanda lsusb fidelitate. dacă Arduino este conectat la un calculator:
Apoi, aveți nevoie pentru a crea grup de FTDI-utilizator, și se adaugă la aceasta:
atunci ai nevoie să te deconectezi.
Deci, pentru serviciul udev a aflat despre modificările, trebuie fie să reporniți computerul sau cauza
Articolul despre programare AVR în C tovarășe noonv deja descris. modul de utilizare a avrdude. Voi descrie doar umple încărcător pe Arduino Diecimila cu ATmega168:
- Setare necesară pentru încărcător EEPROM rapidă siguranțe biți cuarț> 8 MHz, divizorul 8 construit off:
- Umple încărcător:
Dar consola nu este întotdeauna mai bine Gui, în special pentru stabilirea fuse-biți, și sunt mult mai convenabile și mod fiabil - folosi programul SinaProg, dezvoltat de programatori iranieni. Site-ul lor a fost mult timp mort, dar programul este viu și bine în ziua de azi. În configurația în detaliu în scris Di HALT'a, ei bine, nu vom pierde timpul și să ia ansamblul terminat personalizat cu avrdude patch-uri (asamblare Di HALT'a eroare într-unul dintre fișierele de configurare). Versiunea sub Linux, din păcate, nu există.
Secțiunea fișier Hex este ales hex-fișier pe care doriți să umple sau de a citi. Citește și scrie poate fi ca o memorie de program (Flash), și nevolatilă (EEPROM). În secțiunea de dispozitiv trebuie să specificați un anumit MC, în secțiunea de programator - programator (il avem ftbb), portul (FTDI0) și viteza portului (9600).
Ei bine, ceea ce este în valoare de a utiliza acest program - secțiunea Siguranțe. În lista verticală pentru a selecta predefinite de configurare fuse-biți, care sunt stabilite în Fuse.txt. Dar, cel mai important, ne deschide ochii prin apăsarea pe butonul Advanced:
Aici puteți tamp Fuzibili bytes manual, sau puteți apăsa butonul «C» de lângă valoarea de octet și a pus Fyuz poking căpușele cu descrieri. Pentru a umple încărcător, primul click urmatorul buton pentru a citi. pentru a citi siguranța valoarea curentă, apoi configurați siguranța scăzută. cuarț frecvență - mai mult de 8 MHz, timpul de pornire MK - 65 ms, un compas 8 este oprit:
După configurarea vom apăsa butonul Write și așteptați inscripția «siguranțelor de scriere ... OK».
Acum puteți în fereastra principală în secțiunea de fișier Hex pentru a alege fișier de încărcare ATmegaBOOT_168_diecimila.hex în secțiunea Flash pentru a apăsa butonul programului. Dacă în procesul va produce erori, indicatorul de progres este butonul „>“, care deschide fereastra avrdude jurnal de lucru lateral.
Și să proshom orice alt MC - de exemplu, ATtiny13.
Pune-MK pe maketku, conectați la toate linia de conector ISP-ul de la nostru bit-bang-programator, remorci cu LED-uri prin 500 ohm rezistor la al treilea picior (DB4) RESET și pull-up rezistor la 10 ohmi:
Asigurați-un firmware-hex fișier:
Perevtykaem Arduino într-un USB și urmăriți intermitent LED-ul cu condiția că nu există erori de conexiune (:
Asta-i drept, prin manipulări simple, mâini și creier, vă puteți un USB ISP-programator face, așa că nu trebuie să facă baie cu lipsa de TPL pe computere moderne și COM-port de pe aproape orice laptop - este USB, care este, peste tot.
Conform materialelor, se pare robokraft.ru