SP Duo
Einführung
Der SP Duo ist ein In-System Programmierer for Atmels AVR
Microcontroller. Er ermöglicht ein schnelles Programmieren
der Chips über die SPI oder JTAG Schnittstelle. Hardware
und Firmware des Adapters wurden von
Embedded Creations entwickelt. In Deutschland
wird der SP Duo von der
egnite GmbH
vertrieben.
Der Adapter kommuniziert mit dem PC über die serielle
Schnittstelle. Dazu ist es notwendig, auf dem PC eine
geeignete Programmiersoftware zu installieren, mit der
man über den SP Duo neue Software auf die Zielhardware
übertragen kann.
Obwohl JTAG unterstützt wird, ist der SP Duo ein reiner
Programmierer. JTAG Debugging ist nicht möglich.
Ermitteln der Firmware Version
Der SP Duo programmiert nicht nur AVR Microcontroller, seine
Hardware basiert auch auf einem solchen. Zur Zeit gibt es zwei
Hardware Varianten. Das ältere Modell enthält einen
ATmega8, während die neuere Version mit einem ATmega168
ausgestattet ist.
Sie können einen einfachen Terminal Emulator (TeraTerm oder
HyperTerminal) verwenden, um die Firmware Version des Adapters
abzufragen.
Schritt 1: Verbinden Sie den SP Duo mit der Zielhardware.
Dies ist nötig, da der Adapter von dort seine Versorgungsspannung
bezieht. Achten Sie unbedingt darauf, den richtigen Stecker
zu verwenden, entweder SPI oder JTAG. Im Zweifelsfall
schauen Sie in das Handbuch ihres Boards. Die Verwendung des
falschen Steckers kann zur Zerstörung der Hardware
führen.
Schritt 2: Verbinden Sie den SP Duo mit einer freien
seriellen Schnittstelle des PC. Verwenden Sie dazu ein 1:1
Kabel mit einer DB-9 Buchse auf der PC Seite und einem
DB-9 Stecker am SP Duo.
Schritt 3: Starten Sie auf dem PC eine Terminal Emulation,
z.B. Hyperterminal (weniger empfehlenswert, aber meist vorhanden),
Teraterm (viel besser) oder ein beliebiges anderes Programm
unter Windows. Linux Anwender können Minicom verwenden.
Schritt 4: Konfigurieren Sie die Terminal Emulation
mit 115200 Baud, keine Parität, 8 Daten Bits und 1 Stopp Bit.
Alle Handshakes (Protokolle) sollten ausgeschaltet sein. Stellen
Sie sicher, dass Sie den richtigen Port verwenden.
Schritt 5: Schalten Sie die Versorgungsspannung der
Zielhardware ein. Am SP Duo sollte dananch die LED grün
aufleuchten.
Schritt 6: Aktivieren Sie das Fenster der Terminal
Emulation und drücken Sie Ctrl+V. Der SP Duo sollte
mit der Versionsnummer der Firmware antworten.
Die Versionen bis einschließlich 2.2 laufen auf der
ATmega8 basierten Variante. Für den neueren SP Duo 2
benötigen Sie mindestens Version 2.3.
Firmware Version 1.0
Die erste Serie wurde mit dieser Version ausgeliefert,
welche die beiden folgenden Probleme enthält:
Problem 1: Der Pin PROG-ENABLE wird während der
SPI Programmierung nicht gesetzt. Ethernut Boards bis zur
Version 1.3 Rev.-F benötigen dieses Signal, um
zwichen ISP und UART umzuschalten. SP Duos mit Firmware
Version 1.0 erfordern daher, dass der Jumper neben dem
ISP Anschluß auf dem Ethernut Board während der
Programmierung gesetzt wird.
Problem 2: Die Fuse Bits wurden falsch programmiert,
wodurch ein Update durch den Benutzer unmöglich ist.
Falls Sie dennoch einen Update benötigen, setzen Sie sich
mit Ihrem Distributor oder direkt mit
egnite
oder
Embedded Creations
in Verbindung.
Firmware Version 1.1
Im April 2005 wurden einige SP Duos mit dieser Version
ausgeliefert. Sie behebt das PROG-ENABLE Problem und
läßt sich durch den Benutzer updaten.
Problem: Die PROG-ENABLE Leitung wurde nach dem
Programmiervorgang nicht wieder freigegeben. Dies erforderte
einen Ein-/Ausschaltvorgang nach jeder Programmierung.
Firmware Version 1.2
Kurz nach Veröffentlichung der Version 1.1 wurde die
Firmware nochmals korrigiert, um den Fehler mit der
nicht freigegebenen PROG-ENABLE Leitung zu beheben.
Problem: Ursprünglich war vergessen worden,
die Versionsnummer selbst heraufzuzählen. Daher
melden sich einige SP Duos mit Version 1.1, obwohl
diese mit Version 1.2 laufen.
Firmware Version 2 (Beta)
Beginnend mit AVRStudio 4.11 Build 410 RC3 hat Atmel den
Support für das ältere STK500 V1 Protokoll
eingestellt und verwendet seitdem das neue Protokoll
STK500 V2. Da der SP Duo Adapter nur die ältere
Variante beherrschte, wurde eine Änderung der
Firmware erforderlich.
Diese neue Firmware wurde erfolgreich mit AVRStudio 4.11
und dem ATmega128 getestet. Wegen des begrenzten
Speichers der SP Duo CPU mußte die Unterstützung
für STK500 V1 entfernt werden. Daraus ergaben sich
neue Probleme:
Problem 1: Die meisten Open Source Programme zur
Programmierung von AVR Microcontrollern verwenden nur
das alte Protokoll, um mit dem Programmieradapter zu
kommunizieren. Lediglich die letzte Betaversion 5.0 von
avrdude unterstützt das neue Protokoll. Leider
mußten wir aber feststellen, dass selbst die
letzte Version im CVS Repository nicht zuverlässig
mit dem SP Duo funktioniert. Windows Anwender können
alternativ auf STK500.EXE ausweichen. Für Linux
oder OS X Anwender gibt es jedoch noch keine Lösung.
Problem 2: Außer dem ATmega103/128 wurden
noch keine weiteren Chips getestet.
Unglücklicherweise wurden voreilig einige Ethernut
Starterkits mit dieser neuen Version ausgeliefert. Wieder
eine der typischen Fehlentscheidungen aus der Chefetage.
Ggf. können Sie den SP Duo aber problemlos auf die
Vorgängerversion 1.1 der Firmware umprogrammieren.
Firmware Version 2.1 (Erforderlich für AVR Studio 4)
Diese Version behebt einige Probleme mit einigen älteren
AT90 Chips und dem AT90CAN128 und wurde erfolgreich mit
AVRStudio 4.11 und AVR Dude 5.0 (Option -c stk500v2)
getestet.
Entsprechend der Vorgängerversion 2.0B wird das STK500 V1
Protokoll nicht mehr unterstützt. Diese Firmware funktioniert
also nicht mit Uisp, AVR Dude 4 oder ältern Versionen von
AVR Studio.
Firmware Version 2.2
Durch umfangreiche Optimierungen konnte die Unterstützung für den
ATmega256 hinzugefügt werden. Allerdings kann es dabei ein Problem
geben, wenn Sie avrdude verwenden. Mit den aktuellen Versionen von
AVR Studio funktioniert dies.
Firmware Version 2.3
Dies ist die erste Firmware Version für den neueren SP Duo 2. Die
Funktionen sind weitestgehend identisch mit der Version 2.2, das Problem
bei der Programmierung des ATmega256 mit avrdude wurde behoben.
Änderung der Firmware
Bitte beachten Sie, dass Ihr Adapter mindestens die Firmware
Version 1.1 enthalten muß, da die Version 1.0 nicht
durch den Anwender ersetzt werden kann. Eine weitere
schlechte Nachricht, zumindest für Mac und Linux
Anwender, ist die Tatsache, dass Sie einen Windows Rechner
benötigen, um die Firmware des SP Duo auszutauschen.
Verbinden Sie den SP Duo mit der Zielhardware und einer
seriellen Schnittstelle des PC. Schalten Sie dann die
Versorgungsspannung der Zielhardware ein.
Laden Sie eine der folgenden Firmware Versionen und das
Update Programm auf Ihren PC. Verwenden Sie dazu ggf. die
rechte Maustaste und wählen Sie aus dem Kontextmenü
Ziel speichern unter.
spduo11.enc
SP Duo Firmware Version 1.1
spduov12.enc
SP Duo Firmware Version 1.2
spduo2b.enc
SP Duo Firmware Version 2 (Beta)
spduo21.enc
SP Duo Firmware Version 2.1
spduo22.enc
SP Duo Firmware Version 2.2, aktuellste Version für den älteren SP Duo
spduo23.enc
SP Duo Firmware Version 2.3, für den neueren SP Duo 2
update.exe
Dieses Update Programm ist nicht identisch mit dem aus der
AVRStudio Installation.
update-sp2.exe
Dieses Update Programm ist nicht identisch mit dem aus der
AVRStudio Installation.
Geben Sie auf einer Windows Kommandozeile folgendes ein:
update.exe spduo22.enc -COM1
für das ältere Modell oder
update-sp2.exe spduo23.enc -COM1
für den neueren SP Duo 2.
Passen Sie evtl. den Namen der Firmware Datei und den
Namen der seriellen Schnittstelle an. Es sollte daraufhin
in etwa folgende Ausgabe erscheinen:
update v1.0 - Copyright (C) 2003 Atmel Corporation
COM1 opened.
Transferring.. 100% done.
Target updated successfully.
Weitere Fragen und Antworten
Kann ich den SP Duo als JTAG Debugger nutzen?
Nein, der SP Duo eignet sich nur zum Lesen oder Schreiben
von FLASH bzw. EEPROM Speicherinhalten und dem Setzen von Fuses
und Lock Bits.
AVRStudio fordert zum Upgrade des STK500 auf. Soll ich...?
Nein, beim SP Duo handelt es sich um eine eigenständige
Entwicklung und nicht um einen Nachbau des STK500 oder ATJTAGICE.
Daher besteht die Gefahr, dass der Adapter mit der falschen
Firmware geladen wird und nicht mehr funktioniert.
Ignorieren Sie die Aufforderung zum Upgrade.
Aus Versehen wurde AVRStudio zum Upgrade aufgefordert. Ist mein SP Duo nun defekt?
In einigen Fällen wurde berichtet, dass der SP Duo
tatsächlich nach einem Upgrade durch AVRStudio nicht
mehr funktionierte. Durch erneutes Aufspielen einer originalen
SP Duo Firmware läßt sich das Problem aber wieder
beheben.
Läßt sich die Update Aufforderung von AVR Studio unterdrücken?
Andreas Heinzen hat eine Lösung gefunden, bei der folgende Registry Einträge
geändert werden:
HKEY_LOCAL_MACHINE\SOFTWARE\Atmel\AVRTools\STK500\VersionMajor=32
HKEY_LOCAL_MACHINE\SOFTWARE\Atmel\AVRTools\STK500\VersionMinor=32
|