Sisukord:

AVR/Arduino vilgub Raspberry Pi -ga: 3 sammu (piltidega)
AVR/Arduino vilgub Raspberry Pi -ga: 3 sammu (piltidega)

Video: AVR/Arduino vilgub Raspberry Pi -ga: 3 sammu (piltidega)

Video: AVR/Arduino vilgub Raspberry Pi -ga: 3 sammu (piltidega)
Video: Marlin Firmware - VScode PlatformIO Install - Build Basics 2024, Detsember
Anonim
AVR/Arduino vilgub Raspberry Pi -ga
AVR/Arduino vilgub Raspberry Pi -ga

Süsteemisisene programmeerija (ISP) on seade, mille abil saate programmeerida paljusid mikrokontrollereid, näiteks ATMega328p, mis on Arduino Uno aju. Saate osta midagi sellist nagu USBtinyISP või isegi Arduino. See juhend annab teile teada, kuidas Raspberry Pi kasutada Interneti -teenuse pakkujana.

Programmi avrdude, mida Arduino IDE kasutab kapoti all kiipide välkimiseks, saab kasutada paljude programmeerijatega. Üks selle võimalusi on kasutada Pi laiendusportis olevaid SPI -tihvte. Selgitan, kuidas sobivaid ühendusi luua, panen perfboardile lihtsa vooluahela kokku, et te ei peaks juhtmeid iga kord, kui soovite kiipi välgutada, uuesti teha ning avrdude installimist ja kasutamist. Samuti näitan teile, kuidas selle meetodi abil Arduino IDE abil programme kompileerida AVR -kiibile, näiteks ATmega või ATtiny.

Vajalikud asjad:

  • Raspberry Pi, millele on installitud uusim Raspbian
  • 40-kontaktiline isane päisepesa (või 26-kontaktiline, kui teil on vanem Pi)
  • IDE -kaabel oma Pi -ga ühendamiseks
  • 16 MHz kristallresonaator
  • 22 pF kondensaatorid (2)
  • LED (1) näitab programmeerija olekut
  • 8, 14 ja/või 28 kontaktiga IC -pistikupesad, sõltuvalt sellest, millise kujuga kiipe soovite välgutada
  • Mingi perfboard, juhtmed, joodis

Samm 1: Ehita munakivikinnitus

Ehituskivide kinnitus
Ehituskivide kinnitus
Ehituskivide kinnitus
Ehituskivide kinnitus
Ehituskivide kinnitus
Ehituskivide kinnitus

Serial Peripheral Interface (SPI), mida nimetatakse ka neljajuhtmeliseks jadaühenduseks, on sidevahend ühe põhiseadme ja ühe või mitme alamseadme vahel. Me kasutame seda kiipide välkimiseks, Pi kui kapten ja kiip alam. Te loote Pi ja oma kiibi vahel järgmised ühendused (vaadake erinevate AVR -ide ja Pi laiendusportide kohta ülaltoodud nuppe, et teada saada, millised tihvtid on):

  • Ühendage MOSI (master-out-slave-in) tihvtid omavahel
  • Ühendage SCLK (jagatud kella) tihvtid omavahel
  • Ühendage MISO (master-in-slave-out) tihvtid 220 oomi takistiga, et kaitsta Pi-d kiibi ootamatult kõrgepinge eest
  • Ühendage Pi GPIO 25 otse kiibil oleva RESET -tihvtiga. Pi tõmbab selle tihvti programmeerimisel madalaks, nii et me kasutame 10K takistit, et hoida seda kõrgel, kui mitte programmeerimist, ja 1K kaitsetakistusega LED, mis töötab positiivse pingeni, et anda meile programmeerimisel mõnusa visuaalse tagasiside.

Me ühendame maa ja toite (3,3 V) tihvtid Pi ja kiipide vahel, mida me soovime programmeerida. Kui te veel ei tea, siis ei ole Raspberry Pi tihvtid 5 V tolerantsed - need saavad kahjustada, kui neile ilmub üle 3,3 V. Kui programmeeritavad kiibid vajavad mingil põhjusel 5 V toiteallikat, võiksime kasutada Pi nööpnõelte kaitsmiseks taseme nihutaja kiipi, kuid mul pole 3.3V kasutamisel probleeme tekkinud - seega soovitan seda turvaliselt mängida ja komponentide pealt kokku hoida.

Lõpuks ühendame kiibi XTAL -tihvtidega 16MHz kristallostsillaatori, mille ühendame ka maaga paari 22pF kondensaatori kaudu. AVR -kiipe saab seadistada töötama erinevatel sagedustel, samuti saab selle sageduse määramiseks kasutada sisemist või välist allikat. Kui teie kiip on seadistatud kasutama sagedusallikana välist kristalli, ei saa te ilma selleta ümber programmeerida. Muidu pole vahet, kas see on olemas.

Viimasel pildil olevat vooluahela skeemi saate kasutada juhendina oma munakinnituse lisaseadme kokkupanemisel perfboardile. Teil võib olla nii palju või vähe erinevaid IC -pistikupesasid, kui soovite, lihtsalt ühendage sobivad tihvtid paralleelselt Pi ja kristalliga. N. B. kui kasutate juhendina minu prototüübi pilti, pange tähele, et lisasin mõned täiendavad päise tihvtid ja pistikupesad, et saaksin sõltumatutel põhjustel pääseda juurde Pi tihvtidele.

Samm: Avrdude installimine ja kasutamine

Avrdude installimine ja kasutamine
Avrdude installimine ja kasutamine
Avrdude installimine ja kasutamine
Avrdude installimine ja kasutamine
Avrdude installimine ja kasutamine
Avrdude installimine ja kasutamine
Avrdude installimine ja kasutamine
Avrdude installimine ja kasutamine

Avrdude installimiseks oma Pi -le sisestage lihtsalt

sudo apt-get install avrdude

Seejärel peate lubama SPI liidese, kui see pole juba sisse lülitatud. Selleks on käsurea viis, kuid Raspberry Pi seadistustööriista kasutamine on palju lihtsam. Tüüp

sudo raspi-config

ja minge liidese suvanditesse, et SPI sisse lülitada.

Kiibi välgutamiseks ühendage oma Pi -lindi kaabel perfboard -ahela pistikusse ja sisestage kiip sobivasse IC -pistikupessa (veenduge, et see oleks õigel poolel).

Programmi vilgutades peate veenduma, et kiibi kaitsmed on õigesti seadistatud. Need on tegelikult lihtsalt bitid kiibis, mille määrasite, et öelda, millisel taktsagedusel töötada, kas kustutada kiibi kirjutamisel EEPROM jne. Iga biti seadistamiseks saate lugeda täielikku AVR -i spetsifikatsiooni, kuid palju lihtsam on kasutada saidil engbedded.com/fusecalc olevat kaitsmekalkulaatorit. Valige kasutatav AVR -osa nimi ja valige soovitud suvandid jaotises "Funktsioonide valik". Tavaliselt ma lihtsalt veendun, et kella seaded on õiged ja jätan muud asjad vaikimisi. Peaaegu alati soovite jätta "Sarjaprogrammeerimine lubatud" KONTROLLITUD ja "Lähtesta keelatud" MÄRKIMATA - vastasel juhul ei saa te kiipi ümber programmeerida. Kui teil on õiged seaded, saate kerida ala "Praegused sätted" alla ja kopeerida AVRDUDE argumendid, nagu pildil näidatud.

Kaitsmete seadistamiseks sisestage käsk

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

kus osa nimi vastab kasutatavale kiibile. Osade nimede loendi leiate, sisestades sudo ardude -c linuxspi -p? -Tüübi. Programmi välgutamiseks veenduge, et see oleks teie praeguses kataloogis, ja sisestage

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

Pärast mõlemat käsku süttib LED kiibi muutmise ajal.

3. samm: Arduino programmide avamine AVR -idesse

Arduino programmide ühendamine AVR -idega
Arduino programmide ühendamine AVR -idega
Arduino programmide ühendamine AVR -idega
Arduino programmide ühendamine AVR -idega
Arduino programmide ühendamine AVR -idega
Arduino programmide ühendamine AVR -idega

Selle juhendi põhirõhk on juba kompileeritud programmide kiipidele välgutamisel, mitte nende kirjutamisel või kompileerimisel. Siiski tahtsin selgitada, kuidas saate Arduino IDE abil binaarfaile kompileerida ja selle meetodi abil need AVR -kiipidele saada, kuna Arduino on suhteliselt lihtne õppida ning õpetusi ja näiteid on palju.

Esiteks peate lisama teabe AVR -kiipide kohta, mida vilgutate, et IDE teaks, kuidas nende jaoks kompileerida. James Sleeman on väga abivalmis kokku pannud mõned seadistusfailid, mis on saadaval githubis. Nende kasutamiseks avage Arduino IDE menüü "Eelistused" ja klõpsake välja "Täiendavate tahvlite halduri URL -id" kõrval olevat kasti. Kopeerige ja kleepige kuvatavas dialoogiboksis järgmised URL -id:

Seejärel minge menüüsse "Tööriistad" ja leidke alammenüüst "Juhatus" valik "Tahvlite haldur …". Kerige dialoogiboksis Boards Manager loendi alla ja installige DIY ATmega ja DIY ATtiny tahvlid.

Programmide koostamiseks veenduge esmalt, et oleksite valinud menüüst "Protsessor" õige kiibi ja õige protsessori kiiruse. Valige suvand "Kasuta alglaadurit: ei", kuna laadime üles otse Pi -ga ja saame seega kasutada lisaruumi, mille Arduino alglaadur tavaliselt võtab. Nüüd klõpsake nuppu "Kinnita" (linnuke). See kompileerib teie programmi ilma seda üles laadimata (kuna teete seda sammu ise).

Eeldades, et kõik läheb hästi, peate nüüd kompileeritud programmi oma Pi -le viima. IDE peidab need ajutisse asukohta, kuna see on loodud programmide üleslaadimiseks. Windowsis on see teie kasutajakataloogi kaustas AppData/Local/Temp kaustas, mis algab tähega „arduino_build”. Otsige üles.hex -fail - see on teie programm! Saatke see FTP kaudu või USB -mälupulga kaudu oma Pi -le ja olete äris.

Selleks on vaja, et teil oleks oma programmide koostamiseks Windows PC või Mac, mille seejärel Pi -le saadate. Oleks tõesti libe, kui saaks seda teha Pi -l endal, kuid kahjuks on Raspbiani hoidlas saadaval olev Arduino IDE ametlik versioon üsna vana ja sellel pole juhatusehaldurit. Ilma selleta on paljaste AVR -ide jaoks kompileerimiseks sobivate sätete lisamine natuke keerulisem. Seal on õpetused Arduino uuema versiooni koostamiseks oma Pi -l - kui soovite seda teha, otsige need üles! Samuti tunnen, et IDE -l peaks olema võimalik kasutada linuxspi programmeerijat, et välgutada kiip IDE enda seest (st kasutades nuppu „allalaadimine”), kuid see ületab minu kannatlikkuse ja oskuste taseme - kui teate viis, postitage see kommentaaridesse! Lõpuks võite lihtsalt kirjutada programme otse AVR-C-s ja koostada need Pi-le avr-gcc abil, andes teile täieliku AVR-i arendusplatvormi Raspberry Pi-s. Olen seda natuke teinud ja kui soovite seda teed minna, siis tervitan teid. Saage vilkuma!

Soovitan: