show this page in Englishselected languagethis page is German

Lesen vom SPI-Bus

   

Überblick

Obgleich Tracii 400 in erster Linie ein I2C-Werkzeug ist, lassen sich über die auf der Platine vorhandenen Ein und Ausgänge auch völlig andere Aufgaben auf einfache Weise erledigen. Wie dies geht möchten wir am Beispiel einer SPI-Anwendung demonstrieren. Der SPI Bus verfügt über eine Taktleitung (CLK), sowie jeweils eine Sende- (MOSI) und eine Empfangsleitung (MISO). Hierneben muß für jeden Busteilnehmer eine Chipselect-Leitung angeschlossen sein, über die der aktuelle Kommunikationsteilnehmer adressiert wird. Die Übertragung selbst erfolgt nach einem recht einfachen Schema. Bei jedem Puls der Taktleitung wird jeweis ein Bit gesendet und gleichzeitig ein Bit gelesen. Tracii 400 verfügt über je zwei Ein- und Ausgänge. Da man für eine vollständige SPI-Implementierung drei Ausgänge benötigt (MOSI, CLK und ChipSelect) wäre hier größerer Hardwareaufwand erforderlich. Es gibt allerdings SPI-Bausteine, von denen man ausschließlich lesen kann, da ein Schreibzugriff aufgrund ihrer Funktionalität keinen Sinn ergeben würde. Dies trifft beispielsweise auf Temperatursensoren wie MAX6628, MAX6629 und MAX6630 zu.

Die Tracii 400 Test Pins können unabhängig voneinander mit Hilfe der Tracii Work API geschrieben bzw. ausgelesen werden. Dies ist zwar nicht gerade überragend schnell, reicht jedoch für viele Anwendungen völlig aus.

Für die hier vorgestellte Beispielanwendung wurde ein Tracii 400 mit einem MAX6629 gemäß der folgenden Tabelle verbunden.

MAX66xx

Tracii 400

SO

I1

SCLK

O1

CS

O2

VCC

5V (I2C connector)

GND

GND (I2C connector)

 

 

Man beachte, daß weder SDA noch SCL für diese Anwendung genutzt werden. Die Software erlaubt ein unabhängiges Setzen der Testpins und so ist es durchaus denkbar eine Anwendung zu entwickeln, die I2C und SPI quasi parallel bedient. Dies dürfte ins besondere für Testanwendungen und Produktionsvorgänge interessant sein.

Der Temperatursensor mißt die Temperatur, solange ChipSelect (CS) den Wert High hat. Beim Übergang von CS auf Low wird die Messung beendet und bei jedem low-Puls von CLK wird ein Ergebnisbit über MISO gesentet. Nachdem 16 Bit eingelesen wurden wird die CS-Leitung erneut auf High gelegt um den Meßvorgang erneut zu starten.

Der Temperatursensor benötigt eine Spannungsversorgung. Tracii kann 5V Gleichstrom über die mittleren beiden Leitungen des I2C Anschlußsteckers liefern, sofern die "DCPLUG" und "I2C" Steckbrücken gesetzt sind.

Der Sensor liefert die Temperatur als vorzeichenbehaftete Ganzzahl in Schritten von 1/16°c, wobei 12 Wertebit und ein Vorzeichenbit übertragen werden. Negative Werte werden als Zweierkomplement dargestellt d.h. eine -1 erscheint als 1FFF (Hexadezimal).

Die Beispielapplikation ist in Microsoft Visual Basic 6.0 geschrieben und besteht aus einem einfachen Dialog, in dem die gemessenen Werte als Dezimalzahl angezeigt werden.

ExampleSPI.zip

Visual Basic 6.0 Projekt

109 K