Orodha ya maudhui:

AVR / Arduino inayowaka na Raspberry Pi: Hatua 3 (na Picha)
AVR / Arduino inayowaka na Raspberry Pi: Hatua 3 (na Picha)

Video: AVR / Arduino inayowaka na Raspberry Pi: Hatua 3 (na Picha)

Video: AVR / Arduino inayowaka na Raspberry Pi: Hatua 3 (na Picha)
Video: Marlin Firmware - VScode PlatformIO Install - Build Basics 2024, Novemba
Anonim
AVR / Arduino inayowaka na Raspberry Pi
AVR / Arduino inayowaka na Raspberry Pi

Programu ya ndani ya mfumo (ISP) ni kifaa unachoweza kutumia kupanga wadhibiti wengi wadogo, kwa mfano ATMega328p ambayo ni akili ya Arduino Uno. Unaweza kununua kitu kama USBtinyISP, au unaweza hata kutumia Arduino. Mafundisho haya yatakuonyesha jinsi ya kutumia Raspberry Pi kama ISP.

Programu ya avrdude, ambayo ndio ambayo Arduino IDE hutumia chini ya kofia kuangaza chips, inaweza kutumika na waandaaji programu wengi. Moja ya chaguzi zake ni kutumia pini za SPI kwenye bandari ya upanuzi wa Pi. Nitaelezea jinsi ya kutengeneza unganisho linalofaa, weka mzunguko rahisi kwenye ubao wa bando ili usilazimike kufanya wiring kila wakati unataka kuwasha chip, na jinsi ya kusanikisha na kutumia avrdude. Pia nitakuonyesha jinsi ya kupata programu zilizojumuishwa kutumia Arduino IDE kwenye chip ya AVR kama ATmega au ATtiny kwa kutumia njia hii.

Vitu vinahitajika:

  • Raspberry Pi na Raspbian ya hivi karibuni imewekwa
  • Tundu la kichwa cha kiume cha pini 40 (au pini 26 ikiwa una Pi ya zamani)
  • Cable ya IDE kuungana na Pi yako
  • Resonator ya kioo ya MHz 16
  • Capacitors 22 pF (2)
  • LED (1) kuonyesha hali ya programu
  • 8, 14, na / au soketi 28 za siri za IC, kulingana na sura gani ya chips unayotaka kuangaza
  • Baadhi ya ubao, waya, solder

Hatua ya 1: Kuunda Kiambatisho cha Cobbler

Kuunda Kiambatisho cha Cobbler
Kuunda Kiambatisho cha Cobbler
Kuunda Kiambatisho cha Cobbler
Kuunda Kiambatisho cha Cobbler
Kuunda Kiambatisho cha Cobbler
Kuunda Kiambatisho cha Cobbler

Maingiliano ya Pembeni ya Siri (SPI), pia inaitwa waya nne, ni njia ya kuwasiliana kati ya kifaa kimoja na kifaa kimoja au zaidi cha watumwa. Tutatumia hii kuangaza chips, na Pi kama bwana na chip kama mtumwa. Utafanya unganisho zifuatazo kati ya Pi na chip yako (angalia pini hapo juu kwa anuwai za AVR na bandari za upanuzi wa Pi kujua ni pini zipi ambazo):

  • Unganisha pini za MOSI (master-out-slave-in) pamoja
  • Unganisha pini za SCLK (saa iliyoshirikiwa) pamoja
  • Unganisha pini za MISO (master-in-slave-out) pamoja na kontena la 220 Ohm, kulinda Pi kutoka kwa voltages yoyote isiyotarajiwa kutoka kwa chip
  • Unganisha GPIO 25 kwenye Pi moja kwa moja kwenye pini ya RESET kwenye chip. Pi huvuta pini hii chini wakati wa programu, kwa hivyo tunatumia kontena la 10K kuiweka juu wakati sio programu, na LED iliyo na kipingaji cha ulinzi cha 1K inayoendesha kwa voltage nzuri kutupatia maoni mazuri wakati wa programu.

Tunaunganisha pini za ardhini na nguvu (3.3V) kati ya Pi na chips ambazo tunataka kupanga. Ikiwa haujui tayari, pini za Raspberry Pi hazivumili 5V - zitaharibiwa ikiwa zaidi ya 3.3V itaonekana juu yao. Ikiwa chips zilizopangwa zinahitaji nguvu ya 5V kwa sababu fulani, tunaweza kutumia chipu ya kiwango cha chini kulinda pini za Pi, lakini sijawahi kupata shida yoyote kwa kutumia 3.3V - kwa hivyo napendekeza kuicheza salama na kuokoa kwa vifaa.

Mwishowe, tunaunganisha oscillator ya glasi ya 16MHz kwenye pini za XTAL kwenye chip, ambayo tunaunganisha pia ardhini kupitia viboreshaji vya 22pF. Chips za AVR zinaweza kuwekwa kukimbia kwa masafa tofauti, na pia inaweza kuwekwa kutumia chanzo cha ndani au cha nje kuamua masafa hayo. Ikiwa chip yako imewekwa kutumia glasi ya nje kama chanzo cha masafa, hautaweza kupanga tena bila hiyo. Vinginevyo haijalishi ikiwa iko.

Unaweza kutumia skimu ya mzunguko katika picha ya mwisho kama mwongozo wa kukusanyika kiambatisho chako cha mkusanyaji kwenye ubao wa maandishi. Unaweza kuwa na maumbo mengi au machache tofauti ya soketi za IC unavyotaka, unganisha tu pini zinazofaa sambamba na Pi na kioo. N. B. ikiwa unatumia picha ya mfano wangu kama mwongozo, kumbuka kuwa niliongeza pini za kichwa na soketi za ziada ili nipate pini kwenye Pi kwa sababu zisizohusiana.

Hatua ya 2: Kufunga na Kutumia Avrdude

Kufunga na Kutumia Avrdude
Kufunga na Kutumia Avrdude
Kufunga na Kutumia Avrdude
Kufunga na Kutumia Avrdude
Kufunga na Kutumia Avrdude
Kufunga na Kutumia Avrdude
Kufunga na Kutumia Avrdude
Kufunga na Kutumia Avrdude

Ili kusanikisha avrdude kwenye Pi yako, andika tu

Sudo apt-get kufunga avrdude

Kisha utahitaji kuwezesha kiolesura cha SPI, ikiwa bado haijawashwa. Kuna njia ya mstari wa amri ya kufanya hivyo, lakini ni rahisi zaidi kutumia zana ya usanidi wa Raspberry Pi. Andika

Sudo raspi-config

na nenda kwenye Chaguzi za Kiolesura kuwasha SPI.

Ili kuwasha chip yako, ingiza kebo ya Ribbon kutoka kwa Pi yako kwenye kontakt kwenye mzunguko wa ubao na ingiza chip kwenye tundu linalofaa la IC (hakikisha inakabiliwa na njia sahihi).

Wakati wa kuangaza programu, lazima pia uhakikishe kuweka fuses kwenye chip kwa usahihi. Kwa kweli hizi ni bits tu kwenye chip ambayo umeweka kuambia ni kasi gani ya saa, ikiwa ni kufuta EEPROM wakati wa kuandika chip, nk. Unaweza kusoma maelezo kamili ya AVR kujua jinsi ya kuweka kila kidogo, lakini ni rahisi zaidi kutumia kikokotoo cha fuse kilichotolewa kwenye engbedded.com/fusecalc. Chagua jina la sehemu ya AVR unayotumia na uchague chaguo unayotaka katika eneo la "Uteuzi wa Kipengele". Mara nyingi mimi huhakikisha tu kuwa mipangilio ya saa ni sawa na huacha vitu vingine kwa msingi. Karibu kila wakati utataka kuondoka "Programu ya serial imewezeshwa" CHECKED na "Rudisha Walemavu" HAICHAGULIWI - vinginevyo hautaweza kupanga tena chip. Unapokuwa na mipangilio sahihi, unaweza kusogeza chini eneo la "Mipangilio ya Sasa" na unakili hoja za AVRDUDE kama inavyoonyeshwa kwenye picha.

Ili kuweka fuses, ingiza amri

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

ambapo jina la sehemu linalingana na chip unayotumia. Unaweza kupata orodha ya majina ya sehemu kwa kuingia Sudo ardude -c linuxspi -p? Aina. Ili kuwasha programu yako, hakikisha iko kwenye saraka yako ya sasa na uingie

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

Baada ya amri zote mbili, LED itawaka wakati chip inarekebishwa.

Hatua ya 3: Kupata Programu za Arduino kwenye AVRs

Kupata Programu za Arduino kwenye AVRs
Kupata Programu za Arduino kwenye AVRs
Kupata Programu za Arduino kwenye AVRs
Kupata Programu za Arduino kwenye AVRs
Kupata Programu za Arduino kwenye AVRs
Kupata Programu za Arduino kwenye AVRs

Lengo kuu la hii inayoweza kufundishwa ni kuangazia programu zilizokusanywa tayari kwenye vidonge, sio jinsi ya kuziandika au kuzikusanya. Walakini, nilitaka kuelezea jinsi unaweza kukusanya binaries ukitumia Arduino IDE na uzipate kwenye tupu za AVR kwa kutumia njia hii, kwani Arduino ni rahisi kujifunza na kuna mafunzo mengi na mifano.

Kwanza, utahitaji kuongeza habari juu ya chips za AVR ambazo utawaka ili IDE ijue jinsi ya kuzikusanya. James Sleeman ameweka kwa msaada faili kadhaa za usanidi, ambazo zinapatikana kwenye github. Ili kuzitumia, fungua menyu ya "Mapendeleo" kwenye Arduino IDE na ubonyeze sanduku karibu na uwanja wa "URL za Meneja wa Bodi za Ziada". Nakili na ubandike URL zifuatazo kwenye kisanduku cha mazungumzo kinachoonekana:

Kisha, nenda kwenye menyu ya "Zana" na upate chaguo la "Meneja wa Bodi …" kwenye menyu ndogo ya "Bodi". Tembeza chini chini ya orodha kwenye kisanduku cha mazungumzo cha Meneja wa Bodi na usakinishe bodi za DIY ATmega na DIY ATtiny.

Ili kukusanya programu zako, kwanza hakikisha umechagua chip sahihi kwenye menyu ya "Processor", na vile vile kasi ya Processor sahihi. Chagua chaguo la "Tumia Bootloader: Hapana", kwani tutapakia moja kwa moja na Pi na kwa hivyo tunaweza kutumia nafasi ya ziada ambayo kwa kawaida inaweza kuchukuliwa na bootloader ya Arduino. Sasa, bonyeza kitufe cha "Thibitisha" (alama ya kuangalia). Hii itakusanya programu yako bila kujaribu kuipakia (kwa kuwa unafanya hatua hiyo mwenyewe).

Kwa kudhani kila kitu kinakwenda sawa, sasa unahitaji kupata programu iliyokusanywa kwa Pi yako. IDE huwaficha katika eneo la muda, kwani imeundwa kupakia mipango yenyewe. Kwenye Windows, iko kwenye AppData / Local / Temp katika saraka yako ya mtumiaji, kwenye folda inayoanza na 'arduino_build'. Tafuta faili ya.hex - hiyo ni programu yako! Tuma kwa Pi yako kupitia FTP au kwa fimbo ya USB, na uko katika biashara.

Kufanya hivi inahitaji kuwa na Windows PC au Mac kukusanya programu zako, ambazo unazituma kwa Pi. Ingekuwa mjanja sana kuweza kufanya hivyo kwenye Pi yenyewe, lakini kwa bahati mbaya toleo rasmi la Arduino IDE inayopatikana katika hazina ya Raspbian ni ya zamani na haina Meneja wa Bodi. Bila hii, kuongeza mipangilio inayofaa kukusanya kwa AVR wazi ni ngumu zaidi. Kuna mafunzo huko nje kwa kuandaa toleo la hivi karibuni la Arduino kwenye Pi yako - ikiwa ndivyo unataka kufanya, nenda uwapate! Ninahisi pia kuwa inawezekana kupata IDE kutumia programu ya linuxspi kuwasha chip kutoka ndani ya IDE yenyewe (yaani kutumia kitufe cha "pakua"), lakini hii ni zaidi ya uvumilivu wangu na kiwango cha ustadi - ikiwa unajua njia, chapisha kwenye maoni! Mwishowe, unaweza kuandika tu programu moja kwa moja kwenye AVR-C na kuzikusanya kwenye Pi na avr-gcc, na kukupa jukwaa kamili la maendeleo la AVR kwenye Raspberry Pi. Nimefanya kidogo ya hiyo, na ikiwa unataka kwenda kwa njia hiyo, nakusalimu. Pata mwangaza!

Ilipendekeza: