CP2102

Aus FHEMWiki
Version vom 10. Juni 2018, 03:44 Uhr von Beta-User (Diskussion | Beiträge) (Links auf Optolink und Proteus eingefügt)
CP2102
CP2102 USB-Seriell-Wandler
Allgemein
Protokoll {{{HWProtocol}}}
Typ {{{HWType}}}
Kategorie {{{HWCategory}}}
Technische Details
Kommunikation {{{HWComm}}}
Kanäle {{{HWChannels}}}
Betriebsspannung 3,3V oder 5V DC
Leistungsaufnahme {{{HWPowerConsumption}}}
Versorgung {{{HWPoweredBy}}}
Abmessungen {{{HWSize}}}
Sonstiges
Modulname {{{HWDeviceFHEM}}}
Hersteller Silabs

Auf gängigen Marktplätzen werden eine Vielzahl von Geräten[1] angeboten, die als USB-Seriell-Wandler einen Baustein der Fa. Silabs anbieten. Sehr weit verbreitet sind insbesondere Modelle des Typs CP2102, der teilweise auch in Community-Projekten eingesetzt wird. Im Auslieferungszustand verwenden diese lediglich die Standard-Vendor- und Product-IDs, und werden daher im USB-System alle als 'usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0' eingebunden, so dass die Unterscheidung zwischen mehrerer solcher Devices nur über den physischen Anschluß erfolgen kann.

Einbindung in FHEM

Verwendet man neben einem solchen Gerät weitere USB-Schnittstellen anderer Hersteller, kann die Zuordnung wie in Tipp der Woche mit "by-id" beschrieben erfolgen. Kommen mehrere dieser Schnittstellen zum Einsatz, sollte man entweder auf "by-path" ausweichen, oder man nutzt den auf den Chips vorhandenen EEPROM, um z.B. eine eigene Herstellerkennung und/oder eine Seriennummer zu vergeben. Damit kann dann eine eindeutige Kennung vergeben werden.

Info blue.png
Dabei sollte nicht die VID oder PID verändert werden, Änderungen der Herstellerkennung (vendor-string) oder der Produktkennung (product-string) sind jedoch gefahrlos möglich.


Windows

CP2102-Modul mit angelötetem HM-MOD-RPI-PCB

Der Hersteller Silabs bietet dazu als Teil des Treiberpakets ein Tool für Windows an[2].

Linux

Für Linux ist hier ein in Python-Tool verfügbar. Beispiel für die obigen drei Module (eines davon mit geänderter Kennung:

lsusb
Bus 002 Device 005: ID 0a5c:5800 Broadcom Corp. BCM5880 Secure Applications Processor
Bus 002 Device 004: ID 413c:8187 Dell Computer Corp. DW375 Bluetooth Module
Bus 002 Device 010: ID 413c:8184 Dell Computer Corp. F3607gw v2 Mobile Broadband Module
Bus 002 Device 017: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
Bus 002 Device 015: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
Bus 002 Device 016: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
Bus 002 Device 013: ID 214b:7000  
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0461:4db1 Primax Electronics, Ltd 
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
ls -l /dev/serial/by-path
lrwxrwxrwx 1 root root 13 Jun  9 16:33 pci-0000:00:1d.0-usb-0:1.1.2:1.0-port0 -> ../../ttyUSB2
lrwxrwxrwx 1 root root 13 Jun  9 16:33 pci-0000:00:1d.0-usb-0:1.1.3:1.0-port0 -> ../../ttyUSB0
lrwxrwxrwx 1 root root 13 Jun  9 16:33 pci-0000:00:1d.0-usb-0:1.1.4:1.0-port0 -> ../../ttyUSB1
lrwxrwxrwx 1 root root 13 Jun  8 20:03 pci-0000:00:1d.0-usb-0:1.6:1.1 -> ../../ttyACM0
lrwxrwxrwx 1 root root 13 Jun  8 20:03 pci-0000:00:1d.0-usb-0:1.6:1.3 -> ../../ttyACM1
lrwxrwxrwx 1 root root 13 Jun  8 20:03 pci-0000:00:1d.0-usb-0:1.6:1.9 -> ../../ttyACM2

ls -l /dev/serial/by-id
lrwxrwxrwx 1 root root 13 Jun  8 20:03 usb-_ADell_Wireless_5540_Dell_Wireless_5540_3563970314411400-if01 -> ../../ttyACM0
lrwxrwxrwx 1 root root 13 Jun  8 20:03 usb-_ADell_Wireless_5540_Dell_Wireless_5540_3563970314411400-if03 -> ../../ttyACM1
lrwxrwxrwx 1 root root 13 Jun  8 20:03 usb-_ADell_Wireless_5540_Dell_Wireless_5540_3563970314411400-if09 -> ../../ttyACM2
lrwxrwxrwx 1 root root 13 Jun  9 16:33 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2
lrwxrwxrwx 1 root root 13 Jun  9 16:33 usb-Silicon_Labs_Multi_TTL_RS485_0003-if00-port0 -> ../../ttyUSB0

Bekannte Probleme

3.3V werden überschritten

Es sind immer wieder Exemplare mit CP2102 im Umlauf, die nicht wie angegeben 3.3V an der Spannungsversorgung sowie den Signalpegeln liefern, sondern ca. 4.3V! Vor dem Verbinden mit Geräten wie dem HomeMatic Funkmodul für Raspberry Pi sollte daher geprüft werden, ob der interne Spannungswandler ordnungsgemäß funktioniert und wirklich nur 3.3V liefert.

Betroffen scheinen vor allem Micro-Module zu sein, wie das auf dem Bild rechts mit einer blauen Platine. Bei diesen kann man den Fehler nach dieser Anleitung beheben: Beitrag von PBudmark vom 08.07.2017.

Mod zur Herstellung der korrekten Spannung

Links