Um Daten zu erfassen werden oft Schnittstellen benötigt. Eine häufig genutzte Schnittstelle ist „ttl“ bzw. eine „UART„
Die ttl-Schnittstellen sind in der Regel sehr günstig zu bekommen. Oftmals für unter 5€. Wirkliche Unterschiede gibt es oftmals nicht. Viele basieren auf den CH34x-Chips. In der Welt der IoT werden die USB-Adapter oft für den Raspberry Pi oder ähnliche SoC genutzt.
Eine Verwendung am PC oder Laptop ist genauso möglich.
Ich habe die Verwendung eines USB2ttl-Adapters in dem Beitrag zum Datenaustausch zwischen einem RPi mit einem Victron Energy Gerät bereits einmal beschrieben.
Die Verwendung unter Linux mit einem Raspberry Pi ist in der Regel recht einfach. Anstecken und fertig! Ein installieren von Treibern ist anders als bei Windows nicht nötig. Viele Linux-Varianten haben die nötigen Treiber im System integriert. Die Schnittstelle kann direkt verwendet werden.
Hardware-Aufbau
Die meisten Adapter verfügen über die am häufigsten benötigten Pins. Dies sind in der Regel RX/TX, sowie GND und 5V. Zusätzlich sind LEDs für VCC, RX/TX verbaut.
Mit dem 3V3-Pin lässt sich der Logic-Level durch externe 3.3V einstellen. In der Regel ist dies aber nicht erforderlich. Durch die beiden Dioden nah der USB-Schnittstelle wird der Pegel am VCC auf 5V-(2×0.6V)=3.8V begrenzt. Durch einen 1k5-Widerstand in der TX-Leitung wird der Strom auf ca. 2.5mA begrenzt. Dies können die meisten ESP-SoC verkraften. (lt. Datenblatt von Espressif sind 3mA an der Clamping-Diode zulässig.)
Verwendung
Wenn man den Adapter am Raspberry in die USB-Schnittstelle gesteckt hat, kann im Terminal mit dem Befehl „dmesg“ geprüft werden, ob der Adapter fehlerfrei erkannt wird und wo er im System eingebunden wurde.
$ dmesg
[128.155660] usb 1-2.3: new full-speed USB device number 6 using xhci-hcd
[128.285538] usb 1-2.3: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.64
[128.285543] usb 1-2.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[128.285545] usb 1-2.3: Product: USB Serial
[128.339998] usbcore: registered new interface driver usbserial_generic
[128.340011] usbserial: USB Serial support registered for generic
[128.341290] usbcore: registered new interface driver ch341
[128.341310] usbserial: USB Serial support registered for ch341-uart
[128.341339] ch341 1-2.3:1.0: ch341-uart converter detected
[128.346012] usb 1-2.3: ch341-uart converter now attached to ttyUSB0 <---
Bei der ttl-Schnittstelle lässt sich die Funktion recht einfach testen. Dazu werden die IO’s für RX und TX miteinander verbunden. So werden die Daten direkt zurück gespiegelt.
Zum testen nutze ich gerne picocom. Es können auch PuTTY oder ähnliche Software genutzt werden. Ich nutze 2 ssh-Sessions bzw. zwei Terminalfenster für den ersten Test des Adapters.
$ sudo apt-get install picocom -y
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
. . . .
$ picocom /dev/ttyUSB0 -b9600
picocom v3.1
port is : /dev/ttyUSB0
flowcontrol : none
baudrate is : 100
parity is : none
databits are : 8
stopbits are : 1
escape is : C-a
. . . .
Type [C-a] [C-h] to see available commands
Terminal ready
Im 2. Terminalfenster sendet / schreibt man jetzt Daten auf die Schnittstelle.
$ echo "1234567890" > /dev/ttyUSB0
Jetzt sollten im Terminalfenster mit der laufenden picocom-Instanz die Daten erscheinen. Um die picocom-Instanz zu beenden, wird die Tastenkombination Strg+A gefolgt von Strg+X gedrückt
Fortsetzung folgt….
Schreibe einen Kommentar