Мазмуну:

AVR/Arduino Raspberry Pi менен жаркырайт: 3 кадам (сүрөттөр менен)
AVR/Arduino Raspberry Pi менен жаркырайт: 3 кадам (сүрөттөр менен)

Video: AVR/Arduino Raspberry Pi менен жаркырайт: 3 кадам (сүрөттөр менен)

Video: AVR/Arduino Raspberry Pi менен жаркырайт: 3 кадам (сүрөттөр менен)
Video: Что взять Arduino или Raspberry? 2024, Ноябрь
Anonim
AVR/Arduino Raspberry Pi менен жаркылдайт
AVR/Arduino Raspberry Pi менен жаркылдайт

Системдик программист (ISP)-бул көптөгөн микроконтроллерлерди программалоо үчүн колдоно турган түзмөк, мисалы ATMega328p, бул Arduino Uno мээлери. Сиз USBtinyISP сыяктуу нерсени сатып алсаңыз болот, же сиз Arduino колдоно аласыз. Бул көрсөтмө сизге Raspberry Pi'ди ISP катары кантип колдонууну көрсөтөт.

Arduino IDE чиптерди жарк этүү үчүн капоттун астында колдонгон avrdude программасын көптөгөн программисттер менен колдонсо болот. Анын варианттарынын бири - ПИнин кеңейтүү портунда SPI төөнөгүчтөрүн колдонуу. Мен чипти жаркыраткыңыз келген сайын зымдарды кайра жасоонун кажети жок жана кантип avrdude орнотуу жана колдонуу керектигин, кантип тиешелүү байланыштарды түзүүнү, perfboardго жөнөкөй схеманы чогултууну түшүндүрөм. Мен ошондой эле бул ыкманы колдонуу менен ATmega же ATtiny сыяктуу AVR чипине Arduino IDE аркылуу кантип программаларды түзүүнү көрсөтөм.

Керектүү нерселер:

  • Акыркы Raspbian орнотулган Raspberry Pi
  • 40-пин эркек баштык розеткасы (же сизде эски Пи болсо, 26-пин)
  • Пиңизге туташуу үчүн IDE кабели
  • 16 МГц кристаллдык резонатор
  • 22 pF конденсаторлор (2)
  • LED (1) программисттин статусун көрсөтөт
  • 8, 14 жана/же 28 пин IC розеткалары, жаркырагыңыз келген чиптердин формасына жараша
  • Кээ бир перформант, зымдар, ширетүүчү

1 -кадам: Cobbler тиркемесин куруу

Cobbler тиркемесин куруу
Cobbler тиркемесин куруу
Cobbler тиркемесин куруу
Cobbler тиркемесин куруу
Cobbler тиркемесин куруу
Cobbler тиркемесин куруу

Сериялык перифериялык интерфейс (SPI), ошондой эле төрт зымдуу сериялык деп аталат, бул бир башкы мастер менен бир же бир нече кулдук түзмөктөрдүн ортосунда байланыштын бир жолу. Биз муну чиптерди жаркыратуу үчүн колдонобуз, Пи кожоюн жана чип кул катары. Сиз Pi менен чипиңиздин ортосунда төмөнкү байланыштарды түзөсүз (кайсы пиндер экенин билүү үчүн ар кандай AVR жана Pi кеңейтүү порттору үчүн жогорудагы пинуттарды караңыз):

  • MOSI (master-out-slave-in) казыктарын бирге туташтырыңыз
  • SCLK (бөлүшүлгөн саат) казыктарын бирге туташтырыңыз
  • Пиди күтүлбөгөн жерден жогорку чыңалуудан коргоо үчүн MISO (кул-кожоюн) казыктарын 220 Ом каршылыгы менен туташтырыңыз.
  • Pi боюнча GPIO 25ти чиптин RESET пинине түз туташтырыңыз. Пи программалоодо бул пинди төмөн тартат, андыктан биз программалабаганда аны бийик кармап туруу үчүн 10K каршылыгын колдонобуз жана программалоодо бизге жакшы визуалдык пикир берүү үчүн оң чыңалууда иштеген 1K коргоочу каршылыгы бар LED.

Биз жерге жана бийликке (3.3V) төөнөгүчтөрдү Пи менен биз программалагысы келген чиптердин ортосуна туташтырабыз. Эгерде сиз буга чейин билбесеңиз, Raspberry Pi's pins 5V чыдамдуу эмес - эгерде аларда 3.3Vдан ашык пайда болсо, алар бузулат. Эгерде кандайдыр бир себептерден улам программаланган чиптер 5В кубаттуулукка муктаж болсо, биз Пи пиндерин коргоо үчүн деңгээлди алмаштыруучу чипти колдонушубуз мүмкүн, бирок мен 3.3V менен эч кандай көйгөйгө туш болгон жокмун - ошондуктан мен аны коопсуз ойноону жана компоненттерди үнөмдөөнү сунуштайм.

Акырында, биз чиптин XTAL казыктары аркылуу 16 МГц кристалл осцилляторун туташтырабыз, аны да жерге 22pF конденсаторлору аркылуу туташтырабыз. AVR чиптерин ар кандай жыштыкта иштетүү үчүн коюуга болот, ошондой эле ошол жыштыкты аныктоо үчүн ички же тышкы булакты колдонсо болот. Эгерде сиздин чип тышкы кристаллды жыштык булагы катары колдонууга коюлган болсо, ансыз кайра программалай албайсыз. Болбосо, анын бар экендиги маанилүү эмес.

Акыркы сүрөттөгү схеманы схемаңызды өтмөкчүңүздүн тиркемесин перфбортко чогултуу үчүн колдонмо катары колдоно аласыз. Сиз каалагандай IC розеткаларынын көп же бир нече формасына ээ боло аласыз, жөн эле Пи менен кристаллга параллель түрдө тиешелүү казыктарды туташтырыңыз. Н. Б. Эгерде сиз менин прототипимдин сүрөтүн жетектөөчү катары колдонсоңуз, анда мен башка кошумча баштыктар менен розеткаларды кошконумду белгилеп коюңуз, андыктан мен байланышпаган себептер менен Пи -пинге кире алам.

2 -кадам: Avrdude орнотуу жана колдонуу

Avrdude орнотуу жана колдонуу
Avrdude орнотуу жана колдонуу
Avrdude орнотуу жана колдонуу
Avrdude орнотуу жана колдонуу
Avrdude орнотуу жана колдонуу
Avrdude орнотуу жана колдонуу
Avrdude орнотуу жана колдонуу
Avrdude орнотуу жана колдонуу

Пиңизге avrdude орнотуу үчүн жөн эле териңиз

sudo apt-get орнотуу avrdude

Сиз SPI интерфейсин иштетишиңиз керек, эгер ал буга чейин күйгүзүлбөсө. Муну кылуунун буйрук сап жолу бар, бирок Raspberry Pi конфигурация куралын колдонуу алда канча оңой. Түрү

sudo raspi-config

жана SPIди күйгүзүү үчүн Interface Options бөлүмүнө өтүңүз.

Чипти жарк этүү үчүн, пиңиздеги лента кабелин perfboard схемасындагы туташтыргычка сайыңыз жана чипти тиешелүү IC розеткасына салыңыз (анын туура жакты караганын текшериңиз).

Программаны күйгүзүп жатканда, чиптин ичиндеги сактандыргычтарды туура орнотушуңуз керек. Бул чиптин жөн гана биттери, сиз кайсы сааттын ылдамдыгында иштеш керектигин, чипти жазууда EEPROMду өчүрүү керекпи ж.б.. Сиз ар бир битти кантип орнотууну билүү үчүн толук AVR спецификасын окуй аласыз, бирок engbedded.com/fusecalc сайтында берилген сактандыруучу эсептегичти колдонуу алда канча оңой. Колдонуп жаткан AVR бөлүгүнүн атын тандап, "Өзгөчөлүктөрдү тандоо" аймагынан каалаган опцияларды тандаңыз. Мен көбүнчө сааттардын тууралыгын текшерип, башка нерселерди демейки шартта калтырам. Сиз дээрлик ар дайым "Сериялык программалоо иштетилген" CHECKED жана "Reset Disabled" ЧЕКСИЗ калтыргыңыз келет - антпесе чипти кайра программалай албайсыз. Туура орнотуулар болгондо, "Учурдагы Орнотуулар" аймагын ылдый жылдырып, сүрөттө көрсөтүлгөндөй 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 flash: w:: i

Эки буйруктан кийин, чип өзгөртүлүп жатканда LED күйөт.

3 -кадам: Arduino программаларын AVRлерге алуу

Arduino программаларын AVRлерге алуу
Arduino программаларын AVRлерге алуу
Arduino программаларын AVRлерге алуу
Arduino программаларын AVRлерге алуу
Arduino программаларын AVRлерге алуу
Arduino программаларын AVRлерге алуу

Бул көрсөтмөнүн негизги фокусу-буга чейин түзүлгөн программаларды чиптерге жаркыратуу, аларды кантип жазуу же компиляциялоо эмес. Бирок, мен кантип Arduino IDEди колдонуп экилик файлдарды чогултуп, бул ыкманы колдонуп жылаңач AVR чиптерине түшүрө алаарыңызды түшүндүргүм келди, анткени Arduino үйрөнүү салыштырмалуу оңой жана көптөгөн үйрөткүчтөр жана мисалдар бар.

Биринчиден, IDE алар үчүн компиляцияны билиши үчүн, жаркырап турган AVR чиптери жөнүндө маалыматты кошушуңуз керек болот. Джеймс Слиман github'да жеткиликтүү болгон кээ бир орнотуу файлдарын абдан пайдалуу чогултту. Аларды колдонуу үчүн Arduino IDEдеги "Preferences" менюну ачыңыз жана "Кошумча такталар менеджеринин URL'дери" талаасынын жанындагы кутучаны басыңыз. Пайда болгон диалог кутусуна төмөнкү URL'дерди көчүрүү жана чаптоо:

Андан кийин, "Куралдар" менюсуна өтүп, "Такта" суб менюсунан "Такта менеджери …" опциясын табыңыз. Тизмелердин менеджери диалог кутусунун ылдый жагына жылып, DIY ATmega жана DIY ATtiny такталарын орнотуңуз.

Программаларыңызды компиляциялоо үчүн, адегенде "Процессор" менюсунда туура чипти, ошондой эле туура Процессордун ылдамдыгын тандаганыңызды текшериңиз. "Жүктөгүчтү колдонуу: Жок" опциясын тандаңыз, анткени биз Pi менен түз жүктөйбүз жана демек, Arduino жүктөгүчү ээлей турган кошумча орунду колдоно алабыз. Эми, "Текшерүү" баскычын чыкылдатыңыз (текшерүү белгиси). Бул сиздин программаны жүктөөгө аракет кылбастан түзөт (анткени сиз бул кадамды өзүңүз жасап жатасыз).

Баары ойдогудай деп ойлосоңуз, эми сиз түзгөн программаңызды Пиңизге жеткиришиңиз керек. IDE аларды убактылуу жерге катат, анткени ал программаларды өзү жүктөө үчүн иштелип чыккан. Windowsто, бул колдонуучу каталогунда AppData/Local/Tempде, 'arduino_build' менен башталган папкада.. Hex файлын издеңиз - бул сиздин программаңыз! Аны FTP аркылуу же USB таяк менен Пиңизге жөнөтүңүз, ошондо сиз бизнес менен алектенесиз.

Муну жасоо үчүн, программаларыңызды компиляциялоо үчүн Windows PC же Mac болушуңуз керек, аны Пи -ге жөнөтөсүз. Муну Piнин өзүндө жасоо чындыгында кооз болмок, бирок, тилекке каршы, Raspbian репозиторийинде жеткиликтүү болгон Arduino IDEнин расмий версиясы эски жана башкармалыктын менеджери жок. Ансыз, жылаңач AVRлерди түзүү үчүн тиешелүү орнотууларды кошуу бир аз татаалыраак. Пиңизде Arduino -нун акыркы версиясын түзүүгө үйрөткүчтөр бар - эгер сиз муну кылгыңыз келсе, аларды табыңыз! Мен дагы IDEнин чипти IDEдин ичинен жаркылдатуу үчүн linuxspi программистин колдонууга мүмкүнчүлүк алышы керек окшойт (башкача айтканда, "жүктөө" баскычын колдонуу менен), бирок бул менин чыдамкайлыгымдан жана жөндөмүмдүн деңгээлинен жогору - эгер билсеңиз бир жолу, аны комментарийге жаз! Акырында, сиз программаларды түз эле AVR-Cде жазып, Raspberry Piдеги AVRди иштеп чыгуунун толук платформасын берип, avr-gcc менен Piге чогулта аласыз. Мен муну кичине кылдым, эгер сиз бул жолго баргыңыз келсе, мен сизге салам айтам. Жарк этип алыңыз!

Сунушталууда: