Suchen | Impressum | English

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