Home

Bauanleitungen

Links

Gästebuch

Gästebuch

News

Projekte

Impressum

 


Intelligent-Interface "tuning"

Das Intelligent Interface von fischertechnik ist ja nun schon ein wenig älter und ich habe auch einige (noch) ungenutzt im Regal liegen. Was mich schon immer störte: Man war im Download-Modus auf LLWIN, die grafische ft-Programmiersprache, angewiesen. Es gab keine Alternative, das Interface autonom zu betreiben und mit einer alternativen Programmiersprache zu programmieren. Bis heute ;-)

Was wird gemacht?

Es gibt verschiedene Alternativen, die Hardware des Intelligent Interface alternativ zu nutzen. Neben auswechseln des EProm mit der Firmware ist (m.E.) die eleganteste der Austausch des 80C32-Mikrocontrollers gegen einen kompatiblen Typen mit internem Flash. Dabei fiel meine Wahl auf den AT89S52 (nicht zuletzt, weil ich den zufällig da hatte). Dieser Controller ist mit einer seriellen Schnittstelle im System programmierbar (ISP) und hat 8K Flash, das für einige Anwendungen vollauf reichen sollte. Es gibt auch pinkompatible Derivate mit mehr Flash - da mag jeder einsetzen, was er mag.

Wichtig ist nur, dass der Austausch-Controller Pin- und Softwarekompatibel zum 80C32 ist.

Das originale Betriebssystem bleibt vollständig erhalten.

Der Umbau

... benötigt schon einiges know-how, schließlich geht es darum, einen SMD-Chip zu entlöten, ohne die Platine zu beschädigen und einen ähnlichen Chip auch wieder hinein zu löten - ohne den neuen Controller durch Überhitzung ins Nirvana zu schicken. Deshalb sollte man sich nur dann an den Umbau wagen, wenn man weiß, wie man mit dem Lötkolben umgehen muss ;-)

Für das Entlöten empfehle ich den Einsatz eines Heißluftföns, wobei man schon darauf achten muss, die richtige Temperatur zu erwischen - wenns zu kalt ist, dauerts zu lang und benachbarte Bauteile werden in Mitleidenschaft gezogen. Ist es zu warm, gibts Platine überbacken.

Im Anschluss ein paar Fotos, die den Umbau zeigen (Zum Vergrößern draufklicken)


Die Platine des Interface nach der Demontage des Deckels. Rot markiert der Mikrocontroller, der raus muss.

Der Mikrocontroller ist entfernt, die Pads schonmal nachgelötet, um die  durch den Entlötvorgang übrig gebliebenen Zinnreste einzuebnen, sonst bekommt man den neuen Mikrocontroller nur schlecht auf die Pads drauf.

 Nun geht es ans eingemachte. Der /EA - Pin des Mikrocontrollers liegt im Interface auf GND - damit führt er Programme im externen ROM aus. Wir wollen aber auch auf ein internes ROM (bzw. Flash) zugreifen können, deshalb müssen wir in der Lage sein, den /EA - Pin umschalten zu können. An den beiden markierten Stellen muss die Leiterbahn unterbrochen werden. Damit wird auch der /CS - Pin des RAM von der Masse getrennt, den müssen wir später wieder mit Masse verbinden.

Auch auf der Rückseite müssen wir eine Leiterbahn unterbrechen. Es handelt sich um den seriellen Ausgang (Pin 9) des 74HCT597, der an Pin 7 des Mikrocontrollers (Port 1.5) angeschlossen ist. Ausgerechnet das ist der "MOSI" - Pin des ISP-Interface. Für eine Programmierung des Mikrocontrollers muss diese Verbindung getrennt werden.
Nun geht es ans Verdrahten. Zunächst stellen wir die Verbindung zwischen /CS des RAM und GND wieder her.
An den Mikrocontroller werden die Anschlüsse für die ISP-Schnittstelle angelötet. Ist etwas fummelig, aber geht.
Von links nach rechts: MOSI, MISO, SCK.
Der /EA - Pin des Mikrocontrollers muss auch wieder angeschlossen werden....
Auch der Pin 9 des 74HCT597 benötigt einen extra-Anschluss...
Soviel zum Thema "Kompatibel". Eigentlich sollten alle MCS-51 Derivate kompatibel sein - nur leider hat der Entwickler des Intelligent-Interface nicht sauber gearbeitet. Die Ausgänge der MCS-51 sind sog. Open-Collector-Ausgänge, d.h. sie können Lasten nur gegen Masse treiben. Die Clock-Leitung der Schieberegister (595 und 597) funktioniert beim 80C32 noch wunderbar - aber mit dem AT89S52 eben nicht. Der obligatorische Pull-Up Widerstand fehlt. Ein 10K Widerstand an der markierten Stelle behebt das Problem (es macht sich durch flackernde Ausgänge bemerkbar).
Die Reset-Leitung des Mikrocontrollers wird ebenfalls für die ISP-Schnittstelle benötigt. Der Einfachheit halber wird sie an den Pull-Up Widerstand angelötet.
Mein Programmiergerät benötigt eine Spannungsversorgung von 5V, die ich mir aus dem Interface heraushole. Dies ist natürlich abhängig vom verwendeten ISP-Programmier-Interface (ich benutze die mit 74XX244 gepufferte Version von der PonyProg-Seite für die parallele Schnittstelle).
Dies ist die von mir gewählte Variante des Anschlusses von unten....
... und hier von oben.
Der 10-polige Stecker hat die folgende Belegung (von links nach rechts):
Obere Reihe:
GND - frei - GND - GND - VCC
Untere Reihe
MISO - SCK - RESET - frei - MOSI

Die beiden Jumper können für verschiedene Betriebsarten gesteckt werden. Belegung von oben nach unten:
Jumper links:
VCC - /EA(Mikrocontroller) - GND
Jumper rechts:
MOSI (Programmierstecker) - Pin 7 (Mikrocontroller) - Pin 9 (74HCT597)

Beide Jumper oben: Flash-Programm wird ausgeführt, Programmierschnittstelle aktiv
Linker Jumper oben, rechter unten: Flash-Programm wird ausgeführt, Programmierschnittstelle inaktiv, Einlesen der Eingänge via 74HC597 ist möglich.
Beide Jumper unten (wie im Bild): Originales Betriebssystem wird ausgeführt.

Programmierung

Getestet habe ich die Programmierung mit Assembler. Zum Flashen des Controllers verwende ich, wie schon oben erwähnt, den ISP-Programmieradapter von PonyProg (Schaltplan auf der Homepage von PonyProg), aber auch die Minimallösung des Parallel-Port Adapters sollte funktionieren. USB-Programmer sind mir nicht bekannt, aber sicherlich irgendwo im Netz vorhanden.
Zum Programmieren habe ich die Software  "ISP-Programmer" von  Adam Dybkowsky verwendet - auch hier gibt es sicherlich Alternativen.

Derzeit bin ich noch nicht über ein paar Testprogramme hinaus gekommen, aber der Winter könnte ja lang werden... ;-)

Home

Bauanleitungen

Links

Gästebuch

Gästebuch

News

Projekte

Impressum