Turinys:

AVR/„Arduino“mirksi su „Raspberry Pi“: 3 žingsniai (su nuotraukomis)
AVR/„Arduino“mirksi su „Raspberry Pi“: 3 žingsniai (su nuotraukomis)

Video: AVR/„Arduino“mirksi su „Raspberry Pi“: 3 žingsniai (su nuotraukomis)

Video: AVR/„Arduino“mirksi su „Raspberry Pi“: 3 žingsniai (su nuotraukomis)
Video: Lesson 2: Getting Arduino Software and using Documentation for SunFounder Arduino Kit | SunFounder 2024, Liepa
Anonim
AVR/„Arduino“mirksi su „Raspberry Pi“
AVR/„Arduino“mirksi su „Raspberry Pi“

Sistemos programuotojas (ISP) yra įrenginys, kurį galite naudoti programuodami daugybę mikrovaldiklių, pavyzdžiui, „ATMega328p“, kuris yra „Arduino Uno“smegenys. Galite nusipirkti kažką panašaus į USBtinyISP arba netgi naudoti „Arduino“. Ši pamoka parodys, kaip naudoti „Raspberry Pi“kaip IPT.

„Arduino IDE“programa, kurią „Arduino IDE“naudoja po gaubtu, norėdama sužadinti mikroschemas, gali būti naudojama su daugeliu programuotojų. Vienas iš jo variantų yra naudoti SPI kaiščius „Pi“išplėtimo prievade. Aš paaiškinsiu, kaip užmegzti tinkamus ryšius, sudėsiu paprastą grandinę „perfboard“, kad nereikėtų kaskart perjungti laidų, kai norite įjungti blykstę, ir kaip įdiegti bei naudoti „avrdude“. Aš taip pat parodysiu, kaip naudojant šį metodą surinkti programas naudojant „Arduino IDE“į AVR lustą, pvz., „ATmega“ar „ATtiny“.

Reikalingi dalykai:

  • „Raspberry Pi“su naujausiu „Raspbian“
  • 40 kontaktų kištukinis lizdas (arba 26 kontaktų, jei turite senesnį Pi)
  • IDE kabelis, skirtas prisijungti prie „Pi“
  • 16 MHz kristalų rezonatorius
  • 22 pF kondensatoriai (2)
  • Šviesos diodas (1), rodantis programuotojo būseną
  • 8, 14 ir (arba) 28 kontaktų IC lizdai, priklausomai nuo to, kokios formos žetonus norite blykstelėti
  • Šiek tiek perforatoriaus, laidų, lydmetalio

1 žingsnis: statykite „Cobbler“priedą

Statybinis Cobbler priedas
Statybinis Cobbler priedas
Statybinis Cobbler priedas
Statybinis Cobbler priedas
Statybinis Cobbler priedas
Statybinis Cobbler priedas

Serijinė periferinė sąsaja (SPI), dar vadinama keturių laidų nuosekliąja, yra būdas bendrauti tarp vieno pagrindinio įrenginio ir vieno ar daugiau pavaldžių įrenginių. Mes tai panaudosime žybsnoti mikroschemoms, Pi bus pagrindinis ir lustas kaip vergas. Jūs sukursite šiuos ryšius tarp „Pi“ir lusto (žr. Aukščiau esančius kontaktus, skirtus įvairiems AVR ir „Pi“išplėtimo prievadams, kad sužinotumėte, kurie kaiščiai yra):

  • Prijunkite MOSI (master-out-slave-in) kaiščius
  • Prijunkite SCLK (bendro laikrodžio) kaiščius
  • Prijunkite MISO (master-in-slave-out) kaiščius kartu su 220 omų rezistoriumi, kad apsaugotumėte Pi nuo netikėtai aukštos lusto įtampos
  • Prijunkite GPIO 25 ant Pi tiesiogiai prie lusto RESET kaiščio. Programuodamas „Pi“traukia šį kaištį žemai, todėl mes naudojame 10K rezistorių, kad jis būtų aukštas, kai neprogramuojame, ir šviesos diodą su 1K apsauginiu rezistoriumi, veikiančiu iki teigiamos įtampos, kad mes gautume gražių vaizdinių atsiliepimų, kai jis programuojamas.

Mes prijungiame įžeminimo ir maitinimo (3,3 V) kaiščius tarp „Pi“ir lustų, kurias norime užprogramuoti. Jei dar nežinote, „Raspberry Pi“kaiščiai netoleruoja 5 V įtampos - jie bus pažeisti, jei ant jų atsiras daugiau nei 3,3 V. Jei programuojamiems lustams dėl kokių nors priežasčių reikia 5 V galios, mes galėtume naudoti lygio perjungimo lustą, kad apsaugotume „Pi“kaiščius, tačiau nesusidūriau su jokiomis problemomis naudojant 3.3V - todėl rekomenduoju žaisti saugiai ir taupyti komponentus.

Galiausiai prie mikroschemos XTAL kaiščių prijungiame 16MHz kristalų osciliatorių, kurį taip pat prijungiame prie žemės per porą 22pF kondensatorių. AVR lustus galima nustatyti skirtingais dažniais, taip pat galima nustatyti vidinį ar išorinį šaltinį tam dažniui nustatyti. Jei jūsų lustas kaip dažnio šaltinis naudojamas naudoti išorinį kristalą, be jo negalėsite perprogramuoti. Priešingu atveju nesvarbu, ar jis yra.

Paskutiniame paveikslėlyje esančią grandinės schemą galite naudoti kaip vadovą, kaip surinkti batsiuvio priedą ant plokštės. Įvairių formų IC lizdų galite turėti tiek, kiek norite, tiesiog prijunkite atitinkamus kaiščius lygiagrečiai su Pi ir kristalu. N. B. jei naudosite mano prototipo vaizdą kaip vadovą, atkreipkite dėmesį, kad pridėjau keletą papildomų antraščių kaiščių ir lizdų, kad galėčiau pasiekti „Pi“kaiščius dėl nesusijusių priežasčių.

2 veiksmas: „Avrdude“diegimas ir naudojimas

„Avrdude“diegimas ir naudojimas
„Avrdude“diegimas ir naudojimas
„Avrdude“diegimas ir naudojimas
„Avrdude“diegimas ir naudojimas
„Avrdude“diegimas ir naudojimas
„Avrdude“diegimas ir naudojimas
„Avrdude“diegimas ir naudojimas
„Avrdude“diegimas ir naudojimas

Norėdami įdiegti „avrdude“savo „Pi“, tiesiog įveskite

sudo apt-get install avrdude

Tada turėsite įjungti SPI sąsają, jei ji dar nebuvo įjungta. Yra komandinės eilutės būdas tai padaryti, tačiau daug lengviau naudoti „Raspberry Pi“konfigūracijos įrankį. Tipas

sudo raspi-config

ir eikite į sąsajos parinktis, kad įjungtumėte SPI.

Norėdami įjungti blykstę, prijunkite juostinį kabelį iš „Pi“į „perfboard“grandinės jungtį ir įkiškite lustą į atitinkamą IC lizdą (įsitikinkite, kad jis nukreiptas teisingu keliu).

Kai mirksi programa, taip pat turite įsitikinti, kad lusto saugikliai yra teisingai nustatyti. Tai tikrai tik bitai mikroschemoje, kurią nustatėte, kad nurodytumėte, kokiu laikrodžio greičiu veikti, ar ištrinti EEPROM rašant mikroschemą ir pan. Galite perskaityti visą AVR specifikaciją, kad išsiaiškintumėte, kaip nustatyti kiekvieną bitą, bet daug lengviau naudoti saugiklių skaičiuoklę, pateiktą svetainėje engbedded.com/fusecalc. Pasirinkite naudojamą AVR dalies pavadinimą ir srityje „Funkcijų pasirinkimas“pasirinkite norimas parinktis. Aš paprastai tik įsitikinu, kad laikrodžio nustatymai yra teisingi, o kitus dalykus palieku numatytuosius. Beveik visada norėsite palikti NEPATIKRINTĄ „Įjungtas serijinis programavimas“, o „Atstatyti išjungtą“- kitaip negalėsite perprogramuoti lusto. Kai turite tinkamus nustatymus, galite slinkti žemyn srityje „Dabartiniai nustatymai“ir nukopijuoti AVRDUDE argumentus, kaip parodyta paveikslėlyje.

Norėdami nustatyti saugiklius, įveskite komandą

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

kur dalies pavadinimas atitinka jūsų naudojamą lustą. Dalių pavadinimų sąrašą galite rasti įvedę sudo ardude -c linuxspi -p? Tipą. Norėdami paleisti programą, įsitikinkite, kad ji yra dabartiniame kataloge, ir įveskite

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

Po abiejų komandų šviesos diodas užsidegs, kol lustas bus modifikuotas.

3 žingsnis: „Arduino“programų įtraukimas į AVR

„Arduino“programų perkėlimas į AVR
„Arduino“programų perkėlimas į AVR
„Arduino“programų perkėlimas į AVR
„Arduino“programų perkėlimas į AVR
„Arduino“programų perkėlimas į AVR
„Arduino“programų perkėlimas į AVR

Pagrindinis šios instrukcijos tikslas yra jau sukompiliuotų programų perkėlimas į lustus, o ne kaip jas rašyti ar kompiliuoti. Tačiau norėjau paaiškinti, kaip galite surinkti dvejetainius failus naudodami „Arduino IDE“ir, naudodami šį metodą, perkelti juos į plikas AVR mikroschemas, nes „Arduino“yra gana lengva išmokti ir yra tiek daug vadovėlių ir pavyzdžių.

Pirmiausia turėsite pridėti informaciją apie jūsų mirksintus AVR lustus, kad IDE žinotų, kaip juos surinkti. Jamesas Sleemanas labai naudingai surinko kai kuriuos sąrankos failus, kuriuos galima rasti „github“. Norėdami juos naudoti, „Arduino IDE“atidarykite meniu „Parinktys“ir spustelėkite laukelį šalia „Papildomų lentų tvarkyklės URL“. Atsidariusiame dialogo lange nukopijuokite ir įklijuokite šiuos URL:

Tada eikite į meniu „Įrankiai“ir submeniu „Lenta“raskite parinktį „Lentų tvarkytuvė…“. Dialogo lange „Lentų tvarkyklė“slinkite žemyn iki sąrašo apačios ir įdiekite „pasidaryk pats“„ATmega“ir „pasidaryk pats“plokštes.

Norėdami sudaryti savo programas, pirmiausia įsitikinkite, kad meniu „Procesorius“pasirinkote tinkamą mikroschemą ir tinkamą procesoriaus greitį. Pasirinkite parinktį „Naudoti įkrovos tvarkyklę: ne“, nes mes įkelsime tiesiogiai su „Pi“ir taip galėsime naudoti papildomą erdvę, kurią paprastai užimtų „Arduino“įkrovos tvarkyklė. Dabar spustelėkite mygtuką „Patvirtinti“(varnelė). Tai sudarys jūsų programą, nebandant jos įkelti (nes jūs pats tai darote).

Darant prielaidą, kad viskas klostosi gerai, dabar turite surinktą programą gauti į „Pi“. IDE juos slepia laikinoje vietoje, nes yra skirta pačioms programoms įkelti. „Windows“sistemoje jis yra „AppData/Local/Temp“jūsų vartotojo kataloge, aplanke, prasidedančiame „arduino_build“. Ieškokite.hex failo - tai jūsų programa! Nusiųskite jį į savo „Pi“per FTP arba naudodami USB atmintinę ir būsite versle.

Norėdami tai padaryti, turite turėti „Windows“asmeninį kompiuterį arba „Mac“, kad galėtumėte sudaryti savo programas, kurias siunčiate į „Pi“. Būtų tikrai nesmagu tai padaryti pačiame „Pi“, tačiau, deja, oficiali „Arduino IDE“versija, esanti „Raspbian“saugykloje, yra gana sena ir neturi valdybos valdytojo. Be to, pridėti sudėtingus nustatymus, skirtus kompiliuoti plikiems AVR, yra šiek tiek sudėtingiau. Yra pamokų, kaip surinkti naujesnę „Arduino“versiją „Pi“- jei norite tai padaryti, eikite jų ieškoti! Taip pat manau, kad turėtų būti įmanoma, kad IDE naudotų „linuxspi“programuotoją, kad paleistų lustą iš paties IDE (ty naudojant mygtuką „Atsisiųsti“), bet tai ne mano kantrybė ir įgūdžių lygis - jei žinote būdas, paskelbkite jį komentaruose! Galiausiai galite tiesiog parašyti programas tiesiai į AVR-C ir surinkti jas į „Pi“naudodami avr-gcc, suteikdami jums pilną AVR kūrimo platformą „Raspberry Pi“. Aš šiek tiek to padariau, ir jei norite eiti šiuo keliu, sveikinu jus. Mirksi!

Rekomenduojamas: