wiki:Projekte/Atmel-XPLAIN-Board

Version 4 (modified by weef, 12 years ago) (diff)

openmcp port announced

Atmel XPLAIN-Board

Ausstattung

Seit drei Jahren angekündigt und seit einem Jahr endlich in kleinen Stückzahlen erhältlich, diffundieren nun endlich die ersten Prototyping-Boards mit Atmels ATXMEGA-CPUs an größere Entwicklerkreise und Endkunden. Am Spannendsten ist dabei das XPLAIN-Board, das Atmel ursprünglich nur auf seinen XMEGA-Seminaren verteilte. Es hat folgende Ausstattung:

 * ATxmega128A1 microcontroller
 * External Memory
  - 8MB SDRAM
  - 8MB Serial Data Flash
 * AT90USB1287
  - Communication gateway
  - Programmer for XMEGA
 * Analog Input (to ADC)
  - Temperature sensor
  - Potentiometer
 * Analog Output (from DAC)
  - Mono speaker via audio amplifier
 * Digital IO
  - UART communication through USB gateway
  - 8 micro switch buttons
  - 8 LEDs
  - 8 spare analog pins
  - 8 spare digital pins

(AVR1907: Xplain Hardware User's Guide)


Programmierung, according to Atmel

Leider hat es Atmel bis heute nicht hinbekommen, für den AT90USB eine downloadbare Firmware zu veröffentlichen, die den XMEGA programmieren kann, obwohl natürlich die entsprechenden Pins verbunden sind:

3.4 Programming the XMEGA through the USB gateway
                       Programming of the ATxmega128A1 through the USB is not supported in the
                       preliminary release.

(AVR1907: Xplain Hardware User's Guide)

Der AT90USB enthält in der hier vorliegenden PCB-Version 4 den Bootloader sowie ein USB-CDC-Gate, aber keinen Programmer.

Zum Programmieren ist man auf JTAG oder den XMEGA-PDI-Port angewiesen - sehr lästig, dachten sich auch andere und erweiterten das LUFA-Projekt um einen AVRISP_MKII-kompatiblen Programmer.

Ausweg: Programmierung als AVRISP MKII per LUFA und dfu oder FLIP

LUFA

Im LUFA-Paket ist eine Firmware enthalten, die den AT90USB1287 auf dem XPLAIN zu einem AVRISP_MKII kompatiblen Programmer macht. Zum Aufspielen der Firmware ist außer einem Mini-USB-Kabel kein Programmer nötig - solange der Bootloader nicht beschädigt wird, braucht kein JTAG verwendet zu werden! Außerdem kann man auf dem XPLAIN -Board die "XPLAIN-UART-to-USB-bridge" verwenden; geplant ist der Merge dieser beiden Firmware. Darüber hinaus funktionieren natürlich auch andere Module - wenn die Programmiermöglichkeit des ATXMEGA nicht wichtig ist.

LUFA (Lightweight USB Framework for AVRs, formerly known as MyUSB) is my first foray into the world of USB. 
Originally based on the AT90USBKEY from Atmel, it is an open-source driver for the USB-enabled AT90USBxxxx 
and ATMEGAxxUx AVR microcontroller series (MIT licence).

(aus http://www.fourwalledcubicle.com/LUFA.php)

LUFA stellt drei Bootloader-Klassen zur Verfügung: CDC (AVR109), DFU (Atmel-DFU-Protokoll), und HID. Für diese werden downloadbare Firmwarefiles für verschiedenste Anwendungen bereitgestellt, welche einzeln oder komplett erzeugt werden können.

dfu-programmer

Das die interessante Firmware wird per dfu auf dem USB-fähigen AVR gebrannt:

A linux based command-line programmer for Atmel (8051 & AVR) chips with a USB bootloader supporting ISP. 
This is a mostly Device Firmware Update (DFU) 1.0 compliant user-space application.

(aus http://sourceforge.net/projects/dfu-programmer/)


FLIP

Atmels eigener Downloader für USB enabled devices; free, closed source, gibts auch als *ux-Variante.

Download: http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3886

Prerequisites

  • im {LUFAhome}/Projects/AVRISP/ im makefile
    BOARD = USBKEY
    
    auf
    BOARD = XPLAIN
    
    ändern
  • LUFA compilieren, make all schadet nicht
  • Ergebnis kontrollieren: im {LUFAhome}/Projects/AVRISP/ sollten u.a. AVRISP.hex und AVRISP.eep entstanden sein

  • der AT90USB1287 muß in den bootloader-Modus versetzt werden:
    • USB abziehen
    • Pin 1 und 2 am J200 ("JTAG-USB") shorten und USB wieder anstecken:
      Bus 004 Device 028: ID 03eb:2ffb Atmel Corp. at90usb AVR DFU bootloader
      
    • wenn lsusb dieses nicht anzeigt, mit z.B. Pinzette Pin 6 und 10 von J200 (/RESET auf GND) Bootloadermodus erzwingen
    • jetzt mit dfu den Bootloader ansprechen:
      $ dfu-programmer at90usb1287 get
      
      Wenn hierbei was nicht geklappt hat, meldet dfu:
      dfu-programmer: no device present.
      
      Dann Prozedur wiederholen, bis der Bootloader-Modus sichtbar wird. Power cycle nicht vergessen (usb an und ab), Jumper reicht oft nicht allein dann kurz /RESET ziehen (s.o.)
      $ dfu-programmer at90usb1287 get
      Bootloader Version: 0xf0 (240)
      
  • Firmware aufspielen: AT90USB muß erst gelöscht werden, sonst kommt
    Device is write protected.
    Error while flashing.
    
    Also erst
    $ dfu-programmer at90usb1287 erase
    
    und dann
    $ dfu-programmer at90usb1287 flash AVRISP.hex
    
    Validating...
    6266 bytes used (4.78%)
    

  • Jumper zwischen 1 uns 2 weg, AT90USB neu starten, dann sollte das Board am USB wie folgt erkannt werden:
    Bus 004 Device 031: ID 03eb:2104 Atmel Corp. AVR ISP mkII
    

Success ! Jetzt kann man den ATXMEGA einfach programmieren. Die USB-LED auf dem XPLAIN verhält sich jetzt wie diejenige auf dem AVRISPMKII: sie ist orange im idle, und rot/grün blinkend während des Programmierens.



avrdude-issues

avrdude 5.8 hat Macken, die im Zusammenhang mit ATXMEGA-Steinen und AVRISP_MKII-Programmern kleinere Fehler bringen.

bug #27995: AVRDUDE 5.8svn fails to program and read XMEGA
bug #27341: atxmega128A1 with avr isp mk2: cannot read device signature, flashing fails

AVRSTUDIO 4.18 läuft damit ohne Probleme, avrdude hingegen erkennt keine signature, programmieren läßt sich trotzdem mit -F.



weitere Ressourcen

Attachments (1)

Download all attachments as: .zip