Բովանդակություն:

AVR/Arduino Flashing With Raspberry Pi: 3 քայլ (նկարներով)
AVR/Arduino Flashing With Raspberry Pi: 3 քայլ (նկարներով)

Video: AVR/Arduino Flashing With Raspberry Pi: 3 քայլ (նկարներով)

Video: AVR/Arduino Flashing With Raspberry Pi: 3 քայլ (նկարներով)
Video: Raspberry Pi Tutorial 36 - ATMEGA328P AVR (Arduino) Programming via GPIO (SPI) 2024, Նոյեմբեր
Anonim
AVR/Arduino Flashing With Raspberry Pi
AVR/Arduino Flashing With Raspberry Pi

Համակարգային ծրագրավորողը (ISP) այն սարքն է, որը կարող եք օգտագործել բազմաթիվ միկրոկոնտրոլերներ ծրագրավորելու համար, օրինակ ՝ ATMega328p- ը, որը Arduino Uno- ի ուղեղն է: Դուք կարող եք գնել USBtinyISP- ի նման մի բան, կամ նույնիսկ կարող եք օգտագործել Arduino- ն: Այս հրահանգը ցույց կտա ձեզ, թե ինչպես օգտագործել Raspberry Pi- ն որպես ISP:

Avrdude ծրագիրը, որն այն է, ինչ Arduino IDE- ն օգտագործում է կափարիչի տակ չիպերը թարթելու համար, կարող է օգտագործվել շատ ծրագրավորողների հետ: Նրա տարբերակներից մեկն այն է, որ SP- ի կապումներն օգտագործեն Pi- ի ընդլայնման նավահանգստում: Ես կբացատրեմ, թե ինչպես կատարել համապատասխան միացումներ, միացնել մի պարզ միացում շերտի տախտակի վրա, այնպես որ դուք ստիպված չեք լինի նորից կատարել էլեկտրագծերը ամեն անգամ, երբ ուզում եք չիպը թարթել, և ինչպես տեղադրել և օգտագործել avrdude: Ես նաև ձեզ ցույց կտամ, թե ինչպես կարելի է Arduino IDE- ի միջոցով կազմված ծրագրերը ձեռք բերել AVR չիպի վրա, ինչպիսին է ATmega- ն կամ ATtiny- ն ՝ օգտագործելով այս մեթոդը:

Անհրաժեշտ բաներ.

  • Raspberry Pi- ն `վերջին Raspbian- ով տեղադրված
  • 40-փին արական գլխիկի վարդակից (կամ 26-պին, եթե ունեք ավելի հին Pi)
  • IDE մալուխ ՝ ձեր Pi- ին միանալու համար
  • 16 ՄՀց բյուրեղյա ռեզոնատոր
  • 22 pF կոնդենսատորներ (2)
  • LED (1) `ծրագրավորողի կարգավիճակը նշելու համար
  • 8, 14 և/կամ 28 փին IC վարդակներ ՝ կախված այն բանից, թե ինչպիսի չիպերի տեսք եք ցանկանում թարթել
  • Որոշ տախտակ, լարեր, զոդում

Քայլ 1. Կառուցեք կոշկակար կցորդ

Շենքի կոշկակար կցորդի կառուցում
Շենքի կոշկակար կցորդի կառուցում
Շենքի կոշկակար կցորդի կառուցում
Շենքի կոշկակար կցորդի կառուցում
Շենքի կոշկակար կցորդի կառուցում
Շենքի կոշկակար կցորդի կառուցում

Serial Peripheral Interface (SPI), որը նաև կոչվում է չորսալար սերիալ, մեկ հիմնական սարքի և մեկ կամ մի քանի ստրուկ սարքերի միջև հաղորդակցման միջոց է: Մենք դա կօգտագործենք չիպսերը փայլեցնելու համար ՝ Pi- ն որպես վարպետ և չիպը ՝ որպես ստրուկ: Դուք կկատարեք հետևյալ կապերը Pi- ի և ձեր չիպի միջև (տե՛ս վերևի pinouts- ը տարբեր AVR- ների և Pi ընդլայնման նավահանգիստների համար `իմանալու համար, թե որ կապումներն են):

  • Միացրեք MOSI (master-out-slave-in) կապումներն իրար
  • Միացրեք SCLK (ընդհանուր ժամացույցի) կապում միասին
  • Միացրեք MISO (master-in-slave-out) կապումներն 220 Օմ ռեզիստորի հետ միասին ՝ Pi- ն չիպից անսպասելի բարձր լարումներից պաշտպանելու համար
  • Միացրեք GPIO 25 -ը Pi- ի վրա անմիջապես չիպի վրա RESET քորոցին: Piրագրավորման ժամանակ Pi- ն իջեցնում է այս քորոցը, ուստի մենք օգտագործում ենք 10K ռեզիստոր ՝ այն բարձր պահելու համար, երբ չծրագրավորում ենք, և 1K պաշտպանական դիմադրիչով լուսադիոդ ՝ դրական լարման արագությամբ, ինչը մեզ տալիս է գեղեցիկ տեսողական արձագանք, երբ դա ծրագրավորում է:

Մենք կապում ենք գրունտի և հոսանքի (3.3V) կապում Pi- ի և չիպերի միջև, որոնք մենք ցանկանում ենք ծրագրավորել: Եթե դուք դեռ չգիտեք, ապա Raspberry Pi- ի կապումներն 5V հանդուրժող չեն, դրանք վնասվելու են, եթե դրանց վրա հայտնվի ավելի քան 3.3V: Եթե ծրագրավորվող չիպերը ինչ -ինչ պատճառներով կարիք ունեն 5 Վ լարման, մենք կարող ենք օգտագործել մակարդակի փոփոխիչ չիպ ՝ Pi- ի կապերը պաշտպանելու համար, բայց 3.3 Վ -ի դեպքում ես որևէ խնդիրների չեմ հանդիպել, ուստի խորհուրդ եմ տալիս ապահով խաղալ և խնայել բաղադրիչների վրա:

Ի վերջո, մենք միացնում ենք 16 ՄՀց բյուրեղային տատանում ՝ չիպի վրա XTAL կապումներով, որը նույնպես միացնում ենք գետնին մի քանի 22pF կոնդենսատորների միջոցով: AVR չիպերը կարող են սահմանվել տարբեր հաճախականությունների վրա աշխատելու համար, ինչպես նաև կարող են սահմանվել օգտագործել ներքին կամ արտաքին աղբյուր `այդ հաճախականությունը որոշելու համար: Եթե ձեր չիպը պետք է օգտագործի արտաքին բյուրեղ ՝ որպես իր հաճախականության աղբյուր, ապա առանց դրա չեք կարող վերագրագրավորել: Հակառակ դեպքում դա նշանակություն չունի, եթե այն այնտեղ է:

Դուք կարող եք օգտագործել սխեմայի սխեման վերջին պատկերում ՝ որպես ուղեցույց ՝ ձեր կոշկակար կցորդը հավաքելու տախտակի վրա: Դուք կարող եք ունենալ IC- ի վարդակների այնքան կամ մի քանի տարբեր ձև, որքան ցանկանում եք, պարզապես Pi- ին և բյուրեղին զուգահեռ միացրեք համապատասխան կապում: Ն. Բ. եթե դուք օգտագործում եք իմ նախատիպի պատկերը որպես ուղեցույց, նշեք, որ ես ավելացրել եմ վերնագրի մի քանի լրացուցիչ կապում և վարդակներ, որպեսզի կարողանամ Pi- ի կապերին մուտք գործել անկապ պատճառներով:

Քայլ 2: Avrdude- ի տեղադրում և օգտագործում

Avrdude- ի տեղադրում և օգտագործում
Avrdude- ի տեղադրում և օգտագործում
Avrdude- ի տեղադրում և օգտագործում
Avrdude- ի տեղադրում և օգտագործում
Avrdude- ի տեղադրում և օգտագործում
Avrdude- ի տեղադրում և օգտագործում
Avrdude- ի տեղադրում և օգտագործում
Avrdude- ի տեղադրում և օգտագործում

Avrdude- ը ձեր Pi- ի վրա տեղադրելու համար պարզապես մուտքագրեք

sudo apt-get տեղադրել avrdude

Այնուհետև անհրաժեշտ կլինի միացնել SPI ինտերֆեյսը, եթե այն արդեն միացված չէ: Կա դա հրամանի տող, բայց դա շատ ավելի հեշտ է օգտագործել Raspberry Pi կազմաձևման գործիքը: Տիպ

sudo raspi-config

և գնացեք Ինտերֆեյսի ընտրանքներ ՝ SPI- ը միացնելու համար:

Ձեր չիպը փայլեցնելու համար միացրեք ժապավենի մալուխը ձեր Pi- ից ՝ շերտի տախտակի միացման միակցիչին և տեղադրեք չիպը համապատասխան IC վարդակից (համոզվեք, որ այն ճիշտ ճանապարհով է նայված):

Flashրագիրը թարթելիս պետք է նաև համոզվեք, որ ապահովիչները ճիշտ տեղադրեք չիպի մեջ: Սրանք իսկապես չիպերի բիթեր են, որոնք դուք դրել եք ՝ ասելու համար, թե ժամացույցի արագությունը ինչ արագությամբ պետք է աշխատի, արդյոք չիպը գրելիս ջնջե՞լ EEPROM- ը և այլն: Դուք կարող եք կարդալ AVR- ի ամբողջական բնութագիրը `պարզելու համար, թե ինչպես է յուրաքանչյուր բիթը սահմանվում, բայց շատ ավելի հեշտ է օգտագործել ապահովագրության հաշվիչը, որը տրամադրված է engbedded.com/fusecalc կայքում: Ընտրեք AVR մասի անունը, որն օգտագործում եք, և «Հատկությունների ընտրություն» տարածքում ընտրեք ձեր ուզած ընտրանքները: Ես սովորաբար պարզապես համոզվում եմ, որ ժամացույցի կարգավորումները ճիշտ են, իսկ մնացած բաները թողնում եմ լռելյայն: Գրեթե միշտ կցանկանաք թողնել «Սերիայի ծրագրավորումը միացված է» ՍՏՈԳՎԱ և «Վերակայել անջատված» -ը ՝ ԱՆՀԱՆԴԻՊՈ otherwiseՄ, հակառակ դեպքում դուք չեք կարողանա չիպը նորից ծրագրավորել: Երբ ունեք ճիշտ կարգավորումներ, կարող եք ոլորել ներքև «Ընթացիկ կարգավորումներ» հատվածում և պատճենել AVRDUDE փաստարկները, ինչպես ցույց է տրված նկարում:

Ապահովիչներ տեղադրելու համար մուտքագրեք հրամանը

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

որտեղ partname- ը համապատասխանում է ձեր օգտագործած չիպին: Մասերի անունների ցանկը կարող եք գտնել ՝ մուտքագրելով sudo ardude -c linuxspi -p? Տեսակը: Ձեր ծրագիրը լուսավորելու համար համոզվեք, որ այն ձեր ընթացիկ գրացուցակում է և մուտքագրեք

sudo avrdude -c linuxspi -P /dev/spidev0.0 -p -U ֆլեշ: w:: i

Երկու հրամաններից հետո LED- ը կլուսավորվի, երբ չիպը փոփոխվում է:

Քայլ 3. Arduino ծրագրերի ձեռքբերում AVR- ներով

Arduino ծրագրերի ձեռքբերում AVR- ներով
Arduino ծրագրերի ձեռքբերում AVR- ներով
Arduino ծրագրերի ձեռքբերում AVR- ներով
Arduino ծրագրերի ձեռքբերում AVR- ներով
Arduino ծրագրերի ձեռքբերում AVR- ներով
Arduino ծրագրերի ձեռքբերում AVR- ներով

Այս հրահանգի հիմնական շեշտը դրված է արդեն կազմված ծրագրերը չիպերի վրա, այլ ոչ թե դրանք գրել կամ կազմելու վրա: Այնուամենայնիվ, ես ուզում էի բացատրել, թե ինչպես կարող եք երկուական ֆայլեր կազմել Arduino IDE- ի միջոցով և դրանք տեղադրել այս մեթոդի միջոցով մերկ AVR չիպերի վրա, քանի որ Arduino- ն համեմատաբար հեշտ է սովորել, և կան շատ ձեռնարկներ և օրինակներ:

Նախ, դուք պետք է ավելացնեք տեղեկատվություն այն AVR չիպերի մասին, որոնք դուք կթարթեք, որպեսզի IDE- ն իմանա, թե ինչպես կազմել դրանք: Jamesեյմս Սլիմանը շատ օգտակար կերպով հավաքել է որոշ տեղադրման ֆայլեր, որոնք հասանելի են github- ում: Դրանք օգտագործելու համար Arduino IDE- ում բացեք «Նախապատվություններ» ընտրացանկը և կտտացրեք «Լրացուցիչ տախտակների կառավարիչների հասցեներ» դաշտի կողքին: Պատճենեք և տեղադրեք հետևյալ URL- ները հայտնվող երկխոսության դաշտում.

Այնուհետև գնացեք «Գործիքներ» ընտրացանկ և «Տախտակ» ենթամենյուում գտեք «Տախտակների կառավարիչ…» տարբերակը: Ոլորեք ներքև ՝ ցուցումների ներքևում ՝ Տախտակների կառավարիչ երկխոսության դաշտում և տեղադրեք DIY ATmega և DIY ATtiny տախտակները:

Ձեր ծրագրերը կազմելու համար նախ համոզվեք, որ «Պրոցեսոր» ընտրացանկում ընտրել եք ճիշտ չիպը, ինչպես նաև Պրոցեսորի ճիշտ արագությունը: Ընտրեք «Օգտագործել Bootloader: No» տարբերակը, քանի որ մենք ուղղակիորեն կբեռնենք Pi- ով և այդպիսով կարող ենք օգտագործել լրացուցիչ տարածք, որը սովորաբար կզբաղեցներ Arduino բեռնիչը: Այժմ կտտացրեք «Հաստատել» կոճակը (ստուգման նշանը): Սա կկազմի ձեր ծրագիրը ՝ չփորձելով այն վերբեռնել (քանի որ դուք ինքներդ եք կատարում այդ քայլը):

Ենթադրելով, որ ամեն ինչ լավ է ընթանում, այժմ պետք է կազմված ծրագիրը հասցնել ձեր Pi- ին: IDE- ն դրանք թաքցնում է ժամանակավոր վայրում, քանի որ այն նախատեսված է ինքնին ծրագրեր վերբեռնելու համար: Windows- ում այն գտնվում է AppData/Local/Temp- ում ՝ ձեր օգտվողի գրացուցակում, «arduino_build» - ով սկսվող թղթապանակում: Փնտրեք. Hex ֆայլը. Դա ձեր ծրագիրն է: Ուղարկեք այն ձեր Pi- ին FTP կամ USB կրիչով, և դուք բիզնեսով զբաղվում եք:

Դա անելու համար անհրաժեշտ է, որ ձեր ծրագրերը կազմելու համար ունենաք Windows համակարգիչ կամ Mac, որն այնուհետև ուղարկեք Pi- ին: Դա իսկապես սահուն կլիներ, եթե կարողանայի դա անել հենց Pi- ով, բայց, ցավոք, Raspbian պահոցում առկա Arduino IDE- ի պաշտոնական տարբերակը բավականին հին է և չունի խորհրդի կառավարիչ: Առանց դրա, մերկ AVR- ների համար համապատասխան պարամետրեր ավելացնելը մի փոքր ավելի բարդ է: Կան ձեռնարկներ ՝ ձեր Pi- ով Arduino- ի ավելի վերջին տարբերակը կազմելու համար. Եթե դա այն է, ինչ ուզում եք անել, գնացեք գտեք դրանք: Ես նաև զգում եմ, որ պետք է հնարավոր լինի, որ IDE- ն օգտագործի linuxspi ծրագրավորողը ՝ IDE- ի ներսում չիպը թարթելու համար (այսինքն ՝ «ներբեռնում» կոճակի միջոցով), բայց դա իմ համբերության և հմտության մակարդակից դուրս է. մի կերպ, տեղադրեք այն մեկնաբանություններում: Ի վերջո, դուք պարզապես կարող եք ծրագրեր գրել ուղղակիորեն AVR-C- ով և դրանք Pi- ով կազմել avr-gcc- ով ՝ տալով ձեզ Raspberry Pi- ում AVR- ի զարգացման ամբողջական հարթակ: Ես արել եմ դրա մի փոքր մասը, և եթե ցանկանում եք գնալ այդ ճանապարհով, ես ողջունում եմ ձեզ: Flashրամեկուսացում ստացեք:

Խորհուրդ ենք տալիս: