µPSD (3233B) Microcontroller Test-Board | ||
Motivation:In den KVM-Terminatoren (Adapter, um Keyboard/Video/Maus-Signale von einem Server zu multiplexen und per Patch-Kabel dem KVM-Switch zuzuführen) unserer Cyclades KVMnet-Geräte versteckt sich einiges an Elektronik, was man ihnen von außen gar nicht ansieht.Unter anderem ist ein 8-Bit Microcontroller von STMicroelectronics verbaut - und zwar in der PS/2-Terminator-Variante - ein µPSD3233B in einem 80-poligen TQFP80 (Thin Quad Flat Package) in SMD-Bauweise. Hier ein Photo (aufgenommen unter der Lupe):
Der µPSD hat einige sehr interessante Features, die ihn als Testobjekt zur Microcontroller- Programmierung für mich geradezu prädistinieren. Da wären zum Beispiel die vielen Schnittstellen "on-chip", wie z.B. 2x UART, I2C, 5x PWM (Pulse width modulation - Pulsweitenmodulation, z.B. für Motoransteuerung), 6x GPIO, 4x A/D Wandler für Sensoren. Dann noch der Onboard 128(+32)KB Flash-Speicher, 8KB Onboard-RAM, was für mich vollkommen ausreicht. Zum Programmieren des µPSD, d.h. Flashen des Speichers oder Laden der Firmware bietet der µPSD sowohl IAP (In-Application-Programming) via Software als auch ISP (In-System-Programming) über das JTAG-Interface an. Das JTAG-Interface ist eigentlich für Boundary-Scan und Debugging von Chips gedacht, die bereits fest auf einem Board (PCB) verbaut sind, so daß ein Entnehmen der Chips zum Programmieren nicht mehr notwendig ist.
Realisierung:Um auf dem µPSD-Microcontroller ein wenig zu programmieren, habe ich deshalb ein Testboard mit Minimalausstattung aufgebaut:
Das Ganze sieht dann von oben wie folgt aus:
Hier eine bessere Perspektive von der Seite:
Wenn der µPSD-Adapter abgenommen wird, sieht man den Sockel für den Adapter und den Quarz darin versteckt:
Die Freiverdrahtung auf der Rückseite vom Testboard ist noch recht übersichtlich:
Den SMD-Adapter für TQFP80 habe ich von Elk-Tronic bestellt (wurde extra erst für mich angefertigt ;-). Die Platinenherstellung und Vertieb wird privat von Michael Hatscher betrieben. Ich kann den Kontakt uneingeschränkt empfehlen - sehr guter Service, niedrige Preise, Individualanfertigungen! Auf der Rückseite vom µPSD-Adapter sind die Kontaktstifte aufgelötet. Hier eine Aufnahme vom µPSD-Adapter von beiden Seiten:
Entwicklungstools:asxxxx:In dem µPSD3233B steckt ein 8032-Kern, zu dem der 8051-Befehlssatz kompatibel ist. Als Cross-Assembler für den µPSD kann ich den asxxxx (Cross-Assembler-Sammlung) empfehlen, der sehr viele verschiedene 8-bit MCUs unterstützt (Z80, PIC, AVR, 8051, etc.).Die Cross-Assembler sind Freeware und stehen auf shop-pdp.kent.edu zum Download bereit. Online-Dokumentation ist auch verfügbar. Unter Linux lädt man das Zip-File av4p11.zip runter und entpackt mit: unzip -L av4p11.zip
Das Assembler-Binary findet sich dann in
sdcc:Auf der Suche nach einem kostenlosen C-Compiler für den µPSD3233B mit 8051-Befehlssatz bin ich bei dem sdcc (Small Device C-Compiler) - der unter GPL steht - fündig geworden.Der sdcc unterstützt C-Programmierung auf Intel 8051, Maxim 80DS390, Zilog Z80 und Motorola 68HC08 based Microcontroller. sdcc enthält auch den zuvor genannten asxxxx mit as8051 und aslinker. Ein umfangreiches Online-Manual steht auf der sdcc-Website bereit. Den sdcc habe ich bisher nur kurz genutzt. In späteren Projekten will ich mir den Compiler aber noch genauer vornehmen. Keil µVision3 IDE:Von KEILTM wird die kommerzielle Entwicklungsumgebung "Keil µVision3 IDE" (IDE - Integrated Development Environment) für die Programmierung auf den unterschiedlichsten Microcontroller-Typen angeboten. Die IDE vereint Projekt-Management, make-Tools, Source-Code-Editor, Debugger, µC-Simulation und Unterstützung zum Flashen der Target-Devices. Gedacht ist es hauptsächlich für C-Programmierung und Macro-Assembler. Zum Kennenlernen der Software bietet KEIL eine Evaluation Software für verschiedene µC-Typen zum kostenlosen Download an. Für die Programmierung auf µPSD gibt es die C51-Evaluation-Software. Die Evaluation-Version ist allerdings mit starken Einschränkungen verbunden, z.B. kann man nur Programme mit maximal 2KB-Codegröße erzeugen, was aber für die ersten Versuche vollkommen ausreicht. Die C51-Evaulation-Software kann man entweder bei KEIL nach Ausfüllen des Formulars downloaden, oder auch ohne Anmeldedaten von privaten Seiten, wie z.B. auf der Seite von Gunthard Kraus herunterladen. CAPS Programming-Tool:Umfangreiche Infos zur µPSD-Produktreihe finden sich auf der Website von STMicroelectronics. Zur Programmierung der µPSD-MCU (Microcontroller-Units) werden von STMicroelectronics 2 Windows-Tools kostenlos bereitgestellt:
Das PSDsoft-Express-Tool kann dasselbe, man muß aber sämtliche Flash- und RAM-Memory-Maps und Pin-Definitionen von Hand erstellen, was sehr mühsam und zeitaufwendig ist. CAPS ist daher empfehlenswerter für "Rapid Prototyping".
Eigene Programme:Hier ein kleines Assemblerprogramm, mit der eine im Sekundentakt blinkende LED (green LED) am Port 4.0 (GPIO/DDC-Pin) mit Interrupt und Timer0 realisiert wurde: upsd-blinking-led.asm
Compiliert und gelinkt wird das Assembler-Programm mit den
asxxxx-Tools
as8051 -slox upsd-blinking-led
aslink -i upsd-blinking-led upsd-blinking-led
mv upsd-blinking-led.ihx upsd-blinking-led.hex
Der Linker erzeugt in dem File upsd-blinking-led.ihx
Intel-Hex-Code, der mit dem CAPS-Tool zum Flashen des µPSD
verwendet werden kann. Weil CAPS in der File-Eingabemaske nur
Hex-Files mit der Endung ".hex" auflistet, wird das File
noch in upsd-blinking-led.hex umbenannt.
|