Kazalo:

AVR/Arduino utripa z Raspberry Pi: 3 koraki (s slikami)
AVR/Arduino utripa z Raspberry Pi: 3 koraki (s slikami)

Video: AVR/Arduino utripa z Raspberry Pi: 3 koraki (s slikami)

Video: AVR/Arduino utripa z Raspberry Pi: 3 koraki (s slikami)
Video: LDmicro 22: платы Arduino с AVRDUDESS (программирование микроконтроллеров с помощью LDmicro) 2024, Julij
Anonim
AVR/Arduino utripa z Raspberry Pi
AVR/Arduino utripa z Raspberry Pi

Programer v sistemu (ISP) je naprava, s katero lahko programirate številne mikrokrmilnike, na primer ATMega328p, ki je možgani Arduino Uno. Lahko kupite nekaj podobnega USBtinyISP ali celo uporabite Arduino. Ta navodila vam bodo pokazala, kako uporabljati Raspberry Pi kot ponudnika internetnih storitev.

Program avrdude, ki ga Arduino IDE uporablja pod pokrovom za utripanje čipov, je mogoče uporabiti s številnimi programerji. Ena od njegovih možnosti je uporaba zatičev SPI na razširitvenih vratih Pi. Pojasnil vam bom, kako vzpostaviti ustrezne povezave, sestaviti preprosto vezje na perfboard -u, da vam ne bo treba vsakič, ko želite utripati čip, znova namestiti ožičenje ter kako namestiti in uporabljati avrdude. Pokazal vam bom tudi, kako s to metodo pridobite programe, zbrane z uporabo Arduino IDE, na čip AVR, kot sta ATmega ali ATtiny.

Potrebne stvari:

  • Raspberry Pi z nameščenim najnovejšim Raspbian -om
  • 40-polna moška vtičnica za glavo (ali 26-polna, če imate starejši Pi)
  • IDE kabel za povezavo z vašim Pi
  • Kristalni resonator 16 MHz
  • 22 pF kondenzatorji (2)
  • LED (1) za prikaz statusa programerja
  • 8, 14 in/ali 28 -polne IC vtičnice, odvisno od oblike čipov, ki jih želite utripati
  • Nekaj perfboarda, žic, spajkanja

1. korak: Izdelava čevljarskega nastavka

Gradbeni nastavek za čevljarje
Gradbeni nastavek za čevljarje
Gradbeni nastavek za čevljarje
Gradbeni nastavek za čevljarje
Gradbeni nastavek za čevljarje
Gradbeni nastavek za čevljarje

Serijski periferni vmesnik (SPI), imenovan tudi štirižični serijski, je način komunikacije med eno glavno napravo in eno ali več pomožnimi napravami. To bomo uporabili za utripanje čipov, pri čemer je Pi glavni in čip podrejen. Med Pi in vašim čipom boste vzpostavili naslednje povezave (za različne AVR -je in razširitvena vrata Pi si oglejte zgornje izpiske, da ugotovite, kateri zatiči so):

  • Zatiče MOSI (master-out-slave-in) povežite skupaj
  • Zatiče SCLK (deljena ura) delite skupaj
  • Zatiče MISO (master-in-slave-out) priključite skupaj z uporom 220 Ohm, da zaščitite Pi pred nepričakovano visokimi napetostmi iz čipa
  • Priključite GPIO 25 na Pi neposredno na pin RESET na čipu. Pi pri programiranju potegne ta zatič nizko, zato uporabljamo 10K upor, da ostane visok, ko ne programiramo, in LED z 1K zaščitnim uporom, ki teče na pozitivno napetost, kar nam daje nekaj lepih vizualnih povratnih informacij pri programiranju.

Med Pi in čipi, ki jih želimo programirati, povežemo ozemljitvene in napajalne (3.3V) zatiče. Če še ne veste, zatiči Raspberry Pi niso tolerantni na 5V - poškodovani bodo, če se na njih pojavi več kot 3,3 V. Če čipi, ki jih programiramo, iz nekega razloga potrebujejo napajanje 5V, bi lahko za zaščito Pi -jevih pik uporabili čip za spreminjanje nivoja, vendar pri 3.3V nisem naletel na težave - zato priporočam, da se varno igrate in prihranite pri komponentah.

Nazadnje povežemo 16MHz kristalni oscilator preko zatičev XTAL na čipu, ki ga prav tako povežemo z zemljo prek nekaj 22pF kondenzatorjev. Čipe AVR lahko nastavite tako, da delujejo na različnih frekvencah, lahko pa tudi nastavite uporabo notranjega ali zunanjega vira za določanje te frekvence. Če je vaš čip nastavljen za uporabo zunanjega kristala kot svojega frekvenčnega vira, brez njega ne boste mogli ponovno programirati. Sicer ni važno, če je tam.

Shemo vezja na zadnji sliki lahko uporabite kot vodilo za sestavljanje čevljarskega nastavka na perfboard. Lahko imate toliko ali manj različnih oblik IC vtičnic, kot želite, samo vzporedno s Pi in kristalom priključite ustrezne zatiče. N. B. če za vodilo uporabljate podobo mojega prototipa, upoštevajte, da sem dodal nekaj dodatnih zatičev in vtičnic glave, da sem lahko dostopal do zatičev na Pi iz nepovezanih razlogov.

2. korak: Namestitev in uporaba Avrdude

Namestitev in uporaba Avrdude
Namestitev in uporaba Avrdude
Namestitev in uporaba Avrdude
Namestitev in uporaba Avrdude
Namestitev in uporaba Avrdude
Namestitev in uporaba Avrdude
Namestitev in uporaba Avrdude
Namestitev in uporaba Avrdude

Če želite namestiti avrdude na svoj Pi, samo vnesite

sudo apt-get install avrdude

Nato morate omogočiti vmesnik SPI, če še ni vklopljen. Za to obstaja način ukazne vrstice, vendar je veliko lažje uporabiti konfiguracijsko orodje Raspberry Pi. Vrsta

sudo raspi-config

in pojdite na Možnosti vmesnika, da vklopite SPI.

Za utripanje čipa vstavite tračni kabel iz vašega Pi v priključek na vezju perfboard in ga vstavite v ustrezno vtičnico IC (preverite, ali je obrnjen v pravo smer).

Ko utripate program, morate tudi pravilno nastaviti varovalke v čipu. To so res samo koščki v čipu, ki ste jih nastavili, da mu poveste, pri kateri hitrosti takta naj teče, ali naj pri zapisovanju čipa izbriše EEPROM itd. Lahko preberete celotno specifikacijo AVR, da ugotovite, kako nastaviti vsak bit, vendar veliko lažje je uporabiti kalkulator varovalk na spletnem mestu engbedded.com/fusecalc. Izberite ime dela AVR, ki ga uporabljate, in izberite želene možnosti v območju "Izbira funkcije". Običajno se samo prepričam, da so nastavitve ure pravilne, ostale stvari pa pustim privzete. Skoraj vedno boste želeli pustiti možnost "Serijsko programiranje omogočeno" CHECKED in "Reset Disabled" UNCHECKED - sicer čipa ne boste mogli ponovno programirati. Ko imate prave nastavitve, se lahko pomaknete navzdol po področju »Trenutne nastavitve« in kopirate argumente AVRDUDE, kot je prikazano na sliki.

Za nastavitev varovalk vnesite ukaz

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

kjer ime dela ustreza čipu, ki ga uporabljate. Seznam imen delov lahko najdete tako, da vnesete tip sudo ardude -c linuxspi -p? Če želite program utripati, se prepričajte, da je v vašem trenutnem imeniku, in vnesite

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

Po obeh ukazih bo LED svetila med spreminjanjem čipa.

3. korak: Prenos programov Arduino na AVR -je

Prenašanje programov Arduino na AVR -je
Prenašanje programov Arduino na AVR -je
Prenašanje programov Arduino na AVR -je
Prenašanje programov Arduino na AVR -je
Prenašanje programov Arduino na AVR -je
Prenašanje programov Arduino na AVR -je

Glavni poudarek tega poučevanja je prestavljanje že sestavljenih programov na čipe, ne pa, kako jih napisati ali sestaviti. Vendar sem želel razložiti, kako lahko z uporabo Arduino IDE sestavite binarne datoteke in jih s to metodo postavite na gole čipe AVR, saj je Arduino razmeroma enostavno naučiti in obstaja toliko vaj in primerov.

Najprej boste morali dodati podatke o čipih AVR, ki jih boste utripali, da bo IDE vedel, kako jih zbrati. James Sleeman je zelo koristno sestavil nekaj nastavitvenih datotek, ki so na voljo na githubu. Če jih želite uporabiti, odprite meni »Nastavitve« v Arduino IDE in kliknite polje poleg polja »Dodatni URL -ji upravitelja plošč«. Kopirajte in prilepite naslednje URL -je v pogovornem oknu, ki se prikaže:

Nato pojdite v meni "Orodja" in v podmeniju "Plošča" poiščite možnost "Upravitelj plošč …". Pomaknite se navzdol do dna seznama v pogovornem oknu Upravitelj plošč in namestite plošči DIY ATmega in DIY ATtiny.

Če želite sestaviti svoje programe, se najprej prepričajte, da ste v meniju »Procesor« izbrali pravilen čip in tudi pravilno hitrost procesorja. Izberite možnost »Uporabi zagonski nalagalnik: Ne«, saj bomo naložili neposredno s Pi in tako lahko porabili dodaten prostor, ki bi ga običajno zavzel nalagalnik Arduino. Zdaj kliknite gumb "Preveri" (kljukica). Tako boste program zbrali, ne da bi ga poskušali naložiti (ker ta korak počnete sami).

Ob predpostavki, da je vse v redu, morate sestavljeni program prenesti v svoj Pi. IDE jih skrije na začasno lokacijo, saj je namenjen nalaganju programov sam. V sistemu Windows je v AppData/Local/Temp v vašem uporabniškem imeniku v mapi, ki se začne z 'arduino_build'. Poiščite datoteko.hex - to je vaš program! Pošljite ga na svoj Pi prek FTP ali USB ključa in že ste v poslu.

Če želite to narediti, morate imeti računalnik z operacijskim sistemom Windows ali Mac za sestavljanje programov, ki jih nato pošljete v Pi. Resnično bi bilo lahko, če bi to lahko storili na samem Pi, vendar je na žalost uradna različica Arduino IDE, ki je na voljo v skladišču Raspbian, precej stara in nima upravitelja odbora. Brez tega je dodajanje ustreznih nastavitev za zbiranje golih AVR -jev nekoliko bolj zapleteno. Obstajajo vaje za sestavljanje novejše različice Arduina na vašem Pi - če želite to storiti, jih poiščite! Zdi se mi tudi, da bi bilo treba omogočiti, da IDE uporabi programer linuxspi za utripanje čipa v samem IDE (tj. Z uporabo gumba za prenos), vendar to presega mojo potrpežljivost in raven spretnosti - če veste, način, objavite v komentarjih! Nazadnje, lahko samo napišete programe neposredno v AVR-C in jih sestavite na Pi z avr-gcc, kar vam daje popolno razvojno platformo AVR v Raspberry Pi. Nekaj malega sem že naredil in če želite iti po tej poti, vas pozdravljam. Utripajte!

Priporočena: