Sadržaj:

AVR/Arduino bljeska sa Raspberry Pi: 3 koraka (sa slikama)
AVR/Arduino bljeska sa Raspberry Pi: 3 koraka (sa slikama)

Video: AVR/Arduino bljeska sa Raspberry Pi: 3 koraka (sa slikama)

Video: AVR/Arduino bljeska sa Raspberry Pi: 3 koraka (sa slikama)
Video: Программирование Ардуино с нуля. Arduino для начинающих. 2024, Novembar
Anonim
AVR/Arduino bljeska sa Raspberry Pi
AVR/Arduino bljeska sa Raspberry Pi

Programer unutar sistema (ISP) je uređaj koji možete koristiti za programiranje mnogih mikrokontrolera, na primjer ATMega328p koji je mozak Arduino Uno. Možete kupiti nešto poput USBtinyISP -a ili čak koristiti Arduino. Ova instrukcija će vam pokazati kako koristiti Raspberry Pi kao ISP -a.

Program avrdude, koji Arduino IDE koristi ispod haube za bljeskanje čipova, može se koristiti s mnogim programerima. Jedna od njegovih mogućnosti je korištenje SPI pinova na Pi -jevom priključku za proširenje. Objasnit ću vam kako uspostaviti odgovarajuće veze, sastaviti jednostavno kolo na perfboard -u tako da ne morate ponavljati ožičenje svaki put kada želite bljeskati čip, te kako instalirati i koristiti avrdude. Pokazat ću vam i kako pomoću ove metode prevesti programe sastavljene pomoću Arduino IDE -a na AVR čip, poput ATmega ili ATtiny.

Potrebne stvari:

  • Raspberry Pi sa instaliranim najnovijim Raspbian -om
  • 40-polna muška utičnica zaglavlja (ili 26-pinska ako imate stariji Pi)
  • IDE kabel za spajanje na vaš Pi
  • Kristalni rezonator 16 MHz
  • 22 pF kondenzatori (2)
  • LED (1) za označavanje statusa programera
  • 8, 14 i/ili 28 -pinske IC utičnice, ovisno o tome koji oblik čipova želite bljeskati
  • Neki perfboard, žice, lemljenje

Korak 1: Izgradnja nastavka za postolare

Izgradnja nastavka za postolare
Izgradnja nastavka za postolare
Izgradnja nastavka za postolare
Izgradnja nastavka za postolare
Izgradnja nastavka za postolare
Izgradnja nastavka za postolare

Serijsko periferno sučelje (SPI), koje se naziva i četverožilno serijsko, način je komunikacije između jednog glavnog uređaja i jednog ili više slave uređaja. Ovo ćemo koristiti za fleš čipove, sa Pi kao glavnim i čipom kao podređenim. Ostvarit ćete sljedeće veze između Pi -a i vašeg čipa (pogledajte gornje pinouts za različite AVR -ove i Pi portove za proširenje da biste saznali koji su pinovi):

  • Spojite pinove MOSI (master-out-slave-in) zajedno
  • Spojite pinove SCLK (zajednički sat) zajedno
  • Spojite MISO (master-in-slave-out) pinove zajedno s otpornikom od 220 Ohma kako biste zaštitili Pi od neočekivano visokih napona iz čipa
  • Spojite GPIO 25 na Pi izravno na RESET pin na čipu. Pi povlači ovaj pin nisko pri programiranju, pa koristimo 10K otpornik kako bismo ga držali visokim kada ne programiramo, i LED sa 1K zaštitnim otpornikom koji radi na pozitivnom naponu kako bismo dobili lijepu vizualnu povratnu informaciju prilikom programiranja.

Povezujemo pinove za uzemljenje i napajanje (3.3V) između Pi i čipova koje želimo programirati. U slučaju da već ne znate, iglice Raspberry Pi -a nisu tolerantne na 5 V - bit će oštećene ako se na njima pojavi više od 3,3 V. Ako čipovima koji se programiraju iz nekog razloga treba napajanje od 5 V, mogli bismo upotrijebiti čip za promjenu nivoa da zaštitimo Pi -ove pinove, ali nisam naišao na probleme pri upotrebi 3,3 V - pa preporučujem da se igrate na sigurnom i uštedite na komponentama.

Na kraju, povezujemo 16MHz kristalni oscilator preko XTAL pinova na čipu, koje također povezujemo sa masom putem nekoliko kondenzatora od 22 pF. AVR čipovi se mogu podesiti da rade na različitim frekvencijama, a mogu se postaviti i za korištenje internog ili eksternog izvora za određivanje te frekvencije. Ako je vaš čip postavljen da koristi vanjski kristal kao izvor frekvencije, nećete ga moći reprogramirati bez njega. Inače nije važno da li postoji.

Shemu kola na posljednjoj slici možete koristiti kao vodič za sastavljanje nastavka za postolare na ploči. Možete imati onoliko ili najmanje različitih oblika IC utičnica koliko želite, samo spojite odgovarajuće pinove paralelno s Pi i kristalom. N. B. ako koristite sliku mog prototipa kao vodič, imajte na umu da sam dodao neke dodatne igle i utičnice zaglavlja kako bih mogao pristupiti pinovima na Pi -u iz nepovezanih razloga.

Korak 2: Instaliranje i korištenje Avrdude -a

Instaliranje i korištenje Avrdude
Instaliranje i korištenje Avrdude
Instaliranje i korištenje Avrdude
Instaliranje i korištenje Avrdude
Instaliranje i korištenje Avrdude
Instaliranje i korištenje Avrdude
Instaliranje i korištenje Avrdude
Instaliranje i korištenje Avrdude

Da biste instalirali avrdude na svoj Pi, samo upišite

sudo apt-get install avrdude

Tada ćete morati omogućiti SPI sučelje, ako već nije uključeno. Postoji način na koji to možete učiniti u komandnoj liniji, ali je mnogo lakše koristiti konfiguracijski alat Raspberry Pi. Tip

sudo raspi-config

i idite na Interface Options da uključite SPI.

Da biste fleširali svoj čip, ukopčajte vrpčani kabel s vašeg Pi u konektor na perfboard krugu i umetnite čip u odgovarajuću IC utičnicu (provjerite je li okrenut na pravi način).

Prilikom prebacivanja programa morate se također pobrinuti da ispravno postavite osigurače u čipu. Ovo su zapravo samo dijelovi u čipu koje ste postavili da mu kažete na kojoj brzini takta radi, da li da izbriše EEPROM prilikom pisanja čipa, itd. Mogli biste pročitati cijelu specifikaciju AVR -a kako biste shvatili kako postaviti svaki bit, ali mnogo je lakše koristiti kalkulator osigurača koji se nalazi na adresi engbedded.com/fusecalc. Odaberite naziv AVR dijela koji koristite i odaberite željene opcije u području "Odabir značajki". Obično samo provjeravam jesu li postavke sata ispravne, a ostale stvari ostavljam zadanim. Gotovo ćete uvijek htjeti ostaviti "Serijsko programiranje omogućeno" CHECKED i "Reset Disabled" UNCHECKED - u protivnom nećete moći ponovno programirati čip. Kad imate ispravne postavke, možete se pomaknuti prema dolje u polje "Trenutne postavke" i kopirati AVRDUDE argumente kao što je prikazano na slici.

Za postavljanje osigurača unesite naredbu

sudo avrdude -c linuxspi -P /dev/spidev0.0 -p

gde partname odgovara čipu koji koristite. Listu naziva dijelova možete pronaći unosom tipa sudo ardude -c linuxspi -p? Da biste ažurirali program, provjerite je li u vašem trenutnom direktoriju i unesite

sudo avrdude -c linuxspi -P /dev/spidev0.0 -p -U blic: w:: i

Nakon obje naredbe, LED će zasvijetliti dok se čip mijenja.

Korak 3: Prebacivanje Arduino programa na AVR -ove

Prebacivanje Arduino programa na AVR -ove
Prebacivanje Arduino programa na AVR -ove
Prebacivanje Arduino programa na AVR -ove
Prebacivanje Arduino programa na AVR -ove
Prebacivanje Arduino programa na AVR -ove
Prebacivanje Arduino programa na AVR -ove

Glavni fokus ovog uputstva je prebacivanje već sastavljenih programa na čipove, a ne kako ih napisati ili kompajlirati. Međutim, želio sam objasniti kako možete sastaviti binarne datoteke pomoću Arduino IDE -a i prenijeti ih na gole AVR čipove koristeći ovu metodu, budući da je Arduino relativno lako naučiti i ima toliko vodiča i primjera.

Prvo ćete morati dodati informacije o AVR čipovima koje ćete bljeskati kako bi IDE znao kako ih sastaviti. James Sleeman vrlo je korisno sastavio neke datoteke za postavljanje koje su dostupne na githubu. Da biste ih koristili, otvorite izbornik "Postavke" u Arduino IDE -u i kliknite okvir pored polja "Dodatni URL -ovi upravitelja ploča". Kopirajte i zalijepite sljedeće URL -ove u dijaloški okvir koji se pojavi:

Zatim idite na izbornik "Alati" i pronađite opciju "Upravitelj ploča …" u podmeniju "Ploča". Pomaknite se do dna liste u dijaloškom okviru Upravitelj ploča i instalirajte ploče DIY ATmega i DIY ATtiny.

Da biste kompajlirali svoje programe, prvo provjerite jeste li odabrali ispravan čip u izborniku "Procesor", kao i ispravnu brzinu procesora. Odaberite opciju "Koristi Bootloader: Ne", jer ćemo učitavati izravno s Pi -om i na taj način možemo iskoristiti dodatni prostor koji bi inače zauzimao Arduino bootloader. Sada kliknite gumb "Potvrdi" (kvačica). Ovo će kompajlirati vaš program bez pokušaja učitavanja (budući da sami radite taj korak).

Pod pretpostavkom da sve bude u redu, sada morate prevesti kompajlirani program na svoj Pi. IDE ih skriva na privremenoj lokaciji jer je dizajniran za postavljanje programa. Na Windows -u je u AppData/Local/Temp u vašem korisničkom imeniku, u mapi koja počinje s 'arduino_build'. Potražite.hex datoteku - to je vaš program! Pošaljite ga na svoj Pi putem FTP -a ili USB ključa i u poslu ste.

Da biste to učinili, morate imati Windows PC ili Mac za sastavljanje svojih programa, koje zatim šaljete u Pi. Bilo bi zaista lukavo to učiniti na samom Pi -u, ali nažalost službena verzija Arduino IDE -a dostupna u Raspbian spremištu prilično je stara i nema Upravitelja odbora. Bez toga, dodavanje odgovarajućih postavki za kompajliranje za gole AVR -ove je malo teže. Postoje vodiči za sastavljanje novije verzije Arduina na vašem Pi - ako to želite učiniti, idite ih pronaći! Također osjećam da bi trebalo biti moguće natjerati IDE da koristi linuxspi programer za bljeskanje čipa iz samog IDE -a (tj. Pomoću gumba "preuzmi"), ali to je izvan mog strpljenja i nivoa vještine - ako znate Način, objavite u komentarima! Na kraju, možete samo pisati programe direktno u AVR-C i kompajlirati ih na Pi-u sa avr-gcc, dajući vam kompletnu AVR razvojnu platformu u Raspberry Pi-ju. Učinio sam mali dio toga, i ako želite ići tim putem, pozdravljam vas. Zablistajte!

Preporučuje se: