Die Firmware für den 89C5131
Die Firmware 'USB Protokollaufzeichnung.a51' schreibt alle über den USB-Bus eingehenden Daten in das IXRAM ab Adresse 0000, wo sie mittels serieller Schnittstelle gelesen werden können.
Hardware vgl. Atmels Demo-Board (Schaltplan online erhältlich: http://www.atmel.com/dyn/resources/prod_documents/doc4371.pdf)
Die vorliegende Software kann mit der Programmiersoftware FLIP von Atmel mit Hilfe des Bootstrap Loader des 89C5131 in das Flash des Controllers geschrieben werden http://www.atmel.com/dyn/resources/prod_documents/flip-2_4_2.zip
LEDs an P3.3, P3.5, P3.6 zeigen interne Zustände an.
- Das IXRAM kann über die serielle Schnittstelle (8, N, 1, 19200 Baud) gelesen werden.
Serielle Befehle:
'q' liest das IXRAM von 0000h bis 00F0h.
'y' löscht das IXRAM, es wird mit FFh beschrieben.
'a' zeigt alle USB-Register für Endpoint 0 an.
'b' zeigt alle USB-Register für Endpoint 1 an.
'v' sendet 8 Byte '-Hallo--' über Endpoint 1 an den Host.
Verwenden Sie zur seriellen Kommunikation unser serielles Terminalprogramm.
Die Kommunikationsversuche haben nur mit dem USB-Treiber von
brauchbare Ergebnisse gezeigt.
Thesycon® bietet eine Demo-Version an mit voller Funktionalität, sie läuft vier Stunden, danach muss der Rechner gebootet werden und sie läuft wieder vier Stunden etc.
Die Light-Version unterstützt nur zwei Endpoints, läuft dafür aber uneingeschänkt.
Die Systemtreiber von Windows (HID-Class) zusammen mit der Beispiel-Firmware von Atmel 'usb_kbd' funktionierten unter XP nicht, unter Win98 haben sie das System zerschossen, sie waren also unbrauchbar.
Die Software 'USB Protokollaufzeichnung.a51' baut auf Atmels Beispiel-Firmware auf (diese stammt nicht von Atmel, sondern wurde einer französischen Firma in Auftrag gegeben http://www.atmel.com/dyn/resources/prod_documents/c5131-usb-kbd-stand-alone-1_0_2.zip).
Unsere Firmware benutzt im Gegensatz zu Atmels Beispiel nicht die Polling-Methode, sondern USB-Interrupts. Dabei hat sich herausgestellt, dass im Chip ein Hardwarefehler existiert. Dieser setzt die USB Interrupt Freigaberegister nach den ersten beiden USB Dateneingängen stets auf ihre Resetwerte, sodass zu Beginn der USB-Interrupt nicht verwendbar ist. Atmel schweigt dazu.
Sie benötigen den 89C5131 CPU-Treiber ?
Sie benötigen den passenden Assembler ? (4MB)
|