Innehållsförteckning:

Hur man använder Dragon Rider 500 med din AVR -drake: 10 steg
Hur man använder Dragon Rider 500 med din AVR -drake: 10 steg

Video: Hur man använder Dragon Rider 500 med din AVR -drake: 10 steg

Video: Hur man använder Dragon Rider 500 med din AVR -drake: 10 steg
Video: Что лучше комбинезон или куртка? | Алексей Соболев 2024, November
Anonim
Hur man använder Dragon Rider 500 med din AVR -drake
Hur man använder Dragon Rider 500 med din AVR -drake

Denna instruerbara är en kraschkurs i hur man använder några av funktionerna i Dragon Rider 500 från Ecros Technologies. Tänk på att det finns en mycket detaljerad användarhandbok på Ecros webbplats.

Dragon Rider är ett gränssnittskort för användning med en AVR -mikrokontrollerprogrammerare som kallas AVR Dragon av Atmel. För mer information: Atmels Wesite: https://www.atmel.com/ AVR Dragon -länk: https://www.atmel.com/dyn/products/tools_card.asp? Tool_id = 3891 Dragon Rider 500 av Ecros Technology: https://www.ecrostech.com/AtmelAvr/DragonRider/index.htm Dragon Rider 500-montering Instruerbar: https://www.instructables.com/id/Assembling-the-Dragon-Rider-500-for-use-with- the-A/Lär dig allt om AVR-mikrokontrollerna: https://www.avrfreaks.net Denna instruerbara kan växa med tiden så kika in då och då!

Steg 1: AVR Dude

Du behöver programmeringsprogram för att använda AVR Dragon för programmering. Jag använder AVRdude med Ubuntu -operativsystemet (linux) och jag är mycket nöjd med resultaten. Denna instruerbara kommer inte att hantera invecklingarna i programmeringsprogram. Om du inte vet hur du konfigurerar eller använder programmeringsprogram, kolla in den här instruktionsboken för att få dig snabbare: https://www.instructables.com/id/Getting-started-with-ubuntu-and-the- AVR-dragon/Min gissning är att om du har köpt och monterat en Dragon Rider 500 vet du redan hur du programmerar ett chip med AVR Dragon….. och framåt!

Steg 2: ATtiny2313 - Blink lysdioderna

ATtiny2313 - blinka lysdioderna
ATtiny2313 - blinka lysdioderna
ATtiny2313 - blinka lysdioderna
ATtiny2313 - blinka lysdioderna
ATtiny2313 - blinka lysdioderna
ATtiny2313 - blinka lysdioderna

Låt oss programmera en ATtiny2313 som är en 20-stifts mikrokontroller. Dragon Rider 500 har uttag för flera olika storlek AVR mikrokontroller. Dessa inkluderar: 8, 20, 28 och 40 stift uttag. Beroende på vilken sockel du använder måste hoppare på Dragon Rider -brädet ställas in annorlunda.

Bygelinställningar

Ställ in hopparna på Dragon Rider så att shuntarna ansluter följande stift. (pin4 är mittstiftet för J22 -J -24) Pins: J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41Detta är en grundläggande inställning som möjliggör ISP (i systemprogrammering).

Blinkigt Blinkigt

Programmering är inte bra om du inte har något att programmera. Jag har skrivit ett mycket kort kodexempel för att blinka Dragon Riders LED -lampor en i taget. Använd en bandkabel för att ansluta LED -rubriken (J29) till PortB -rubriken (J2).

Programmering

Jag har inkluderat C -filen samt en makefile och hex -filen. Som jag nämnde i inledningen kan jag inte täcka programvarusidan för programmering i Instructable. Program som du skulle göra för AVR Dragon, eftersom Dragon Rider inte förändrar programvarans sida av saker alls.

Steg 3: Använda LCD-tillägget

Använda LCD-tillägget
Använda LCD-tillägget

Här är ett enkelt sätt att använda LCD-tillägget. Detta kommer att skriva "Dragon Rider" till LCD -skärmen.

Hårdvara:

  • ATtiny2313
  • R/W -bygel: R/W bör anslutas till "BIT1" på Dragon Rider Board (se förklaring i monteringsinstruktionen)
  • J23: Denna bygel måste installeras för ISP -programmering men sedan avlägsnas för att LCD -skärmen ska fungera korrekt.
  • Anslut LCD till PORT B med bandkabel (J31 till J2)

programvara

Jag använder Peter Fleurys LCD-bibliotek för att köra LCD-skärmen i 4-bitars läge. Kolla in Peters hemsida för att ladda ner biblioteket. Du måste se till att lcd.c är sammanställd med din kod och att du gör följande ändringar på lcd.h:

Vi använder den interna RC -oscillatorn så XTAL måste ställas in för 1MHz:

#define XTAL 1000000

  • Portinställningar måste justeras till PORTB:
  • #define LCD_PORT PORTB

  • Pinout för 4 datarader måste anpassas:
  • #definiera LCD_DATA0_PIN 4 #definiera LCD_DATA1_PIN 5 #definiera LCD_DATA2_PIN 6 #definiera LCD_DATA3_PIN 7

  • Pinout för RS, RW och E måste anpassas:
  • #define LCD_RS_PIN 3 #define LCD_RW_PIN 1 #define LCD_E_PIN 2

    Huvudprogrammet är mycket enkelt tack vare det arbete Peter Fleury gjorde i sitt LCD -bibliotek. KOD:

    #include #include "lcd.h" int main (void) {lcd_init (LCD_DISP_ON); // Initiera LCD -skärmen med markören av lcd_clrscr (); // Rensa LCD -skärmen lcd_gotoxy (5, 0); // Flytta markören till denna plats lcd_puts ("Dragon"); // Lägg den här strängen på LCD -skärmen lcd_gotoxy (6, 1); // Flytta markören till den här platsen lcd_puts ("Rider"); // Lägg den här strängen på LCD -skärmen för (;;) {// Gör ingenting för alltid (meddelande visas redan på LCD)}}

    Kod bifogad

    Koden bifogad inkluderar Peter Fleurys LCD -bibliotek (lcd.c och lcd.h) med hans tillstånd. Tack Peter! Den enda ändringen jag har gjort är att ställa in de korrekta stiften i Defines. Besök hans webbplats för att ladda ner paketet: https://www.jump.to/fleuryJag har också inkluderat en makefil som jag använder skriven av Eric B. Weddington och Jorg Wunsch. Jag skickade ett PM till Jorg över på avrfreaks.net men fick aldrig något svar från honom. Det finns några ändringar i makefilen för att skräddarsy för att använda Linux och draken. Tack till er båda, vänligen säg till mig om dina preferenser för att jag delar ditt arbete.

    Steg 4: 28-stifts UC ISP-programmering (ATmega8)

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

    Nästa projektdemontration kommer att använda en ATmega8 som är en 28-stifts avr. Här är den grundläggande bygeluppsättningen för ISP-programmering av 28-poliga mikrokontroller.

    Bygelinställningar

    Ställ in hopparna på Dragon Rider så att shuntarna ansluter följande stift. (stift 4 är mittstiftet för J22 -J -24) Stift: J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42

    Teknisk information

    • Genom att ansluta J11 och J12 på detta sätt kan du använda dessa stift som I/O -stift. Alternativet skulle vara att dirigera dessa stift för att upprätta en anslutning till den yttre kristallen.
    • Genom att ansluta J13 på detta sätt kan vi använda den som återställningsstift. Alternativet skulle leda denna pin till PORTC -rubriken för användning som en I/O -pin. (detta skulle ha många nackdelar, inklusive oförmågan att programmera detta chip med hjälp av ISP).
    • J16 & J22-J24 är anslutna på detta sätt för att dirigera lämpliga stift (Reset, MISO, MOSI och SCK) till ISP-huvudet på AVR Dragon.

    Steg 5: Avancerad LCD- och knappanvändning: den stora klockan

    Avancerad LCD- och knappanvändning: den stora klockan
    Avancerad LCD- och knappanvändning: den stora klockan

    Detta är ett roligt projekt som använder LCD -skärmen och knapparna. Vi kommer att hantera Real Time Clock -funktioner och anpassade tecken på LCD -skärmen. På bilden längst ner kan du se klockan 19:26:07 som visas i stort antal på LCD -skärmen. Varje nummer använder ett 2x2 rutnät med tecken som visas för att visa det stora antalet. Detta använder ett teckensnitt som ursprungligen skrevs av Xtinus för XBMC -projektet. Knapparna används för att ställa in klockan. Vänster ökar timmarna, Upp ökar minuterna, Höger växlar mellan 12 och 24-timmars tid och Enter återställer sekunderna till noll. Klockan håller inte riktigt bra tid eftersom vi använder den mycket felaktiga interna oscillatorn, men det här programmet kan enkelt ändras för att använda en mycket mer exakt extern kristall. Se detta i aktion i videon nedan. En förklaring av hur den här koden fungerar är i sin ordning, men jag har inte tid just nu. För tillfället ansluter LCD -rubriken (J31) till PORTD (J4) och knapphuvudet (J30) till PORTB (J2). Se till att du har både SW1 och SW2 i avstängt läge. Anslut AVR Dragon till en usb -kabel och anslut den andra änden av kabeln till din dator. Slå på SW2 och programmera ATmega8 med den valda programmeringsprogramvaran (hexfil nedan; säkringar brända till fabriksinställningar) OBS: För att använda knapparna Vänster och Upp måste du ta bort shuntarna från J22 och J24, gör detta medan strömmen är avstängd.

    Steg 6: Högspänningsprogrammering

    Jag har använt High Voltage Parallel Programming för att återuppliva en ATtiny2313 som jag ställt in fel säkringsinställningar på. Jag behövde det en andra gång när jag arbetade med detta instruerbara eftersom jag av misstag skrev den lfuse -inställning jag ville ha till hfuse -registret….. oops. Högspänning parallell programmering är ett praktiskt verktyg att ha till ditt förfogande! Nedan följer en lista med mina bygelinställningar: ANVÄND PÅ DIN EGEN RISK, DENNA PROGRAMMERING KAN SKADA DIN HARDWARE OM DU INTE VET VAD DU GÖR !! Högspänning parallell programmering: ATtiny2313 i uttag U3: SW1 - OFFSW2 - ONJ5, J6, J7 - anslut stift1 och stift2XTAL1 - anslut stift1 och stift2J16 - Anslut stift1 och stift22x5 IDC -kablar: PROG_CTRL till PORT D, PROG_DATA till PORT BA J8-J13, J18, J19, J20, J22-J28, J24) För andra marker bör du kunna räkna ut de inställningar du behöver från Atmels användarhandbok för deras STK500.

    Steg 7: Expandera bortom styrelsen

    Expanderar bortom styrelsen
    Expanderar bortom styrelsen

    Jag tycker att det är ganska enkelt att ansluta till en brödbräda. Detta möjliggör mycket mer flexibilitet i prototyper och utveckling av kod samtidigt. Nedan ser du ett par brödbrädor anslutna till Dragon Rider. Jag ansluter bandkablarna till lämpliga portar i ena änden. På den andra använder jag bygelkablar för att ansluta rätt ICD -ledare till brödbrädorna.

    Steg 8: Slutsats

    Det finns mycket mer som kan vara inblandat i denna instruerbara. Just ikväll färdigställer jag en adapter som låter dig använda den 6-poliga programmeringsrubriken utan att ta bort draken från Dragon Rider. Jag kommer att lägga ut information om hur man konstruerar en själv … kommer snart. Om du har andra saker som du tror måste läggas till lämna en kommentar.

    Steg 9: Lägga till en 6-pins ISP

    Lägga till en 6-pins ISP
    Lägga till en 6-pins ISP
    Lägga till en 6-pins ISP
    Lägga till en 6-pins ISP
    Lägga till en 6-pins ISP
    Lägga till en 6-pins ISP

    Jag brukar bygga in en 6-stifts ISP-rubrik till alla mina projekt så att jag kan programmera om chippet om det behövs och inte behöva ta bort det från projektkortet. Drakryttaren har tyvärr ingen 6-stifts ISP-rubrik tillgänglig men jag kom på hur jag skulle göra en tillgänglig.

    Varning!!

    Det här är ett hack. Om du inte vet exakt hur det här fungerar, gör det inte

    Du har blivit varnad. Jag har skapat ett eget adapterkort och en 3-polig bygel för att leverera det 6-poliga ISP-huvudet. Vad du gör är att ställa in Dragon Rider för att programmera och 8-polig mikrokontroller. Med ett 3-poligt uttag hoppar jag J8 för att ansluta stift 1 och 3. Detta leder klocksignalen till PortB-kontakten. Jag kör sedan en bygelkabel från PortB -huvudet till mitt adapterkort och voila! Det finns bilder nedan …. snälla, snälla, snälla, gör inte detta om du inte riktigt förstår vad du gör eftersom du kan skada din AVR Dragon eller värre om du gör detta fel.

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

    Steg 10: RSS -läsare med seriell anslutning och LCD

    RSS -läsare med seriell anslutning och LCD
    RSS -läsare med seriell anslutning och LCD
    RSS -läsare med seriell anslutning och LCD
    RSS -läsare med seriell anslutning och LCD

    Jag fortsätter att leka med denna utvecklingsbräda. Den här gången tillbringade jag en del av en eftermiddag med att utveckla en RSS -läsning (mestadels på pythonsidan). Jag tror inte att det motiverar sin egen instruerbara så jag lägger till det här.

    Hårdvara

    Vi använder Dragon Rider 500 som utvecklingsbräda. Detta tillhandahåller all hårdvara du behöver (förutsatt att du har alla tilläggssatser). Med detta sagt kan du verkligen göra detta med din egen hårdvaruinstallation:

    • ATmega8 mikrokontroller (eller någon som har en USART och tillräckligt med stift för alla anslutningar
    • Ett sätt att programmera mikrokontrollern (jag använder AVR Dragon)
    • MAX232 -chip för seriekommunikation
    • DB9 -kontakt
    • HD44780 LCD -skärm
    • Kristall (jag använde en 8 MHz kristall)
    • Diverse kondensatorer och motstånd

    En schematisk bild finns nedan. På Dragon Rider måste vi använda lite kreativitet för att dirigera anslutningarna. Normalt kan port D anslutas direkt till LCD -rubriken. Detta är inte fallet här eftersom USART som behövs för den seriella anslutningen använder PD0 och PD1. Dessutom kan Port B inte användas eftersom PB6 och PB7 används för den externa kristallen. Bilden nedan är min lösning på detta problem. Jag ansluter en bandkabel till sidhuvudena för LCD -skärmen, port B och port D, sedan använder jag bygelkablar för att göra rätt vägar. Glöm inte att ansluta spänningen och jorda till LCD -rubriken.

    programvara

    Programvaran för detta projekt finns i två delar, firmware för mikrokontrollern och python -skriptet för att skrapa RSS -flöden och skicka dem över den seriella anslutningen. AVR -firmware Jag använder Peter Fleurys LCD -bibliotek igen (https://jump.to /fleury). Det är kraftfullt och koncist, mångsidigt och lätt att ändra för din maskinvaruinstallation. Om du tittar på den bifogade rubrikfilen (lcd.h) ser du att jag kör i 4-bitars läge med Port D som databitar och Port B som kontrollbitar. Konceptet med den här firmware är ganska enkelt:

    • När den har startats visar mikrokontrollern "RSS Reader" och väntar sedan på seriell data.
    • Varje byte av seriell data som mottas får en buffert med 16 tecken att flytta åt vänster och lägga till byten i bufferten och sedan visa bufferten.
    • Tre specialkommandon accepteras av mikrokontrollern: 0x00, 0x01 och 0x02. Dessa är tydlig skärm, flytta till rad 0 respektive till rad 1.

    Python ScryptI skrev ett pyton -skript för att skrapa RSS -data och skicka det över den seriella anslutningen. Detta kräver python -modulen "pyserial" som du förmodligen måste installera på ditt system för att få detta att fungera. RSS -flödet kan konfigureras högst upp i pyton -filen. Lägg märke till att du måste ange ett namn för flödet såväl som foderwebbadressen. Det finns tre exempel där, jag är säker på att du kan följa dem för rätt syntx. Allt får det att fungera

    • Montera hårdvaran
    • Programmera mikrokontrollern (dragon_rss.hex kan användas om du inte vill kompilera detta själv). Säkringsinställningar för ATmega8 med en 8 MHz kristall: lfuse = 0xEF hfuse = 0xD9
    • Sätt på Dragon Rider och se till att seriekabeln är ansluten (LCD -skärmen ska läsa: "RSS Reader")
    • Kör pythonprogrammet (python serial_rss.py)
    • Njut av

    Rekommenderad: