Daftar Isi:

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, Juli
Anonim
Cara Menggunakan Dragon Rider 500 Dengan AVR Dragon Anda
Cara Menggunakan Dragon Rider 500 Dengan AVR Dragon Anda

Instruksi ini adalah kursus kilat tentang cara menggunakan beberapa fitur Dragon Rider 500 dari Ecos Technologies. Perlu diketahui bahwa ada Panduan Pengguna yang sangat rinci yang tersedia di situs web Ecos.

Dragon Rider adalah papan antarmuka untuk digunakan dengan programmer mikrokontroler AVR yang disebut AVR Dragon oleh Atmel. Untuk informasi lebih lanjut: Situs web Atmel: https://www.atmel.com/ Tautan Naga AVR: 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 Dapat diinstruksikan:https://www.instructables.com/id/Assembling-the-Dragon-Rider-500-for-use-with- the-A/ Pelajari semua tentang mikrokontroler AVR: https://www.avrfreaks.net Instruksi ini dapat berkembang seiring waktu jadi periksa kembali sekarang dan lagi!

Langkah 1: AVR Bung

Anda memerlukan beberapa perangkat lunak pemrograman untuk menggunakan AVR Dragon untuk pemrograman. Saya menggunakan AVRdude dengan sistem operasi Ubuntu (linux) dan saya sangat senang dengan hasilnya. Instruksi ini tidak akan membahas seluk-beluk perangkat lunak pemrograman. Jika Anda tidak tahu cara mengatur atau menggunakan perangkat lunak pemrograman, periksa instruksi ini untuk mempercepat Anda: https://www.instructables.com/id/Getting-started-with-ubuntu-and-the- AVR-dragon/Dugaan saya adalah bahwa jika Anda telah membeli dan merakit Dragon Rider 500 Anda sudah tahu bagaimana memprogram sebuah chip dengan AVR Dragon….. seterusnya!

Langkah 2: ATtiny2313 - Kedipkan LED

ATtiny2313 - Kedipkan LED
ATtiny2313 - Kedipkan LED
ATtiny2313 - Kedipkan LED
ATtiny2313 - Kedipkan LED
ATtiny2313 - Kedipkan LED
ATtiny2313 - Kedipkan LED

Mari memprogram ATtiny2313 yang merupakan mikrokontroler 20-pin. Dragon Rider 500 memiliki soket untuk beberapa mikrokontroler AVR dengan ukuran berbeda. Ini termasuk: 8, 20, 28, dan 40 soket pin. Tergantung pada soket yang Anda gunakan, jumper pada papan Dragon Rider harus diatur secara berbeda.

Pengaturan Jumper

Atur jumper pada Dragon Rider sehingga shunt menghubungkan pin berikut. (pin4 adalah pin tengah untuk J22-J-24) Pins:J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41Ini adalah setup dasar yang memungkinkan untuk ISP (In System Programming).

berkedip berkedip

Pemrograman tidak ada gunanya kecuali Anda memiliki sesuatu untuk diprogram. Saya telah menulis contoh kode yang sangat singkat untuk mengedipkan LED Dragon Rider satu per satu. Gunakan kabel pita untuk menghubungkan header LED (J29) ke header PortB (J2).

Pemrograman

Saya telah menyertakan file C serta makefile dan file hex. Seperti yang saya sebutkan di intro, saya tidak dapat membahas sisi perangkat lunak pemrograman di Instructable. Program seperti yang Anda lakukan untuk AVR Dragon, karena Dragon Rider tidak mengubah sisi perangkat lunak sama sekali.

Langkah 3: Menggunakan Add-on LCD

Menggunakan Add-on LCD
Menggunakan Add-on LCD

Berikut adalah cara sederhana untuk menggunakan Add-on LCD. Ini akan menulis "Dragon Rider" ke layar LCD.

Perangkat keras:

  • ATtiny2313
  • R/W Jumper: R/W harus terhubung ke "BIT1" di Dragon Rider Board (Lihat penjelasan di Assembly Instructable)
  • J23: Jumper ini harus dipasang untuk pemrograman ISP tetapi kemudian dilepas agar LCD berfungsi dengan baik.
  • Hubungkan LCD ke PORT B menggunakan kabel pita (J31 ke J2)

Perangkat lunak

Saya menggunakan perpustakaan LCD Peter Fleury untuk menggerakkan LCD dalam mode 4-bit. Lihat Peter's Homepage untuk mengunduh perpustakaan. Anda perlu memastikan bahwa lcd.c dikompilasi dengan kode Anda dan Anda membuat perubahan berikut pada lcd.h:

Kami menggunakan osilator RC internal sehingga XTAL perlu diatur untuk 1MHz:

#tentukan XTAL 1000000

  • Pengaturan port perlu disesuaikan dengan PORTB:
  • #define LCD_PORT PORTB

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

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

    Program utamanya sangat sederhana berkat pekerjaan yang dilakukan Peter Fleury di perpustakaan LCD-nya. KODE:

    #include #include "lcd.h"int main(void){ lcd_init(LCD_DISP_ON); //Inisialisasi LCD dengan kursor mati lcd_clrscr(); //Hapus layar LCD lcd_gotoxy(5, 0); //Pindahkan kursor ke lokasi ini lcd_puts("Naga"); //Letakkan string ini pada LCD lcd_gotoxy(6, 1); //Pindahkan kursor ke lokasi ini lcd_puts("Rider"); //Letakkan string ini di LCD untuk (;;) { // Jangan lakukan apapun selamanya (Pesan sudah ditampilkan di LCD) }}

    Kode Terlampir

    Kode terlampir termasuk perpustakaan LCD Peter Fleury (lcd.c dan lcd.h) dengan izinnya. Terima kasih Petrus! Satu-satunya perubahan yang saya buat adalah mengatur pin yang tepat di Defines. Silakan kunjungi situsnya untuk mengunduh paket: https://www.jump.to/fleurySaya juga menyertakan makefile yang saya gunakan yang ditulis oleh Eric B. Weddington dan, Jorg Wunsch. Saya mengirim PM ke Jorg di avrfreaks.net tetapi tidak pernah menerima tanggapan darinya. Ada beberapa perubahan pada makefile untuk disesuaikan dengan penggunaan Linux dan Dragon. Terima kasih untuk Anda berdua, tolong beri tahu saya preferensi Anda tentang saya berbagi pekerjaan Anda.

    Langkah 4: Pemrograman UC ISP 28-pin (ATmega8)

    Pemrograman UC ISP 28-pin (ATmega8)
    Pemrograman UC ISP 28-pin (ATmega8)
    Pemrograman UC ISP 28-pin (ATmega8)
    Pemrograman UC ISP 28-pin (ATmega8)

    Demonstrasi proyek berikutnya akan menggunakan ATmega8 yang merupakan avr 28-pin. Berikut adalah set jumper dasar untuk pemrograman ISP mikrokontroler 28-pin.

    Pengaturan Jumper

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

    Informasi Teknis

    • Menghubungkan J11 dan J12 dengan cara ini memungkinkan Anda menggunakan pin tersebut sebagai pin I/O. Alternatifnya adalah mengarahkan pin ini untuk membuat koneksi dengan kristal eksternal.
    • Menghubungkan J13 dengan cara ini memungkinkan kita untuk menggunakannya sebagai pin reset. Alternatifnya adalah merutekan pin ini ke header PORTC untuk digunakan sebagai pin I/O. (ini akan memiliki banyak kekurangan, termasuk ketidakmampuan untuk memprogram chip ini menggunakan ISP).
    • J16 & J22-J24 terhubung dengan cara ini untuk merutekan pin yang sesuai (Reset, MISO, MOSI, dan SCK) ke header ISP dari AVR Dragon.

    Langkah 5: Penggunaan LCD dan Tombol Tingkat Lanjut: Jam Besar

    Penggunaan LCD dan Tombol Tingkat Lanjut: Jam Besar
    Penggunaan LCD dan Tombol Tingkat Lanjut: Jam Besar

    Ini adalah proyek menyenangkan yang memanfaatkan layar LCD dan tombol. Kita akan berurusan dengan fungsi Jam Waktu Nyata dan karakter khusus pada LCD. Pada gambar di bawah Anda dapat melihat waktu 19:26:07 ditampilkan dalam jumlah besar di layar LCD. Setiap angka menggunakan kisi 2x2 dari tampilan karakter untuk menunjukkan angka yang besar. Ini menggunakan font yang awalnya ditulis oleh Xtinus untuk proyek XBMC. Tombol-tombol tersebut digunakan untuk mengatur jam. Kiri menambah jam, Atas menambah menit, Kanan beralih antara waktu 12 dan 24 jam, dan Enter mengatur ulang detik ke nol. Jam tidak menjaga waktu dengan sangat baik karena kami menggunakan osilator internal yang sangat tidak akurat, tetapi program ini dapat dengan mudah diubah untuk menggunakan kristal eksternal yang jauh lebih akurat. Lihat ini beraksi dalam video di bawah ini. Penjelasan tentang cara kerja kode ini berurutan, tetapi saya tidak punya waktu sekarang. Untuk saat ini, sambungkan header LCD (J31) ke PORTD (J4) dan header tombol (J30) ke PORTB (J2). Pastikan Anda memiliki SW1 dan SW2 dalam posisi mati. Hubungkan AVR Dragon ke kabel usb dan colokkan ujung kabel yang lain ke komputer Anda. Nyalakan SW2 dan program ATmega8 dengan perangkat lunak pemrograman pilihan Anda (file hex di bawah; sekering dibakar ke pengaturan pabrik). CATATAN: Untuk menggunakan tombol Kiri dan Atas, Anda harus melepas shunt dari J22 dan J24, lakukan ini saat listrik mati.

    Langkah 6: Pemrograman Tegangan Tinggi

    Saya telah menggunakan Pemrograman Paralel Tegangan Tinggi untuk menghidupkan kembali ATtiny2313 yang saya atur pengaturan sekeringnya salah. Saya membutuhkannya untuk kedua kalinya ketika mengerjakan instruksi ini karena saya tidak sengaja menulis pengaturan lfuse yang saya inginkan ke register hfuse….. ooops. Pemrograman paralel Tegangan Tinggi adalah alat yang berguna untuk Anda miliki! Di bawah ini adalah daftar pengaturan jumper saya: GUNAKAN RISIKO ANDA SENDIRI, JENIS PEMROGRAMAN INI DAPAT MERUSAK PERANGKAT KERAS ANDA JIKA ANDA TIDAK TAHU APA YANG ANDA LAKUKAN!! Pemrograman Paralel Tegangan Tinggi:ATtiny2313 pada 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 BAll jumper lain tidak tersambung (J8-J13, J18, J19, J20, J22-J28, J24) Untuk chip lain Anda harus dapat mengetahui pengaturan yang Anda butuhkan dari panduan pengguna Atmel untuk STK500 mereka.

    Langkah 7: Memperluas Melampaui Papan

    Memperluas Di Luar Papan
    Memperluas Di Luar Papan

    Saya merasa cukup mudah untuk berinteraksi dengan papan tempat memotong roti. Hal ini memungkinkan lebih banyak fleksibilitas dalam membuat prototipe dan mengembangkan kode secara bersamaan. Di bawah ini Anda akan melihat beberapa papan tempat memotong roti yang terhubung ke Dragon Rider. Saya menghubungkan kabel pita ke port yang sesuai di satu ujung. Di sisi lain saya menggunakan kabel jumper untuk menghubungkan konduktor ICD yang tepat dengan papan tempat memotong roti.

    Langkah 8: Kesimpulan

    Ada banyak lagi yang bisa terlibat dalam Instructable ini. Baru malam ini saya menyelesaikan adaptor yang memungkinkan Anda menggunakan header pemrograman 6-pin tanpa melepas naga dari Dragon Rider. Saya akan memberikan informasi tentang cara membuatnya sendiri… segera hadir. Jika Anda memiliki hal lain yang menurut Anda perlu ditambahkan, tinggalkan komentar.

    Langkah 9: Menambahkan ISP 6-Pin

    Menambahkan ISP 6-Pin
    Menambahkan ISP 6-Pin
    Menambahkan ISP 6-Pin
    Menambahkan ISP 6-Pin
    Menambahkan ISP 6-Pin
    Menambahkan ISP 6-Pin

    Saya biasanya membuat header ISP 6-pin untuk semua proyek saya sehingga saya dapat memprogram ulang chip jika perlu dan tidak harus melepasnya dari papan proyek. Penunggang naga sayangnya tidak memiliki header ISP 6-pin yang tersedia, tetapi saya menemukan cara untuk membuatnya tersedia.

    Peringatan!

    Ini adalah peretasan. Jika Anda tidak tahu persis bagaimana ini bekerja, jangan lakukan itu

    Anda telah diperingatkan. Saya telah membuat papan adaptor dan jumper 3-pin saya sendiri untuk memasok header ISP 6-pin. Apa yang Anda lakukan adalah mengatur Dragon Rider ke program dan mikrokontroler 8-pin. Menggunakan soket 3-pin saya jumper J8 untuk menghubungkan pin 1 dan 3. Ini mengarahkan sinyal clock ke konektor PortB. Saya kemudian menjalankan kabel jumper dari header PortB ke papan adaptor saya dan voila! Ada gambar di bawah ini…. tolong, tolong, tolong, jangan lakukan ini kecuali Anda benar-benar memahami apa yang Anda lakukan karena Anda dapat merusak AVR Dragon Anda atau lebih buruk lagi jika Anda melakukan kesalahan ini.

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

    Langkah 10: Pembaca RSS Menggunakan Koneksi Serial dan LCD

    Pembaca RSS Menggunakan Koneksi Serial dan LCD
    Pembaca RSS Menggunakan Koneksi Serial dan LCD
    Pembaca RSS Menggunakan Koneksi Serial dan LCD
    Pembaca RSS Menggunakan Koneksi Serial dan LCD

    Saya terus bermain-main dengan papan pengembangan ini. Kali ini saya menghabiskan sebagian sore mengembangkan pembacaan RSS (kebanyakan di sisi python). Saya tidak berpikir itu menjamin instruksinya sendiri, jadi saya menambahkannya di sini.

    Perangkat keras

    Kami menggunakan Dragon Rider 500 sebagai papan pengembangan. Ini menyediakan semua perangkat keras yang Anda butuhkan (dengan asumsi Anda memiliki semua kit tambahan). Meskipun demikian, Anda tentu dapat melakukan ini dengan pengaturan perangkat keras Anda sendiri:

    • Mikrokontroler ATmega8 (atau yang memiliki USART dan pin yang cukup untuk semua koneksi
    • Cara memprogram mikrokontroler (saya menggunakan AVR Dragon)
    • Chip MAX232 untuk komunikasi serial
    • konektor DB9
    • Layar LCD HD44780
    • Crystal (saya menggunakan kristal 8MHz)
    • Berbagai macam kapasitor dan resistor

    Skema disediakan di bawah ini. Pada Dragon Rider kita perlu menggunakan beberapa kreativitas untuk Merutekan koneksi. Biasanya Port D dapat dihubungkan langsung ke header LCD. Ini tidak terjadi di sini karena USART yang dibutuhkan untuk koneksi serial menggunakan PD0 dan PD1. Selanjutnya, Port B tidak dapat digunakan karena PB6 dan PB7 digunakan untuk kristal eksternal. Gambar di bawah adalah solusi saya untuk masalah ini. Saya mencolokkan kabel pita ke header untuk LCD, Port B dan Port D, kemudian menggunakan kabel jumper untuk membuat rute yang benar. Jangan lupa untuk menghubungkan tegangan dan ground ke header LCD.

    Perangkat lunak

    Perangkat lunak untuk proyek ini terdiri dari dua bagian, firmware untuk mikrokontroler dan skrip python untuk menggores umpan RSS dan mengirimkannya melalui koneksi serial. Firmware AVRSaya menggunakan perpustakaan LCD Peter Fleury lagi (https://jump.to /fleury). Ini kuat dan ringkas, serbaguna, dan mudah diubah untuk pengaturan perangkat keras Anda. Jika Anda melihat file header terlampir (lcd.h), Anda akan melihat bahwa saya menjalankan mode 4-bit dengan Port D sebagai bit data, dan Port B sebagai bit kontrol. Konsep firmware ini cukup sederhana:

    • Setelah dinyalakan mikrokontroler menampilkan "RSS Reader" dan kemudian menunggu data serial.
    • Setiap byte data serial yang diterima menyebabkan buffer 16 karakter bergeser ke kiri dan menambahkan byte ke buffer, kemudian menampilkan buffer.
    • Tiga perintah khusus diterima oleh mikrokontroler: 0x00, 0x01, dan 0x02. Ini adalah layar yang jelas, pindah ke baris 0, dan pindah ke baris 1 masing-masing.

    Python ScryptI menulis skrip pyton untuk mengikis data RSS dan mengirimkannya melalui koneksi serial. Ini memerlukan modul python "pyserial" yang mungkin harus Anda instal di sistem Anda agar ini berfungsi. Umpan RSS dapat dikonfigurasi di bagian atas file pyton. Perhatikan bahwa Anda harus memasukkan nama untuk umpan serta url umpan. Ada tiga contoh di sana, saya yakin Anda dapat mengikutinya untuk sintaks yang tepat. Membuat semuanya berfungsi

    • Merakit perangkat keras
    • Program mikrokontroler (dragon_rss.hex dapat digunakan jika Anda tidak ingin mengompilasinya sendiri). Pengaturan sekering untuk ATmega8 menggunakan kristal 8 MHz: lfuse= 0xEF hfuse=0xD9
    • Nyalakan Dragon Rider dan pastikan kabel serial terpasang (LCD harus membaca: "RSS Reader")
    • Jalankan program python (python serial_rss.py)
    • Menikmati

    Direkomendasikan: