Programmieren des Controllers

Ein Mikrocontroller wird ja nicht schon mit Software ausgeliefert. Um die eigene Software auf den Controller zu bekommen benutzt man die SPI (Serial Programming Interface) Schnittstelle.

Zum Programmieren müssen die Leitungen RST, SCK, MISO, MOSI angeschlossen werden. RESET muss während der Programmierung auf Masse gezogen werden. SCK (Serial Clock) wird verwendet, um eine Taktung der übertragenen Daten von Außen (vom PC) vorzugeben. MISO und MOSI sind die seriellen Datenleitungen, die die Daten zwischen Mikrocontroller und PC austauschen.

Üblicherweise schließt man die genannten Pins ausschließlich an einen Programmieradapter an und verwendet sie im Betrieb nicht anderweitig. Dies hat den Vorteil, dass man den Controller bei der Programmierung in der Schaltung lassen kann. Man redet hier auch von In-System-Programming (ISP).

Es gibt verschiedene Software und Hardware zum Programmieren von Mikrocontrollern. Die einfachste Möglichkeit zum Anschluß ist die Verwendung der parallelen Schnittstelle. Hier wird nur eine Verkabelung und keine zusätzliche Elektronik (außer ein paar Widerständen) benötigt. Da die Pinbelegung in der Software nicht standardisiert ist, braucht man aber die jeweils passende Belegung der Pins an der parallelen Schnittstelle.


Anschluß für die Benutzung mit SP12

Als zuverlässiges und gutes Programm hat sich SP12 herausgestellt. Es steht unter der GPL und ist damit kostenlos verwendbar. Um den Mikrocontroller damit flashen zu können, werden neben der Grundschaltung der letzten Seite noch die bereits oben genannten fünf Leitungen an die parallele Schnittstelle angeschlossen, wie im Bild zu sehen ist. Die Pin-Nummern am 25-poligen SUB-D-Stecker für den Anschluß an die parallele Schnittstelle des PC sind auf dem Stecker übrigens (in kleiner Schrift) numeriert.

Vorsicht! Die parallele Schnittstelle ist recht empfindlich. Schließt man hier beispielsweise die Versorgungsspannung an den falschen Pin oder erzeugt einen Kurzschluß, kann schon mal der zuständige IC auf dem Motherboard hochgehen! Auch wenn mir das noch nie passiert ist, empfehle ich die Verwendung eines USB-zu-Parallelport-Konverters. So ein Adapterkabel kostet ca. 10 €, und wenn man etwas falsch anschließt, kann höchstens dieses kleine Gerät kaputtgehen.


Anschluß über Adapter

Es ist ratsam, die Schaltung nicht direkt an einen SUB-D-Stecker anzulöten, sondern eine Stecker- oder Buchsenleiste auf der Platine aufzulöten und sich einen Adapter Buchsenleiste-zu-SUB-D zu bauen. Dies hat den Vorteil, dass auf den großen Stecker an der Schaltung verzichtet werden kann. Außerdem lassen sich verschiedene Adapter für verschiedene Programmiersoftware bauen.

Programmieradapter SUB-D zu Pfostenleiste
Belegung der Programmiersteckers, wie sie bei allen Projekten auf dieser Homepage verwendet wird


verschiedene Steckverbinder

Es gibt verschiedene Stecksysteme, die man zum Anschluß des Programmieradapters verwenden kann. Von links nach rechts sind auf dem Bild zu sehen: Buchsenleiste mit Wannenstecker im Rastermaß 2,54 mm (nur ab 10 Pins erhältlich, aber robust und billig), einreihige Stecker/Buchsenleiste im Rastermaß 2,54 mm (ohne Codierung - kann verdreht angesteckt werden), Mini-Stecker/Buchsenleiste im Rastermaß 1,27 mm (durch Zuschneiden auf 6 Pins kann ein Stecker von ca. 3x5 mm erreicht werden), MicroMaTCH Steckverbinder in versetztem 2,54 Rastermaß (ab 6 Pin erhältlich, eigentlich nur zur Leiterplattenverbindung gedacht, nicht für viele Steckzyklen entworfen).

Für den Anfang empfehle ich die 10-pol. Buchsenleiste mit Wannenstecker in Verbindung mit einem Flachbandkabel.


Benutzung von SP12

Das Kommandozeilen-Programm SP12 ist sehr funktionell. Es ünterstützt eine Reihe von Funktionen und auch die Programmierung läuft zügig ab.

Zum Ausführen unter Windows 2000/XP muß man zunächst den mitgelieferten Parallelport-Treiber starten mit

copy giveio.sys %SystemRoot%\system32\drivers\giveio.sys
instdrv giveio %SystemRoot%\system32\drivers\giveio.sys

Am besten schreibt man dazu eine Batchdatei. Zum Starten braucht man eigentlich nur noch den letzten Befehl. Jedesmal beim Windows-Start starte ich den Treiber lieber nicht, weil so evtl. andere Programme ungewollt auf die parallele Schnittstelle zugreifen können.

Insgesamt unterstützt SP12 eine Reihe von Parametern:

Mit dem ungefährlichen Aufruf

sp12 -rF

kann man testweise die Fuse Bits (Konfigurationsbits) anzeigen lassen. Wenn dies soweit funktioniert, ist der Anschluß an den PC geglückt!

Mit dem Aufruf

sp12 -wpfC "D:\irgendein\pfad\lcdtest.hex"

kann man ein compiliertes Programm in den µC flashen. Ich empfehle eine Batchdatei dafür zu erzeugen.

Wenn man den Parameter -P2 anhängt, wird der Pin 2 des Parallelports nach Beenden von SP12 auf High geschaltet, so dass der Mikrocontroller nach dem Programmieren automatisch startet, ohne dass man das Kabel abziehen muss.


PonyProg

Weit aufwändiger sieht die Bedienung von PonyProg aus, allerdings ist dies ein grafisches Tool. Die Anzahl der Optionen ist für den Anfänger vielleicht etwas zu hoch. Da auf der PonyProg Homepage keine einfache Verkabelung zu finden war, hier die Einfachst-Verkabelung, die bei mir ebenfalls funktionierte. Die Schaltung stammt von der Homepage von Scott-Falk Hühn.