Sadržaj:

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

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

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

Programer unutar sustava (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 kako uspostaviti odgovarajuće veze, sastaviti jednostavan sklop na perfboard -u tako da ne morate ponavljati ožičenje svaki put kada želite bljeskati čip, te kako instalirati i koristiti avrdude. Također ću vam pokazati kako pomoću ove metode prevesti programe sastavljene pomoću Arduino IDE -a na AVR čip, poput ATmege ili ATtinyja.

Potrebne stvari:

  • Raspberry Pi s instaliranim najnovijim Raspbian -om
  • 40-polna utičnica za muško zaglavlje (ili 26-pinska ako imate stariji Pi)
  • IDE kabel za spajanje na vaš Pi
  • Kristalni rezonator 16 MHz
  • Kondenzatori 22 pF (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. Koristit ćemo ovo za bljeskanje čipova, s Pi kao glavnim i čipom kao podređenim. Ostvarit ćete sljedeće veze između Pi -a i vašeg čipa (pogledajte gornje isječke za različite AVR -ove i priključke za proširenje Pi kako biste znali koji su pinovi):

  • Spojite pinove MOSI (master-out-slave-in) zajedno
  • Spojite pinove SCLK (zajednički sat) zajedno
  • Spojite pinove MISO (master-in-slave-out) 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 pri programiranju povlači ovaj pin nisko, pa koristimo 10K otpornik kako bismo ga držali visokim kada ne programiramo, te LED s 1K zaštitnim otpornikom koji radi na pozitivnom naponu kako bismo dobili lijepu vizualnu povratnu informaciju prilikom programiranja.

Povezujemo uzemljenje i priključke za napajanje (3,3 V) između Pi i čipova koje želimo programirati. U slučaju da već ne znate, pinovi Raspberry Pi nisu tolerantni na 5V - bit će oštećeni 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 razine kako bismo zaštitili Pinove pinove, ali nisam naišao na probleme s korištenjem 3,3 V - pa preporučujem da se igrate na sigurno i uštedite na komponentama.

Na kraju, povezujemo kristalni oscilator od 16 MHz preko XTAL pinova na čipu, koje također povezujemo s masom putem nekoliko kondenzatora od 22 pF. AVR čipovi mogu se postaviti na različite frekvencije, a mogu se postaviti i za korištenje unutarnjeg ili vanjskog 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 je li tamo.

Shemu kruga 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 iglama na Pi iz nepovezanih razloga.

Korak 2: Instaliranje i korištenje Avrdude

Instaliranje i korištenje Avrdudea
Instaliranje i korištenje Avrdudea
Instaliranje i korištenje Avrdudea
Instaliranje i korištenje Avrdudea
Instaliranje i korištenje Avrdudea
Instaliranje i korištenje Avrdudea
Instaliranje i korištenje Avrdudea
Instaliranje i korištenje Avrdudea

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 za naredbeni redak za to, ali mnogo je lakše koristiti konfiguracijski alat Raspberry Pi. Tip

sudo raspi-config

i idite na Opcije sučelja da biste uključili SPI.

Kako biste bljeskali 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 bljeskanja programa morate se također pobrinuti da ispravno postavite osigurače u čipu. To su zapravo samo dijelovi u čipu koje ste postavili da mu kažete na kojoj brzini takta radi, hoće li izbrisati 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 dijela AVR -a 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 "PROVJERENO serijsko programiranje" CHECKED i "Reset Disabled" UNCHECKED - u protivnom nećete moći ponovno programirati čip. Kad imate prave postavke, možete se pomaknuti prema dolje u području "Trenutne postavke" i kopirati argumente AVRDUDE kako je prikazano na slici.

Za postavljanje osigurača unesite naredbu

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

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

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

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

Korak 3: Prebacivanje Arduino programa na AVR -ove

Dobivanje Arduino programa na AVR -ove
Dobivanje Arduino programa na AVR -ove
Dobivanje Arduino programa na AVR -ove
Dobivanje Arduino programa na AVR -ove
Dobivanje Arduino programa na AVR -ove
Dobivanje 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 postoji toliko mnogo vodiča i primjera.

Prvo ćete morati dodati podatke o AVR čipovima koje ćete bljeskati kako bi IDE znao sastaviti za njih. James Sleeman vrlo je korisno sastavio neke instalacijske datoteke 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 podizborniku "Ploča". Pomaknite se do dna popisa u dijaloškom okviru Upravitelj ploča i instalirajte ploče DIY ATmega i DIY ATtiny.

Da biste sastavili svoje programe, najprije 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 koristiti dodatni prostor koji bi inače zauzimao Arduino bootloader. Sada kliknite gumb "Potvrdi" (kvačica). Ovo će sastaviti vaš program bez pokušaja učitavanja (budući da sami radite na tom koraku).

Pod pretpostavkom da sve ide u redu, sada morate prevesti sastavljeni program na svoj Pi. IDE ih skriva na privremenom mjestu jer je dizajniran za prijenos programa. U sustavu Windows nalazi se u aplikaciji 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 računalo sa sustavom Windows ili Mac za sastavljanje programa, koje zatim šaljete u Pi. Bilo bi doista lukavo to učiniti na samom Pi -u, ali nažalost službena verzija Arduino IDE -a dostupna u spremištu Raspbian prilično je stara i nema Upravitelja odbora. Bez toga, dodavanje odgovarajućih postavki za kompajliranje za gole AVR -ove malo je 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 razine vještine - ako znate za Način, objavite u komentarima! Na kraju, možete samo pisati programe izravno u AVR-C i sastavljati ih na Pi s avr-gcc, dajući vam potpunu AVR razvojnu platformu u Raspberry Pi. Učinio sam mali dio toga, i ako želite ići tim putem, pozdravljam vas. Zablistajte!

Preporučeni: