Mündəricat:

Dragon Rider 500 -dən AVR Əjdahanızla necə istifadə olunur: 10 addım
Dragon Rider 500 -dən AVR Əjdahanızla necə istifadə olunur: 10 addım

Video: Dragon Rider 500 -dən AVR Əjdahanızla necə istifadə olunur: 10 addım

Video: Dragon Rider 500 -dən AVR Əjdahanızla necə istifadə olunur: 10 addım
Video: Assembling the Dragon Rider 500 for Use With the AVR Dragon 2024, Iyul
Anonim
Dragon Rider 500 -dən AVR Əjdahanızla Necə İstifadə Edəcəksiniz
Dragon Rider 500 -dən AVR Əjdahanızla Necə İstifadə Edəcəksiniz

Bu təlimat, Ecros Technologies -dən Dragon Rider 500 -ün bəzi xüsusiyyətlərindən necə istifadə olunacağına dair bir qəza kursudur. Ecros saytında çox ətraflı İstifadəçi Bələdçisinin olduğunu unutmayın.

Dragon Rider, AVR Dragon by Atmel adlı bir AVR mikrokontrolör proqramçısı ilə istifadə üçün bir interfeys lövhəsidir. Əlavə məlumat üçün: Atmel's Wesite: https://www.atmel.com/ AVR Dragon linki: https://www.atmel.com/dyn/products/tools_card.asp? Tool_id = 3891 Ecros Technology tərəfindən Dragon Rider 500: https://www.ecrostech.com/AtmelAvr/DragonRider/index.htm Dragon Rider 500 montajı Təlimat: https://www.instructables.com/id/Assembling-the-Dragon-Rider-500-for-use-with- the-A/AVR mikro nəzarətçiləri haqqında hər şeyi öyrənin:

Addım 1: AVR Dostum

Proqramlaşdırma üçün AVR Dragon -dan istifadə etmək üçün bəzi proqramlaşdırma proqramlarına ehtiyacınız var. Ubuntu əməliyyat sistemi (linux) ilə AVRdude istifadə edirəm və nəticələrdən çox məmnunam. Bu təlimat proqramlaşdırma proqramının incəlikləri ilə məşğul olmayacaq. Proqramlaşdırma proqramını necə quracağınızı və ya necə istifadə edəcəyinizi bilmirsinizsə, sizi sürətləndirmək üçün bu təlimatı yoxlayın: https://www.instructables.com/id/Getting-started-with-ubuntu-and-the- AVR-əjdaha/Düşünürəm ki, bir Dragon Rider 500 alıb və yığmısınızsa, AVR Dragon ilə bir çipi necə proqramlaşdıracağınızı artıq bilirsiniz.

Addım 2: ATtiny2313 - LEDləri yanıb -sönün

ATtiny2313 - LEDləri yandırın
ATtiny2313 - LEDləri yandırın
ATtiny2313 - LEDləri yandırın
ATtiny2313 - LEDləri yandırın
ATtiny2313 - LEDləri yandırın
ATtiny2313 - LEDləri yandırın

20 pinli bir mikro nəzarətçi olan bir ATtiny2313 proqramlaşdıraq. Dragon Rider 500-də bir neçə fərqli ölçülü AVR mikro nəzarətçi üçün yuva var. Bunlara daxildir: 8, 20, 28 və 40 pinli prizlər. Hansı prizdən istifadə etdiyinizə görə, Dragon Rider lövhəsindəki tullananlar fərqli şəkildə qurulmalıdır.

Jumper Ayarları

Atlayıcıları Dragon Rider -ə qoyun ki, şuntlar aşağıdakı sancaqları birləşdirsin. (pin4, J22 -J -24 üçün mərkəzi pindir) Pinlər: J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41Bu, ISP (Sistem Proqramlaşdırılmasında) üçün imkan verən əsas quruluşdur.

Blinky Blinky

Proqramlaşdıracağınız bir şey olmadıqca proqramlaşdırmanın heç bir xeyri yoxdur. Dragon Rider -in LED -lərini bir anda yanıb -sönmək üçün çox qısa bir kod nümunəsi yazdım. LED başlığını (J29) PortB başlığına (J2) bağlamaq üçün bir lent kabeli istifadə edin.

Proqramlaşdırma

C faylını, həmçinin makefile və hex faylını daxil etdim. Girişdə qeyd etdiyim kimi, Təlimatlandırmada proqramlaşdırmanın proqram tərəfini əhatə edə bilmirəm. Dragon Rider heç bir şeyin proqram tərəfini dəyişdirmədiyi üçün AVR Dragon üçün etdiyiniz kimi bir proqram.

Addım 3: LCD əlavəsini istifadə edin

LCD əlavəsinin istifadəsi
LCD əlavəsinin istifadəsi

LCD Əlavəni istifadə etməyin sadə bir yolu. Bu, LCD ekrana "Dragon Rider" yazacaq.

Avadanlıq:

  • ATtiny2313
  • R/W Jumper: R/W, Dragon Rider Board -da "BIT1" ə bağlanmalıdır (Montaj Təlimatında olan izahata baxın)
  • J23: Bu keçid ISP proqramlaşdırması üçün quraşdırılmalı, lakin LCD -nin düzgün işləməsi üçün sonra çıxarılmalıdır.
  • Şerit kabel istifadə edərək LCD -ni PORT B -yə bağlayın (J31 - J2)

Proqram təminatı

LCD-ni 4 bit rejimində idarə etmək üçün Peter Fleury-nin LCD kitabxanasından istifadə edirəm. Kitabxananı yükləmək üçün Peterin Ana səhifəsinə baxın. Lcd.c kodunuzla tərtib olunduğundan və lcd.h -də aşağıdakı dəyişiklikləri etdiyinizdən əmin olmalısınız:

Daxili RC osilatorundan istifadə edirik, buna görə XTAL 1MHz üçün qurulmalıdır:

#XTAL 1000000 təyin edin

  • Liman parametrləri PORTB -a uyğunlaşdırılmalıdır:
  • #LCD_PORT PORTBunu təyin edin

  • 4 məlumat xətti üçün pin uyğunlaşdırılmalıdır:
  • #define LCD_DATA0_PIN 4 #LCD_DATA1_PIN 5 təyin edin #LCD_DATA2_PIN 6 təyin edin #LCD_DATA3_PIN 7 təyin edin

  • RS, RW və E üçün pinout uyğunlaşdırılmalıdır:
  • #LCD_RS_PIN 3 təyin edin #LCD_RW_PIN 1 təyin edin #LCD_E_PIN 2 təyin edin

    Peter Fleury LCD kitabxanasında etdiyi iş sayəsində əsas proqram çox sadədir.

    #include #include "lcd.h" int main (void) {lcd_init (LCD_DISP_ON); // lcd_clrscr () imleci söndürüldükdə LCD -ni işə salın; // LCD ekranı təmizləyin lcd_gotoxy (5, 0); // İmleci bu yerə köçürün lcd_puts ("Dragon"); // Bu sətri LCD lcd_gotoxy (6, 1) üzərinə qoyun; // İmleci bu yerə aparın lcd_puts ("Rider"); // (;;) üçün bu sətiri LCD -yə qoyun {// Əbədi heç nə etmə (Mesaj artıq LCD -də göstərilir)}}

    Kod Əlavə edildi

    Əlavə edilən koda Peter Fleury -nin icazəsi ilə LCD kitabxanası (lcd.c və lcd.h) daxildir. Təşəkkür edirəm Peter! Etdiyim yeganə dəyişiklik Defines -də düzgün sancaqlar qurmaqdır. Zəhmət olmasa paketi yükləmək üçün onun saytına daxil olun: https://www.jump.to/fleuryEric B. Weddington və Jorg Wunsch tərəfindən yazılmış istifadə etdiyim bir makefile də daxil etmişəm. Mən avrfreaks.net saytında Jorg -a bir PM göndərdim, amma ondan heç bir cavab almadım. Linux və Əjdahadan istifadə etmək üçün makefile -də bir neçə dəyişiklik var. Hər ikinizə təşəkkür edirəm, zəhmət olmasa işinizi paylaşmağımla bağlı seçimlərinizi mənə bildirin.

    Addım 4: 28 pinli UC ISP Proqramlaşdırması (ATmega8)

    28 pinli UC ISP Proqramlaşdırması (ATmega8)
    28 pinli UC ISP Proqramlaşdırması (ATmega8)
    28 pinli UC ISP Proqramlaşdırması (ATmega8)
    28 pinli UC ISP Proqramlaşdırması (ATmega8)

    Növbəti layihə nümayişində 28 pinli avr olan ATmega8 istifadə ediləcək. Budur, 28 pinli mikro nəzarətçiləri ISP proqramlaşdırmaq üçün əsas tullanan dəsti.

    Jumper Ayarları

    Atlayıcıları Dragon Rider -ə qoyun ki, şuntlar aşağıdakı sancaqları birləşdirsin. (pin4, J22 -J -24 üçün mərkəzi pindir) Pinlər: J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42

    Texniki Məlumat

    • J11 və J12 -ni bu şəkildə bağlamaq, bu pinləri I/O pinləri kimi istifadə etməyə imkan verir. Alternativ, bu sancaqları xarici kristal ilə əlaqə qurmaq üçün yönləndirmək olardı.
    • J13 -ü bu şəkildə bağlamaq, onu sıfırlama pimi olaraq istifadə etməyə imkan verir. Alternativ, bu pini G/Ç pin kimi istifadə etmək üçün PORTC başlığına yönləndirəcək. (bunun bir çox çatışmazlıqları olacaq, o cümlədən bu çipi ISP -dən istifadə edərək proqramlaşdıra bilməməsi).
    • J16 və J22-J24, uyğun pinləri (Sıfırlama, MISO, MOSI və SCK) AVR Dragonun ISP başlığına yönləndirmək üçün bu şəkildə bağlanmışdır.

    Addım 5: Qabaqcıl LCD və Düymə İstifadəsi: Böyük Saat

    Qabaqcıl LCD və Düymə İstifadəsi: Böyük Saat
    Qabaqcıl LCD və Düymə İstifadəsi: Böyük Saat

    Bu LCD ekran və düymələrdən istifadə edən əyləncəli bir layihədir. LCD -də Real Time Clock funksiyaları və xüsusi simvollarla məşğul olacağıq. Aşağıdakı şəkildə LCD ekranda çoxlu sayda 19:26:07 pm vaxtını görə bilərsiniz. Hər bir nömrə, çoxlu rəqəmi göstərmək üçün 2x2 simvoldan istifadə edir. Bu, XBMC layihəsi üçün əvvəlcə Xtinus tərəfindən yazılmış bir şriftdən istifadə edir. Düymələr saatı təyin etmək üçün istifadə olunur. Saatı sola artırır, Dəqiqələri artırır, Sağ 12 ilə 24 saat arasında dəyişir və Enter saniyələri sıfıra sıfırlayır. Çox dəqiq olmayan daxili osilatördən istifadə etdiyimiz üçün saat çox yaxşı vaxt keçirmir, amma bu proqramı daha dəqiq bir xarici kristal istifadə etməklə asanlıqla dəyişdirmək olar. Aşağıdakı videoda bunu hərəkətdə gör. Bu kodun necə işlədiyini izah etmək qaydasındadır, amma hazırda vaxtım yoxdur. Hələlik LCD başlığını (J31) PORTD (J4) və düymə başlığını (J30) PORTB (J2) ilə birləşdirin. SW1 və SW2 -nin söndürmə mövqeyində olduğundan əmin olun. AVR Dragon -u usb kabelinə qoşun və kabelin digər ucunu kompüterinizə qoşun. SW2 -ni yandırın və seçdiyiniz proqramlaşdırma proqramı ilə ATmega8 -i proqramlaşdırın (aşağıda altıbucaqlı fayl; qoruyucular zavod parametrlərində yandırılmışdır). QEYD: Sol və Yuxarı düymələrindən istifadə etmək üçün J22 və J24 -dən olan şantları çıxarmalısınız. bu güc kəsildikdə.

    Addım 6: Yüksək Gərginlik Proqramlaşdırması

    Yanlış qoruyucu parametrləri təyin etdiyim bir ATtiny2313 -ü diriltmək üçün Yüksək Gərginlik Paralel Proqramlaşdırmasından istifadə etdim. Bu təlimat üzərində işləyərkən ikinci dəfə ehtiyacım var idi, çünki təsadüfən istədiyim lfuse parametrini hfuse reyestrinə yazdım….. ooops. Yüksək Gərginlikli paralel proqramlaşdırma sizin ixtiyarınızda olmaq üçün lazımlı bir vasitədir! Aşağıda tullanan parametrlərimin siyahıları verilmişdir: ÖZ RİSKİNİZDƏN İSTİFADƏ EDİN, BU PROQRAMLAMA TİPİ NƏ ETDİYİNİZİ BİLMƏSƏNİZDƏ DƏZƏRİNİZƏ ZARAR VERƏ bilər !! Yüksək Gərginlikli Paralel Proqramlaşdırma: U3 yuvasında ATtiny2313: SW1 - OFFSW2 - ONJ5, J6, J7 - pin1 və pin2XTAL1 - pin1 və pin2J16 birləşdirin - pin1 və pin22x5 IDC Kabellərini birləşdirin: PROG_CTRL PORT D -ə, PROG_DATA BAXILI BAXILDI J8-J13, J18, J19, J20, J22-J28, J24) Digər çiplər üçün Atmelin STK500 istifadəçi təlimatından lazım olan parametrləri anlaya bilməlisiniz.

    Addım 7: Lövhənin kənarında genişlənmə

    İdarə Heyətinin kənarında genişlənir
    İdarə Heyətinin kənarında genişlənir

    Çörək taxtası ilə əlaqə qurmağı çox asan hesab edirəm. Bu, eyni zamanda kodu prototipləşdirməkdə və inkişaf etdirməkdə daha çox rahatlığa imkan verir. Aşağıda Dragon Rider -ə qoşulmuş bir neçə çörək taxtası görəcəksiniz. Şerit kabelləri bir ucunda uyğun portlara bağlayıram. Digər tərəfdən, uyğun ICD dirijorunu çörək lövhələrinə bağlamaq üçün tullanan tellərdən istifadə edirəm.

    Addım 8: Nəticə

    Bu Təlimata cəlb edilə biləcək daha çox şey var. Məhz bu gecə, əjdahanı Dragon Rider-dən çıxarmadan 6 pinli proqramlaşdırma başlığından istifadə etməyə imkan verən bir adapter tamamlayıram. Özünüzü necə quracağınız haqqında məlumat verəcəyəm … tezliklə. Əlavə etməyi düşündüyünüz başqa şeylər varsa, şərh yazın.

    Addım 9: 6 Pimli ISP əlavə edin

    6 Pinli ISP əlavə olunur
    6 Pinli ISP əlavə olunur
    6 Pinli ISP əlavə olunur
    6 Pinli ISP əlavə olunur
    6 Pinli ISP əlavə olunur
    6 Pinli ISP əlavə olunur

    Adətən bütün layihələrim üçün 6 pinli bir ISP başlığı qururam, buna görə lazım olduqda çipi yenidən proqramlaşdıra bilərəm və layihə lövhəsindən çıxarmamalıyam. Əjdaha sürücüsünün təəssüf ki, 6 pinli bir ISP başlığı yoxdur, amma onu necə əldə edəcəyimi anladım.

    Xəbərdarlıq !

    Bu bir hackdir. Bunun necə işlədiyini dəqiq bilmirsinizsə, bunu etməyin

    6 pinli isp başlığını təmin etmək üçün öz adapter lövhəmi və 3 pinli tullanan qurdum. Etdiyiniz şey, Əjdaha Riderini proqrama və 8 pinli mikro nəzarətçiyə qurmaqdır. 3 pinli bir yuvadan istifadə edərək 1 və 3-cü pinləri bağlamaq üçün J8-dən tullanıram. Bu, saat siqnalını PortB bağlayıcısına yönəldir. Daha sonra PortB başlığından adapter lövhəmə və voilaya bir keçid kabeli çəkirəm! Aşağıdakı şəkillər var …. lütfən, lütfən, lütfən, nə etdiyinizi həqiqətən başa düşmədiyiniz halda bunu etməyin, çünki AVR Əjdahanıza zərər verə bilərsiniz və ya bunu səhv etsəniz daha pisdir.

    Bağlantı: PortB ISP1 42 13 34 NC5 NC6 57 NC8 NC9 610 2

    Addım 10: Serial Bağlantı və LCD istifadə edərək RSS oxuyucusu

    Serial Bağlantı və LCD istifadə edərək RSS oxuyucusu
    Serial Bağlantı və LCD istifadə edərək RSS oxuyucusu
    Serial Bağlantı və LCD istifadə edərək RSS oxuyucusu
    Serial Bağlantı və LCD istifadə edərək RSS oxuyucusu

    Bu inkişaf lövhəsi ilə oynamağa davam edirəm. Bu dəfə günortanın bir hissəsini RSS oxunuşunu inkişaf etdirməyə sərf etdim (əsasən şeylərin piton tərəfində). Öz təlimatçılığına zəmanət verdiyini düşünmürəm, buna görə bura əlavə edirəm.

    Avadanlıq

    Bir inkişaf lövhəsi olaraq Dragon Rider 500 -dən istifadə edirik. Bu, sizə lazım olan bütün avadanlıqları təmin edir (bütün əlavələr dəstinizə sahib olduğunuzu nəzərə alaraq). Əlbəttə ki, bunu öz cihaz qurğunuzla edə bilərsiniz:

    • ATmega8 mikro nəzarətçisi (və ya bütün əlaqələr üçün USART və kifayət qədər pinləri olan hər hansı bir cihaz
    • Mikro nəzarətçini proqramlaşdırmağın bir yolu (AVR Dragon istifadə edirəm)
    • Serial rabitə üçün MAX232 çipi
    • DB9 konnektoru
    • HD44780 LCD ekran
    • Kristal (8MHz kristal istifadə etdim)
    • Müxtəlif kondansatörlər və rezistorlar

    Bir sxem aşağıda verilmişdir. Əjdaha Riderində əlaqələri yönləndirmək üçün bir az yaradıcılıqdan istifadə etməliyik. Normalda D portu birbaşa LCD başlığına qoşula bilər. Serial əlaqə üçün lazım olan USART PD0 və PD1 istifadə etdiyi üçün burada belə deyil. Bundan əlavə, Port B istifadə edilə bilməz, çünki PB6 və PB7 xarici kristal üçün istifadə olunur. LCD, Port B və Port D üçün başlıqlara bir lent kabeli bağlayıram, sonra düzgün marşrutlar yaratmaq üçün tullanan tellərdən istifadə edirəm. LCD başlığına gərginlik və torpaq bağlamağı unutmayın.

    Proqram təminatı

    Bu layihə üçün proqram təminatı iki hissədən ibarətdir: mikrokontrolör üçün proqram təminatı və RSS -lərin silinməsi və serial bağlantısı üzərindən göndərilməsi üçün python skripti. /fleury). Güclü və yığcam, çox yönlüdür və hardware qurğunuzu dəyişdirmək asandır. Əlavə edilmiş başlıq faylına (lcd.h) baxsanız, məlumat bitləri olaraq Port D ilə, bit B isə nəzarət bitləri olaraq 4 bit rejimində işlədiyimi görəcəksiniz. Bu proqram təminatının konsepsiyası olduqca sadədir:

    • Mikro nəzarətçi işə salındıqdan sonra "RSS Reader" yazır və sonra serial məlumatlarını gözləyir.
    • Alınan serial məlumatların hər baytı, 16 simvoldan ibarət bir tamponun sola keçməsinə və baytın tampona əlavə edilməsinə, sonra isə tamponun göstərilməsinə səbəb olur.
    • Mikro nəzarətçi tərəfindən üç xüsusi əmr qəbul edilir: 0x00, 0x01 və 0x02. Bunlar aydın ekrandır, 0 -cı sətrə və 1 -ci sətrə keçin.

    Python ScryptI, RSS məlumatlarını silmək və serial bağlantısı üzərindən göndərmək üçün bir pyton skript yazdı. Bunun işləməsi üçün yəqin ki, sisteminizə yükləməli olacağınız "pyserial" python modulu lazımdır. RSS axını pyton faylının yuxarısında konfiqurasiya edilə bilər. Diqqət yetirin ki, lent üçün bir ad daxil etməlisiniz. Orada üç nümunə var, əminəm ki, düzgün sintaksis üçün bunları izləyə bilərsiniz

    • Avadanlıq yığın
    • Mikro nəzarətçini proqramlaşdırın (bunu özünüz tərtib etmək istəmirsinizsə dragon_rss.hex istifadə edilə bilər). 8 MHz kristal istifadə edən ATmega8 üçün qoruyucu parametrlər: lfuse = 0xEF hfuse = 0xD9
    • Əjdaha Riderini işə salın və serial kabelinin qoşulduğundan əmin olun (LCD: "RSS Reader" yazmalıdır)
    • Python proqramını icra edin (python serial_rss.py)
    • Zövq alın

    Tövsiyə: