ATEVK1105
von Daniel Wolf (danie)
Einleitung
Das ATEVK1105 ist ein Applikations-board mit dem Atmel die Audio-Funktionalität der AVR32: UC3A-Familie demonstriert. Die aufgespielte Beispielapplikation demonstriert das Dekodieren von MP3 oder WMA in Software. Bevor das Board mit eigener Software bespielt wird, sollte die aufgespielte Software gesichert werden, um notfalls den Ursprungszustand des Boards wiederherstellen zu können.
Komponenten:
- AVR32 (Haupt-CPU): AT32UC3A0512
- AVR32 (USB->Seriell | USB->JTAG): AT32UC3B1256-AUT
- Ethernet PHY: DP83848I
- Farbdisplay (TFT mit BackLight): ET024006DHU
- 32MB SDRAM: MT48LC16M16A2
- 8MB DataFlash: AT45DB642D-CNU
- SD/MMC-Slot
- PWM-Audio mit Kopfhörer-Verstärker: TPA6130A2RTJ
- DAC-Audio + Mikrofon: TLV320AIC23B
- Debug und Trace-Interface (JTAG + NEXUS)
- 5 QTouch-Sensoren: QT1081
- 4 Leds am UC3A, 2 Leds am UC3B, 1 Power-Led
Packungsinhalt
- ATEVK1105 Board
- Ethernet-Leitung
- USB-Leitung (Typ-A auf Mini-B 5Pol.) (2 Stück)
- USB-OTG-Adapter (Mini-B 5Pol. auf USB-Host-Buchse)
- DVD: Technical Libary
- CD: IAR Embedded Workbench
- Kurzanleitung: AVR32913: EVK1105 Getting Started Guide
Downloads
- ATEVK1105 auf Atmel.com
- Schaltplan
- Offizielle Beschreibung des werkseitigen Bootloaders (DFU)
- AVR32709: AVR32 UC3 Audio Decoder Over USB on AT32UC3A0512
- Ein gutes einsteiger Tutorial zu einem AVR32 Modul (deutsch)
- Link zum Hersteller des Displays
Erste Inbetriebnahme der vorinstallierten Beispielsoftware
Eindrucksvolle Demonstration von Atmel mittels eines Videos
Vorbereitungen
Installieren der Entwicklungsumgebung
- AVR32 Studio laden und installieren
- AVR32 GNU Toolchain laden und installieren
- FLIP-Tool laden und installieren
- AVR32-Studio ausführen
Das auf der Eclipse-IDE basierende Studio fragt beim ersten Start nach einem Ziel für den "Workspace", welches das Verzeichnis für Sourcen und Projekte sein wird, dies kann nach belieben gewählt werden. siehe auch:
Anlegen des neuen Target (ATEVK1105)
- Auf den New-Target Button klicken
- Im Property-Window die Eigenschaften konfigurieren:
- General
- Name: ATEVK1105
- Binaries: hier muss nichts eingetragen werden
- Details
- Debugger/Programmer: USB DFU auswählen
- Mikrocontroller: UC3A0512 auswählen
- Clock Source: Crystal connected to OSC0 auswählen
- Board: ATEVK1105 eingeben
- Connection: hier kann nichts eingetragen werden
- Clock: hier kann nichts eingetragen werden
- Voltage: hier kann nichts eingetragen werden
- Daisy Chain
- Der DFU-Mechanismus unterstützt kein Daisy Chain, daher kann nichts eingetragen werden
- Information
- Memory: hier kann nichts eingetragen werden
- General
Vorbereiten des Boards
Da bei Auslieferung des Boards der Pfostenstecker J16 nicht bestückt ist, dieser jedoch benötigt wird um den UC3A in den DFU-Modus zu bringen, muss er noch aufgelötet werden. bei Verwendung eines JTAG- oder NEXUS-Interfaces ist dies nicht zwingend nötig.
Manche Boards wurden mit einer fehlerhaften Firmware auf dem UC3B Prozessor ausgeliefert. Eine FAQ zur Behebung des Problems ist unter folgendem Link zu finden: EVK1105 - USB Virtual COM Port does not work
UC3A im DFU-Modus starten
Allgemeines
Um den Prozessor im DFU-Modus (Device Firmware Update) zu starten muss der Pin PA9 auf GND gezogen werden. PA9 ist auf der Pfostenleiste J16-1 (WLESS) zu finden, GND ist auf J16-9. Da dies zu Beginn die erste Wahl des Programmierens ist, macht man sich am besten einen Pfostenverbinder mit Taster. Für fortgeschrittenes Entwickeln mit Debug-Möglichkeit wird dann das JTAG-Interface verwendet. Wenn es professionell mit Debug- und Trace-Möglichkeit zu Werke geht, wird das NEXUS-Interface genutzt.
Vorgehensweise
- Das Board über die USB-User-Schnittstelle mit dem PC verbinden.
- PA9 auf GND ziehen (und halten)
- Reset-Taster drücken (und loslassen)
- PA9 loslassen
- Windows-Meldung abwarten:
- Auf die Nachfrage ob man sich mit Windows-Update verbinden will, mit Nein, diesmal nicht anworten
- Es erscheint die Windows-Meldung um den Treiber zu installieren, diesen manuell aus dem FLIP-Installationsverzeichniss auswählen
- den evtl. geforderten Neustart des Systems ausführen
Nun sollte das Board durch den Target-Dialog in AVR32-Studio angesprochen werden können.
Auslesen von programmierter Software
Die vorprogrammierte Beispielapplikation stand unter NDA
Die bei Auslieferung des ATEVK1105 aufgespielte Beispielsoftware (mp3-Player) ist im Sourcecode von Atmel erhältlich, bis vor kurzem jedoch leider nur unter NDA. Dies hat es nötig gemacht die aufgespielte Software vom Prozessor zu sichern. Es ist mir gelungen die aufgespielte Software vom Prozessor herunter zu laden und als *.hex File zu speichern. Die Nützlichkeit des ganzen sei jedoch in Frage gestellt, da auf diese Weise ja kein Sourcecode verfügbar ist, anhand dem irgendwelche Mechanismen erklärt werden. Diese Beschreibung zeigt allgemein das Auslesen Software, die bereits auf den Prozessor gespielt wurde.
Die Application Note AVR32709 enthält seit Juli 2009 den komletten Source-Code. Link: Application Notes zum AVR32.
Herunterladen der Beispielsoftware vom Board
- Starten von AVR32-Studio
- Verbinden des PC mit dem Board (PC:USB nach Board:User-USB)
- Haupt-CPU des Boards im DFU-Modus starten
- Herunterladen und speichern des ROM-Images als hex-File:
- Es wird ein korrekt konfiguriertes Target-Window benötigt (wichtig ist nur das Target ATEVK1105)
- Rechtsklick auf das ATEVK1105-Target und auswählen von Read...
- Eingabe des Speicherorts, des Dateiformats, des Offset (0x0 passt), der Länge (0x4ffff passt, habe dies empirisch ermittelt in dem ich mehrfach ausgelesen habe, bis die letzen bytes im hex-File 0x00 waren
- Die Datei readout.hex enthält nun das Image der Beispielapplikation
Beispielcode aus AVR32-Studio verwenden
Im AVR32-Studio sind einige Beispiele zum ATEVK1105 enthalten, die Verwendung soll hier beschrieben werden.
Aufsetzen eines neuen Beispiel-Projekts
- Die Erzeugung der Beispielcodes wird über: File->New->Example... aufgerufen:
- Im folgenden Dialog wählt man das gewünschte Beispiel-Projekt aus:
- Nun wird man aufgefordert einen Namen für das Projekt einzugeben, dieser kann frei gewählt werden. Als Workspace sollte Use default location aktiv sein.
- Das neue Beispiel-Projekt ist nun im Project-Explorer unter dem vorher vergebenen Namen verfügbar:
Übersetzen des Beispielprojekts
- Das Projekt das Übersetzt werden soll im Project-Explorer markieren
- Durch drücken des Build-Hammers wird das Projekt übesetzt:
- Ein Fenster mit dem fortlaufenden Build-Prozess-Balken wird eingeblendet:
- In der Console kann überprüft werden ob der Übersetzungsvorgang erfolgreich verlaufen ist:
Programmieren des UC3A
Programmieren über USB
- Laden des Bootloaders (DFU-Modus) (siehe 6.4.2: UC3A im DFU-Modus starten - Vorgehensweise)
- Schreiben der Software mit AVR32-Studio
- Rechtsklick auf das Target ATEVK1105 und auswählen von Program...
- Folgendes Fenster erscheint:
- Hier ist file.elf durch das zu programmierende File mit Pfad zu ersetzen, verwende hierzu den Browse... - Dialog
- Der Offset muss 0x0 betragen.
- Die Dateilänge automatisch mit Entire file ermitteln lassen
- Bei Options müssen alle Haken gesetzt sein
- mit OK bestätigen
- Das Herunterladen abwarten (rechts unten warten bis folgende Meldung verschwindet:
- Der Programmiervorgang kann im Consolen-Fenster kontrolliert werden:
- Das Board wird durch den Bootlader nach dem Programmieren automatisch gestartet (haben wir vorher in den Options angegeben)
Programmieren über JTAG
Beim Programmieren über JTAG muss darauf geachtet werden, dass der DFU-Bootloader nicht unbeabsichtigt überschrieben wird. Ein gelöschter Bootloader kann nur unter Einsatz des JTAGICE-MKII oder des AVR-One! wieder in den Prozessor geschrieben werden!
Erzeugen des JTAG-Target
- Verbinden des JTAG MKII mit dem PC (evtl. Treiber installieren)
- Rechtsklick ins Target-Window und Auswahl von Scan Targets -> Es wird ein neues Target angelegt
- Umbenennen des Targets (Properties-Window) in ATEVK1105-JTAG
- Ausfüllen der restlichen Eigenschaften analog zum DFU-Target
Reprogrammieren des DFU-Bootloaders
- Rechtsklick auf das JTAG-Target und auswahl von Program Bootloader...
- Konfiguration der Pins etc.
Beispielcode
Im AVR32Studio sind zahlreiche Beispielcodes enthalten, diese sind erreichbar über... /*ToDo*/
- Für ein vollständiges Projekt (OS, TCP/IP Stack, Grafik-Bibliothek usw.) sowie AVR32 Simulator - http://www.utasker.com/avr32.html
Notizen
Um Mathematische Funktion zu nutzen müssen folgende Punkte eingebaut werden:
- #include <math.h>
- die Linkeroptionen müssen um ein -lm erweitert werden (wobei -l von avrstudio hinzugefügt wird)
hierzu: rechtsklick auf das projekt und dann Properties\C/C++Build\Settings\AVR32/GNU C Linker\Libaries\im obigen Feld ein m hinzufügen