Indholdsfortegnelse:

Sådan bruges Dragon Rider 500 med din AVR Dragon: 10 trin
Sådan bruges Dragon Rider 500 med din AVR Dragon: 10 trin

Video: Sådan bruges Dragon Rider 500 med din AVR Dragon: 10 trin

Video: Sådan bruges Dragon Rider 500 med din AVR Dragon: 10 trin
Video: Gutterne Prøver Trenden Af! #shorts 2024, November
Anonim
Sådan bruges Dragon Rider 500 med din AVR Dragon
Sådan bruges Dragon Rider 500 med din AVR Dragon

Denne instruktive er et crashkursus i, hvordan man bruger nogle af funktionerne i Dragon Rider 500 fra Ecros Technologies. Vær opmærksom på, at der er en meget detaljeret brugervejledning tilgængelig på Ecros -webstedet.

Dragon Rider er et interfacekort til brug med en AVR -mikrokontrollerprogrammerer kaldet AVR Dragon af Atmel. For mere information: Atmels Wesite: https://www.atmel.com/ AVR Dragon -link: https://www.atmel.com/dyn/products/tools_card.asp? Tool_id = 3891 Dragon Rider 500 af Ecros Technology: https://www.ecrostech.com/AtmelAvr/DragonRider/index.htm Dragon Rider 500-samling Instruerbar: https://www.instructables.com/id/Assembling-the-Dragon-Rider-500-for-use-with- the-A/Lær alt om AVR-mikrokontrollerne: https://www.avrfreaks.net Denne instruktive kan vokse med tiden, så tjek igen nu og igen!

Trin 1: AVR Dude

Du har brug for noget programmeringssoftware for at bruge AVR Dragon til programmering. Jeg bruger AVRdude med Ubuntu -operativsystemet (linux), og jeg er meget tilfreds med resultaterne. Denne instruktive vil ikke beskæftige sig med kompleksiteten ved programmeringssoftware. Hvis du ikke ved, hvordan du konfigurerer eller bruger programmeringssoftware, kan du tjekke denne instruktive vejledning for at bringe dig i gang: https://www.instructables.com/id/Getting-started-with-ubuntu-and-the- AVR-dragon/Mit gæt er, at hvis du har købt og samlet en Dragon Rider 500, ved du allerede, hvordan du programmerer en chip med AVR Dragon….. og videre!

Trin 2: ATtiny2313 - Blink LED'erne

ATtiny2313 - Blink LED'erne
ATtiny2313 - Blink LED'erne
ATtiny2313 - Blink LED'erne
ATtiny2313 - Blink LED'erne
ATtiny2313 - Blink LED'erne
ATtiny2313 - Blink LED'erne

Lad os programmere en ATtiny2313, som er en 20-benet mikrokontroller. Dragon Rider 500 har stik til flere forskellige størrelser AVR mikrokontroller. Disse omfatter: 8, 20, 28 og 40 pin stikkontakter. Afhængigt af hvilken stikkontakt du bruger, skal jumpere på Dragon Rider -tavlen indstilles anderledes.

Jumper -indstillinger

Indstil springerne på Dragon Rider, så shunterne forbinder følgende stifter. (pin4 er midterstiften til J22 -J -24) Pins: J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41 Dette er en grundlæggende opsætning, der giver mulighed for internetudbyder (i systemprogrammering).

Blinker Blinker

Programmering nytter ikke noget, medmindre du har noget at programmere. Jeg har skrevet et meget kort kodeeksempel for at blinke Dragon Riders LED'er en ad gangen. Brug et båndkabel til at forbinde LED -headeren (J29) til PortB -headeren (J2).

Programmering

Jeg har inkluderet C -filen samt en makefile og hex -filen. Som jeg nævnte i introduktionen, kan jeg ikke dække softwaresiden ved programmering i Instructable. Program som du ville gøre for AVR Dragon, da Dragon Rider slet ikke ændrer softwarens side af tingene.

Trin 3: Brug af LCD-tilføjelsen

Brug af LCD-tilføjelsen
Brug af LCD-tilføjelsen

Her er en enkel måde at bruge LCD-tilføjelsen på. Dette vil skrive "Dragon Rider" til LCD -skærmen.

Hardware:

  • ATtiny2313
  • R/W Jumper: R/W skal tilsluttes "BIT1" på Dragon Rider Board (Se forklaring i Assembly Instructable)
  • J23: Denne jumper skal installeres til ISP -programmering, men derefter fjernes for at LCD'en fungerer korrekt.
  • Tilslut LCD til PORT B ved hjælp af båndkabel (J31 til J2)

Software

Jeg bruger Peter Fleurys LCD-bibliotek til at køre LCD-skærmen i 4-bit-tilstand. Tjek Peters hjemmeside for at downloade biblioteket. Du skal sørge for, at lcd.c er kompileret med din kode, og at du foretager følgende ændringer til lcd.h:

Vi bruger den interne RC -oscillator, så XTAL skal indstilles til 1MHz:

#define XTAL 1000000

  • Portindstillinger skal justeres til PORTB:
  • #define LCD_PORT PORTB

  • Pinout til 4 datalinjer skal tilpasses:
  • #definer LCD_DATA0_PIN 4 #definer LCD_DATA1_PIN 5 #definer LCD_DATA2_PIN 6 #definer LCD_DATA3_PIN 7

  • Pinout til RS, RW og E skal tilpasses:
  • #definer LCD_RS_PIN 3 #definer LCD_RW_PIN 1 #definer LCD_E_PIN 2

    Hovedprogrammet er meget enkelt takket være det arbejde, Peter Fleury udførte i sit LCD -bibliotek. KODE:

    #include #include "lcd.h" int main (void) {lcd_init (LCD_DISP_ON); // Initialiser LCD med markøren fra lcd_clrscr (); // Ryd LCD -skærmen lcd_gotoxy (5, 0); // Flyt markøren til denne placering lcd_puts ("Dragon"); // Sæt denne streng på LCD lcd_gotoxy (6, 1); // Flyt markøren til denne placering lcd_puts ("Rider"); // Sæt denne streng på LCD'et for (;;) {// Gør ingenting for evigt (meddelelse vises allerede på LCD)}}

    Kode vedhæftet

    Koden vedhæftet inkluderer Peter Fleurys LCD -bibliotek (lcd.c og lcd.h) med hans tilladelse. Tak Peter! Den eneste ændring, jeg har foretaget den, er at indstille de rigtige stifter i Defines. Besøg venligst hans websted for at downloade pakken: https://www.jump.to/fleuryJeg har også inkluderet en makefile, som jeg bruger skrevet af Eric B. Weddington og, Jorg Wunsch. Jeg sendte en PM til Jorg over på avrfreaks.net men modtog aldrig et svar fra ham. Der er et par ændringer i makefilen til at skræddersy til brug af Linux og dragen. Tak til jer begge, vær venlig at fortælle mig om dine præferencer for, at jeg deler dit arbejde.

    Trin 4: 28-benet UC ISP-programmering (ATmega8)

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

    Den næste projektdemontration vil bruge en ATmega8, som er en 28-benet avr. Her er det grundlæggende jumper-sæt til ISP-programmering af de 28-benede mikrokontroller.

    Jumper -indstillinger

    Indstil springerne på Dragon Rider, så shunterne forbinder følgende stifter. (pin4 er midterstiften til J22 -J -24) Pins: J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42

    Teknisk information

    • Ved at forbinde J11 og J12 på denne måde kan du bruge disse ben som I/O -ben. Alternativet ville være at dirigere disse stifter for at oprette forbindelse med den eksterne krystal.
    • Tilslutning af J13 på denne måde giver os mulighed for at bruge det som nulstillingsstift. Alternativet ville føre denne pin til PORTC -headeren til brug som en I/O -pin. (dette ville have mange ulemper, herunder manglende evne til at programmere denne chip ved hjælp af internetudbyder).
    • J16 & J22-J24 er forbundet på denne måde for at dirigere de relevante stifter (Reset, MISO, MOSI og SCK) til ISP-headeren på AVR Dragon.

    Trin 5: Avanceret LCD- og knapbrug: Det store ur

    Avanceret LCD- og knapbrug: det store ur
    Avanceret LCD- og knapbrug: det store ur

    Dette er et sjovt projekt, der gør brug af LCD -skærmen og knapper. Vi vil beskæftige os med realtidsurfunktioner og brugerdefinerede tegn på LCD -skærmen. På billedet i bunden kan du se klokken 19:26:07 vises i stort tal på LCD -skærmen. Hvert nummer bruger et 2x2 -gitter med tegnvisningerne til at vise det store tal. Dette anvender en skrifttype, der oprindeligt blev skrevet af Xtinus til XBMC -projektet. Knapperne bruges til at indstille uret. Venstre øger timerne, Op øger minutterne, Højre skifter mellem 12 og 24 timers tid, og Enter nulstiller sekunder til nul. Uret holder ikke særlig god tid, da vi bruger den meget unøjagtige interne oscillator, men dette program kan let ændres til at bruge en meget mere præcis ekstern krystal. Se dette i aktion i videoen herunder. En forklaring på, hvordan denne kode fungerer, er i orden, men jeg har ikke tid lige nu. Foreløbig forbinder LCD -headeren (J31) til PORTD (J4) og knapoverskriften (J30) til PORTB (J2). Sørg for, at både SW1 og SW2 er slukket. Tilslut AVR Dragon til et usb -kabel, og tilslut den anden ende af kablet til din computer. Tænd for SW2, og programmer ATmega8 med den programmeringssoftware, du ønsker (hex -fil nedenfor; sikringer brændt til fabriksindstillingerne) BEMÆRK: For at bruge venstre og op -knapperne skal du fjerne shunterne fra J22 og J24, gør dette, mens strømmen er slukket.

    Trin 6: Højspændingsprogrammering

    Jeg har brugt High Voltage Parallel Programming til at genoplive en ATtiny2313, som jeg har indstillet de forkerte sikringsindstillinger på. Jeg havde brug for det en anden gang, da jeg arbejdede med dette instruerbare, fordi jeg ved et uheld skrev den lfuse -indstilling, jeg ville have, til hfuse -registret….. Ups. Højspændings parallel programmering er et praktisk værktøj til rådighed! Nedenfor er en liste over mine jumper -indstillinger: BRUG PÅ DIN EGEN RISIKO, DENNE PROGRAMMERING KAN SKADE DIN HARDWARE, HVIS DU IKKE VED HVAD DU GØR !! Højspændings parallel programmering: ATtiny2313 i stik U3: SW1 - OFFSW2 - ONJ5, J6, J7 - tilslut pin1 og pin2XTAL1 - tilslut pin1 og pin2J16 - Tilslut pin1 og pin22x5 IDC -kabler: PROG_CTRL til PORT D, PROG_DATA til PORT BA alle andre jumpere er ikke tilsluttet J8-J13, J18, J19, J20, J22-J28, J24) For andre chips skal du kunne finde ud af de indstillinger, du har brug for, fra Atmels brugervejledning til deres STK500.

    Trin 7: Udvidelse ud over bestyrelsen

    Udvidelse ud over bestyrelsen
    Udvidelse ud over bestyrelsen

    Jeg synes, det er ganske let at interface med et brødbræt. Dette giver mulighed for meget mere fleksibilitet i prototyper og udvikling af kode på samme tid. Herunder vil du se et par brødbrætter forbundet til Dragon Rider. Jeg forbinder båndkablerne til de relevante porte i den ene ende. På den anden bruger jeg jumperwires til at forbinde den rigtige ICD -leder med brødbrædderne.

    Trin 8: Konklusion

    Der er meget mere, der kan være involveret i denne Instructable. Lige i aften fuldender jeg en adapter, der giver dig mulighed for at bruge det 6-benede programmeringshoved uden at fjerne dragen fra Dragon Rider. Jeg vil lægge oplysninger om, hvordan du konstruerer en selv … kommer snart. Hvis du har andre ting, du synes skal tilføjes, skal du skrive en kommentar.

    Trin 9: Tilføjelse af en 6-benet internetudbyder

    Tilføjelse af en 6-benet internetudbyder
    Tilføjelse af en 6-benet internetudbyder
    Tilføjelse af en 6-benet internetudbyder
    Tilføjelse af en 6-benet internetudbyder
    Tilføjelse af en 6-benet internetudbyder
    Tilføjelse af en 6-benet internetudbyder

    Jeg bygger normalt et 6-benet ISP-header til alle mine projekter, så jeg kan omprogrammere chippen om nødvendigt og ikke skulle tage den af projektbordet. Dragon-rytteren har desværre ikke en 6-benet ISP-header til rådighed, men jeg fandt ud af, hvordan jeg stiller en til rådighed.

    Advarsel!

    Dette er et hack. Hvis du ikke ved præcis, hvordan dette fungerer, skal du ikke gøre det

    Du er blevet advaret. Jeg har oprettet mit eget adapterkort og 3-bens jumper for at levere det 6-bens isp-header. Hvad du gør er at indstille Dragon Rider til at programmere og 8-benet mikrokontroller. Ved hjælp af en 3-polet stikkontakt springer jeg J8 til at forbinde stifter 1 og 3. Dette leder kloksignalet til PortB-stikket. Jeg kører derefter et jumperkabel fra PortB header til mit adapterkort og voila! Der er billeder herunder …. venligst, vær venlig, venligst, gør ikke dette, medmindre du virkelig forstår, hvad du gør, da du kan skade din AVR -drage eller værre, hvis du gør dette forkert.

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

    Trin 10: RSS -læser ved hjælp af seriel forbindelse og LCD

    RSS -læser ved hjælp af seriel forbindelse og LCD
    RSS -læser ved hjælp af seriel forbindelse og LCD
    RSS -læser ved hjælp af seriel forbindelse og LCD
    RSS -læser ved hjælp af seriel forbindelse og LCD

    Jeg fortsætter med at lege med dette udviklingsbord. Denne gang brugte jeg en del af en eftermiddag på at udvikle en RSS -læsning (mest på pythonsiden af tingene). Jeg tror ikke, det berettiger sin egen instruerbare, så jeg tilføjer det her.

    Hardware

    Vi bruger Dragon Rider 500 som et udviklingsbræt. Dette giver al den hardware, du har brug for (forudsat at du har alle tilføjelsessættene). Når det er sagt, kan du bestemt gøre dette med din egen hardwareopsætning:

    • ATmega8 mikrokontroller (eller enhver, der har en USART og nok stifter til alle forbindelser
    • En måde at programmere mikrokontrolleren på (jeg bruger AVR Dragon)
    • MAX232 -chip til seriel kommunikation
    • DB9 stik
    • HD44780 LCD -skærm
    • Krystal (jeg brugte en 8MHz krystal)
    • Assorterede kondensatorer og modstande

    En skematisk figur er vist nedenfor. På Dragon Rider skal vi bruge lidt kreativitet til at rute forbindelserne. Normalt kunne Port D tilsluttes direkte til LCD -headeren. Dette er ikke tilfældet her, fordi den USART, der er nødvendig til den serielle forbindelse, bruger PD0 og PD1. Ydermere kan Port B ikke bruges, fordi PB6 og PB7 er i brug til den eksterne krystal. Nedenstående billede er min løsning på dette problem. Jeg tilslutter et båndkabel til overskrifterne til LCD, Port B og Port D, og bruger derefter jumperwires til at lave de rigtige ruter. Glem ikke at tilslutte spænding og jord til LCD -headeren.

    Software

    Softwaren til dette projekt findes i to dele, firmwaren til mikrokontrolleren og python -scriptet til at skrabe RSS -feeds og sende dem over den serielle forbindelse. AVR -firmware Jeg bruger Peter Fleurys LCD -bibliotek igen (https://jump.to /fleury). Det er kraftfuldt og kortfattet, alsidigt og let at ændre til din hardwareopsætning. Hvis du ser på header-filen vedhæftet (lcd.h), vil du se, at jeg kører i 4-bit-tilstand med Port D som databit og Port B som kontrolbit. Konceptet med denne firmware er ret simpelt:

    • Når den er tændt, viser mikrokontrolleren "RSS Reader" og venter derefter på serielle data.
    • Hver byte af modtagne serielle data får en buffer på 16 tegn til at skifte til venstre og tilføje byte til bufferen og derefter vise bufferen.
    • Tre specielle kommandoer accepteres af mikrokontrolleren: 0x00, 0x01 og 0x02. Disse er klare skærme, gå til linje 0 og henholdsvis linje 1.

    Python ScryptI skrev et pyton -script for at skrabe RSS -dataene og sende dem over den serielle forbindelse. Dette kræver python -modulet "pyserial", som du sandsynligvis skal installere på dit system for at få dette til at fungere. RSS -feedet kan konfigureres øverst i pyton -filen. Bemærk, at du skal indtaste et navn på feedet samt feed -url. Der er tre eksempler der, jeg er sikker på, at du kan følge dem for den korrekte syntx. Få det hele til at fungere

    • Saml hardware
    • Programmer mikrokontrolleren (dragon_rss.hex kan bruges, hvis du ikke vil kompilere dette selv). Sikringsindstillinger for ATmega8 ved hjælp af en 8 MHz krystal: lfuse = 0xEF hfuse = 0xD9
    • Tænd for Dragon Rider, og sørg for, at det serielle kabel er tilsluttet (LCD bør læse: "RSS Reader")
    • Udfør python -programmet (python serial_rss.py)
    • god fornøjelse

    Anbefalede: