Warum mit der SPI-Box?

Viele Microcontroller, insbesondere die Typen von Atmel, besitzen ein Serial Peripheral Interface (SPI) zur schnellen und einfachen In-System-Programmierung. Das SPI besteht aus den folgenden Signalen:

Das SPI besticht durch sein einfaches und zuverlässiges Konzept, sowie der hohen Datenübertragungsrate (5 MBit/s und mehr). Es werden TTL-Pegel verwendet. Die zu programmierenden Daten werden üblicherweise von einem Personal Computer geliefert. Es ist dabei naheliegend, eine konventionelle PC-Schnittstelle zu verwenden und das Serial Peripheral Interface per Software zu emulieren. Pegelanpassungen erfolgen meistens über ein sehr einfach konstruiertes Dioden-/Widerstandnetzwerk.

"SPI" lässt sich mit allen drei gängigen Schnittstellen des PC nachbilden. Im folgenden sollen die Lösungen diskutiert werden.

Serielle Schnittstelle

Zur Realisierung der drei Ausgänge und des benötigten Eingangs (MISO) werden die Handshake-Leitungen der seriellen Schnittstelle verwendet. Die Handshake-Leitungen werden als I/O-Port missbraucht. Der zeitliche Ablauf des SPI wird durch eine entsprechende Ansteuerung der Leitungen erreicht. Insbesondere unter Microsoft Windows gelten jedoch sehr hohe Latenzzeiten von 40µs und mehr bei der Änderung von Pegeln auf den Leitungen. Daraus resultiert eine sehr niedrige SPI-Übertragungsrate im Bereich von 1 kBit/s. Entsprechend lang fallen die Programmierzeiten aus.

Die serielle Schnittstelle des PC liefert Spannungspegel im Bereich von ±12V. Die Ausgänge sind kurzschlussfest. Die Pegel müssen über ein Dioden-/Widerstandnetzwerk auf TTL-Niveau gebracht werden. Die Spannungsversorgung des Microcontroller-Systems muss getrennt erfolgen.

USB

Moderne PCs sind mit USB- und nur noch eher selten mit seriellen Schnittstellen ausgestattet. Mit einem USB/Seriell-Adapter ist eine serielle Schnittstelle kostengünstig und einfach nachgerüstet. Im Betriebssystem erscheint eine (virtuelle) serielle Schnittstelle, die in der gleichen Weise angesteuert wird, wie die konventionelle serielle Schnittstelle. Bedingt durch das Umsetzungsprinzip ergeben sich jedoch extrem hohe Latenzzeiten und daraus resultierend SPI-Übertragungsraten von unter 100 Bit/s. Unter diesem Aspekt ist diese Lösung als unbrauchbar einzustufen.

Bezüglich der Pegelanpassung und der Spannungsversorgung gelten die gleichen Sachverhalte wie bei der konventionellen seriellen Schnittstelle.

Parallele Schnittstelle

Die parallele Schnittstelle des PC wird ebenfalls als I/O-Port angesteuert. Der benötigte Eingang (MISO) muss allerdings über eine Handshake-Leitung geführt werden, da die Datenleitungen nur gemeinsam als Ausgang arbeiten können. Die parallele Schnittstelle lässt sich ohne nennenswerte Latenzzeiten ansteuern und liefert direkt TTL-Pegel. Unter diesen Aspekten erscheint sie ideal für die Emulation des Serial Peripheral Interface.

Diese Schnittstelle ist jedoch nicht kurzschlussfest und empfindlich gegenüber Fremdspannungen. Die Gefahr einer Beschädigung ist gegeben. Die Versorgung der Microcontroller-Systems muss ebenfalls über eine getrennte Spannungsquelle erfolgen.

Die optimale Lösung mit der SPI-Box

Die aufgeführten Nachteile der konventionellen Lösungen werden bei der SPI-Box umgangen. Die SPI-Box wird zwar ebenfalls an der seriellen Schnittstelle angeschlossen, aber die Schnittstelle wird in der seriellen Betriebsart verwendet. Das Problem der Latenzzeiten stellt sich daher nicht — auch nicht bei der Verwendung eines USB/Seriell-Adapters! Um eine hohe Übertragungsgeschwindigkeit zu erzielen, werden 115200 Baud verwendet. Die Umsetzung des seriellen Datenstromes in einen SPI-konformen Datenstromes erledigt ein in der SPI-Box eingebauter Microcontroller.

Der SPI-Anschluss der SPI-Box liefert Spannungen im TTL-Bereich. Die Anschlüsse sind kurzschlussfest und gegen Überspannungen geschützt. Sollte dennoch ein defekt auftreten, werden die entsprechenden Schaltkreise (74LS06 und 74HC14) einfach ausgetauscht. Die SPI-Box wird über ein unstabilisiertes Netzteil versorgt. Die Spannung dieses Netzteils wird an eine zweite Buchse weiter geleitet, um weitere Elektronik mit Energie versorgen zu können. Der SPI-Anschluss der SPI-Box liefert eine geregelte Spannung von +5V, die für die direkte Versorgung des Microcontrollers genutzt werden kann.

Die Vorteile auf einen Blick:

Wie bei den konventionellen Lösungen benötigt auch die SPI-Box eine PC-Software zur Ansteuerung. Es steht ein Software-Paket für Microsoft Windows® zur Verfügung. Insbesondere die "SPI-Box Software Enhanced Edition" unterstützt eine Reihe von Microcontrollern und es enthält Anwendungsbeispiele für die Programmierung von SPI-EEPROMs und -Peripheriebausteinen. Das Kernstück aller Applikationen bildet eine Bibliotheksdatei, mit der die Verbindung zur SPI-Box hergestellt wird. Die Schnittstellen dieser Bibliotheksdatei sind dokumentiert. Anwender mit Programmierkenntnissen sind daher in der Lage, eigene Applikationen für die SPI-Box zu entwickeln. Das erweiterte Software-Paket enthält Beispiele und Programme im Quelltext (Borland Delphi 6).

(c) Reusch Elektronik

zurück
erweitertes Software-Paket
Platine Rev. 2.0
Firmware V2.0