Damit ein Mikrocontroller mit einem AD-Umsetzer, der keine serielle Standardschnittstelle (SPI) verwendet, kommunizieren kann, muss das Standard-SPI des Mikrocontrollers manipuliert werden. Dafür bieten sich vier verschiedene Lösungen an.
Viele aktuelle Präzisions-Analog/Digital-Umsetzer (ADU) verfügen über eine serielle Peripherieschnittstelle (SPI) oder über eine andere serielle Schnittstelle zur Kommunikation mit einem Mikrocontroller, Prozessor, DSP oder FPGA. Die Controller schreiben oder lesen ADU-interne Register und lesen die digitalen Werte des Analogsignals. Das SPI erfreut sich aufgrund der einfachen Leitungsführung auf der Leiterplatte und der höheren Taktrate im Vergleich zur parallelen Schnittstelle steigender Beliebtheit. Außerdem ist es einfach, einen ADU mit einer Standard-SPI-Schnittstelle an den Controller anzuschließen.
Einige neue ADUs sind mit einem SPI ausgestattet, wogegen bei anderen ein nicht standardisiertes Interface, z.B. 3- oder 4-Draht-SPI, als Slave vorhanden ist, um eine höhere Durchsatzrate zu erreichen. Zum Beispiel verfügen die ADUs der Familie AD7616, AD7606 und AD7606B von Analog Devices über zwei oder vier SDO-Leitungen für einen höheren Datendurchsatz im seriellen Betrieb. Die ADUs der Familien AD7768 (Bild 1), AD7779 und AD7134 haben mehrere SDO-Leitungen und arbeiten als SPI-Master. Die Entwicklung von Mikrocontroller-SPIs für die Konfiguration und das Lesen der digitalisierten Werte gestaltet sich bei diese ADUs oft schwierig.
Beim SPI handelt es sich um ein Bus-System zur synchronen, seriellen Datenübertragung zwischen einem Master und einem oder mehreren Slaves. Die Übertragung der Daten erfolgt im Vollduplex. Die Daten vom Master oder vom Slave werden auf die steigende oder fallende Taktflanke synchronisiert. Master und Slave können gleichzeitig Daten übertragen. Bild 2 zeigt eine typische 4-Draht-SPI-Schnittstellenverbindung.
Um die Kommunikation über das SPI zu starten, muss der Controller das Taktsignal senden und den ADU auswählen. Dazu wird das CS-Signal aktiviert, das normalerweise ein Active-Low-Signal ist. Da das SPI eine Vollduplex-Schnittstelle ist, können sowohl der Controller als auch der ADU gleichzeitig Daten über die MOSI/DIN- beziehungsweise MISO/DOUT-Leitungen übertragen.
Das SPI des Controllers bietet dem Anwender die Flexibilität, die steigende oder fallende Flanke des Taktes zum Abtasten und/oder Übertragen der Daten zu wählen. Für eine zuverlässige Kommunikation zwischen Master und Slave müssen Entwickler die Timing-Spezifikationen der digitalen Schnittstelle sowohl des Mikrocontrollers als auch des ADU beachten.
Wenn das SPI des Mikrocontrollers und die serielle ADU-Schnittstelle im Standard-SPI-Timing-Modus arbeiten, können Entwickler problemlos ihre Schaltung und Leiterplatte entwerfen und die Firmware zur Steuerung entwickeln. Es gibt jedoch neue ADUs mit einer seriellen Schnittstelle, die nicht das typische SPI-Timingmuster unterstützt.
Dagegen scheint es für einen Mikrocontroller oder einen DSP nicht möglich zu sein, Daten über die serielle Schnittstelle des AD7768 zu lesen, der ein SPI mit nicht standardmäßigem Timing hat (Bild 4).
Um das Standard-SPI eines Mikrocontrollers so zu manipulieren, dass damit eine Kommunikation mit einem ADU wie dem AD7768 ohne standardmäßigen SPI-Port möglich ist, bieten sich vier verschiedene Lösungen an: