Përmbajtje:

AVR/Arduino që ndizet me mjedër Pi: 3 hapa (me fotografi)
AVR/Arduino që ndizet me mjedër Pi: 3 hapa (me fotografi)

Video: AVR/Arduino që ndizet me mjedër Pi: 3 hapa (me fotografi)

Video: AVR/Arduino që ndizet me mjedër Pi: 3 hapa (me fotografi)
Video: Ускоряем Ардуино более чем в 20 раз! 2024, Nëntor
Anonim
AVR/Arduino që ndizet me mjedër Pi
AVR/Arduino që ndizet me mjedër Pi

Një programues në sistem (ISP) është një pajisje që mund të përdorni për të programuar shumë mikrokontrollues, për shembull ATMega328p që është truri i një Arduino Uno. Mund të blini diçka si një USBtinyISP, ose madje mund të përdorni një Arduino. Ky udhëzues do t'ju tregojë se si të përdorni një Raspberry Pi si një ISP.

Programi avrdude, i cili është ai që përdor Arduino IDE nën kapak për të ndezur patate të skuqura, mund të përdoret me shumë programues. Një nga opsionet e tij është përdorimi i kunjave SPI në portin e zgjerimit të Pi. Unë do të shpjegoj se si të krijoni lidhjet e duhura, të vendosni një qark të thjeshtë në dërrasën e dërrasës, në mënyrë që të mos keni nevojë të bëni sërish instalime elektrike çdo herë që dëshironi të ndizni një çip, dhe si të instaloni dhe përdorni avrdude. Unë gjithashtu do t'ju tregoj se si të merrni programe të përpiluara duke përdorur Arduino IDE në një çip AVR të tillë si një ATmega ose ATtiny duke përdorur këtë metodë.

Gjërat e nevojshme:

  • Raspberry Pi me Raspbian më të fundit të instaluar
  • Foleja e kokës mashkullore 40-pin (ose 26-pin nëse keni një Pi më të vjetër)
  • Kabllo IDE për t'u lidhur me Pi tuaj
  • Rezonator kristal 16 MHz
  • Kondensatorë 22 pF (2)
  • LED (1) për të treguar statusin e programuesit
  • Fole IC 8, 14 dhe/ose 28 pin, në varësi të formës së patate të skuqura që dëshironi të ndizni
  • Disa dërrasa të telave, tela, lidhës

Hapi 1: Ndërtimi i shtojcës së këpucarit

Ndërtimi i shtojcës së këpucarit
Ndërtimi i shtojcës së këpucarit
Ndërtimi i shtojcës së këpucarit
Ndërtimi i shtojcës së këpucarit
Ndërtimi i shtojcës së këpucarit
Ndërtimi i shtojcës së këpucarit

Ndërfaqja Seriale Periferike (SPI), e quajtur edhe serial me katër tela, është një mënyrë komunikimi midis një pajisjeje të vetme kryesore dhe një ose më shumë pajisje skllevër. Ne do ta përdorim këtë për të ndezur patate të skuqura, me Pi si mjeshtër dhe çipin si skllav. Ju do të bëni lidhjet e mëposhtme midis Pi dhe çipit tuaj (shikoni pinouts më lart për AVR të ndryshme dhe portet e zgjerimit Pi për të ditur se cilat kunja janë cilat):

  • Lidhni kunjat MOSI (master-out-slave-in) së bashku
  • Lidhni kunjat SCLK (ora e përbashkët) së bashku
  • Lidhni kunjat MISO (master-in-slave-out) së bashku me një rezistencë 220 Ohm, për të mbrojtur Pi nga çdo tension i papritur i lartë nga çipi
  • Lidhni GPIO 25 në Pi direkt me kunjin RESET në çip. Pi e ul këtë kunj të ulët kur programon, kështu që ne përdorim një rezistencë 10K për ta mbajtur atë të lartë kur nuk programojmë, dhe një LED me një rezistencë mbrojtëse 1K që shkon në tension pozitiv për të na dhënë disa reagime të këndshme vizuale kur është programimi.

Ne lidhim kunjat e tokës dhe të energjisë (3.3V) midis Pi dhe çipave që duam të programojmë. Në rast se nuk e dini tashmë, kunjat e Raspberry Pi nuk janë 5V tolerante - ato do të dëmtohen nëse mbi to shfaqen më shumë se 3.3V. Nëse patate të skuqura që programohen kanë nevojë për energji 5V për ndonjë arsye, ne mund të përdorim një çip të nivelit të zhvendosjes për të mbrojtur kunjat e Pi, por unë nuk kam hasur në ndonjë problem duke përdorur 3.3V - kështu që unë rekomandoj që ta luani atë të sigurt dhe të kurseni në komponentë.

Së fundmi, ne lidhim një oshilator kristal 16MHz nëpër kunjat XTAL në çip, të cilin ne gjithashtu e lidhim me tokën përmes disa kondensatorëve 22pF. Patate të skuqura AVR mund të vendosen që të funksionojnë në frekuenca të ndryshme, dhe gjithashtu mund të vendosen që të përdorin një burim të brendshëm ose të jashtëm për të përcaktuar atë frekuencë. Nëse çipi juaj është vendosur të përdorë një kristal të jashtëm si burim frekuence, nuk do të jeni në gjendje të riprogramoni pa të. Përndryshe nuk ka rëndësi nëse është atje.

Ju mund të përdorni skemën e qarkut në imazhin e fundit si një udhëzues për montimin e shtojcës tuaj të kalldrëmit në dërrasën e dërrasës. Ju mund të keni sa më shumë ose aq pak forma të ndryshme të prizave IC sa të dëshironi, thjesht lidhni kunjat e duhura paralelisht me Pi dhe kristalin. N. B. nëse përdorni imazhin e prototipit tim si udhëzues, vini re se shtova disa kunja dhe baza shtesë të kokës, në mënyrë që të mund të hyja në kunjat në Pi për arsye të palidhura.

Hapi 2: Instalimi dhe përdorimi i Avrdude

Instalimi dhe përdorimi i Avrdude
Instalimi dhe përdorimi i Avrdude
Instalimi dhe përdorimi i Avrdude
Instalimi dhe përdorimi i Avrdude
Instalimi dhe përdorimi i Avrdude
Instalimi dhe përdorimi i Avrdude
Instalimi dhe përdorimi i Avrdude
Instalimi dhe përdorimi i Avrdude

Për të instaluar avrdude në Pi tuaj, thjesht shkruani

sudo apt-get install avrdude

Atëherë do t'ju duhet të aktivizoni ndërfaqen SPI, nëse nuk është ndezur tashmë. Ekziston një mënyrë e komandës për ta bërë këtë, por është shumë më e lehtë të përdorësh mjetin e konfigurimit Raspberry Pi. Lloji

sudo raspi-config

dhe shkoni te Opsionet e Ndërfaqes për të aktivizuar SPI.

Në mënyrë që të ndizni çipin tuaj, lidhni kabllon e shiritit nga Pi juaj në lidhësin në qarkun e dërrasës dhe futeni çipin në prizën e duhur IC (sigurohuni që është duke u përballur në rrugën e duhur).

Kur ndizni një program, gjithashtu duhet të siguroheni që të vendosni siguresat në çip në mënyrë korrekte. Këto janë me të vërtetë vetëm pjesë në çipin që keni vendosur për t'i treguar atij se me çfarë shpejtësie të orës do të punojë, nëse do të fshihet EEPROM kur shkruani çipin, etj. Ju mund të lexoni specifikimin e plotë të AVR për të kuptuar se si të vendosni secilën bit, por është shumë më e lehtë të përdorësh llogaritësin e siguresave të dhënë në engbedded.com/fusecalc. Zgjidhni emrin e pjesës AVR që po përdorni dhe zgjidhni opsionet që dëshironi në zonën "Zgjedhja e veçorive". Unë zakonisht sigurohem që cilësimet e orës janë të sakta dhe i lë gjërat e tjera në parazgjedhje. Pothuajse gjithmonë do të dëshironi të lini "Programimi serik i aktivizuar" KONTROLLUAR dhe "Rivendos me aftësi të kufizuara" të PAKROKUAR - përndryshe nuk do të jeni në gjendje të riprogramoni çipin. Kur keni cilësimet e duhura, mund të lëvizni poshtë zonës "Cilësimet aktuale" dhe të kopjoni argumentet AVRDUDE siç tregohet në imazh.

Për të vendosur siguresat, futni komandën

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

ku emri i pjesës korrespondon me çipin që po përdorni. Ju mund të gjeni listën e emrave të pjesëve duke futur llojin sudo ardude -c linuxspi -p? Për të ndezur programin tuaj, sigurohuni që është në drejtorinë tuaj aktuale dhe futeni

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

Pas të dy komandave, LED do të ndizet ndërsa çipi është duke u modifikuar.

Hapi 3: Marrja e programeve Arduino në AVR

Marrja e programeve Arduino në AVR
Marrja e programeve Arduino në AVR
Marrja e programeve Arduino në AVR
Marrja e programeve Arduino në AVR
Marrja e programeve Arduino në AVR
Marrja e programeve Arduino në AVR

Fokusi kryesor i këtij udhëzimi është ndezja e programeve tashmë të përpiluara në patate të skuqura, jo si t'i shkruani ose përpiloni ato. Sidoqoftë, doja të shpjegoja se si mund të përpiloni binarët duke përdorur Arduino IDE dhe t'i merrni ato në çipa të zhveshur AVR duke përdorur këtë metodë, pasi Arduino është relativisht e lehtë për tu mësuar dhe ka kaq shumë mësime dhe shembuj.

Së pari, do t'ju duhet të shtoni informacion në lidhje me çipat AVR që do të ndizni në mënyrë që IDE të dijë si të përpilojë për to. James Sleeman ka bashkuar me shumë ndihmë disa skedarë konfigurimi, të cilët janë në dispozicion në github. Për t'i përdorur ato, hapni menunë "Preferencat" në Arduino IDE dhe klikoni kutinë pranë fushës "URL -të e Menaxherit të Bordeve shtesë". Kopjoni dhe ngjisni URL -të e mëposhtme në kutinë e dialogut që shfaqet:

Pastaj, shkoni te menyja "Tools" dhe gjeni opsionin "Boards Manager …" në nënmenynë "Board". Shkoni poshtë në fund të listës në kutinë e dialogut Boards Manager dhe instaloni bordet DIY ATmega dhe DIY ATtiny.

Për të përpiluar programet tuaja, së pari sigurohuni që keni zgjedhur çipin e duhur në menunë "Procesori", si dhe shpejtësinë e saktë të procesorit. Zgjidhni opsionin "Përdorni bootloader: Jo", pasi ne do të ngarkojmë drejtpërdrejt me Pi dhe kështu mund të përdorim hapësirën shtesë që normalisht do të merrej nga ngarkuesi i Arduino. Tani, klikoni butonin "Verifiko" (shenja e kontrollit). Kjo do të përpilojë programin tuaj pa u përpjekur ta ngarkoni (pasi ju po e bëni atë hap vetë).

Duke supozuar se gjithçka shkon mirë, tani duhet të merrni programin e përpiluar në Pi tuaj. IDE i fsheh ato në një vend të përkohshëm, pasi është krijuar për të ngarkuar vetë programet. Në Windows, është në AppData/Local/Temp në drejtorinë tuaj të përdoruesit, në një dosje që fillon me 'arduino_build'. Shikoni për skedarin hex. Ky është programi juaj! Dërgoje atë te Pi juaj nëpërmjet FTP ose me një shkop USB, dhe ju jeni në biznes.

Për ta bërë këtë kërkon që të keni një PC Windows ose Mac për të përpiluar programet tuaja, të cilat më pas i dërgoni në Pi. Do të ishte vërtet e shkëlqyeshme të mund ta bënit këtë në vetë Pi, por për fat të keq versioni zyrtar i Arduino IDE i disponueshëm në depon Raspbian është mjaft i vjetër dhe nuk ka Menaxherin e Bordit. Pa këtë, shtimi i cilësimeve të përshtatshme për të përpiluar për AVR të zhveshur është pak më i ndërlikuar. Ka mësime atje për përpilimin e një versioni më të fundit të Arduino në Pi tuaj - nëse kjo është ajo që dëshironi të bëni, shkoni t'i gjeni! Unë gjithashtu mendoj se duhet të jetë e mundur që IDE të përdorë programuesin linuxspi për të ndezur një çip nga vetë IDE (dmth. Duke përdorur butonin "shkarko"), por kjo është përtej nivelit tim të durimit dhe aftësive - nëse e dini në një mënyrë, postojeni në komente! Së fundmi, thjesht mund të shkruani programe direkt në AVR-C dhe t'i përpiloni ato në Pi me avr-gcc, duke ju dhënë një platformë të plotë të zhvillimit AVR në Raspberry Pi. Unë kam bërë një pjesë të vogël të kësaj, dhe nëse doni të shkoni në atë rrugë, ju përshëndes. Merr ndezje!

Recommended: