Manual fuer TWOPROG 3
==============================================================================
For all english speaking people:
My english is not so good for translating this manual from german into
english language. If you are a good translator i would please you to send
me a translation of this text into english or any other language.
==============================================================================
Obwohl ich immer noch glaube, dass man eigentlich keine Anleitung fuer
Twoprog braucht, habe ich mich doch entschlossen, mal eine kurze
Anleitung zu schreiben. Es soll keine ausfuehrliche Bedienungsanleitung
werden, sondern nur auf einige Spezialitaeten hinweisen, die es bei der
Bedienung von Twoprog 3 gibt. Wer gar nicht klar kommt, der sollte sich
mit anderen Usern im Online-Forum in Verbindung setzen. Oder probiert
einfach mal die Funktionen aus, selber erlernen ist immer der beste Weg
zum Erfolg.
==============================================================================
ZunΣchst mal etwas gundsΣtzliches:
Zum Betrieb der schnellen Routinen von Twoprog 3 ist die neue Bios-Version
3.0 fⁿr Multiprog 2001XL und 2003XXL notwendig. Das Bios befindet sich im
Multiprog Update MPUP0403, das auf der Twoprog 3 Homepage zu bekommen ist.
Nach Einspielen des neuen Bios kann nur noch Twoprog 3 benutzt werden.
Soll wieder die alte Twoprog 2.5 benutzt werden, mu▀ die alte Bios-Version
2.1 eingespielt werden. Auch diese befindet sich in MPUP0403.
Die registrierte Version von Twoprog 3 funktioniert nur in dem installierten
Verzeichnis und nur mit dem bei der Freischaltung angegebenen Seriennummer
des ProgrammiergerΣtes. Wird die Hardware des PC verΣndert (Festplatte
getauscht) oder ein anderes ProgrammiergerΣt verwendet (verschiedene
Seriennummer) mu▀ ein neuer Freischaltcode angefordert werden.
Zur Errechnung des Systemcodes zur Generierung des Freischaltcodes werden
die aktuellen Festplattenparameter benutzt. Der Systemcode beinhaltet keine
auswertbaren Parameter und ist zudem mit dem nicht reversiblen Unix-
Crypt-Algorhytmus codiert, so da▀ anhand dieser 8 Bytes keinerlei Informationen
ⁿber die Konfiguration des PC ermittelt werden k÷nnte.
==============================================================================
PIC/PIC2-KARTEN
===============
*> Einige alte PIC/Goldwafer-Karten sind noch mit dem PIC16F84 (ohne "A")
ausgestattet. Damit diese auch programmiert werden k÷nnen, mu▀ im Config-
Menⁿ unter "Programmierung" der Punkt "PIC Komponenten-ID ⁿberprⁿfen"
ausgeschaltet werden.
*> Unterschiedliche Chips in der PIC-Card 2. In der Original Silver-Card
befindet sich der 16F877 Controller. Es gibt auch einige andere Karten,
auf denen sich 16F876 befinden. Auch diese lassen sich problemlos
programmieren, wenn im Config- Menⁿ unter "Programmierung" der Punkt
"PIC Komponenten-ID ⁿberprⁿfen" ausgeschaltet wird.
*> Warum dauert das Schreiben einer PIC2-Karte so lange?
Twoprog hΣlt sich genau an die von Microchip vorgeschriebenen Programmer-
parameter. Diese schreiben vor, da▀ zwischen dem Schreiben eines Wortes
8 Millisekunden Pause eingelegt werden mu▀. Diese Zeit habe ich mal
testweise verkⁿrzt und es kam immer wieder zu Programmierfehlern.
Wenn man jetzt ausrechnet, da▀ der PIC16F877 8192 Steicherstellen hat und
jede zu programmieren 8 Millisekunden dauert, dann kommen wir auf einen
Wert von ca. 66 Sekunden. Inklusive Verify kommen wir auf einen Wert von
ca. 80 Sekunden, schneller geht es leider nicht.
ATMEL/AVR-KARTEN
================
*> Bei AVR-Controllern der Σlteren Generation kann die Komponenten-ID im
geperrten Zustand (also wenn die Lockbits gesetzt sind) nicht ausgelesen
werden. Dies hat Atmel erst mit den ATMega-Controllern beseitigt.
Besondere Probleme macht der AT908515 auf allen Fun-Karten. Hier k÷nnen
nicht einmal die Lockbits ausgelesen werden, so da▀ nur anhand der nicht
vorhandenen Komponenten-ID festgestellt werden kann, da▀ der Controller
gegen das Auslesen gesperrt ist.
*> Das Auslesen des externen EEPROM bei AVR-basierenden Karten im
Modus 2 kann sehr lange dauern, da hierbei zunΣchst der Inhalt des
Flash-Memory und des internen EEPROMs gesichert werden und nach dem
Auslesen des externen EEPROM wieder zurⁿckgeschrieben werden mu▀.
Au▀erdem ist das Protokoll sehr langsam, so da▀ man sehr viel Zeit
fⁿr diese Funktion braucht.
*> Vorsicht bei der Oscillator-Einstellung bei ATMega-Smartcards.
Wird hier aus versehen ein Modus mit "Ext. RC" eingestellt, lΣ▀t sich
die Karte nie mehr ansprechen, sie ist also unbrauchbar geworden.
Diese Einstellungen sind natⁿrlich vorhanden, weil sich Twoprog 3 an die
Spezifikationen der Chip-Hersteller hΣlt.
*> Fⁿr den normalen Betrieb der ATMega-Karten mu▀ immer der
Oscillator-Modus "0000: Ext. CLK fast Power" eingestellt werden.
Die Karten werden in der Regel mit Oscillator-Modus
"0010: Int. RC, slow Power" ausgeliefert. Damit sie richtig funktioniert,
mu▀ sie in den Modus 0000 umgestellt werden, also nicht vergessen.
*> Einzelne ATMEL-Chips vom Typ AT90S2323/2343/1200/2313 lassen sich direkt
in den DIL-Sockeln auf dem Multiprog programmieren. Fⁿr andere Controller
mu▀ ein passender Adapter hergestellt werden. Schaut bitte in die
DatenblΣtter der Controller, die sich direkt von der ATMEL-Homepage
herunterlasen lassen, um die Pinbelegungen zu vergleichen. Fⁿr die
Programmierung sind bei allen Controller folgende Pins notwendig:
Vcc (+5V), GND, RESET, CLOCK, MISO, MOSI, SCK
SMARTCARDS ALLGEMEIN
====================
*> Automatische Kartenerkennung? Nein, die existiert nicht im Twoprog.
Warum? Twoprog ist ein Programm, das zwar einfach zu bedienen ist,
aber der Anwender soll doch etwas zum Nachdenken aufgefordert werden,
damit er wei▀, was er eigentlich tut. So sollte er zumindest wissen,
welche Karten er selber besitzt und den entsprechenden Typ von Hand
auswΣhlen. Au▀erdem kann der richtige Kartentyp ohnehin nicht immer
erkannt werden, besonders die verschiedenen Fun-Karten lassen sich
nur mit sehr langwierigen ProgrammiervorgΣngen unterescheiden.
*> Vorsicht, wenn bei lesen oder schreiben des exterenen EEPROM einer
Smartcard der Abbruch-Button gedrⁿckt wird. In diesem Fall werden die
Originaldaten nicht mehr zurⁿckgeschrieben, die Daten im Controller
sind also ungⁿltig.
*> Ein Leertest des externen EEPROM einer Smartcard ist nicht m÷glich,
da es bei EEPROMs ja keine leeren Speicheradressen gibt. Aus gleichem
Grund mu▀ natⁿrlich immer der komplette EEPROM Speicherbereich geschrieben
werden, da es keinen L÷schbefehl wie beim Controller gibt.
VERSCHIEDENES
=============
*> Ein einzelnes I2C-EEprom 24Cxxxx bzw. 24LCxxxx mu▀ in die
gekennzeichnete EEPROM2-Position des AVR-Sockels gesteckt werden.
*> Was ist der Unterschied zwischen Modus 2 + 3?
Im Modus 2 werden alle Befehle im Hex-Modus zum und vom Programmer
ⁿbertragen. Des weiteren wird jedes Byte einzeln programmiert oder
gelesen, wodurch ziemlich hohe Datenmengen ⁿbertragen werden mⁿssen.
Modus 3, der mit allen Multiprog Bios-Versionen 3.x funktioniert
arbeitet da wesentlich effektiver. Alle Befehle und Daten werden
BinΣr ⁿbertragen und mit einem Checksummenbyte abgesichert.
ZusΣtzlich werden Speicherbereiche im Block gelesen oder geschrieben.
Wann kommt Modus 4? Dieser Modus ist fⁿr die zukⁿnftigen USB-Programmer
reserviert, er ist in der aktuellen Twoprog-Version noch nicht eingebaut.
*> Wenn man ⁿber den HEX-Dumps des Flash-Memory (Gelb), internen EEPROM
(Grⁿn) oder externen EEPROM (Rot) die rechte Maustaste drⁿckt, kann der
Speicher komplett mit $FF/$FFFF/$3FFF (abhΣngig vom Speicherbereich und
Controller-Typ) oder $00/$0000 gefⁿllt werden. Auch kann der komplette
Bereich mit Zufallszahlszahlen gefⁿllt werden (so habe ich alle Karten
getestet). Im 16-Bit Modus des Flash-Speichers bei AVR-Controllern k÷nnen
die Low- und High-Bytes der ASCII-Anzeige vertauscht werden um Texte
besser lesbar zu machen.
*> Wer ein paar nette Sounds fⁿr die Fehlermeldungen und Programm-Ende
hat, kann sie mir per E-Mail schicken. Ich baue sie eventuell in die
nΣchste Version von Twoprog ein.
*> Verschiedene Sprachen? Da ich selber au▀er Deutsch und Englisch keine
andere Sprache beherrsche, habe ich auch nur diese beiden Sprachen
in Twoprog eingebaut. Wer in der Lage ist, die Texte in andere Sprachen
zu ⁿbersetzen, setze sich bitte auch mit mir in Verbindung.
*> Obwohl ich es eigentlich nicht wollte, habe ich doch wieder das Laden
von .CRD-Dateien eingebaut. Dieses Dateiformat stammt aus der Hackerszene
und ist leider nicht genormt. Ich habe versucht, alle gΣngigen Formate
in Twoprog 3 einzubauen. Sollte es dennoch mal wieder ein neues Format
geben, sollte man diese Datei mit einem CRD->HEX-Konverter umwandeln.
Passende Programme hierzu sind auf vielen (Hacker)-Seiten im Internet
zu finden. Bitte fragt mich deshalb nicht nach Links zu diesen Seiten.
*> Ich will mich hier noch einmal von der gesamten Hackerszene distanzieren.
Twoprog 3 wurde komplett mit Zufallsdaten entwickelt (deshalb die Funktion
"Fⁿlle Buffer mit Zufallswerten"). Per Zufallszahlengenerator wurden
Speicherinhalte generiert, auf die Smartcards geschrieben und danach wieder
gelesen. Wenn diese Daten nach dem Auslesen mit den geschriebene identisch
sind, kann ich davon ausgehen, da▀ alles in Ordnung ist.
---
Konfigurations-Menⁿ:
TWOPROG-OPTIONEN
Verbinde zum Programmer beim Start von Twoprog
Bei Programmstart wird automatisch versucht, eine Verbindung zum
angeschlossenen Programmer aufzubauen. Es wird eine Fehlermeldung
ausgegeben, wenn das fehlschlΣgt.
Lade die letzten benutzten Dateien bei Programmstart
Bei Programmstart werden die gleichen Dateien wieder geladen, die
beim letzten Verlassen den Programmes geladen waren.
Fehlermeldung Sound
Hier kann eingestellt werden, ob bei einer Fehlermeldung ein
Sound abgespielt werden soll. Mit den +/- Buttons wird der Sound
ausgewΣhlt. Durch drⁿcken auf den Knopf mit dem Latsprecher kann
der Sound probegeh÷rt werden.
SCHNITTSTELLE
Serial Port
Hier wird der benutzte serielle COM-Port gewΣhlt
PROGRAMMIERUNG
Warnmeldungen aktivieren
Vor dem L÷schen und ▄berschreiben von Daten soll eine Warnmeldung
ausgegeben werden.
Automatischer Programmstart bei einschieben der Karte
Soll eine PIC- oder AVR-Smartcard programmiert oder gelesen werden,
kann auf das Einschieben der Karte gewartet werden.
Diese Einstellung hat bei der Programmierung von Einzelkomponenten
(PIC-, AVR-Controller und EEPROMs) keine Funktion.
PIC Komponenten-ID ⁿberprⁿfen
Bei PIC-Controllern wird die Chip-Identifikation getestet
und eine Fehlermeldung ausgegeben, wenn die falsche Komponente
eingesetzt wird. Dies funktioniert leider nicht bei Σlteren PIC-
Controllern 16F84 (ohne A).
AVR Komponenten-ID ⁿberprⁿfen
Bei AVR-Controllern wird die Chip-Identifikation getestet.
Bei schreibgeschⁿtzten AVR-Controllern kann die Komponenten-ID
erst nach L÷schen des Controllers ausgelesen werden (Ausnahme
Mega-AVR).
Bei Programmierende Sound abspielen
Hier kann eingestellt werden, ob bei Ende der Programmierung ein
Sound abgespielt werden soll. Mit den +/- Buttons wird der Sound
ausgewΣhlt. Durch drⁿcken auf den Knopf mit dem Lautsprecher kann
der Sound probegeh÷rt werden.
ATMEL DATEIEN
Lade internes EEPROM aus Hauptdatei, wenn Daten existieren
Im Gegensatz zu Dateien fⁿr PIC-Controller gibt es fⁿr Atmel-
Controller kein genormtes Dateiformat, in dem alle Dateien fⁿr
Flash-Memory, Internes EEPROM und Fuses vorhanden sind.
Ich habe ein eigenes Format entwickelt, damit alle Daten in einer
Datei gespeichert wird. Falls Daten fⁿr das interne EEPROM in der
Hauptdatei vorhanden sind, werden diese mit eingeladen.
Lade internes EEPROM aus Datei
Dieses ist die ursprⁿnglich von Atmel gedachte Dateivariante.
Die Daten des internen EEPROM mⁿssen aus einer eigenen Datei
geladen werden. Hei▀t die Hauptdatei , mu▀ die Datei
fⁿr das interne EEPROM hei▀en.
Lade Fuse-Daten aus .HEX und .OBJ-Dateien von Adresse 7FFE/7FFF
Auch dieses ist nicht genormt, sondern eine Eigenentwicklung von
mir. Ich war es einfach leid, immer die Fuse-Einstellungen von
Hand zu wΣhlen. Die Daten fⁿr die Fuses befinden sich an den
angegebenen Adressen. Welche Daten sich wo befinden, habe ich in
einer Tabelle zusammengestellt.
Schreibe Flash-Memory, internes EEPROM und Fuse-Daten in .HEX-Datei
Alle Daten des ATMEL-Controllers wird in meinem eigenen Format
abgespeichert und kann damit wieder komplett eingeladen werden.
---
Fehlermeldungen:
Der wohl hΣufigste Fehler ist wohl dieser nach Drⁿcken des Connect-
Buttons:
"An der gewΣhlten Schnittstelle konnte kein ProgrammiergerΣt gefunden
werden."
Der Grund hierfⁿr kann so vielseitig sein, da▀ man eigentlich gar keine
L÷sung geben kann.
1. ZunΣchst sollte ⁿberprⁿft werden, ob der COM-Port richtig eingestellt ist.
Wird dieser Port eventuell von irgendeinem anderen Programm benutzt?
Vielleicht hat sich bei Ihrem PC ein 0190-Dialer festgesetzt, der versucht
ⁿber den COM-Port ein Modem zu bewegen, eine teure Nummer anzuwΣhlen.
Auch wenn man gar kein Modem dran hat, kann dennoch der Port blockiert
werden.
2. Ist die serielle Leitung in Ordnung? Bitte nur 1:1 Verbindungskabel
benutzen, kein Nullmodemkabel.
3. Ist der Programmer betriebsbereit, also Netzteil eingesteckt?
4. Ist der richtige Modus eingestellt? Bei alten Bios-Versionen 1.x des
Multiprog 2001XL mu▀te immer der Modus 0 gewΣhlt sein, bei neueren
Bios-Versionen 2.x/3.x darf jeder Modus au▀er der Easycheck (Chipcard)-
Modus eingestellt sein.
5. Beim connecten des Multiprog/Maestro2 darf sich keine Chipkarte im
Karteneinschub befinden. Warum eigentlich? Bei gesteckter Karte werden
die seriellen Befehle der Schnittstelle direkt an die Karte geleitet,
der Steuercontroller des Multiprog/Maestro2 kann und darf sie nicht
auswerten, denn weil die Baudrate nicht stimmt, kann er Daten eventuell
misinterpretieren.
Andere Fehlermeldungen k÷nnen beim lesen oder schreiben von Smartcards
oder Einzelkomponenten auftreten. Hier sagt die Meldung aber alles
wichtige aus, so da▀ ich hier in der Anleitung nicht weiter darauf
eingehen mu▀.
==============================================================================
Mein ATMEL-Dateiformat:
ATMEL sieht in seinem eigenen .OBJ-Format leider keine Speicherbereiche
fⁿr das Interne EEPROM, geschweige denn fⁿr die Fuse-Daten vor. Aus diesem
Grund habe ich ein eigenes Format eingebaut, das allerdings nicht genormt
ist und auch von keinem anderen mir bekannten Programm unterstⁿtzt wird.
Dieses Format kann aus .OBJ- und .HEX-Dateien geladen und in .HEX-Dateien
gespeichert werden.
Der Flash-Speicher wird im unteren Speicherbereich abgelegt, also beim
AT90S8515 im Bereich ($0000-$0FFF Worte) $0000-$1FFF abgelegt. Direkt
dahinter folgt der Bereich fⁿr das interne EEPROM also $2000-$21FF.
Bei Controllern mit unterschiedlicher Flash-Speichergr÷▀e verschiebt
sich die Startadresse fⁿr das interne EEPROM entsprechend.
Die Fuses werden an die h÷chste Wort-Speicheradresse abgelegt
($7FFE-$7FFF Worte) $FFFC-$FFFF. Dabei befinden sich die Lockbit-Daten
aller Controller immer an Adresse $FFFC. Einige Controller ben÷tigen ein
zweites Byte, die Mega163 sogar noch ein 3. Byte.
Eine Aufstellung, welche Adresse bei welchem Controller belegt wird,
werde ich bei Bedarf erstellen. Im Prinzip ist fⁿr den Anwender aber
der genaue Aufbau des Formates nicht so wichtig. Wenn alle Optionen in
der Atmel-Dateikonfiguration angewΣhlt sind, werden die Daten in meinem
Format abgespeichert und k÷nnen danach wieder komplett eingeladen werden.
==============================================================================
Meine E-Mail-Adresse:
[email protected]
Online-Forum:
http://www.technik-forum.info
http://www.powerforen.de
Homepage:
http://www.twoprog3.de
==============================================================================
Der Vertrieb von Twoprog 3 auf kostenpflichtigen DatentrΣgern (Diskette, CD, DVD)
ist untersagt. Das ─ndern sowie Hinzufⁿgen von Dateien im ZIP-Archiv ist nicht
zulΣssig.
==============================================================================
(c)2003 Erwin Reuss, ER-Products