Talaan ng mga Nilalaman:

Paano Magamit ang Dragon Rider 500 Sa Iyong AVR Dragon: 10 Hakbang
Paano Magamit ang Dragon Rider 500 Sa Iyong AVR Dragon: 10 Hakbang

Video: Paano Magamit ang Dragon Rider 500 Sa Iyong AVR Dragon: 10 Hakbang

Video: Paano Magamit ang Dragon Rider 500 Sa Iyong AVR Dragon: 10 Hakbang
Video: Real dragons? 2024, Hulyo
Anonim
Paano Magamit ang Dragon Rider 500 Sa Iyong AVR Dragon
Paano Magamit ang Dragon Rider 500 Sa Iyong AVR Dragon

Ang itinuturo na ito ay isang kurso sa pag-crash kung paano gamitin ang ilan sa mga tampok ng Dragon Rider 500 mula sa Ecros Technologies. Mangyaring magkaroon ng kamalayan na mayroong isang napaka detalyadong Gabay ng Gumagamit na magagamit sa website ng Ecros.

Ang Dragon Rider ay isang interface board para magamit sa isang AVR microcontroller programmer na tinatawag na AVR Dragon ni Atmel. Para sa karagdagang impormasyon: 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 ng Ecros Technology: https://www.ecrostech.com/AtmelAvr/DragonRider/index.htm Dragon Rider 500 pagpupulong Tagubilin: https://www.instructables.com/id/Assembling-the-Dragon-Rider-500-for-use-with- the-A / Alamin ang lahat tungkol sa mga AVR microcontroller: https://www.avrfreaks.net Ang itinuturo na ito ay maaaring lumago sa oras kaya't suriin muli ngayon at muli!

Hakbang 1: AVR Dude

Kailangan mo ng ilang software ng programa upang magamit ang AVR Dragon para sa pagprograma. Gumagamit ako ng AVRdude sa Ubuntu operating system (linux) at masayang-masaya ako sa mga resulta. Ang itinuturo na ito ay hindi haharapin ang mga intricacies ng software software. Kung hindi mo alam kung paano mag-set-up o gumamit ng software software, suriin ang itinuturo na ito upang mapabilis ka: https://www.instructables.com/id/Getting-started-with-ubuntu-and-the- AVR-dragon / Ang hula ko ay kung bumili ka at nagtipon ng isang Dragon Rider 500 alam mo na kung paano mag-program ng isang chip kasama ang AVR Dragon ….. pasulong!

Hakbang 2: ATtiny2313 - Blink the LEDs

ATtiny2313 - Blink the LEDs
ATtiny2313 - Blink the LEDs
ATtiny2313 - Blink the LEDs
ATtiny2313 - Blink the LEDs
ATtiny2313 - Blink the LEDs
ATtiny2313 - Blink the LEDs

Magprogram tayo ng isang ATtiny2313 na isang 20-pin microcontroller. Ang Dragon Rider 500 ay may mga socket para sa maraming magkakaibang laki ng AVR microcontrollers. Kabilang dito ang: 8, 20, 28, at 40 pin sockets. Nakasalalay sa aling socket na ginagamit mo, ang mga jumper sa board ng Dragon Rider ay dapat na itakda nang magkakaiba.

Mga setting ng Jumper

Itakda ang mga jumper sa Dragon Rider upang ang mga shunts ay kumonekta sa mga sumusunod na pin. (Ang pin4 ay ang gitnang pin para sa J22-J-24) Mga Pin: J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41 Ito ay isang pangunahing pag-set up na nagbibigay-daan para sa ISP (Sa System Programming).

Blinky Blinky

Ang programa ay hindi maganda maliban kung mayroon kang isang programa. Nagsulat ako ng isang napakaikling halimbawa ng code upang kumurap isa-isang LED ng Dragon Rider. Gumamit ng isang ribbon cable upang ikonekta ang LED header (J29) sa PortB header (J2).

Programming

Isinama ko ang C file pati na rin ang isang makefile at ang hex file. Tulad ng nabanggit ko sa intro, hindi ko masasakop ang bahagi ng software ng pag-program sa Instructable. Ang programa tulad ng gagawin mo para sa AVR Dragon, dahil ang Dragon Rider ay hindi binabago ang panig ng software ng mga bagay sa lahat.

Hakbang 3: Paggamit ng LCD Add-on

Gamit ang Add-on na LCD
Gamit ang Add-on na LCD

Narito ang isang simpleng paraan upang magamit ang LCD Add-on. Isusulat nito ang "Dragon Rider" sa LCD screen.

Hardware:

  • ATtiny2313
  • R / W Jumper: Ang R / W ay dapat na konektado sa "BIT1" sa Dragon Rider Board (Tingnan ang paliwanag sa Assembly Instructable)
  • J23: Ang jumper na ito ay dapat na mai-install para sa ISP programming ngunit pagkatapos ay tinanggal para sa LCD upang gumana nang maayos.
  • Ikonekta ang LCD sa PORT B gamit ang ribbon cable (J31 hanggang J2)

Software

Gumagamit ako ng LCD library ni Peter Fleury upang himukin ang LCD sa 4-bit mode. Suriin ang Homepage ni Peter upang mai-download ang silid-aklatan. Kakailanganin mong tiyakin na ang lcd.c ay naipon sa iyong code at ginawa mo ang mga sumusunod na pagbabago sa lcd.h:

Gumagamit kami ng panloob na oscillator ng RC kaya kailangang maitakda ang XTAL para sa 1MHz:

# tukuyin ang XTAL 1000000

  • Ang mga setting ng port ay kailangang ayusin sa PORTB:
  • # tukuyin ang LCD_PORT PORTB

  • Ang pinout para sa 4 na mga linya ng data ay kailangang iakma:
  • #define LCD_DATA0_PIN 4 # tukuyin ang LCD_DATA1_PIN 5 # tukuyin ang LCD_DATA2_PIN 6 # tukuyin ang LCD_DATA3_PIN 7

  • Ang pinout para sa RS, RW, at E ay kailangang iakma:
  • # tukuyin ang LCD_RS_PIN 3 # tukuyin ang LCD_RW_PIN 1 # tukuyin ang LCD_E_PIN 2

    Ang pangunahing programa ay napaka-simple salamat sa gawaing ginawa ni Peter Fleury sa kanyang LCD library. KODE:

    #include #include "lcd.h" int main (void) {lcd_init (LCD_DISP_ON); // Initialize LCD with the cursor off lcd_clrscr (); // I-clear ang LCD screen lcd_gotoxy (5, 0); // Ilipat ang cursor sa lokasyong ito lcd_puts ("Dragon"); // Ilagay ang string na ito sa LCD lcd_gotoxy (6, 1); // Ilipat ang cursor sa lokasyong ito lcd_puts ("Rider"); // Ilagay ang string na ito sa LCD para sa (;;) {// Huwag gumawa ng walang hanggan (Ipinakita na ang mensahe sa LCD)}}

    Nakalakip ang Code

    Kasama sa code na nakalakip ang LCD library ni Peter Fleury (lcd.c at lcd.h) na may pahintulot mula sa kanya. Salamat Peter! Ang tanging pagbabago na nagawa ko rito ay upang itakda ang tamang mga pin sa Mga Pagtukoy. Mangyaring bisitahin ang kanyang site upang i-download ang package: https://www.jump.to/fleury Nagsama rin ako ng isang makefile na ginamit ko na isinulat ni Eric B. Weddington at, Jorg Wunsch. Nagpadala ako ng PM kay Jorg sa avrfreaks.net ngunit hindi kailanman nakatanggap ng tugon mula sa kanya. Mayroong ilang mga pagbabago sa makefile upang maiangkop sa paggamit ng Linux at ang Dragon. Salamat sa inyong dalawa, mangyaring itakda sa akin na malaman ang iyong mga kagustuhan sa pagbabahagi ko ng iyong trabaho.

    Hakbang 4: 28-pin UC ISP Programming (ATmega8)

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

    Ang susunod na demontration ng proyekto ay gagamit ng isang ATmega8 na isang 28-pin na avr. Narito ang pangunahing itinakdang jumper para sa pagprogram ng ISP ng 28-pin microcontrollers.

    Mga setting ng Jumper

    Itakda ang mga jumper sa Dragon Rider upang ang mga shunts ay kumonekta sa mga sumusunod na pin. (pin4 ang gitnang pin para sa J22-J-24) Mga Pin: J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42

    Impormasyong teknikal

    • Ang pagkonekta sa J11 at J12 sa ganitong paraan ay nagbibigay-daan sa iyo upang gamitin ang mga pin na iyon bilang I / O pin. Ang kahalili ay i-ruta ang mga pin na ito upang makakonekta sa panlabas na kristal.
    • Ang pagkonekta sa J13 sa ganitong paraan ay nagpapahintulot sa amin na gamitin ito bilang reset pin. Ire-ruta ng kahalili ang pin na ito sa header ng PORTC para magamit bilang isang I / O pin. (magkakaroon ito ng maraming mga drawbacks, kasama ang kawalan ng kakayahang programa ng chip na ito gamit ang ISP).
    • Ang J16 & J22-J24 ay konektado sa ganitong paraan upang i-ruta ang naaangkop na mga pin (I-reset, MISO, MOSI, at SCK) sa header ng ISP ng AVR Dragon.

    Hakbang 5: Advanced na Paggamit ng LCD at Button: ang Big Clock

    Advanced na Paggamit ng LCD at Button: ang Big Clock
    Advanced na Paggamit ng LCD at Button: ang Big Clock

    Ito ay isang nakakatuwang proyekto na gumagamit ng LCD screen at mga pindutan. Haharapin namin ang mga pag-andar ng Real Time Clock at mga pasadyang character sa LCD. Sa larawan sa ibaba makikita mo ang oras na 7:26:07 pm na ipinakita sa malalaking numero sa LCD screen. Ang bawat numero ay gumagamit ng isang 2x2 grid ng mga character na ipinapakita upang ipakita ang malaking bilang. Gumagamit ito ng isang font na orihinal na isinulat ni Xtinus para sa proyekto ng XBMC. Ginagamit ang mga pindutan upang maitakda ang orasan. Ang kaliwa ay nagdaragdag ng oras, ang pagtaas ay nagdaragdag ng minuto, ang kanang pag-toggle sa pagitan ng 12 at 24 na oras na oras, at Enter ay nagre-reset ng mga segundo hanggang sa zero. Ang orasan ay hindi nagpapanatili ng napakahusay na oras habang ginagamit namin ang hindi tumpak na panloob na oscillator, ngunit ang program na ito ay madaling mabago upang magamit ang isang mas tumpak na panlabas na kristal. Tingnan ito sa pagkilos sa video sa ibaba. Ang isang pagpapaliwanag kung paano gumagana ang code na ito ay maayos, ngunit wala akong oras sa ngayon. Sa ngayon, ikonekta ang LCD header (J31) sa PORTD (J4) at ang header ng pindutan (J30) sa PORTB (J2). Tiyaking mayroon kang parehong SW1 at SW2 sa off posisyon. Ikonekta ang AVR Dragon sa isang usb cable at i-plug ang kabilang dulo ng cable na iyon sa iyong computer. I-on ang SW2 at i-program ang ATmega8 kasama ang software software na iyong pinili (hex file sa ibaba; fuse burn sa mga setting ng pabrika). TANDAAN: Upang magamit ang mga pindutan ng Kaliwa at Up na kakailanganin mong alisin ang mga shunts mula sa J22 at J24, gawin ito habang ang kapangyarihan ay naka-off.

    Hakbang 6: Pag-Program ng Mataas na Boltahe

    Ginamit ko ang High Voltage Parallel Programming upang muling buhayin ang isang ATtiny2313 na itinakda ko ang mga maling setting ng fuse. Kailangan ko ito sa pangalawang pagkakataon kapag nagtatrabaho sa pagtuturo na ito sapagkat hindi sinasadyang isinulat ko ang setting ng lfuse na nais kong irehistro sa hfuse….. ooops. Ang mataas na boltahe na parallel na programa ay isang madaling gamiting tool na magagamit sa iyo! Nasa ibaba ang isang listahan ng aking mga setting ng lumulukso: GAMITIN SA IYONG SARILING PELIGRONG, ANG ITONG URI NG PROGRAMMMIN AY MAAARING MAPASIRA ANG IYONG HARDWARE KUNG HINDI MO ALAM ANONG GINAGAWA MO !! High Voltage Parallel Programming: ATtiny2313 sa socket U3: SW1 - OFFSW2 - ONJ5, J6, J7 - ikonekta ang pin1 at pin2XTAL1 - ikonekta ang pin1 at pin2J16 - Ikonekta ang pin1 at pin22x5 IDC Cables: PROG_CTRL sa PORT D, PROG_DATA sa PORT BAll iba pang mga jumper na hindi konektado (J8-J13, J18, J19, J20, J22-J28, J24) Para sa iba pang mga chips dapat mong malaman ang mga setting na kailangan mo mula sa gabay ng gumagamit ng Atmel para sa kanilang STK500.

    Hakbang 7: Pagpapalawak Higit sa Lupon

    Pagpapalawak Higit sa Lupon
    Pagpapalawak Higit sa Lupon

    Nahanap ko itong napakadaling mag-interface sa isang breadboard. Pinapayagan nito ang mas maraming kakayahang umangkop sa prototyping at pagbuo ng code nang sabay. Sa ibaba makikita mo ang isang pares ng mga breadboard na konektado sa Dragon Rider. Ikonekta ko ang mga cable ng laso sa mga naaangkop na port sa isang dulo. Sa isa pa ay gumagamit ako ng mga wire ng jumper upang ikonekta ang tamang conductor ng ICD sa mga breadboard.

    Hakbang 8: Konklusyon

    Mayroong higit pa na maaaring kasangkot sa Instructable na ito. Ngayong gabi lamang nakumpleto ko ang isang adapter na nagbibigay-daan sa iyo upang magamit ang 6-pin na header ng programa nang hindi inaalis ang dragon mula sa Dragon Rider. Maglalagay ako ng impormasyon kung paano bumuo ng isa sa iyong sarili… paparating na. Kung mayroon kang iba pang mga bagay na sa palagay mo ay kailangang idagdag mag-iwan ng komento.

    Hakbang 9: Pagdaragdag ng isang 6-Pin ISP

    Pagdaragdag ng isang 6-Pin ISP
    Pagdaragdag ng isang 6-Pin ISP
    Pagdaragdag ng isang 6-Pin ISP
    Pagdaragdag ng isang 6-Pin ISP
    Pagdaragdag ng isang 6-Pin ISP
    Pagdaragdag ng isang 6-Pin ISP

    Kadalasan ay nagtatayo ako sa isang 6-pin na header ng ISP sa lahat ng aking mga proyekto upang ma-reprogram ko ang maliit na tilad kung kinakailangan at hindi ko ito aalisin sa board ng proyekto. Ang dragon rider ay malungkot na walang isang 6-pin ISP header na magagamit ngunit naisip ko kung paano gawin ang isang magagamit.

    Babala !!

    Ito ay isang hack. Kung hindi mo alam eksakto kung paano ito gumagana, huwag gawin ito

    Nabalaan ka. Lumikha ako ng sarili kong adapter board at 3-pin jumper upang maibigay ang 6-pin isp header. Ang gagawin mo ay itakda ang Dragon Rider hanggang sa programa at 8-pin microcontroller. Gamit ang isang 3-pin na socket ako ay jumpering J8 upang ikonekta ang mga pin 1 at 3. Dadaan ito sa signal ng orasan sa konektor sa PortB. Nagpapatakbo ako ng isang jumper cable mula sa PortB header patungo sa aking adapter board at voila! May mga larawan sa ibaba…. mangyaring, mangyaring, mangyaring, huwag gawin ito maliban kung naiintindihan mo kung ano ang iyong ginagawa na maaari mong mapinsala ang iyong AVR Dragon o mas masahol kung nagagawa mo ang maling ito.

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

    Hakbang 10: RSS Reader Gamit ang Serial Connection at LCD

    RSS Reader Gamit ang Serial Connection at LCD
    RSS Reader Gamit ang Serial Connection at LCD
    RSS Reader Gamit ang Serial Connection at LCD
    RSS Reader Gamit ang Serial Connection at LCD

    Patuloy akong naglalaro kasama ang development board na ito. Sa oras na ito ay ginugol ko ang bahagi ng isang hapon sa pagbuo ng isang RSS readion (karamihan sa bahagi ng sawa ng mga bagay). Sa palagay ko hindi ito nagbibigay ng sarili nitong itinuturo kaya idinagdag ko ito dito.

    Hardware

    Ginagamit namin ang Dragon Rider 500 bilang isang development board. Nagbibigay ito ng lahat ng hardware na kailangan mo (ipagpapalagay na mayroon ka ng lahat ng mga add-on kit). Sinasabi na tiyak na magagawa mo ito sa iyong sariling pag-setup ng hardware:

    • ATmega8 microcontroller (o anumang mayroon ng USART at sapat na mga pin para sa lahat ng mga koneksyon
    • Isang paraan upang mai-program ang microcontroller (ginagamit ko ang AVR Dragon)
    • MAX232 chip para sa mga serial na komunikasyon
    • Konektor ng DB9
    • HD44780 LCD screen
    • Crystal (Gumamit ako ng isang 8MHz na kristal)
    • Iba't ibang capacitor at resistors

    Ang isang eskematiko ay ibinibigay sa ibaba. Sa Dragon Rider kakailanganin naming gumamit ng ilang pagkamalikhain upang Ruta ang mga koneksyon. Karaniwan ang Port D ay maaaring konektado nang direkta sa LCD header. Hindi ito ang kaso dito dahil ang kailangan ng USART para sa serial connection ay gumagamit ng PD0 at PD1. Bukod dito, ang Port B ay hindi maaaring gamitin dahil ang PB6 at PB7 ay ginagamit para sa panlabas na kristal. Nakalarawan sa ibaba ang aking solusyon sa problemang ito. Nag-plug ako sa isang ribbon cable sa mga header para sa LCD, Port B at Port D, pagkatapos ay gumamit ng mga jumper wires upang makagawa ng wastong mga ruta. Huwag kalimutang i-hook up ang boltahe at ibagsak sa header ng LCD.

    Software

    Ang software para sa proyektong ito ay nagmula sa dalawang bahagi, ang firmware para sa microcontroller at ang script ng python para sa pag-scrap ng mga RSS feed at pagpapadala sa kanila sa serial connection. AVR Firmware Gumagamit ulit ako ng LCD library ni Peter Fleury (https://jump.to / fleury). Ito ay malakas at maigsi, maraming nalalaman, at madaling baguhin para sa pag-setup ng iyong hardware. Kung titingnan mo ang naka-attach na header file (lcd.h) makikita mo na tumatakbo ako sa 4-bit mode na may Port D bilang mga data bits, at Port B bilang mga control bits. Ang konsepto ng firmware na ito ay medyo simple:

    • Kapag pinapagana ang microcontroller ay ipinapakita ang "RSS Reader" at pagkatapos ay naghihintay para sa serial data.
    • Ang bawat byte ng serial data na natanggap ay nagiging sanhi ng isang buffer ng 16 chars upang ilipat ang kaliwa at idagdag ang byte sa buffer, pagkatapos ay ipakita ang buffer.
    • Tatlong espesyal na utos ang tinatanggap ng microcontroller: 0x00, 0x01, at 0x02. Ito ay malinaw na screen, lumipat sa linya 0, at lumipat sa linya 1 ayon sa pagkakabanggit.

    Nagsulat ako ng isang script ng pyton upang i-scrape ang data ng RSS at ipadala ito sa serial connection. Kinakailangan nito ang module ng python na "pyserial" na marahil ay kakailanganin mong i-install sa iyong system upang magawa ito. Ang RSS feed ay maaaring mai-configure sa tuktok ng pyton file. Pansinin na kailangan mong maglagay ng isang pangalan para sa feed pati na rin ang url ng feed. Mayroong tatlong mga halimbawa doon, sigurado akong maaari mong sundin ang mga para sa tamang syntx. Ginagawa itong lahat

    • Ipunin ang hardware
    • I-program ang microcontroller (dragon_rss.hex ay maaaring magamit kung hindi mo nais na isulat ito mismo). Mga setting ng piyus para sa ATmega8 gamit ang isang 8 MHz na kristal: lfuse = 0xEF hfuse = 0xD9
    • Palakasin ang Dragon Rider at tiyaking naka-plug ang serial cable (dapat basahin ang LCD: "RSS Reader")
    • Ipatupad ang python program (python serial_rss.py)
    • Tangkilikin

    Inirerekumendang: