Cuprins:
- Pasul 1: Construirea atașamentului Cobbler
- Pasul 2: Instalarea și utilizarea Avrdude
- Pasul 3: Obținerea programelor Arduino pe AVR-uri
Video: AVR / Arduino intermitent cu Raspberry Pi: 3 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Un programator în sistem (ISP) este un dispozitiv pe care îl puteți utiliza pentru a programa multe microcontrolere, de exemplu ATMega328p, care este creierul unui Arduino Uno. Puteți cumpăra ceva de genul USBtinyISP sau chiar puteți folosi un Arduino. Această instrucțiune vă va arăta cum să utilizați un Raspberry Pi ca ISP.
Programul avrdude, care este ceea ce Arduino IDE folosește sub capotă pentru a bloca cipuri, poate fi utilizat cu mulți programatori. Una dintre opțiunile sale este de a utiliza pinii SPI pe portul de expansiune Pi. Vă voi explica cum să faceți conexiunile adecvate, să montați un circuit simplu pe perfboard, astfel încât să nu trebuie să refaceți cablajul de fiecare dată când doriți să luminați un cip și cum să instalați și să utilizați avrdude. De asemenea, vă voi arăta cum să obțineți programe compilate folosind Arduino IDE pe un cip AVR, cum ar fi ATmega sau ATtiny, folosind această metodă.
Lucruri necesare:
- Raspberry Pi cu cea mai recentă instalare Raspbian
- Soclu pentru antet de sex masculin cu 40 de pini (sau 26 de pini dacă aveți un Pi mai vechi)
- Cablu IDE pentru a vă conecta la Pi
- Rezonator de cristal de 16 MHz
- Condensatori 22 pF (2)
- LED (1) pentru a indica starea programatorului
- Socluri IC de 8, 14 și / sau 28 de pini, în funcție de ce formă de jetoane doriți să luminați
- Unele panouri, fire, lipire
Pasul 1: Construirea atașamentului Cobbler
Interfața periferică serial (SPI), numită și serial cu patru fire, este un mod de comunicare între un singur dispozitiv master și unul sau mai multe dispozitive slave. Vom folosi acest lucru pentru a clipi cipuri, cu Pi ca stăpân și cip ca sclav. Veți efectua următoarele conexiuni între Pi și cipul dvs. (consultați pinouturile de mai sus pentru diverse porturi de expansiune AVR și Pi pentru a afla care sunt pinii care):
- Conectați pinii MOSI (master-out-slave-in)
- Conectați pinii SCLK (ceas partajat) împreună
- Conectați pinii MISO (master-in-slave-out) împreună cu un rezistor de 220 Ohm, pentru a proteja Pi de orice tensiuni mari neașteptate de la cip
- Conectați GPIO 25 de pe Pi direct la pinul RESET de pe cip. Pi trage acest pin scăzut atunci când programăm, așa că folosim un rezistor de 10K pentru al menține ridicat atunci când nu programăm și un LED cu un rezistor de protecție de 1K care funcționează la tensiune pozitivă pentru a ne oferi un feedback vizual frumos atunci când programează.
Conectăm pini de masă și putere (3,3 V) între Pi și cipurile pe care dorim să le programăm. În cazul în care nu știți deja, pinii Raspberry Pi nu sunt toleranți la 5V - vor fi deteriorați dacă pe ei apar mai mult de 3,3V. Dacă cipurile programate au nevoie de alimentare de 5V dintr-un motiv oarecare, am putea folosi un cip de schimbare a nivelului pentru a proteja pinii lui Pi, dar nu am întâmpinat probleme cu utilizarea 3.3V - așa că vă recomand să îl jucați în siguranță și să economisiți pe componente.
În cele din urmă, conectăm un oscilator de cristal de 16 MHz pe pinii XTAL de pe cip, pe care îl conectăm și la masă prin intermediul a doi condensatori de 22pF. Cipurile AVR pot fi setate să ruleze la diferite frecvențe și pot fi, de asemenea, setate să utilizeze o sursă internă sau externă pentru a determina acea frecvență. Dacă cipul dvs. este setat să utilizeze un cristal extern ca sursă de frecvență, nu veți putea reprograma fără acesta. Altfel nu contează dacă este acolo.
Puteți utiliza schema circuitului din ultima imagine ca un ghid pentru asamblarea atașamentului tău de cizmă pe perfboard. Puteți avea oricâte sau atât de puține forme diferite de prize IC doriți, conectați doar pinii corespunzători în paralel cu Pi și cristal. N. B. dacă folosiți imaginea prototipului meu ca ghid, rețineți că am adăugat niște pini și prize suplimentare pentru antet, astfel încât să pot accesa pini de pe Pi din motive fără legătură.
Pasul 2: Instalarea și utilizarea Avrdude
Pentru a instala avrdude pe Pi, trebuie doar să tastați
sudo apt-get install avrdude
Apoi, va trebui să activați interfața SPI, dacă nu a fost deja activată. Există o modalitate prin linie de comandă pentru a face acest lucru, dar este mult mai ușor să utilizați instrumentul de configurare Raspberry Pi. Tip
sudo raspi-config
și accesați Opțiuni interfață pentru a activa SPI.
Pentru a clipi cipul, conectați cablul panglică de la Pi la conectorul de pe circuitul perfboard și introduceți cipul în mufa IC corespunzătoare (asigurați-vă că este orientată corect).
Când luminați un program, trebuie să vă asigurați, de asemenea, că setați siguranțele în cip corect. Acestea sunt într-adevăr doar biți din cip pe care i-ați setat să-i spuneți la ce viteză de ceas să ruleze, dacă să ștergeți EEPROM când scrieți cipul etc. Ați putea citi specificațiile complete ale AVR pentru a afla cum să setați fiecare bit, dar este mult mai ușor să folosiți calculatorul de siguranțe furnizat la engbedded.com/fusecalc. Selectați numele piesei AVR pe care îl utilizați și alegeți opțiunile dorite în zona „Selecție caracteristică”. De obicei, mă asigur că setările ceasului sunt corecte și las celelalte lucruri în mod implicit. Aproape întotdeauna veți dori să lăsați „Programare serial activată” VERIFICAT și „Resetare dezactivată” NEBECAT - altfel nu veți putea reprograma cipul. Când aveți setările corecte, puteți derula în jos zona „Setări curente” și puteți copia argumentele AVRDUDE așa cum se arată în imagine.
Pentru a seta siguranțele, introduceți comanda
sudo avrdude -c linuxspi -P /dev/spidev0.0 -p
unde numele piesei corespunde cipului pe care îl utilizați. Puteți găsi lista numelor pieselor introducând sudo ardude -c linuxspi -p? Pentru a bloca programul, asigurați-vă că este în directorul curent și introduceți
sudo avrdude -c linuxspi -P /dev/spidev0.0 -p -U flash: w:: i
După ambele comenzi, LED-ul se va aprinde în timp ce cipul este modificat.
Pasul 3: Obținerea programelor Arduino pe AVR-uri
Accentul principal al acestui instructable este intermiterea programelor deja compilate pe cipuri, nu cum să le scrieți sau să le compilați. Cu toate acestea, am vrut să explic cum puteți compila binare folosind Arduino IDE și să le obțineți pe cipurile AVR goale folosind această metodă, deoarece Arduino este relativ ușor de învățat și există atât de multe tutoriale și exemple.
Mai întâi, va trebui să adăugați informații despre cipurile AVR pe care le veți clipi, astfel încât IDE să știe cum să le compileze. James Sleeman a reunit foarte util câteva fișiere de configurare, care sunt disponibile pe github. Pentru a le utiliza, deschideți meniul „Preferințe” în IDE-ul Arduino și faceți clic pe caseta de lângă câmpul „Adrese URL suplimentare ale managerului de plăci”. Copiați și lipiți următoarele adrese URL în caseta de dialog care apare:
Apoi, accesați meniul „Tools” și găsiți opțiunea „Boards Manager …” în submeniul „Board”. Derulați în jos până la partea de jos a listei din caseta de dialog Boards Manager și instalați plăcile DIY ATmega și DIY ATtiny.
Pentru a compila programele, asigurați-vă mai întâi că ați selectat cipul corect în meniul „Procesor”, precum și viteza corectă a procesorului. Selectați opțiunea „Utilizați Bootloader: Nu”, deoarece vom încărca direct cu Pi și astfel vom putea folosi spațiul suplimentar care ar fi ocupat în mod normal de bootloader-ul Arduino. Acum, faceți clic pe butonul „Verificați” (bifa). Aceasta vă va compila programul fără a încerca să-l încărcați (deoarece faceți acest pas singur).
Presupunând că totul merge bine, acum trebuie să duceți programul compilat la Pi. IDE le ascunde într-o locație temporară, deoarece este conceput pentru a încărca singur programe. Pe Windows, se află în AppData / Local / Temp în directorul dvs. de utilizator, într-un folder care începe cu „arduino_build”. Căutați fișierul.hex - acesta este programul dvs.! Trimiteți-o către Pi prin FTP sau cu un stick USB și sunteți în afaceri.
Pentru a face acest lucru, aveți nevoie de un computer Windows sau un Mac pentru a compila programele, pe care apoi le trimiteți către Pi. Ar fi foarte plăcut să poți face acest lucru pe Pi în sine, dar, din păcate, versiunea oficială a IDE-ului Arduino disponibil în depozitul Raspbian este destul de veche și nu are Board Manager. Fără aceasta, adăugarea setărilor adecvate pentru a compila pentru AVR-uri goale este puțin mai complicată. Există tutoriale acolo pentru a compila o versiune mai recentă a Arduino pe Pi - dacă asta vrei să faci, găsește-le! De asemenea, cred că ar trebui să fie posibil ca IDE să folosească programatorul linuxspi pentru a bloca un cip din IDE în sine (adică folosind butonul „descărcare”), dar acest lucru depășește nivelul meu de răbdare și abilitate - dacă știți într-un fel, postează-l în comentarii! În cele din urmă, puteți scrie doar programe direct în AVR-C și le puteți compila pe Pi cu avr-gcc, oferindu-vă o platformă completă de dezvoltare AVR în Raspberry Pi. Am făcut puțin din asta și, dacă vrei să mergi pe acel traseu, te salut. Începeți să clipiți!
Recomandat:
Decorarea arborelui intermitent PCB: 5 pași (cu imagini)
Decorarea arborelui intermitent PCB: În acest tutorial, veți învăța cum să realizați în mod eficient un proiect electronic. De exemplu, voi face un PCB cu lumini intermitente de la început până la sfârșit. Toate componentele electronice rulează singure, fără codificare necesară. Tot ce trebuie să faceți este să conectați
Trei moduri de a realiza un circuit intermitent LED cu control al ratei și intermitent alternativ: 3 pași
Trei moduri de a crea un circuit de intermitent LED cu control al ratei și intermitent alternativ: Circuitul intermitent este un circuit în care LED-ul clipește ON și OFF într-o rată influențată de condensatorul utilizat. Aici, vă voi arăta trei moduri diferite de a realiza acest circuit folosind : 1. Tranzistori 2. 555 Timer IC3. Quartz CircuitLDR poate fi, de asemenea, utilizat pentru a
Circuit intermitent cu bandă LED utilizând releu de 12V: 7 pași (cu imagini)
Circuit intermitent cu bandă cu LED-uri folosind releu de 12V: Hii prietene, astăzi voi face un circuit de clipire cu bandă cu LED-uri folosind releu de 12V și condensatori. Să începem
Intermitent LED de 31 de ani pentru faruri model etc.: 11 pași (cu imagini)
Intermitent LED de 31 de ani pentru faruri model etc.: Farurile model dețin o fascinație largă și mulți proprietari trebuie să se gândească cât de frumos ar fi dacă, în loc să stea doar acolo, modelul să clipească. Problema este că modelele farurilor sunt probabil mici, cu puțin spațiu pentru baterii și
Configurare microcontroler AVR Fuse Bits. Crearea și încărcarea în memoria flash a microcontrolerului programului LED intermitent .: 5 pași
Configurare microcontroler AVR Fuse Bits. Crearea și încărcarea în memoria flash a microcontrolerului Programul LED intermitent .: În acest caz, vom crea un program simplu în cod C și îl vom arde în memoria microcontrolerului. Vom scrie propriul nostru program și vom compila fișierul hex, folosind Atmel Studio ca platformă de dezvoltare integrată. Vom configura siguranța bi