Mundarija:

Dragon Rider 500 -dan AVR Dragon -dan qanday foydalanish kerak: 10 qadam
Dragon Rider 500 -dan AVR Dragon -dan qanday foydalanish kerak: 10 qadam

Video: Dragon Rider 500 -dan AVR Dragon -dan qanday foydalanish kerak: 10 qadam

Video: Dragon Rider 500 -dan AVR Dragon -dan qanday foydalanish kerak: 10 qadam
Video: Assembling the Dragon Rider 500 for Use With the AVR Dragon 2024, Iyul
Anonim
Dragon Rider 500 -dan AVR Dragon -dan qanday foydalanish kerak
Dragon Rider 500 -dan AVR Dragon -dan qanday foydalanish kerak

Bu ko'rsatma Ecros Technologies -dan Dragon Rider 500 -ning ba'zi xususiyatlarini qanday ishlatishni o'rgatadi. Ecros veb -saytida juda batafsil Foydalanuvchi uchun qo'llanma mavjudligini biling.

Dragon Rider - bu AVR Dragon by Atmel deb nomlangan AVR mikrokontroller dasturchisi bilan ishlash uchun mo'ljallangan interfeys paneli. Qo'shimcha ma'lumot uchun: Atmel's Wesite: https://www.atmel.com/ AVR Dragon havolasi: https://www.atmel.com/dyn/products/tools_card.asp? Tool_id = 3891 Ecros Technology tomonidan Dragon Rider 500: https://www.ecrostech.com/AtmelAvr/DragonRider/index.htm Dragon Rider 500 yig'ilishi Ko'rsatmalar: https://www.instructables.com/id/Assembling-the-Dragon-Rider-500-for-use-with- a-AV/AVR mikrokontrollerlari haqida hamma narsani bilib oling: https://www.avrfreaks.net Bu ko'rsatma vaqt o'tishi bilan o'sib borishi mumkin, shuning uchun qayta-qayta tekshirib ko'ring!

1 -qadam: AVR Dude

AVR Dragon -dan dasturlash uchun sizga dasturiy ta'minot kerak. Men AVRdude -ni Ubuntu operatsion tizimi (Linux) bilan ishlataman va natijalardan juda xursandman, bu ko'rsatma dasturiy ta'minotning murakkabligi bilan shug'ullanmaydi. Agar siz dasturiy ta'minotni qanday o'rnatishni yoki ishlatishni bilmasangiz, sizni tezlashtirish uchun ushbu ko'rsatmaga qarang: https://www.instructables.com/id/Getting-started-with-ubuntu-and-the- AVR-ajdaho/Menimcha, agar siz Dragon Rider 500-ni sotib olgan bo'lsangiz va yig'gan bo'lsangiz, siz AVR Dragon bilan chipni qanday dasturlashni bilasiz.

2 -qadam: ATtiny2313 - LEDlarni o'chiring

ATtiny2313 - LEDlarni o'chiring
ATtiny2313 - LEDlarni o'chiring
ATtiny2313 - LEDlarni o'chiring
ATtiny2313 - LEDlarni o'chiring
ATtiny2313 - LEDlarni o'chiring
ATtiny2313 - LEDlarni o'chiring

Keling, 20-pinli mikrokontrolder bo'lgan ATtiny2313 dasturini yarataylik. Dragon Rider 500-da bir nechta AVR mikrokontrolderlari uchun turli xil rozetkalar mavjud. Bunga quyidagilar kiradi: 8, 20, 28 va 40 pinli rozetkalar. Qaysi rozetkadan foydalanayotganingizga qarab, Dragon Rider taxtasida o'tish moslamalari boshqacha o'rnatilishi kerak.

Jumper sozlamalari

Ajdaho haydovchisiga o'tish joylarini shunday joylashtiringki, shuntlar quyidagi pimlarni bog'lab qo'yadi. (pin4 - J22 -J -24 uchun markaziy pin) Pinlar: J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41 Bu provayderga (tizim dasturlashda) ruxsat beruvchi asosiy sozlash.

Blinky Blinky

Agar dasturlash uchun biror narsa bo'lmasa, dasturlash yaxshi bo'lmaydi. Men Dragon Rider -ning LEDlarini birdaniga miltillatish uchun juda qisqa kod misolini yozdim. LED sarlavhasini (J29) PortB sarlavhasiga (J2) ulash uchun tasma kabelidan foydalaning.

Dasturlash

Men C faylini, shuningdek makefile va hex faylini qo'shdim. Kirish qismida aytib o'tganimdek, men ko'rsatmalarni dasturlashning dasturiy tomonini qamrab ololmayman. AVR Dragon -dagi kabi dastur, chunki Dragon Rider narsalarning dasturiy tomonini umuman o'zgartirmaydi.

3-qadam: LCD qo'shimchasini ishlatish

LCD qo'shimchasidan foydalanish
LCD qo'shimchasidan foydalanish

Bu erda LCD qo'shimchasini ishlatishning oddiy usuli. Bu LCD ekranga "Dragon Rider" deb yozadi.

Uskuna:

  • Mening to‘plamlarim
  • R/V o'tish: R/V Dragon Rider bortidagi "BIT1" ga ulangan bo'lishi kerak (O'rnatish bo'yicha ko'rsatmaga qarang).
  • J23: Bu o'tish moslamasi ISP dasturlash uchun o'rnatilishi kerak, lekin LCD to'g'ri ishlashi uchun uni olib tashlash kerak.
  • LCDni tasma kabeli yordamida B portiga ulang (J31 - J2)

Dasturiy ta'minot

Men LCD-ni 4-bit rejimida boshqarish uchun Peter Fleury LCD kutubxonasidan foydalanayapman. Kutubxonani yuklab olish uchun Butrusning Bosh sahifasiga qarang, lcd.c sizning kodingiz bilan tuzilganligiga ishonch hosil qilishingiz va lcd.h -ga quyidagi o'zgartirishlarni kiritishingiz kerak:

Biz ichki RC osilatoridan foydalanmoqdamiz, shuning uchun XTAL 1 MGts ga o'rnatilishi kerak:

#XTAL 1000000 ni aniqlang

  • Port sozlamalarini PORTB ga o'zgartirish kerak:
  • #LCD_PORT PORTBini aniqlang

  • 4 ta ma'lumotlar liniyasi uchun pinout moslashtirilishi kerak:
  • #LCD_DATA0_PIN 4 ta'rifi #LCD_DATA1_PIN 5 ta'rifi #LCD_DATA2_PIN 6 ta'rifi #LCD_DATA3_PIN 7 ta'rifi

  • RS, RW va E uchun pinout moslashtirilishi kerak:
  • #LCD_RS_PIN 3 ni belgilang #LCD_RW_PIN 1ni belgilang #LCD_E_PIN 2 ni aniqlang

    Piter Florining LCD kutubxonasida qilgan ishlari tufayli asosiy dastur juda oddiy.

    #include #include "lcd.h" int main (void) {lcd_init (LCD_DISP_ON); // LCDni lcd_clrscr () kursorini o'chirib yoqing; // LCD displeyni tozalash lcd_gotoxy (5, 0); // Kursorni bu joyga o'tkazing lcd_puts ("Dragon"); // Bu satrni LCD lcd_gotoxy (6, 1) ga qo'ying; // Kursorni bu joyga o'tkazing lcd_puts ("Rider"); // (;;) uchun bu satrni LCD displeyiga qo'ying // // Hech qachon abadiy qilmang (Xabar LCDda allaqachon ko'rsatilgan)}}

    Kod biriktirilgan

    Ilova qilingan kodga Peter Flerining LCD kutubxonasi (lcd.c va lcd.h) kiradi, uning ruxsati bilan. Rahmat Piter! Men qilgan yagona o'zgarish - bu ta'riflarda tegishli pinlarni o'rnatish. Iltimos, paketni yuklab olish uchun uning saytiga tashrif buyuring: https://www.jump.to/fleuryMen shuningdek, Erik B. Weddington va Jorg Vunsh yozgan makefaylni o'z ichiga olganman. Men PMni avrfreaks.net saytiga Jorgga yubordim, lekin undan hech qachon javob olmaganman. Makefile -da Linux va Dragon -dan foydalanishga mos keladigan bir nechta o'zgarishlar mavjud. Ikkalangizga ham minnatdorman, iltimos, menga o'zingizning ishingizni baham ko'rishda o'z xohishingizni bildiring.

    4-qadam: 28-pinli UC ISP dasturlash (ATmega8)

    28-pinli UC ISP dasturlash (ATmega8)
    28-pinli UC ISP dasturlash (ATmega8)
    28-pinli UC ISP dasturlash (ATmega8)
    28-pinli UC ISP dasturlash (ATmega8)

    Loyihaning navbatdagi namoyishi 28 pinli avr bo'lgan ATmega8-dan foydalanadi. Bu erda 28-pinli mikrokontrolderlarni ISP-ni dasturlash uchun asosiy o'tish moslamasi.

    Jumper sozlamalari

    Ajdaho haydovchisiga o'tish joylarini shunday joylashtiringki, shuntlar quyidagi pimlarni bog'lab qo'yadi. (pin4 - J22 -J -24 uchun markaziy pin) Pinlar: J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42

    Texnik ma'lumotlar

    • J11 va J12 ni shu tarzda ulash sizga bu pinlarni kirish -chiqish pinlari sifatida ishlatishga imkon beradi. Muqobil variant bu pinlarni tashqi kristal bilan aloqa o'rnatish uchun yo'naltirishdir.
    • J13 -ni shu tarzda ulash bizga uni tiklash pimi sifatida ishlatishga imkon beradi. Shu bilan bir qatorda, bu pinni kiritish -chiqarish pin sifatida foydalanish uchun PORTC sarlavhasiga yo'naltiradi. (bu juda ko'p kamchiliklarga ega bo'lishi mumkin, shu jumladan, bu chipni ISP yordamida dasturlash mumkin emas).
    • J16 va J22-J24 mos keladigan pinlarni (Reset, MISO, MOSI va SCK) AVR Dragon provayder sarlavhasiga yo'naltirish uchun shu tarzda ulangan.

    5 -qadam: Kengaytirilgan LCD va tugmalardan foydalanish: Katta soat

    Kengaytirilgan LCD va tugmalardan foydalanish: Katta soat
    Kengaytirilgan LCD va tugmalardan foydalanish: Katta soat

    Bu LCD displey va tugmalardan foydalanadigan qiziqarli loyiha. Biz LCD displeyda Real Time Clock funktsiyalari va maxsus belgilar bilan shug'ullanamiz. Pastdagi rasmda siz LCD displeyda 19:26:07 soat katta sonda ko'rsatilgan vaqtni ko'rishingiz mumkin. Har bir raqam katta raqamni ko'rsatish uchun 2x2 belgidan iborat. Bu XBMC loyihasi uchun dastlab Xtinus tomonidan yozilgan shriftdan foydalanadi. Tugmalar soatni sozlash uchun ishlatiladi. Chap soatni oshiradi, daqiqalarni oshiradi, o'ng 12 dan 24 soatgacha o'zgaradi va Enter soniyani nolga qaytaradi. Soat juda yaxshi vaqtni ushlab turmaydi, chunki biz juda aniq bo'lmagan ichki osilatordan foydalanmoqdamiz, lekin bu dasturni aniqroq tashqi kristall yordamida o'zgartirish mumkin. Buni amaldagi videodan ko'ring. Ushbu kod qanday ishlashini tushuntirish tartibda, lekin hozir vaqtim yo'q. Hozircha LCD sarlavhasini (J31) PORTD (J4) ga va tugma boshini (J30) PORTB (J2) ga ulang. SW1 va SW2 o'chirilgan holatda ekanligiga ishonch hosil qiling. AVR Dragon -ni USB kabeliga ulang va kabelning ikkinchi uchini kompyuterga ulang. SW2 -ni yoqing va siz tanlagan dasturiy ta'minot bilan ATmega8 -ni dasturlashtiring (quyida olti burchakli fayl; zavod sozlamalarida sigortalar yonib ketgan). ESLATMA: Chap va yuqoriga tugmalaridan foydalanish uchun J22 va J24 -dagi shantlarni olib tashlashingiz kerak bo'ladi. bu quvvat o'chirilgan paytda.

    6 -qadam: yuqori voltli dasturlash

    Men noto'g'ri sug'urta sozlamalarini o'rnatgan ATtiny2313ni qayta tiklash uchun yuqori kuchlanishli parallel dasturlashdan foydalandim. Men bu ko'rsatma ustida ishlayotganda ikkinchi marta kerak bo'ldim, chunki tasodifan hfuse registriga kerakli lfuse sozlamasini yozdim …. oop. Yuqori voltli parallel dasturlash - bu sizning ixtiyoringizda bo'lgan qulay vosita! Quyida mening o'tish moslamalarim ro'yxati keltirilgan: O'Z XATARINGIZDAN FOYDALANING, BU PROGRAMLAMA TURI QANDAY QILISHINGIZNI BILMASANGIZDAN zarar etkazishi mumkin !! Yuqori kuchlanishli parallel dasturlash: U3 uyasida ATtiny2313: SW1 - OFFSW2 - ONJ5, J6, J7 - pin1 va pin2XTAL1 ulang - pin1 va pin2J16 ulang - pin1 va pin22x5 IDC kabellarini ulang: PROG_CTRL PORT D ga, PROG_DATA PORT BA ga ulanadi (boshqa ulagichlar ulanmagan) J8-J13, J18, J19, J20, J22-J28, J24) Boshqa chiplar uchun siz Atmelning STK500 uchun qo'llanmasidan kerakli sozlamalarni aniqlab olishingiz kerak.

    7 -qadam: Kengash tashqarisida kengayish

    Kengash tashqarisida kengayish
    Kengash tashqarisida kengayish

    Menga non paneli bilan aloqa o'rnatish juda oson. Bu bir vaqtning o'zida kodni prototiplash va ishlab chiqishda ancha moslashuvchanlikni beradi, quyida siz Dragon Rider -ga ulangan bir nechta taxtalarni ko'rasiz. Men tasma kabellarini bir uchida tegishli portlarga ulayman. Boshqa tomondan, men o'tish kabellarini ishlataman, tegishli ICD o'tkazgichini non paneli bilan ulash uchun.

    8 -qadam: Xulosa

    Bu ko'rsatmaga ko'proq narsa jalb qilinishi mumkin. Kechqurun men Dragon Rider-dan ajdarni olib tashlamasdan 6 pinli dasturlash sarlavhasini ishlatishga imkon beradigan adapterni to'ldiraman. Men o'zimni qanday qilib qurish haqida ma'lumot beraman … tez orada. Agar sizda boshqa narsalar bo'lsa, ularni qo'shishingiz kerak.

    9-qadam: 6-pinli ISP qo'shish

    6-pinli ISP qo'shilishi
    6-pinli ISP qo'shilishi
    6-pinli ISP qo'shilishi
    6-pinli ISP qo'shilishi
    6-pinli ISP qo'shilishi
    6-pinli ISP qo'shilishi

    Men odatda barcha loyihalarim uchun 6-pinli ISP sarlavhasini tuzaman, shuning uchun kerak bo'lganda chipni qayta dasturlashim mumkin va uni loyiha taxtasidan olib tashlamasligim kerak. Afsuski, ajdaho chavandozida 6-pinli ISP sarlavhasi yo'q, lekin men uni qanday qilib mavjud qilishni aniqladim.

    Ogohlantirish !!

    Bu xakerlik. Agar siz bu qanday ishlashini aniq bilmasangiz, buni qilmang

    6-pinli isp sarlavhasini etkazib berish uchun men o'z adapter platamni va 3-pinli o'tish moslamasini yaratdim. Siz nima qilayotgan bo'lsangiz, Dragon Rider dasturiga va 8-pinli mikrokontrolderga o'rnatiladi. 3-pinli rozetkadan foydalanib, men 1 va 3-gachasi pimlarni ulash uchun J8-ga ulayman. Bu soat signalini PortB ulagichiga yo'naltiradi. Keyin PortB sarlavhasidan adapter platamga va voilagacha o'tish kabelini o'tkazaman! Quyida rasmlar bor …. Iltimos, iltimos, iltimos, qilmang, agar siz nima qilayotganingizni aniq tushunmasangiz, buni qilmang, chunki siz AVR Dragon -ga zarar etkazishingiz mumkin, yoki agar siz buni noto'g'ri qilsangiz.

    Belgilash: PortB ISP1 42 13 34 NC5 NC6 57 NC8 NC9 610 2

    10 -qadam: Seriyali ulanish va LCD yordamida RSS o'quvchi

    Seriyali ulanish va LCD yordamida RSS o'quvchi
    Seriyali ulanish va LCD yordamida RSS o'quvchi
    Seriyali ulanish va LCD yordamida RSS o'quvchi
    Seriyali ulanish va LCD yordamida RSS o'quvchi

    Men ushbu rivojlanish taxtasi bilan o'ynashni davom ettiryapman. Bu safar men tushning bir qismini RSS o'qilishini ishlab chiqishga sarfladim (asosan narsalarning piton tomonida). O'ylaymanki, bu o'z ko'rsatmalariga ega emas, shuning uchun men uni bu erga qo'shaman.

    Uskuna

    Biz Dragon Rider 500 -ni ishlab chiqish taxtasi sifatida ishlatmoqdamiz. Bu sizga kerak bo'lgan barcha jihozlarni beradi (agar sizda barcha qo'shimchalar to'plami bo'lsa). Aytgancha, siz buni o'zingizning shaxsiy dasturingiz yordamida qilishingiz mumkin:

    • ATmega8 mikrokontroller (yoki USARTga ega bo'lgan va barcha ulanishlar uchun etarli pinli)
    • Mikrokontrollerni dasturlash usuli (men AVR Dragon -dan foydalanaman)
    • Seriyali aloqa uchun MAX232 chipi
    • DB9 ulagichi
    • HD44780 LCD displey
    • Kristal (men 8 MGts kristalli ishlatardim)
    • Turli xil kondansatörler va rezistorlar

    Ajdaho chavandozida biz ulanishlarni yo'naltirish uchun ijodkorlikdan foydalanishimiz kerak bo'ladi. Odatda D porti to'g'ridan -to'g'ri LCD sarlavhasiga ulanishi mumkin edi. Bu erda bunday emas, chunki ketma -ket ulanish uchun zarur bo'lgan USART PD0 va PD1 -dan foydalanadi. Bundan tashqari, B portini ishlatib bo'lmaydi, chunki tashqi kristal uchun PB6 va PB7 ishlatiladi, quyida bu muammoning echimi ko'rsatilgan. Men LCD, B port va D port sarlavhalariga tasma kabelini ulayman, so'ngra to'g'ri yo'nalishlarni o'rnatish uchun o'tish simlaridan foydalaning. LCD sarlavhasiga kuchlanish va erni ulashni unutmang.

    Dasturiy ta'minot

    Ushbu loyiha uchun dasturiy ta'minot ikki qismdan iborat: mikrokontroller uchun proshivka va RSS tasmalarini qirib tashlash va ularni ketma -ket ulanish orqali yuborish uchun python skripti. /uchqun). Bu kuchli va ixcham, ko'p qirrali va sizning dasturingizni sozlashni o'zgartirish oson. Agar siz biriktirilgan (lcd.h) sarlavhali faylga qarasangiz, men 4-bitli rejimda ishlayotganimni ko'rasiz, D porti esa ma'lumotlar biti sifatida, B porti esa boshqaruv biti sifatida. Bu dasturiy ta'minot kontseptsiyasi juda oddiy:

    • Ishga tushgandan so'ng, mikrokontroller "RSS Reader" ni ko'rsatadi va ketma -ket ma'lumotlarni kutadi.
    • Qabul qilingan ketma -ket ma'lumotlarning har bir bayti 16 ta belgidan iborat buferni chapga siljitadi va baytni buferga qo'shib, keyin buferni ko'rsatadi.
    • Mikrokontroller tomonidan uchta maxsus buyruq qabul qilinadi: 0x00, 0x01 va 0x02. Bu aniq ekran, 0 -qatorga o'tish va 1 -qatorga o'tish.

    Python ScryptI RSS ma'lumotlarini tozalash va ketma -ket ulanish orqali yuborish uchun pyton skriptini yozdi. Buning uchun tizimga o'rnatilishi kerak bo'lgan "pyserial" python moduli kerak bo'ladi. RSS tasmasi pyton faylining yuqori qismida sozlanishi mumkin. E'tibor bering, siz tasma nomini va tasma urlini kiritishingiz kerak. U erda uchta misol bor, ishonchim komilki, siz ularni to'g'ri sintaksis uchun bajarishingiz mumkin

    • Uskunani yig'ing
    • Mikrokontrollerni dasturlash (agar siz buni o'zingiz kompilyatsiya qilishni xohlamasangiz, dragon_rss.hex dan foydalanish mumkin). 8 MGts kristalli ATmega8 uchun sug'urta sozlamalari: lfuse = 0xEF hfuse = 0xD9
    • Dragon Rider -ni yoqing va ketma -ket simi ulanganligiga ishonch hosil qiling (LCD o'qishi kerak: "RSS Reader")
    • Python dasturini bajaring (python serial_rss.py)
    • Xursand bo'ling

    Tavsiya: