Sadržaj:

Kako koristiti Dragon Rider 500 sa svojim AVR zmajem: 10 koraka
Kako koristiti Dragon Rider 500 sa svojim AVR zmajem: 10 koraka

Video: Kako koristiti Dragon Rider 500 sa svojim AVR zmajem: 10 koraka

Video: Kako koristiti Dragon Rider 500 sa svojim AVR zmajem: 10 koraka
Video: Жареный карась без костей, 3 способа рассказала моя бабушка 2024, Studeni
Anonim
Kako koristiti Dragon Rider 500 sa svojim AVR zmajem
Kako koristiti Dragon Rider 500 sa svojim AVR zmajem

Ovo uputstvo je hitni tečaj o tome kako koristiti neke od značajki Dragon Rider 500 iz Ecros Technologies. Imajte na umu da na web stranici Ecros postoji vrlo detaljan Korisnički priručnik.

Dragon Rider ploča je sučelja za upotrebu s programatorom AVR mikrokontrolera koje Atmel naziva AVR Dragon. Za više informacija: Atmelovo web mjesto: https://www.atmel.com/ AVR Dragon veza: https://www.atmel.com/dyn/products/tools_card.asp? Tool_id = 3891 Dragon Rider 500 by Ecros Technology: https://www.ecrostech.com/AtmelAvr/DragonRider/index.htm Montaža Dragon Rider 500 Montažna uputstva: https://www.instructables.com/id/Assembling-the-Dragon-Rider-500-for-use-with- the-A/Saznajte sve o AVR mikrokontrolerima: https://www.avrfreaks.net Ova instrukcija može s vremenom rasti pa provjeravajte s vremena na vrijeme!

Korak 1: AVR Dude

Za korištenje programa AVR Dragon za programiranje potreban vam je neki softver za programiranje. Koristim AVRdude s Ubuntu operativnim sustavom (linux) i jako sam zadovoljan rezultatima. Ovo uputstvo neće se baviti zamršenostima programskog softvera. Ako ne znate postaviti ili koristiti softver za programiranje, provjerite ovo uputstvo kako biste ubrzali: https://www.instructables.com/id/Getting-started-with-ubuntu-and-the- AVR-dragon/Pretpostavljam da ste, ako ste kupili i sastavili Dragon Rider 500, već znali programirati čip s AVR Dragon….. nadalje!

Korak 2: ATtiny2313 - Trepćite LED diode

ATtiny2313 - Trepćite LED diode
ATtiny2313 - Trepćite LED diode
ATtiny2313 - Trepćite LED diode
ATtiny2313 - Trepćite LED diode
ATtiny2313 - Trepćite LED diode
ATtiny2313 - Trepćite LED diode

Programirajmo ATtiny2313 koji je 20-pinski mikrokontroler. Dragon Rider 500 ima utičnice za nekoliko AVR mikrokontrolera različitih veličina. To uključuje: 8, 20, 28 i 40 -polne utičnice. Ovisno o utičnici koju koristite, skakači na ploči Dragon Rider moraju biti različito postavljeni.

Postavke kratkospojnika

Postavite kratkospojnike na Dragon Rider -a tako da šantovi povežu sljedeće pinove. (pin4 je središnji pin za J22 -J -24) Igle: J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41Ovo je osnovno postavljanje koje omogućuje ISP (u sustavnom programiranju).

Blinky Blinky

Programiranje ne pomaže ako nemate što programirati. Napisao sam vrlo kratak primjer koda za treperenje LED -a Dragon Rider -a jednu po jednu. Upotrijebite vrpčni kabel za povezivanje LED zaglavlja (J29) na zaglavlje PortB (J2).

Programiranje

Uključio sam C datoteku, kao i makefile i hex datoteku. Kao što sam spomenuo u uvodu, ne mogu pokriti softversku stranu programiranja u Instructable. Programirajte kao i vi za AVR Dragon, jer Dragon Rider uopće ne mijenja softversku stranu stvari.

Korak 3: Korištenje LCD dodatka

Korištenje LCD dodatka
Korištenje LCD dodatka

Evo jednostavnog načina korištenja LCD dodatka. Ovo će napisati "Dragon Rider" na LCD zaslonu.

Hardver:

  • ATtiny2313
  • R/W kratkospojnik: R/W bi trebao biti spojen na "BIT1" na ploči Dragon Rider (vidi objašnjenje u uputama za montažu)
  • J23: Ovaj kratkospojnik mora biti instaliran za programiranje ISP -a, ali ga zatim ukloniti kako bi LCD ispravno funkcionirao.
  • Spojite LCD na PORT B pomoću vrpčnog kabela (J31 do J2)

Softver

Koristim LCD knjižnicu Petera Fleuryja za pogon LCD-a u 4-bitnom načinu rada. Za preuzimanje knjižnice posjetite Petrovu početnu stranicu. Morat ćete provjeriti je li lcd.c sastavljen s vašim kodom i jeste li unijeli sljedeće promjene u lcd.h:

Koristimo unutarnji RC oscilator pa je XTAL potrebno postaviti na 1MHz:

#define XTAL 1000000

  • Postavke ulaza potrebno je prilagoditi PORTB -u:
  • #define LCD_PORT PORTB

  • Ispis za 4 podatkovne linije potrebno je prilagoditi:
  • #define LCD_DATA0_PIN 4 #define LCD_DATA1_PIN 5 #define LCD_DATA2_PIN 6 #define LCD_DATA3_PIN 7

  • Ispis za RS, RW i E treba prilagoditi:
  • #define LCD_RS_PIN 3 #define LCD_RW_PIN 1 #define LCD_E_PIN 2

    Glavni program je vrlo jednostavan zahvaljujući poslu koji je Peter Fleury obavio u svojoj LCD biblioteci. KOD:

    #include #include "lcd.h" int main (void) {lcd_init (LCD_DISP_ON); // Pokretanje LCD -a s isključenim kursorom lcd_clrscr (); // Brisanje LCD zaslona lcd_gotoxy (5, 0); // Pomaknite kursor na ovo mjesto lcd_puts ("Zmaj"); // Stavite ovaj niz na LCD lcd_gotoxy (6, 1); // Pomaknite kursor na ovo mjesto lcd_puts ("Rider"); // Stavite ovaj niz na LCD za (;;) {// Ne radite ništa zauvijek (poruka je već prikazana na LCD -u)}}

    Kod u prilogu

    Priloženi kôd uključuje LCD knjižnicu Petera Fleuryja (lcd.c i lcd.h) s njegovim dopuštenjem. Hvala ti Petre! Jedina izmjena koju sam napravio je postavljanje odgovarajućih pinova u Defines. Posjetite njegovu web stranicu kako biste preuzeli paket: https://www.jump.to/fleuryUključio sam i makefile koju koristim od Eric B. Weddington i Jorg Wunsch. Poslao sam PM Jorgu na avrfreaks.net, ali od njega nikada nisam dobio odgovor. Postoji nekoliko promjena u makefileu kako bi se prilagodili korištenju Linuxa i Zmaja. Hvala vam obojici, molimo vas da mi kažete koje su vaše želje da podijelim vaš rad.

    Korak 4: 28-pinsko programiranje UC ISP-a (ATmega8)

    28-pinsko UC ISP programiranje (ATmega8)
    28-pinsko UC ISP programiranje (ATmega8)
    28-pinsko UC ISP programiranje (ATmega8)
    28-pinsko UC ISP programiranje (ATmega8)

    Sljedeća demonstracija projekta će koristiti ATmega8 koji je 28-pinski avr. Ovdje je osnovni set skakača za ISP programiranje 28-pinskih mikrokontrolera.

    Postavke kratkospojnika

    Postavite kratkospojnike na Dragon Rider -a tako da šantovi povežu sljedeće pinove. (pin4 je središnji pin za J22 -J -24) Igle: J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42

    Tehničke informacije

    • Spajanje J11 i J12 na ovaj način omogućuje vam da koristite te pinove kao I/O pinove. Alternativa bi bila usmjeravanje ovih pinova radi povezivanja s vanjskim kristalom.
    • Povezivanje J13 na ovaj način omogućuje nam da ga koristimo kao pin za resetiranje. Alternativa bi ovaj pin usmjerila na PORTC zaglavlje za upotrebu kao I/O pin. (ovo bi imalo mnogo nedostataka, uključujući nemogućnost programiranja ovog čipa pomoću ISP -a).
    • J16 i J22-J24 povezani su na ovaj način radi usmjeravanja odgovarajućih pinova (Reset, MISO, MOSI i SCK) do ISP zaglavlja AVR Dragon-a.

    Korak 5: Napredna upotreba LCD -a i gumba: Veliki sat

    Napredna upotreba LCD -a i gumba: Veliki sat
    Napredna upotreba LCD -a i gumba: Veliki sat

    Ovo je zabavan projekt koji koristi LCD zaslon i gumbe. Bavit ćemo se funkcijama sata u stvarnom vremenu i prilagođenim znakovima na LCD -u. Na slici pri dnu možete vidjeti vrijeme 19:26:07 prikazano u velikom broju na LCD ekranu. Svaki broj koristi mrežu 2x2 prikaza znakova za prikaz velikog broja. Ovdje se koristi font koji je izvorno napisao Xtinus za projekt XBMC. Gumbi se koriste za podešavanje sata. Lijevo povećava sate, Gore povećava minute, Desno prebacuje između 12 i 24 sata, a Enter poništava sekunde na nulu. Sat ne provodi dobro vrijeme jer koristimo vrlo netočan unutarnji oscilator, ali ovaj se program može lako promijeniti tako da se koristi mnogo precizniji vanjski kristal. Pogledajte ovo na djelu u videu ispod. Objašnjenje o načinu funkcioniranja ovog koda je u redu, ali trenutno nemam vremena. Za sada spojite LCD zaglavlje (J31) na PORTD (J4), a zaglavlje gumba (J30) na PORTB (J2). Provjerite imate li SW1 i SW2 u isključenom položaju. Spojite AVR Dragon na USB kabel, a drugi kraj kabela priključite u računalo. Uključite SW2 i programirajte ATmega8 sa softverom za programiranje po vašem izboru (šesterokutna datoteka u nastavku; osigurači su izgorjeli na tvorničke postavke). NAPOMENA: Da biste koristili tipke Lijevo i Gore, morat ćete ukloniti šante iz J22 i J24, učinite ovo dok je napajanje isključeno.

    Korak 6: Visokonaponsko programiranje

    Upotrijebio sam paralelno programiranje visokog napona za oživljavanje ATtiny2313 na kojem sam postavio pogrešne postavke osigurača. Trebao mi je drugi put dok sam radio na ovom uputstvu jer sam slučajno napisao postavku lfuse koju sam želio u hfuse register ….. ooops. Paralelno programiranje visokog napona zgodan je alat koji imate na raspolaganju! Ispod su popisi mojih postavki kratkospojnika: UPOTREBITE NA SOPSTVENU RIZIKU, Ova vrsta programiranja može oštetiti vaš hardver ako ne znate što radite !! Paralelno programiranje visokog napona: ATtiny2313 u utičnici U3: SW1 - OFFSW2 - ONJ5, J6, J7 - spojite pin1 i pin2XTAL1 - spojite pin1 i pin2J16 - Spojite pin1 i pin22x5 IDC kabele: PROG_CTRL na PORT D, PROG_DATA na PORT B J8-J13, J18, J19, J20, J22-J28, J24) Za ostale čipove trebali biste moći saznati potrebne postavke iz Atmelovog korisničkog vodiča za njihov STK500.

    Korak 7: Proširivanje izvan ploče

    Proširenje izvan ploče
    Proširenje izvan ploče

    Smatram da je vrlo jednostavno sučelje s matičnom pločom. To omogućuje puno više fleksibilnosti u izradi prototipova i razvoju koda u isto vrijeme. Ispod ćete vidjeti nekoliko matičnih ploča povezanih s Dragon Riderom. Priključujem vrpčane kabele na odgovarajuće priključke na jednom kraju. S druge strane koristim kratkospojne žice za povezivanje odgovarajućeg ICD vodiča s pločama.

    Korak 8: Zaključak

    Postoji još mnogo toga što bi moglo biti uključeno u ovaj Instructable. Upravo sam večeras dovršio adapter koji vam omogućuje korištenje 6-pinskog zaglavlja za programiranje bez uklanjanja zmaja iz Dragon Ridera. Dostavit ću informacije o tome kako sami izgraditi … uskoro. Ako imate još nekih stvari za koje mislite da ih treba dodati, ostavite komentar.

    Korak 9: Dodavanje 6-pinskog ISP-a

    Dodavanje 6-pinskog ISP-a
    Dodavanje 6-pinskog ISP-a
    Dodavanje 6-pinskog ISP-a
    Dodavanje 6-pinskog ISP-a
    Dodavanje 6-pinskog ISP-a
    Dodavanje 6-pinskog ISP-a

    Obično u sve svoje projekte ugradim 6-pinsko zaglavlje ISP-a kako bih mogao reprogramirati čip ako je potrebno i ne moram ga skidati s projektne ploče. Jahač zmajeva nažalost nema dostupno 6-pinsko ISP zaglavlje, ali sam shvatio kako to učiniti dostupnim.

    Upozorenje!

    Ovo je hack. Ako ne znate kako to točno funkcionira, nemojte to učiniti

    Upozoreni ste. Napravio sam vlastitu adaptersku ploču i 3-pinski kratkospojnik kako bih opskrbio 6-pinsko zaglavlje isp. Ono što radite je postaviti Dragon Rider na programiranje i 8-pinski mikrokontroler. Koristeći 3-polnu utičnicu preskačem J8 za spajanje pinova 1 i 3. Time se signal sata usmjerava na PortB konektor. Zatim vodim kratkospojni kabel od PortB zaglavlja do svoje adapterske ploče i voila! Ispod su slike…. molim vas, molim vas, molim vas, nemojte to činiti ako doista ne razumijete što radite jer biste mogli oštetiti svoj AVR Dragon ili još gore ako učinite ovo pogrešno.

    Isključivanje: PortB ISP1 42 13 34 NC5 NC6 57 NC8 NC9 610 2

    Korak 10: RSS čitač pomoću serijske veze i LCD -a

    RSS čitač pomoću serijske veze i LCD -a
    RSS čitač pomoću serijske veze i LCD -a
    RSS čitač pomoću serijske veze i LCD -a
    RSS čitač pomoću serijske veze i LCD -a

    Nastavljam se igrati s ovom razvojnom pločom. Ovaj put sam dio popodneva proveo razvijajući RSS čitanje (uglavnom na python strani stvari). Mislim da ne opravdava vlastite upute pa ga dodajem ovdje.

    Hardver

    Koristimo Dragon Rider 500 kao razvojnu ploču. Ovo pruža sav potreban hardver (pod pretpostavkom da imate sve dodatne komplete). S obzirom da to svakako možete učiniti s vlastitim hardverskim postavkama:

    • Mikrokontroler ATmega8 (ili bilo koji koji ima USART i dovoljno pinova za sve veze
    • Način programiranja mikrokontrolera (koristim AVR Dragon)
    • MAX232 čip za serijsku komunikaciju
    • DB9 konektor
    • HD44780 LCD zaslon
    • Kristal (koristio sam kristal 8MHz)
    • Različiti kondenzatori i otpornici

    Shema je dolje navedena. Na Dragon Rideru trebat ćemo upotrijebiti malo kreativnosti za usmjeravanje veza. Obično se port D može spojiti izravno na LCD zaglavlje. Ovdje to nije slučaj jer USART potreban za serijsku vezu koristi PD0 i PD1. Nadalje, port B se ne može koristiti jer se za vanjski kristal koriste PB6 i PB7. Na donjoj slici je moje rješenje ovog problema. Priključujem vrpčani kabel na zaglavlja za LCD, port B i port D, a zatim pomoću kratkospojnih žica napravim odgovarajuće rute. Ne zaboravite spojiti napon i masu na LCD zaglavlje.

    Softver

    Softver za ovaj projekt dolazi iz dva dijela, firmvera za mikrokontroler i python skripte za struganje RSS izvora i njihovo slanje putem serijske veze. AVR Firmware Ponovo koristim LCD biblioteku Petera Fleuryja (https://jump.to /fleury). Snažan je i sažet, svestran i jednostavan za izmjenu za postavljanje vašeg hardvera. Ako pogledate priloženu datoteku zaglavlja (lcd.h), vidjet ćete da radim u 4-bitnom načinu rada s portom D kao podatkovnim bitovima i portom B kao kontrolnim bitovima. Koncept ovog firmvera je prilično jednostavan:

    • Nakon uključivanja mikrokontroler prikazuje "RSS Reader", a zatim čeka serijske podatke.
    • Svaki primljeni bajt serijskih podataka uzrokuje da se međuspremnik od 16 znakova pomakne ulijevo i doda bajt u međuspremnik, a zatim prikaže međuspremnik.
    • Mikrokontroler prihvaća tri posebne naredbe: 0x00, 0x01 i 0x02. Ovo su čisti zaslon, pomaknite se na redak 0, odnosno na redak 1.

    Python Scrypt Napisao sam pyton skriptu za struganje RSS podataka i njihovo slanje putem serijske veze. To zahtijeva python modul "pyserial" koji ćete vjerojatno morati instalirati na svoj sustav da bi ovo funkcioniralo. RSS feed se može konfigurirati na vrhu pyton datoteke. Primijetite da morate unijeti naziv feeda, kao i URL feeda. Postoje tri primjera, siguran sam da ih možete slijediti za pravilan syntx. Kako bi sve funkcioniralo

    • Sastavite hardver
    • Programirajte mikrokontroler (dragon_rss.hex se može koristiti ako ovo ne želite sami sastaviti). Postavke osigurača za ATmega8 pomoću kristala 8 MHz: lfuse = 0xEF hfuse = 0xD9
    • Uključite Dragon Rider i provjerite je li serijski kabel uključen (LCD bi trebao glasiti: "RSS čitač")
    • Izvršite program python (python serial_rss.py)
    • Uživati

    Preporučeni: