Inhaltsverzeichnis:

So verwenden Sie den Dragon Rider 500 mit Ihrem AVR Dragon – Gunook
So verwenden Sie den Dragon Rider 500 mit Ihrem AVR Dragon – Gunook

Video: So verwenden Sie den Dragon Rider 500 mit Ihrem AVR Dragon – Gunook

Video: So verwenden Sie den Dragon Rider 500 mit Ihrem AVR Dragon – Gunook
Video: EINKAUFEN + ANZÜNDEN ! Sie KAUFT für 500€ FEUERWERK und BALLERT es DIREKT alles hoch ! 2024, Juli
Anonim
So verwenden Sie den Dragon Rider 500 mit Ihrem AVR Dragon
So verwenden Sie den Dragon Rider 500 mit Ihrem AVR Dragon

Dieses anweisbare ist ein Crashkurs zur Verwendung einiger Funktionen des Dragon Rider 500 von Ecros Technologies. Bitte beachten Sie, dass auf der Ecos-Website ein sehr detailliertes Benutzerhandbuch verfügbar ist.

Der Dragon Rider ist ein Interface-Board zur Verwendung mit einem AVR-Mikrocontroller-Programmierer namens AVR Dragon von Atmel. Weitere Informationen: Atmels Website:https://www.atmel.com/ AVR Dragon-Link:https://www.atmel.com/dyn/products/tools_card.asp?tool_id=3891 Dragon Rider 500 von Ecros Technology:https://www.ecrostech.com/AtmelAvr/DragonRider/index.htm Dragon Rider 500 Montage Anleitung: https://www.instructables.com/id/Assembling-the-Dragon-Rider-500-for-use-with- the-A/ Erfahren Sie alles über die AVR-Mikrocontroller: https://www.avrfreaks.net Dieses instructable kann mit der Zeit wachsen, also schauen Sie hin und wieder zurück!

Schritt 1: AVR-Typ

Sie benötigen eine Programmiersoftware, um den AVR Dragon zum Programmieren zu verwenden. Ich verwende AVRdude mit dem Ubuntu-Betriebssystem (Linux) und bin mit den Ergebnissen sehr zufrieden. Dieses instructable wird sich nicht mit den Feinheiten der Programmiersoftware befassen. Wenn Sie nicht wissen, wie Sie Programmiersoftware einrichten oder verwenden, überprüfen Sie diese Anleitung, um Sie auf den neuesten Stand zu bringen: https://www.instructables.com/id/Getting-started-with-ubuntu-and-the- AVR-dragon/Meine Vermutung ist, dass Sie, wenn Sie einen Dragon Rider 500 gekauft und zusammengebaut haben, bereits wissen, wie man einen Chip mit dem AVR Dragon programmiert….. weiter!

Schritt 2: ATtiny2313 - Blinken Sie die LEDs

ATtiny2313 - Blinkt die LEDs
ATtiny2313 - Blinkt die LEDs
ATtiny2313 - Blinkt die LEDs
ATtiny2313 - Blinkt die LEDs
ATtiny2313 - Blinkt die LEDs
ATtiny2313 - Blinkt die LEDs

Lassen Sie uns einen ATtiny2313 programmieren, einen 20-Pin-Mikrocontroller. Der Dragon Rider 500 verfügt über Sockel für verschiedene AVR-Mikrocontroller unterschiedlicher Größe. Dazu gehören: 8, 20, 28 und 40-polige Buchsen. Je nachdem, welchen Sockel Sie verwenden, müssen die Jumper auf der Dragon Rider-Platine unterschiedlich gesetzt werden.

Jumper-Einstellungen

Stellen Sie die Jumper am Dragon Rider so ein, dass die Shunts die folgenden Pins verbinden. (Pin4 ist der mittlere Pin für J22-J-24) Pins: J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41Dies ist ein grundlegendes Setup, das ISP (In System Programming) ermöglicht.

Blinky Blinky

Programmieren nützt nichts, es sei denn, Sie haben etwas zu programmieren. Ich habe ein sehr kurzes Codebeispiel geschrieben, um die LEDs des Dragon Rider einzeln zu blinken. Verwenden Sie ein Flachbandkabel, um den LED-Header (J29) mit dem PortB-Header (J2) zu verbinden.

Programmierung

Ich habe die C-Datei sowie ein Makefile und die Hex-Datei eingefügt. Wie ich im Intro erwähnt habe, kann ich die Softwareseite der Programmierung im Instructable nicht abdecken. Programmieren Sie wie für den AVR Dragon, da der Dragon Rider die Software-Seite der Dinge überhaupt nicht ändert.

Schritt 3: Verwenden des LCD-Add-Ons

Verwenden des LCD-Add-Ons
Verwenden des LCD-Add-Ons

Hier ist eine einfache Möglichkeit, das LCD-Add-on zu verwenden. Dadurch wird "Dragon Rider" auf den LCD-Bildschirm geschrieben.

Hardware:

  • ATtiny2313
  • R / W Jumper: R / W sollte mit "BIT1" auf dem Dragon Rider Board verbunden werden (siehe Erklärung in der Montageanleitung)
  • J23: Dieser Jumper muss für die ISP-Programmierung installiert, aber dann entfernt werden, damit das LCD ordnungsgemäß funktioniert.
  • Verbinden Sie das LCD mit PORT B mit einem Flachbandkabel (J31 bis J2)

Software

Ich verwende die LCD-Bibliothek von Peter Fleury, um das LCD im 4-Bit-Modus zu betreiben. Besuchen Sie Peters Homepage, um die Bibliothek herunterzuladen. Sie müssen sicherstellen, dass lcd.c mit Ihrem Code kompiliert ist und dass Sie die folgenden Änderungen an lcd.h vornehmen:

Wir verwenden den internen RC-Oszillator, daher muss XTAL auf 1 MHz eingestellt werden:

#define XTAL 1000000

  • Porteinstellungen müssen auf PORTB angepasst werden:
  • #define LCD_PORT PORTB

  • Pinout für 4 Datenleitungen muss angepasst werden:
  • #define LCD_DATA0_PIN 4 #define LCD_DATA1_PIN 5 #define LCD_DATA2_PIN 6 #define LCD_DATA3_PIN 7

  • Pinbelegung für RS, RW und E muss angepasst werden:
  • #define LCD_RS_PIN 3 #define LCD_RW_PIN 1 #define LCD_E_PIN 2

    Das Hauptprogramm ist dank der Arbeit von Peter Fleury in seiner LCD-Bibliothek sehr einfach. CODE:

    #include #include "lcd.h"int main(void){ lcd_init(LCD_DISP_ON); // LCD mit ausgeschaltetem Cursor initialisieren lcd_clrscr (); // Löschen Sie den LCD-Bildschirm lcd_gotoxy (5, 0); // Cursor an diese Position bewegen lcd_puts("Dragon"); // Diese Zeichenfolge auf das LCD legen lcd_gotoxy (6, 1); // Cursor an diese Position bewegen lcd_puts("Rider"); // Diese Zeichenfolge auf dem LCD platzieren für (;;) { // Nichts für immer tun (Nachricht wird bereits auf dem LCD angezeigt) }}

    Code angehängt

    Der beigefügte Code enthält mit seiner Erlaubnis die LCD-Bibliothek von Peter Fleury (lcd.c und lcd.h). Danke Peter! Die einzige Änderung, die ich daran vorgenommen habe, besteht darin, die richtigen Pins in den Defines zu setzen. Bitte besuchen Sie seine Site, um das Paket herunterzuladen: https://www.jump.to/fleuryIch habe auch ein Makefile beigefügt, das ich verwende, geschrieben von Eric B. Weddington und Jörg Wunsch. Ich habe Jörg bei avrfreaks.net eine PN geschickt, aber nie eine Antwort von ihm erhalten. Es gibt ein paar Änderungen im Makefile, um sie an die Verwendung von Linux und Dragon anzupassen. Vielen Dank an Sie beide, bitte teilen Sie mir Ihre Vorlieben mit, wenn ich Ihre Arbeit teile.

    Schritt 4: 28-Pin-UC-ISP-Programmierung (ATmega8)

    28-polige UC-ISP-Programmierung (ATmega8)
    28-polige UC-ISP-Programmierung (ATmega8)
    28-polige UC-ISP-Programmierung (ATmega8)
    28-polige UC-ISP-Programmierung (ATmega8)

    Die nächste Projektvorführung wird einen ATmega8 verwenden, der ein 28-Pin-AVR ist. Hier ist das grundlegende Jumperset für die ISP-Programmierung der 28-Pin-Mikrocontroller.

    Jumper-Einstellungen

    Stellen Sie die Jumper am Dragon Rider so ein, dass die Shunts die folgenden Pins verbinden. (Pin4 ist der Mittelstift für J22-J-24) Pins:J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42

    Technische Information

    • Wenn Sie J11 und J12 auf diese Weise verbinden, können Sie diese Pins als I/O-Pins verwenden. Die Alternative wäre, diese Pins zu verlegen, um eine Verbindung mit dem externen Quarz herzustellen.
    • Wenn wir J13 auf diese Weise anschließen, können wir es als Reset-Pin verwenden. Die Alternative würde diesen Pin zum PORTC-Header leiten, um ihn als I/O-Pin zu verwenden. (Dies hätte viele Nachteile, einschließlich der Unfähigkeit, diesen Chip mit ISP zu programmieren).
    • J16 & J22-J24 werden auf diese Weise verbunden, um die entsprechenden Pins (Reset, MISO, MOSI und SCK) zum ISP-Header des AVR Dragon zu leiten.

    Schritt 5: Erweiterte LCD- und Tastenverwendung: die große Uhr

    Erweiterte LCD- und Tastenverwendung: die große Uhr
    Erweiterte LCD- und Tastenverwendung: die große Uhr

    Dies ist ein lustiges Projekt, das den LCD-Bildschirm und die Tasten verwendet. Wir werden uns mit Echtzeituhrfunktionen und benutzerdefinierten Zeichen auf dem LCD befassen. Im Bild unten sehen Sie die Uhrzeit 19:26:07 in großen Zahlen auf dem LCD-Bildschirm. Jede Zahl verwendet ein 2x2-Raster der Zeichenanzeige, um die große Zahl anzuzeigen. Dies verwendet eine Schriftart, die ursprünglich von Xtinus für das XBMC-Projekt geschrieben wurde. Mit den Tasten wird die Uhr eingestellt. Links erhöht die Stunden, Aufwärts erhöht die Minuten, Rechts schaltet zwischen 12 und 24 Stunden um und Enter setzt die Sekunden auf Null zurück. Die Uhr hält die Zeit nicht sehr gut, da wir den sehr ungenauen internen Oszillator verwenden, aber dieses Programm kann leicht geändert werden, um einen viel genaueren externen Quarz zu verwenden. Sehen Sie dies im Video unten in Aktion. Eine Erklärung, wie dieser Code funktioniert, ist in Ordnung, aber ich habe gerade keine Zeit. Verbinden Sie zunächst den LCD-Header (J31) mit PORTD (J4) und den Button-Header (J30) mit PORTB (J2). Stellen Sie sicher, dass SW1 und SW2 ausgeschaltet sind. Verbinden Sie den AVR Dragon mit einem USB-Kabel und stecken Sie das andere Ende dieses Kabels in Ihren Computer. Schalten Sie SW2 ein und programmieren Sie den ATmega8 mit der Programmiersoftware Ihrer Wahl (Hex-Datei unten; Sicherungen auf Werkseinstellungen verbrannt). HINWEIS: Um die Links- und Aufwärts-Tasten zu verwenden, müssen Sie die Shunts von J22 und J24 entfernen dies, während der Strom ausgeschaltet ist.

    Schritt 6: Hochspannungsprogrammierung

    Ich habe die Hochspannungs-Parallelprogrammierung verwendet, um einen ATtiny2313 wiederzubeleben, auf den ich die falschen Sicherungseinstellungen eingestellt habe. Ich brauchte es ein zweites Mal, als ich an diesem instructable arbeitete, weil ich versehentlich die lfuse-Einstellung schrieb, die ich in das hfuse-Register wollte ….. ooops. Die Hochspannungs-Parallelprogrammierung ist ein praktisches Werkzeug, das Sie zur Verfügung haben! Unten finden Sie eine Liste meiner Jumper-Einstellungen: VERWENDUNG AUF EIGENE GEFAHR, DIESE ART DER PROGRAMMIERUNG KANN IHRE HARDWARE BESCHÄDIGEN, WENN SIE NICHT WISSEN, WAS SIE TUN!! Hochspannungs-Parallelprogrammierung: ATtiny2313 in Sockel U3:SW1 - OFFSW2 - ONJ5, J6, J7 - Pin1 und Pin2 verbindenXTAL1 - Pin1 und Pin2J16 verbinden - Pin1 und Pin22x5 verbinden IDC-Kabel: PROG_CTRL an PORT D, PROG_DATA an PORT BAlle anderen Jumper nicht angeschlossen (J8-J13, J18, J19, J20, J22-J28, J24) Für andere Chips sollten Sie in der Lage sein, die Einstellungen, die Sie benötigen, aus dem Benutzerhandbuch von Atmel für ihren STK500 herauszufinden.

    Schritt 7: Erweiterung über das Board hinaus

    Über den Vorstand hinaus expandieren
    Über den Vorstand hinaus expandieren

    Ich finde es ziemlich einfach, mit einem Steckbrett zu kommunizieren. Dies ermöglicht viel mehr Flexibilität beim gleichzeitigen Prototyping und Entwickeln von Code. Unten sehen Sie ein paar Breadboards, die mit dem Dragon Rider verbunden sind. Ich schließe die Flachbandkabel an den entsprechenden Anschlüssen an einem Ende an. Auf der anderen verwende ich Überbrückungsdrähte, um den richtigen ICD-Leiter mit den Steckbrettern zu verbinden.

    Schritt 8: Fazit

    Es gibt viel mehr, das in diesem Instructable beteiligt sein könnte. Erst heute Abend fertige ich einen Adapter an, mit dem Sie den 6-Pin-Programmierkopf verwenden können, ohne den Drachen vom Dragon Rider zu entfernen. Ich werde Informationen darüber bereitstellen, wie Sie selbst einen bauen können … in Kürze. Wenn Sie andere Dinge haben, die Ihrer Meinung nach hinzugefügt werden müssen, hinterlassen Sie einen Kommentar.

    Schritt 9: Hinzufügen eines 6-Pin-ISP

    Hinzufügen eines 6-Pin-ISP
    Hinzufügen eines 6-Pin-ISP
    Hinzufügen eines 6-Pin-ISP
    Hinzufügen eines 6-Pin-ISP
    Hinzufügen eines 6-Pin-ISP
    Hinzufügen eines 6-Pin-ISP

    Normalerweise baue ich in alle meine Projekte einen 6-Pin-ISP-Header ein, damit ich den Chip bei Bedarf neu programmieren kann und ihn nicht von der Projektplatine entfernen muss. Der Drachenreiter hat leider keinen 6-poligen ISP-Header zur Verfügung, aber ich habe herausgefunden, wie man einen zur Verfügung stellt.

    Warnung!

    Das ist ein Hack. Wenn Sie nicht genau wissen, wie das funktioniert, tun Sie es nicht

    Sie wurden gewarnt. Ich habe meine eigene Adapterplatine und einen 3-Pin-Jumper erstellt, um den 6-Pin-ISP-Header zu versorgen. Was Sie tun, ist, den Dragon Rider auf Programmierung und 8-Pin-Mikrocontroller einzustellen. Mit einer 3-poligen Buchse überbrücke ich J8, um die Pins 1 und 3 zu verbinden. Dadurch wird das Taktsignal an den PortB-Anschluss geleitet. Ich führe dann ein Überbrückungskabel vom PortB-Header zu meiner Adapterplatine und voila! Es gibt Bilder unten…. bitte, bitte, bitte, tun Sie dies nicht, wenn Sie nicht wirklich verstehen, was Sie tun, da Sie Ihren AVR Dragon beschädigen oder schlimmeres tun könnten, wenn Sie dies falsch machen.

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

    Schritt 10: RSS-Reader mit serieller Verbindung und LCD

    RSS-Reader mit serieller Verbindung und LCD
    RSS-Reader mit serieller Verbindung und LCD
    RSS-Reader mit serieller Verbindung und LCD
    RSS-Reader mit serieller Verbindung und LCD

    Ich spiele weiter mit diesem Entwicklungsboard herum. Dieses Mal verbrachte ich einen Teil des Nachmittags damit, eine RSS-Readion zu entwickeln (hauptsächlich auf der Python-Seite). Ich glaube nicht, dass es sein eigenes instructable rechtfertigt, also füge ich es hier hinzu.

    Hardware

    Als Entwicklungsboard verwenden wir den Dragon Rider 500. Dies stellt die gesamte benötigte Hardware bereit (vorausgesetzt, Sie haben alle Add-On-Kits). Davon abgesehen können Sie dies sicherlich mit Ihrem eigenen Hardware-Setup tun:

    • ATmega8-Mikrocontroller (oder jeder mit USART und genügend Pins für alle Verbindungen)
    • Eine Möglichkeit, den Mikrocontroller zu programmieren (ich benutze den AVR Dragon)
    • MAX232-Chip für die serielle Kommunikation
    • DB9-Anschluss
    • HD44780 LCD-Bildschirm
    • Kristall (ich habe einen 8-MHz-Kristall verwendet)
    • Verschiedene Kondensatoren und Widerstände

    Eine schematische Darstellung finden Sie unten. Auf dem Dragon Rider müssen wir etwas Kreativität aufwenden, um die Verbindungen zu routen. Normalerweise könnte Port D direkt mit dem LCD-Header verbunden werden. Dies ist hier nicht der Fall, da die für die serielle Verbindung benötigte USART PD0 und PD1 verwendet. Außerdem kann Port B nicht verwendet werden, da PB6 und PB7 für den externen Quarz verwendet werden. Unten abgebildet ist meine Lösung für dieses Problem. Ich stecke ein Flachbandkabel an die Header für das LCD, Port B und Port D an und verwende dann Überbrückungsdrähte, um die richtigen Routen zu erstellen. Vergessen Sie nicht, Spannung und Masse an den LCD-Header anzuschließen.

    Software

    Die Software für dieses Projekt besteht aus zwei Teilen, der Firmware für den Mikrocontroller und dem Python-Skript zum Scrapen der RSS-Feeds und zum Senden über die serielle Verbindung. AVR FirmwareIch verwende wieder die LCD-Bibliothek von Peter Fleury (https://jump.to /fleury). Es ist leistungsstark und prägnant, vielseitig und lässt sich leicht an Ihr Hardware-Setup anpassen. Wenn Sie sich die angehängte Header-Datei (lcd.h) ansehen, sehen Sie, dass ich im 4-Bit-Modus mit Port D als Datenbits und Port B als Steuerbits laufe. Das Konzept dieser Firmware ist ziemlich einfach:

    • Nach dem Einschalten zeigt der Mikrocontroller "RSS Reader" an und wartet dann auf serielle Daten.
    • Jedes empfangene Byte serieller Daten bewirkt, dass ein Puffer von 16 Zeichen nach links verschoben wird und das Byte zum Puffer hinzugefügt wird, dann wird der Puffer angezeigt.
    • Der Mikrocontroller akzeptiert drei spezielle Befehle: 0x00, 0x01 und 0x02. Diese sind Bildschirm löschen, zu Zeile 0 wechseln bzw. zu Zeile 1 wechseln.

    Python ScryptIch habe ein Python-Skript geschrieben, um die RSS-Daten abzukratzen und über die serielle Verbindung zu senden. Dies erfordert das Python-Modul "pyserial", das Sie wahrscheinlich auf Ihrem System installieren müssen, damit dies funktioniert. Der RSS-Feed kann oben in der Python-Datei konfiguriert werden. Beachten Sie, dass Sie einen Namen für den Feed sowie die Feed-URL eingeben müssen. Es gibt drei Beispiele, ich bin sicher, Sie können diesen für die richtige Syntax folgen. Damit alles funktioniert

    • Montieren Sie die Hardware
    • Programmieren Sie den Mikrocontroller (dragon_rss.hex kann verwendet werden, wenn Sie dies nicht selbst kompilieren möchten). Sicherungseinstellungen für ATmega8 mit einem 8-MHz-Quarz: lfuse= 0xEF hfuse=0xD9
    • Schalten Sie den Dragon Rider ein und vergewissern Sie sich, dass das serielle Kabel eingesteckt ist (LCD sollte lesen: "RSS Reader")
    • Führen Sie das Python-Programm aus (python serial_rss.py)
    • Genießen

    Empfohlen: