ATEVK1105

Wechseln zu: Navigation, Suche

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 packung.jpg
  1. ATEVK1105 Board
  2. Ethernet-Leitung
  3. USB-Leitung (Typ-A auf Mini-B 5Pol.) (2 Stück)
  4. USB-OTG-Adapter (Mini-B 5Pol. auf USB-Host-Buchse)
  5. DVD: Technical Libary
  6. CD: IAR Embedded Workbench
  7. Kurzanleitung: AVR32913: EVK1105 Getting Started Guide

Downloads

Erste Inbetriebnahme der vorinstallierten Beispielsoftware

Eindrucksvolle Demonstration von Atmel mittels eines Videos

Vorbereitungen

Installieren der Entwicklungsumgebung

  1. AVR32 Studio laden und installieren
  2. AVR32 GNU Toolchain laden und installieren
  3. FLIP-Tool laden und installieren
  4. 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
         ATEVK1105 target window 0003.png
  • 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
         ATEVK1105 target propertie 0000.png

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.

         ATEVK1105 J16.jpg

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.

         ATEVK1105 DFU.jpg

Vorgehensweise

  1. Das Board über die USB-User-Schnittstelle mit dem PC verbinden.
  2. PA9 auf GND ziehen (und halten)
  3. Reset-Taster drücken (und loslassen)
  4. PA9 loslassen
  5. Windows-Meldung abwarten:
    ATEVK1105 neue HW.png
  6. Auf die Nachfrage ob man sich mit Windows-Update verbinden will, mit Nein, diesmal nicht anworten
  7. Es erscheint die Windows-Meldung um den Treiber zu installieren, diesen manuell aus dem FLIP-Installationsverzeichniss auswählen
    ATEVK1105 neue treiber.png
  8. 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)
         ATEVK1105 target window 0000.png
  • Rechtsklick auf das ATEVK1105-Target und auswählen von Read...
         ATEVK1105 target window 0001.png
  • 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
         ATEVK1105 read window 0000.png
  • 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:
         ATEVK1105 file new example.png
  • Im folgenden Dialog wählt man das gewünschte Beispiel-Projekt aus:
         ATEVK1105 examples.png
  • 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:
         ATEVK1105 project explorer.png

Übersetzen des Beispielprojekts

  • Das Projekt das Übersetzt werden soll im Project-Explorer markieren
  • Durch drücken des Build-Hammers wird das Projekt übesetzt:
         ATEVK1105 build.png
  • Ein Fenster mit dem fortlaufenden Build-Prozess-Balken wird eingeblendet:
         ATEVK1105 build project.png
  • In der Console kann überprüft werden ob der Übersetzungsvorgang erfolgreich verlaufen ist:
         ATEVK1105 build console.png

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:
      ATEVK1105 program.png
    • 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:
    ATEVK1105 program process.png
  • Der Programmiervorgang kann im Consolen-Fenster kontrolliert werden:
    ATEVK1105 program console.png
  • 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*/

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