USB-RS422-Umsetzer (für Micro-Epsilon optoNCDT 2200)

Hier ging es um den digitalen Anschluss eines Lasertriangulations-Systems „µε optoNCDT 2200“ von MicroEpsilon (µε). Zur Messwertverarbeitung in LabVIEW [Ansicht] sollte nicht der Umweg über ein Analogsignal verwendet werden, sondern alles komplett digital laufen. Außerdem unterstützt die mitgelieferte Software „ILD2200“ ebenfalls den Weg via FT245.

Ein solcher Adapter wird auch von der o.g. Firma geliefert, aber ein Eigenbau muss her, wenn die Kosten nicht explodieren sollen.

Der Adapter ist auch allgemein verwendbar.

Der Umsetzer (Konverter, Adapter)

So etwas gibt es zwar zu kaufen, aber ob das allgemein verwendbare Kaufteil die ausgefallene Baudrate 691,200 kBaud unterstützt, blieb unklar. Ein Umsetzer auf die serielle Schnittstelle des PCs fiel aus, weil auch PCs diese Baudrate nicht unterstützen. Außerdem sind diese Schnittstellen zu langsam.

Weil diese Baudrate zu Standardbaudraten weithin teilerfremd ist, benötigt man zwei Taktdomänen; üblicherweise zwei Mikrocontroller. Daher bietet sich hier ein fertiger USB-FIFO-Schaltkreis mit paralleler oder synchron-serieller Schnittstelle an. Die Wahl fiel dann prompt auf den FT245R von FTDI.

Schaltplan mit FT245, ATtiny2313 und 75179. Alle Beine des Mikrocontrollers sind verwendet!

Der passende Quarz Q2 für die Baudrate hat 11,0592 MHz. Den gibt es, wie auch alle anderen Bauteile, günstig bei Reichelt zu kaufen. Damit liegen die Bauteilkosten bei 10 €. Etwas preiswerter als der Umsetzer von µε. Für üblichere Standardfrequenzen, wie 230,4 kBaud, 460,8 kBaud und 921,6 kBaud tut es die Quarzfrequenz 14,7456 MHz.

Auf dem Steckbrett (Breadboard)

Aufbau-Foto auf Steckbrett. Für den FT245, den es nur in SMD gibt, wurde ein fertiges Aufsteckmodul verwendet

Die Firmware des Mikrocontrollers IC2 ATtiny2313 schaufelt die Daten bidirektional durch. Für die Empfangsrichtung werden die kompletten 128 Byte RAM als zusätzliche FIFO (Pufferspeicher) verwendet, um Pufferüberläufen vorzubeugen.

Auf einer Leiterplatte in einem hübschen Gehäuse

Am Pin 11 ist eine LED angeschlossen (nicht im Steckbrett-Foto), die aufleuchtet, wenn die FIFO voll ist, und verlischt, wenn die FIFO leer ist. Sie sollte im Betriebsfall aus bleiben (was auch der Fall ist).

Der p-Kanal-MOSFET T1 sorgt dafür, dass der Konverter im Fall von USB-Standby (beim herunter gefahrenen Notebook) USB-standardkonform weniger als 500 µA Ruhestrom verbraucht. Ohne diese Maßnahme könnte ein stecken gelassenes Gerät den Notebook-Akku leersaugen. Der differenzielle Leitungstreiber und -empfänger IC3 ist ziemlich hungrig, aber die meiste Energie wird in den jeweiligen 120-Ω-Abschlusswiderständen verheizt.

Buchsen oder deren Anschlussbelegung für RS422 sind nicht genormt. Nach einer ausgiebigen Internet-Recherche wurde der Stecker X2 und dessen Belegung nach der größten Verbreitung ausgewählt, siehe Schaltplan.
Auch der eingesetzte Mess-PC benutzt diesen Stecker in dieser Belegung. Ja, jenes eigentümliche Board (PCE-5124) hat optional RS422 und RS485. Nur wegen der nicht verfügbaren Baudrate konnte dieser Anschluss nicht verwendet werden.

 
Eagle-Leiterplattenentwurf für Selbstbaugehäuse (Reichelt „COM942“) und USB-B-Buchse
So sieht's aus, wenn's fertig ist

Hätte es unbedingt USB sein müssen?

Mit dem Treiber HiSerial [W2k/XP] bzw. ShsMod [Win9x/Me/2k/XP] kann man die COM-Port von Windows auf Trab bringen, sofern die Hardware das kann. Die Baudrate 691,2 kBaud wird zwar nicht unterstützt, aber dafür 921,6 kBaud. Damit kann man einen Mikrocontroller mit 2 seriellen Schnittstellen, 2 Taktdomänen oder gebrochenen Taktteilern zur Umsetzung verwenden.

Achtung — böse Falle: Mit HiSerial werden COM-Ports über COM2 abgewürgt, sie funktionieren nach der Installation nicht mehr richtig! (Betrifft Industrie-PC-Board: Advantech PCE-5124)
Hat nichts mit dem hier beschriebenen Umsetzer zu tun.

Das schöne an dieser FT245-Lösung ist …

… dass sie kompatibel zur µε-Software „ILD2200“ ist! Dieses Bastelobjekt wird genauso erkannt wie das, was man bei µε für einige Hundert €uro kaufen kann.

Man hätte auch …

… das Ganze mit einem brandneuen MSP430F55xx erschlagen können. Dieser enthält sowohl USB als auch (mindestens) eine serielle Schnittstelle mit gebrochenem Taktteiler. Hier Inbetriebnahme-Tipps. Das CDC-Interface würde den Windows-Treiber ersparen, nur eine .INF-Datei wäre hierbei nötig. Die Schwierigkeit wäre aber möglicherweise gewesen, alles so hinzubekommen, dass es von der µε-Originalsoftware als „ihr“ Konverter erkannt wird.

Mit der bastelfreundlichen PIC16F1454 geht es mangels gebrochenem Taktteiler für die serielle Schnittstelle nicht.

Quellen

Zum Auslesen der digitalen Messwerte wurde kurzerhand ein LabVIEW-Programm geschrieben. Dieses realisiert die komplette Digitaldatenerfassung und die grafische Anzeige. Zudem ist dieses .VI so geschrieben, dass es als Unterprogramm in anderen .VIs verwendet werden kann. Dazu steckt es die Empfangsdaten in eine Queue.

LabVIEW-Programm für Highspeed-EDV: Drei Schleifen = Threads schieben sich verarbeitete Daten per Queue zu. Das Threadende erfolgt durch das Ungültigwerden der Queue durch den jeweiligen Reader