Isi kandungan:

Cara Menggunakan Dragon Rider 500 Dengan AVR Dragon Anda: 10 Langkah
Cara Menggunakan Dragon Rider 500 Dengan AVR Dragon Anda: 10 Langkah

Video: Cara Menggunakan Dragon Rider 500 Dengan AVR Dragon Anda: 10 Langkah

Video: Cara Menggunakan Dragon Rider 500 Dengan AVR Dragon Anda: 10 Langkah
Video: Making an Energy Sword from Halo 2024, Julai
Anonim
Cara Menggunakan Dragon Rider 500 Dengan AVR Dragon Anda
Cara Menggunakan Dragon Rider 500 Dengan AVR Dragon Anda

Instruksional ini adalah kursus kemalangan bagaimana menggunakan beberapa ciri Dragon Rider 500 dari Ecros Technologies. Perlu diketahui bahawa terdapat Panduan Pengguna yang sangat terperinci yang terdapat di laman web Ecros.

Dragon Rider adalah papan antara muka untuk digunakan dengan pengaturcara mikrokontroler AVR yang disebut AVR Dragon oleh Atmel. Untuk maklumat lebih lanjut: Atmel's Wesite: https://www.atmel.com/ AVR Dragon link: https://www.atmel.com/dyn/products/tools_card.asp? Tool_id = 3891 Dragon Rider 500 oleh Ecros Technology: https://www.ecrostech.com/AtmelAvr/DragonRider/index.htm Perakitan Dragon Rider 500 Diajar: https://www.instructables.com/id/Assembling-the-Dragon-Rider-500-for-use-with- the-A / Ketahui semua mengenai mikrokontroler AVR: https://www.avrfreaks.net Instruksional ini boleh berkembang seiring dengan masa, jadi periksa kembali sekarang dan lagi!

Langkah 1: Dude AVR

Anda memerlukan beberapa perisian pengaturcaraan untuk menggunakan AVR Dragon untuk pengaturcaraan. Saya menggunakan AVRdude dengan sistem operasi Ubuntu (linux) dan saya sangat berpuas hati dengan hasilnya. Ini yang diarahkan tidak akan menangani selok-belok perisian pengaturcaraan. Sekiranya anda tidak tahu cara mengatur atau menggunakan perisian pengaturcaraan, periksa instruksi ini untuk memberi anda kelajuan: https://www.instructables.com/id/Getting-started-with-ubuntu-and-the- AVR-dragon / Sangkaan saya adalah bahawa jika anda telah membeli dan memasang Dragon Rider 500, anda sudah tahu cara memprogramkan cip dengan AVR Dragon….. seterusnya!

Langkah 2: ATtiny2313 - Kelipkan LED

ATtiny2313 - Kelipkan LED
ATtiny2313 - Kelipkan LED
ATtiny2313 - Kelipkan LED
ATtiny2313 - Kelipkan LED
ATtiny2313 - Kelipkan LED
ATtiny2313 - Kelipkan LED

Mari atur cara ATtiny2313 yang merupakan mikrokontroler 20 pin. Dragon Rider 500 mempunyai soket untuk beberapa mikrokontroler AVR bersaiz berbeza. Ini termasuk: soket 8, 20, 28, dan 40 pin. Bergantung pada soket mana yang anda gunakan, jumper di papan Dragon Rider mesti diatur secara berbeza.

Tetapan Jumper

Tetapkan jumper pada Dragon Rider supaya shunts menghubungkan pin berikut. (pin4 adalah pin tengah untuk J22-J-24) Pin: J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41Ini adalah persediaan asas yang membolehkan ISP (Dalam Pengaturcaraan Sistem).

Blinky Blinky

Pengaturcaraan tidak baik kecuali anda mempunyai sesuatu untuk diprogramkan. Saya telah menulis contoh kod yang sangat pendek untuk mengedipkan LED Dragon Rider pada satu masa. Gunakan kabel pita untuk menyambungkan header LED (J29) ke header PortB (J2).

Pengaturcaraan

Saya telah memasukkan fail C serta fail makefile dan hex. Seperti yang saya nyatakan di intro, saya tidak dapat merangkumi bahagian perisian dari pengaturcaraan di Instructable. Program seperti yang anda lakukan untuk AVR Dragon, kerana Dragon Rider sama sekali tidak mengubah aspek perisian.

Langkah 3: Menggunakan LCD Add-on

Menggunakan LCD Add-on
Menggunakan LCD Add-on

Inilah kaedah mudah untuk menggunakan LCD Add-on. Ini akan menulis "Dragon Rider" ke skrin LCD.

Perkakasan:

  • ATtiny2313
  • R / W Jumper: R / W harus disambungkan ke "BIT1" di Dragon Rider Board (Lihat penjelasan dalam Assembly Instructable)
  • J23: Pelompat ini mesti dipasang untuk pengaturcaraan ISP tetapi kemudian dikeluarkan agar LCD berfungsi dengan baik.
  • Sambungkan LCD ke PORT B menggunakan kabel reben (J31 hingga J2)

Perisian

Saya menggunakan perpustakaan LCD Peter Fleury untuk memacu LCD dalam mod 4-bit. Lihat Laman Utama Peter untuk memuat turun perpustakaan. Anda perlu memastikan bahawa lcd.c disusun dengan kod anda dan anda membuat perubahan berikut pada lcd.h:

Kami menggunakan pengayun RC dalaman sehingga XTAL perlu ditetapkan untuk 1MHz:

#tentukan XTAL 1000000

  • Tetapan port perlu disesuaikan dengan PORTB:
  • #tentukan LCD_PORT PORTB

  • Pinout untuk 4 baris data perlu disesuaikan:
  • #tentukan LCD_DATA0_PIN 4 #tentukan LCD_DATA1_PIN 5 #tentukan LCD_DATA2_PIN 6 #tentukan LCD_DATA3_PIN 7

  • Pinout untuk RS, RW, dan E perlu disesuaikan:
  • #tentukan LCD_RS_PIN 3 #tentukan LCD_RW_PIN 1 #tentukan LCD_E_PIN 2

    Program utama sangat mudah berkat karya yang dilakukan Peter Fleury di perpustakaan LCDnya. KOD:

    #include #include "lcd.h" int main (batal) {lcd_init (LCD_DISP_ON); // Permulaan LCD dengan kursor mati lcd_clrscr (); // Kosongkan skrin LCD lcd_gotoxy (5, 0); // Pindahkan kursor ke lokasi ini lcd_puts ("Dragon"); // Letakkan tali ini pada lcd_gotoxy LCD (6, 1); // Pindahkan kursor ke lokasi ini lcd_puts ("Rider"); // Letakkan tali ini pada LCD untuk (;;) {// Jangan buat apa-apa selamanya (Mesej sudah dipaparkan di LCD)}}

    Kod Dilampirkan

    Kod yang dilampirkan merangkumi perpustakaan LCD Peter Fleury (lcd.c dan lcd.h) dengan izinnya. Terima kasih Peter! Satu-satunya perubahan yang saya buat adalah menetapkan pin yang betul dalam Definisi. Sila lawati laman webnya untuk memuat turun pakej: https://www.jump.to/fleurySaya juga telah menyertakan makefile yang saya gunakan ditulis oleh Eric B. Weddington dan, Jorg Wunsch. Saya menghantar PM ke Jorg di avrfreaks.net tetapi tidak pernah mendapat sambutan daripadanya. Ada beberapa perubahan dalam makefile untuk menyesuaikan penggunaan Linux dan Dragon. Terima kasih kepada anda berdua, sila nyatakan pilihan anda untuk saya berkongsi karya anda.

    Langkah 4: Pengaturcaraan ISC 28-pin (ATmega8)

    Pengaturcaraan ISC 28-pin (ATmega8)
    Pengaturcaraan ISC 28-pin (ATmega8)
    Pengaturcaraan ISC 28-pin (ATmega8)
    Pengaturcaraan ISC 28-pin (ATmega8)

    Demontrasi projek seterusnya akan menggunakan ATmega8 yang merupakan avr 28-pin. Berikut adalah set pelompat asas untuk pengaturcaraan ISP mikrokontroler 28-pin.

    Tetapan Jumper

    Tetapkan jumper pada Dragon Rider supaya shunts menghubungkan pin berikut. (pin4 adalah pin tengah untuk J22-J-24) Pin: J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42

    Informasi teknikal

    • Menyambungkan J11 dan J12 dengan cara ini membolehkan anda menggunakan pin tersebut sebagai pin I / O. Alternatifnya ialah mengarahkan pin ini untuk membuat hubungan dengan kristal luaran.
    • Menyambungkan J13 dengan cara ini membolehkan kita menggunakannya sebagai pin set semula. Alternatifnya akan mengarahkan pin ini ke header PORTC untuk digunakan sebagai pin I / O. (ini akan mempunyai banyak kelemahan, termasuk ketidakmampuan untuk memprogram cip ini menggunakan ISP).
    • J16 & J22-J24 dihubungkan dengan cara ini untuk mengarahkan pin yang sesuai (Reset, MISO, MOSI, dan SCK) ke header ISP Dragon AVR.

    Langkah 5: Penggunaan LCD dan Butang Lanjutan: Jam Besar

    Penggunaan LCD dan Butang Lanjutan: Jam Besar
    Penggunaan LCD dan Butang Lanjutan: Jam Besar

    Ini adalah projek yang menyeronokkan yang menggunakan skrin dan butang LCD. Kami akan berurusan dengan fungsi Jam Sebenar dan watak tersuai pada LCD. Dalam gambar di bahagian bawah anda dapat melihat waktu 7:26:07 pm yang dipaparkan dalam jumlah besar pada layar LCD. Setiap nombor menggunakan grid 2x2 dari paparan watak untuk menunjukkan bilangan yang besar. Ini menggunakan fon yang awalnya ditulis oleh Xtinus untuk projek XBMC. Butang digunakan untuk mengatur jam. Kiri menambah jam, Naik menambah minit, Beralih kanan antara 12 dan 24 jam, dan Enter mengatur semula detik ke sifar. Jam tidak menyimpan masa yang sangat baik kerana kita menggunakan pengayun dalaman yang sangat tidak tepat, tetapi program ini dapat diubah dengan mudah untuk menggunakan kristal luaran yang jauh lebih tepat. Lihat tindakan ini dalam video di bawah. Penjelasan tentang bagaimana kod ini berfungsi dengan baik, tetapi saya tidak mempunyai masa sekarang. Buat masa ini, sambungkan header LCD (J31) ke PORTD (J4) dan header butang (J30) ke PORTB (J2). Pastikan anda mempunyai SW1 dan SW2 dalam kedudukan mati. Sambungkan AVR Dragon ke kabel usb dan pasangkan hujung kabel itu ke komputer anda. Hidupkan SW2 dan atur program ATmega8 dengan perisian pengaturcaraan pilihan anda (fail hex di bawah; sekering dibakar ke tetapan kilang). PERHATIAN: Untuk menggunakan butang Kiri dan Atas, anda perlu mengeluarkan pelekapan dari J22 dan J24, lakukan ini semasa kuasa dimatikan.

    Langkah 6: Pengaturcaraan Voltan Tinggi

    Saya telah menggunakan Pengaturcaraan Selari Voltan Tinggi untuk menghidupkan semula ATtiny2313 yang saya tetapkan pada tetapan fius yang salah. Saya memerlukannya kali kedua ketika mengerjakan instruksi ini kerana saya secara tidak sengaja menulis tetapan lfuse yang saya mahu ke daftar hfuse….. oops. Pengaturcaraan selari Voltan Tinggi adalah alat yang berguna untuk anda! Berikut adalah senarai tetapan pelompat saya: GUNAKAN PADA RISIKO ANDA SENDIRI, JENIS PEMPROGRAMAN INI DAPAT merosakkan PERKAKASAN ANDA JIKA ANDA TIDAK TAHU APA YANG ANDA LAKUKAN !! Pengaturcaraan Selari Voltan Tinggi: ATtiny2313 di soket U3: SW1 - OFFSW2 - ONJ5, J6, J7 - sambungkan pin1 dan pin2XTAL1 - sambungkan pin1 dan pin2J16 - Sambungkan pin1 dan pin22x5 Kabel IDC: PROG_CTRL ke PORT D, PROG_DATA ke PORT B Semua pelompat lain tidak dihubungkan J8-J13, J18, J19, J20, J22-J28, J24) Untuk cip lain, anda seharusnya dapat mengetahui tetapan yang anda perlukan dari panduan pengguna Atmel untuk STK500 mereka.

    Langkah 7: Memperluas Di Luar Papan

    Memperluas Di Luar Papan
    Memperluas Di Luar Papan

    Saya merasa mudah untuk berinteraksi dengan papan roti. Ini membolehkan lebih banyak fleksibiliti dalam membuat prototaip dan mengembangkan kod pada masa yang sama. Di bawah ini anda akan melihat beberapa papan roti yang disambungkan ke Dragon Rider. Saya menyambungkan kabel pita ke port yang sesuai pada satu hujungnya. Pada yang lain, saya menggunakan kabel jumper untuk menghubungkan konduktor ICD yang betul dengan papan roti.

    Langkah 8: Kesimpulannya

    Ada banyak lagi yang boleh dilibatkan dalam Instructable ini. Baru malam ini saya melengkapkan penyesuai yang membolehkan anda menggunakan tajuk pengaturcaraan 6-pin tanpa mengeluarkan naga dari Dragon Rider. Saya akan memberikan maklumat bagaimana membina satu sendiri … akan datang. Sekiranya anda mempunyai perkara lain yang anda fikir perlu ditambahkan tinggalkan komen.

    Langkah 9: Menambah ISP 6 Pin

    Menambah ISP 6 Pin
    Menambah ISP 6 Pin
    Menambah ISP 6 Pin
    Menambah ISP 6 Pin
    Menambah ISP 6 Pin
    Menambah ISP 6 Pin

    Saya biasanya membina header ISP 6-pin untuk semua projek saya sehingga saya dapat memprogramkan semula cip tersebut jika perlu dan tidak perlu melepaskannya dari papan projek. Penunggang naga sayangnya tidak mempunyai header ISP 6-pin yang tersedia, tetapi saya memikirkan cara membuatnya.

    Amaran !

    Ini adalah hack. Sekiranya anda tidak tahu betul bagaimana ini berfungsi, jangan lakukannya

    Anda telah diberi amaran. Saya telah membuat papan penyesuai dan jumper 3-pin saya sendiri untuk membekalkan header isp 6-pin. Apa yang anda lakukan adalah mengatur Dragon Rider ke program dan mikrokontroler 8-pin. Dengan menggunakan soket 3 pin, saya jumper J8 untuk menyambungkan pin 1 dan 3. Ini mengarahkan isyarat jam ke penyambung PortB. Saya kemudian menjalankan kabel pelompat dari tajuk PortB ke papan penyesuai saya dan voila! Terdapat gambar di bawah…. tolong, tolong, tolong, jangan lakukan ini kecuali anda benar-benar memahami apa yang anda lakukan kerana anda boleh merosakkan AVR Dragon anda atau lebih teruk lagi jika anda melakukan ini dengan salah.

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

    Langkah 10: Pembaca RSS Menggunakan Sambungan Bersiri dan LCD

    Pembaca RSS Menggunakan Sambungan Bersiri dan LCD
    Pembaca RSS Menggunakan Sambungan Bersiri dan LCD
    Pembaca RSS Menggunakan Sambungan Bersiri dan LCD
    Pembaca RSS Menggunakan Sambungan Bersiri dan LCD

    Saya terus bermain dengan lembaga pembangunan ini. Kali ini saya menghabiskan sebahagian dari waktu petang untuk mengembangkan pembacaan RSS (kebanyakannya di bahagian python). Saya tidak fikir ia memerlukan arahannya sendiri, jadi saya menambahkannya di sini.

    Perkakasan

    Kami menggunakan Dragon Rider 500 sebagai papan pengembangan. Ini menyediakan semua perkakasan yang anda perlukan (dengan andaian anda mempunyai semua alat tambah). Yang dikatakan anda pasti dapat melakukan ini dengan persediaan perkakasan anda sendiri:

    • Mikrokontroler ATmega8 (atau yang mempunyai USART dan pin yang cukup untuk semua sambungan
    • Cara memprogram mikrokontroler (saya menggunakan AVR Dragon)
    • Cip MAX232 untuk komunikasi bersiri
    • Penyambung DB9
    • Skrin LCD HD44780
    • Crystal (saya menggunakan kristal 8MHz)
    • Kapasitor dan perintang pelbagai jenis

    Skema disediakan di bawah. Pada Dragon Rider, kita perlu menggunakan sedikit kreativiti untuk Menghala sambungan. Biasanya Port D boleh dihubungkan terus ke header LCD. Ini tidak berlaku di sini kerana USART yang diperlukan untuk sambungan bersiri menggunakan PD0 dan PD1. Tambahan pula, Port B tidak dapat digunakan kerana PB6 dan PB7 digunakan untuk kristal luaran. Gambar di bawah adalah penyelesaian saya untuk masalah ini. Saya pasangkan kabel pita ke tajuk untuk LCD, Port B dan Port D, kemudian gunakan kabel jumper untuk membuat laluan yang betul. Jangan lupa untuk menghubungkan voltan dan arde ke header LCD.

    Perisian

    Perisian untuk projek ini terdapat dalam dua bahagian, firmware untuk mikrokontroler dan skrip python untuk mengikis RSS feed dan menghantarnya melalui sambungan bersiri. AVR FirmwareSaya menggunakan lagi perpustakaan LCD Peter Fleury (https://jump.to / fleury). Ia kuat dan ringkas, serba boleh, dan mudah diubah untuk persediaan perkakasan anda. Sekiranya anda melihat fail header yang dilampirkan (lcd.h), anda akan melihat bahawa saya berjalan dalam mod 4-bit dengan Port D sebagai bit data, dan Port B sebagai bit kawalan. Konsep firmware ini cukup mudah:

    • Setelah dihidupkan mikrokontroler memaparkan "RSS Reader" dan kemudian menunggu data bersiri.
    • Setiap bait data bersiri yang diterima menyebabkan penyangga 16 karakter beralih ke kiri dan menambahkan bait ke penyangga, kemudian memaparkan penyangga.
    • Tiga arahan khas diterima oleh mikrokontroler: 0x00, 0x01, dan 0x02. Ini adalah skrin yang jelas, pindah ke baris 0, dan pindah ke baris 1 masing-masing.

    Python ScryptSaya menulis skrip pyton untuk mengikis data RSS dan menghantarnya melalui sambungan bersiri. Ini memerlukan modul python "pyserial" yang mungkin anda perlu pasangkan pada sistem anda agar ini berfungsi. Suapan RSS dapat dikonfigurasi di bahagian atas fail pyton. Perhatikan bahawa anda perlu memasukkan nama untuk umpan dan juga url suapan. Terdapat tiga contoh di sana, saya pasti anda boleh mengikutinya untuk sintaks yang betul. Menjadikan semuanya berfungsi

    • Pasang perkakasan
    • Program mikrokontroler (dragon_rss.hex boleh digunakan jika anda tidak mahu menyusunnya sendiri). Tetapan fius untuk ATmega8 menggunakan kristal 8 MHz: lfuse = 0xEF hfuse = 0xD9
    • Nyalakan Dragon Rider dan pastikan kabel bersambung terpasang (LCD harus berbunyi: "RSS Reader")
    • Jalankan program python (python serial_rss.py)
    • Nikmati

    Disyorkan: