Mundarija:

AVR/Arduino Raspberry Pi bilan yonadi: 3 qadam (rasmlar bilan)
AVR/Arduino Raspberry Pi bilan yonadi: 3 qadam (rasmlar bilan)

Video: AVR/Arduino Raspberry Pi bilan yonadi: 3 qadam (rasmlar bilan)

Video: AVR/Arduino Raspberry Pi bilan yonadi: 3 qadam (rasmlar bilan)
Video: ESP32, более мощная чем любая другая Ардуино 2024, Noyabr
Anonim
Raspberry Pi bilan AVR/Arduino miltillaydi
Raspberry Pi bilan AVR/Arduino miltillaydi

Tizimli dasturchi (ISP)-bu ko'plab mikrokontrolderlarni dasturlash uchun ishlatishingiz mumkin bo'lgan qurilma, masalan, ATMega328p-bu Arduino Uno miyasi. Siz USBtinyISP kabi biror narsani sotib olishingiz yoki hatto Arduino -dan foydalanishingiz mumkin. Bu ko'rsatma sizga Raspberry Pi -ni provayder sifatida qanday ishlatishni ko'rsatib beradi.

Arduino IDE chiplarni yondirish uchun qopqoq ostida ishlatadigan avrdude dasturi ko'plab dasturchilar bilan ishlatilishi mumkin. Uning variantlaridan biri - PI kengayish portidagi SPI pinlarini ishlatish. Men qanday qilib to'g'ri ulanishni, perfboardda oddiy sxemani yig'ishni tushuntiraman, shuning uchun har safar chip yonib ketganda, simni qaytadan o'tkazib yubormaslik, avrdudeni qanday o'rnatish va ishlatish kerak. Men sizga bu usul yordamida ATmega yoki ATtiny kabi AVR chipiga Arduino IDE yordamida kompilyatsiya qilinadigan dasturlarni ko'rsataman.

Kerakli narsalar:

  • Eng so'nggi Raspbian o'rnatilgan Raspberry Pi
  • 40 pinli erkak boshli rozetka (yoki agar sizda eski Pi bo'lsa, 26 pinli)
  • Pi -ga ulanish uchun IDE kabeli
  • 16 MGts kristalli rezonator
  • 22 pF kondansatörler (2)
  • LED (1) dasturchi holatini ko'rsatadi
  • 8, 14 va/yoki 28 pinli IC rozetkalari, qaysi chiplar yonib -o'chib turishini xohlashingizga bog'liq
  • Ba'zi perforatorlar, simlar, lehim

1 -qadam: Cobbler qo'shimchasini yaratish

Cobbler qo'shimchasini yaratish
Cobbler qo'shimchasini yaratish
Cobbler qo'shimchasini yaratish
Cobbler qo'shimchasini yaratish
Cobbler qo'shimchasini yaratish
Cobbler qo'shimchasini yaratish

To'rt simli ketma-ket deb nomlangan ketma-ket periferik interfeys (SPI)-bitta asosiy qurilma va bir yoki bir nechta qul qurilmalar o'rtasida aloqa qilish usuli. Biz buni chiplarni yondirish uchun ishlatamiz, Pi - xo'jayin va chip - qul. Siz Pi va sizning chipingiz o'rtasida quyidagi ulanishlarni o'rnatasiz (qaysi pinlar ekanligini bilish uchun turli AVR va Pi kengaytirish portlari uchun yuqoridagi pinoutlarni ko'ring):

  • MOSI (master-out-slave-in) pinlarini bir-biriga ulang
  • SCLK (umumiy soat) pinlarini bir -biriga ulang
  • Pi-ni chipdan kutilmagan yuqori kuchlanishdan himoya qilish uchun MISO (qul-qul) ustini 220 Ohmli rezistor bilan ulang.
  • Pi -dagi GPIO 25 -ni to'g'ridan -to'g'ri chipdagi RESET piniga ulang. Pi dasturlash paytida bu pinni pastga tortadi, shuning uchun biz dasturlash bo'lmaganida uni yuqori ushlab turish uchun 10K rezistorni ishlatamiz va dasturlash paytida bizga yaxshi vizual geribildirim berish uchun musbat kuchlanish bilan ishlaydigan 1K himoya rezistorli LED.

Biz yer va quvvat (3.3V) pinlarini Pi va biz dasturlamoqchi bo'lgan chiplar orasiga ulaymiz. Agar siz hali bilmasangiz, Raspberry Pi ning pinlari 5 V ga chidamli emas - agar ular ustida 3,3 V dan ortiq bo'lsa, ular shikastlanadi. Agar biror sababga ko'ra dasturlashtirilgan chiplar 5V quvvatga muhtoj bo'lsa, biz Pi pinlarini himoya qilish uchun darajali o'zgartirish chipidan foydalanishimiz mumkin edi, lekin men 3.3V yordamida hech qanday muammoga duch kelmadim - shuning uchun men uni xavfsiz o'ynashni va komponentlarni tejashni tavsiya qilaman.

Nihoyat, biz chipdagi XTAL pinlari bo'ylab 16 MGtsli kristalli osilatorni ulaymiz, biz ularni erga 22pF kondansatkichlari orqali ulaymiz. AVR chiplari har xil chastotalarda ishlashi uchun o'rnatilishi mumkin, shuningdek, bu chastotani aniqlash uchun ichki yoki tashqi manbadan foydalanishi mumkin. Agar sizning chipingiz tashqi kristalni chastota manbai sifatida ishlatadigan bo'lsa, siz uni qayta dasturlay olmaysiz. Aks holda, u erda bo'lish muhim emas.

Oxirgi rasmdagi sxemani sxemasidan perfboardga tikuvchilik dastgohini yig'ish uchun qo'llanma sifatida ishlatishingiz mumkin. Siz xohlagancha ko'p yoki kamroq turli xil IC rozetkalarga ega bo'lishingiz mumkin, faqat mos keladigan pinlarni Pi va billurga parallel ravishda ulang. N. B. agar siz mening prototipim tasvirini qo'llanma sifatida ishlatsangiz, shuni esda tutingki, men bir nechta sababsiz pinlarga kirishga ruxsat berish uchun qo'shimcha sarlavhalar va rozetkalarni qo'shdim.

2 -qadam: Avrdude -ni o'rnatish va ishlatish

Avrdude -ni o'rnatish va ishlatish
Avrdude -ni o'rnatish va ishlatish
Avrdude -ni o'rnatish va ishlatish
Avrdude -ni o'rnatish va ishlatish
Avrdude -ni o'rnatish va ishlatish
Avrdude -ni o'rnatish va ishlatish
Avrdude -ni o'rnatish va ishlatish
Avrdude -ni o'rnatish va ishlatish

Pi -ga avrdude o'rnatish uchun faqat yozing

sudo apt-get install avrdude

Agar SPI interfeysi yoqilmagan bo'lsa, uni yoqishingiz kerak bo'ladi. Buni amalga oshirishning buyruq qatori bor, lekin Raspberry Pi konfiguratsiya vositasidan foydalanish ancha oson. Turi

sudo raspi-config

va SPI -ni yoqish uchun interfeys parametrlariga o'ting.

Chipni yondirish uchun, Pi -dagi tasma kabelini perfart pallasidagi ulagichga ulang va chipni mos keladigan IC rozetkasiga joylashtiring (uning to'g'ri tomonga qaraganligiga ishonch hosil qiling).

Dastur yonib turganda, chipdagi sigortalar to'g'ri o'rnatilganligiga ishonch hosil qilishingiz kerak. Bu, albatta, siz qaysi soat tezligida ishlashni, chipni yozishda EEPROMni o'chirishni va hokazolarni aytadigan chipdagi bitlar, va hokazo. Siz har bir bitni qanday o'rnatishni bilish uchun to'liq AVR spetsifikatsiyasini o'qishingiz mumkin, lekin engbedded.com/fusecalc saytida berilgan sug'urta kalkulyatoridan foydalanish ancha oson. Foydalanadigan AVR qism nomini tanlang va "Xususiyatlarni tanlash" maydonida kerakli variantlarni tanlang. Men odatda soat sozlamalarining to'g'riligiga ishonch hosil qilaman va boshqa narsalarni sukut bo'yicha qoldiraman. Siz deyarli har doim "Ketma -ket dasturlash yoqilgan" CHECKED va "Reset Disabled" ni CHEKEDSIZ qoldirishni xohlaysiz - aks holda siz chipni qayta dasturlay olmaysiz. To'g'ri sozlamalar mavjud bo'lganda, "Joriy sozlamalar" maydonini pastga siljiting va rasmda ko'rsatilgandek AVRDUDE argumentlarini nusxalashingiz mumkin.

Sigortalarni o'rnatish uchun buyruqni kiriting

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

bu erda qism nomi siz foydalanadigan chipga mos keladi. Siz qism nomlari ro'yxatini sudo ardude -c linuxspi -p? Turini kiritish orqali topishingiz mumkin. Dasturingizni o'chirish uchun uning joriy katalogda ekanligiga ishonch hosil qiling va kiriting

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

Ikkala buyruqdan so'ng, chip o'zgartirilganda LED yonadi.

3 -qadam: Arduino dasturlarini AVR -ga o'rnatish

Arduino dasturlarini AVR -ga o'rnatish
Arduino dasturlarini AVR -ga o'rnatish
Arduino dasturlarini AVR -ga o'rnatish
Arduino dasturlarini AVR -ga o'rnatish
Arduino dasturlarini AVR -ga o'rnatish
Arduino dasturlarini AVR -ga o'rnatish

Bu ko'rsatmaning asosiy yo'nalishi-bu allaqachon yozilgan yoki kompilyatsiya qilinadigan emas, balki oldindan tuzilgan dasturlarni chiplarga o'chirish. Ammo, men qanday qilib Arduino IDE yordamida ikkilik fayllarni yig'ish va bu usul yordamida ularni yalang'och AVR chiplariga olish mumkinligini tushuntirmoqchi edim, chunki Arduino -ni o'rganish juda oson va ko'plab darsliklar va misollar mavjud.

Birinchidan, siz yonib -o'chadigan AVR chiplari haqida ma'lumot qo'shishingiz kerak, shunda IDE ular uchun kompilyatsiya qilishni biladi. Jeyms Sleeman github -da mavjud bo'lgan ba'zi o'rnatish fayllarini juda foydali tarzda yig'di. Ulardan foydalanish uchun Arduino IDE -dagi "Preferences" menyusini oching va "Qo'shimcha taxtalar menejeri URL -lari" maydonining yonidagi katakchani bosing. Ko'rsatilgan muloqot oynasida quyidagi URL manzillarini nusxalash va joylashtirish:

Keyin "Asboblar" menyusiga o'ting va "Kengash" pastki menyusida "Kengash menejeri …" variantini toping. Boards Manager dialog oynasidagi ro'yxatning oxirigacha pastga aylantiring va DIY ATmega va DIY ATtiny taxtalarini o'rnating.

Dasturlarni kompilyatsiya qilish uchun avval "Protsessor" menyusida to'g'ri chipni, shuningdek, protsessor tezligini to'g'ri tanlaganingizga ishonch hosil qiling. "Bootloader -dan foydalaning: Yo'q" variantini tanlang, chunki biz to'g'ridan -to'g'ri Pi bilan yuklaymiz va shu tariqa Arduino yuklash qurilmasi egallaydigan qo'shimcha joydan foydalanishimiz mumkin. Endi "Tekshirish" tugmasini bosing (tasdiq belgisi). Bu sizning dasturingizni yuklamasdan turib kompilyatsiya qiladi (chunki siz bu qadamni o'zingiz qilyapsiz).

Hamma narsa yaxshi deb faraz qilsangiz, endi siz tuzilgan dasturni Pi -ga o'tkazishingiz kerak. IDE ularni vaqtinchalik joyga yashiradi, chunki u dasturlarni o'zi yuklash uchun mo'ljallangan. Windows -da, bu foydalanuvchi katalogidagi "arduino_build" bilan boshlanadigan papkada AppData/Local/Temp -da.. Hex faylini qidiring - bu sizning dasturingiz! Uni FTP orqali yoki USB -tayoq yordamida Pi -ga yuboring va siz biznesdasiz.

Buning uchun dasturlarni kompilyatsiya qilish uchun sizda Windows kompyuteri yoki Mac bo'lishi kerak, keyin uni Pi ga yuborasiz. Buni Pi -da qilish juda yoqimli bo'lardi, lekin afsuski, Raspbian omborida mavjud Arduino IDE -ning rasmiy versiyasi ancha eski va boshqaruv menejeri yo'q. Bu holda, yalang'och AVR -ni kompilyatsiya qilish uchun tegishli sozlamalarni qo'shish biroz qiyinroq. Sizning Pi -da Arduino -ning so'nggi versiyasini kompilyatsiya qilish bo'yicha qo'llanmalar mavjud - agar siz shunday qilishni xohlasangiz, ularni toping! Menimcha, IDE -ni chipni IDE -dan o'chirish uchun linuxspi dasturchisidan foydalanishga ruxsat berish kerak (masalan, "Yuklab olish" tugmasi yordamida), lekin bu mening sabr -toqatim va mahoratim darajasidan tashqarida - agar bilsangiz qandaydir tarzda, buni izohlarda yozing! Va nihoyat, siz dasturlarni to'g'ridan-to'g'ri AVR-C-da yozishingiz va ularni Raspberry Pi-da AVR-ni ishlab chiqish uchun to'liq platformani berib, avr-gcc bilan Pi-da kompilyatsiya qilishingiz mumkin. Men ozgina ish qildim va agar siz bu yo'ldan borishni xohlasangiz, sizni tabriklayman. Yonib keting!

Tavsiya: