Benutzer-Werkzeuge

Webseiten-Werkzeuge


hardware:controllers:ir-schreib-lesekopf-usb-ausgang

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
hardware:controllers:ir-schreib-lesekopf-usb-ausgang [2016/04/11 08:05] – [Preis] udo1hardware:controllers:ir-schreib-lesekopf-usb-ausgang [2023/01/27 15:13] (aktuell) – Pfanf udevadm angepasse thomasp
Zeile 10: Zeile 10:
   * Normgerechte Abmessungen   * Normgerechte Abmessungen
   * 2,50 Meter Anschlussleitung   * 2,50 Meter Anschlussleitung
-  * Treiber für übliche Betriebssysteme+  * Treiber für übliche Betriebssysteme\\
  
-=====Preis=====+<note important>Ein ähnlicher Lesekopf (funktional identisch, anderer USB-TTL-Wandler) kann als Bausatz mit vorbestückter Platine bei [[Ardubel@web.de]] erworben werden. 
 +[[https://www.photovoltaikforum.com/thread/145886-habe-lesköpfe-mit-usb-über/]]</note>\\
  
-Der USB-IR-Schreib-Lesekopf kann von Udo als Fertig-Gerät für 25,-€ Brutto zzgl. Versandkosten bezogen werden.\\ 
-<note important>Zur Bestellung eine Mail an: > udo dot volksz at gmail dot com < senden.</note>\\ 
-=====Bilder===== 
  
-{{:hardware:controllers:usb-ir-schreib-lesekopf_1.jpg?800|}}\\ +=====Bilder===== 
-{{:hardware:controllers:usb-ir-schreib-lesekopf.jpg?800|}}\\+{{:hardware:controllers:fertiger-usb-ir-schreib-lesekopf.png?800|}}
  
 <note important>Die einen Dauermagnet umgebenden Magnetfelder können empfindliche elektronische und mechanische <note important>Die einen Dauermagnet umgebenden Magnetfelder können empfindliche elektronische und mechanische
Zeile 27: Zeile 25:
 =====Linux-Support===== =====Linux-Support=====
  
-Wird der Lesekopf via USB an einen Linux-PC angeschlossen, bekommt er einen Gerätenamen. z.B. "/dev/ttyUSB0".+Wird der Lesekopf via USB an einen Linux-PC angeschlossen, bekommt er einen Gerätenamen. z.B. ''/dev/ttyUSB0''.
 Werden noch andere USB-Geräte benutzt, die ebenfalls eine serielle Schnittstelle bereitstellen ( z.B ein 2. Lesekopf ) ist der Name der Schnittstelle nicht eindeutig. Werden noch andere USB-Geräte benutzt, die ebenfalls eine serielle Schnittstelle bereitstellen ( z.B ein 2. Lesekopf ) ist der Name der Schnittstelle nicht eindeutig.
  
Zeile 41: Zeile 39:
 /sbin/udevadm info --query=all --name=/dev/ttyUSB0 /sbin/udevadm info --query=all --name=/dev/ttyUSB0
 </code> </code>
 +
 +In der Raspian version "Bullseye" wurde der Pfad geändert auf
 +<code>
 +/usr/bin/udevadm info --query=all --name=/dev/ttyUSB0
 +</code>
 + 
 In der Ausgabe findet sich eine Zeile In der Ausgabe findet sich eine Zeile
 "E: ID_SERIAL_SHORT=**ABC1234**". **ABC1234** ist die Seriennummer des USB-Chips. "E: ID_SERIAL_SHORT=**ABC1234**". **ABC1234** ist die Seriennummer des USB-Chips.
  
-Nun kann man eine Datei "/etc/udev/rules.d/99-lesekopf.confmit folgendem Inhalt anlegen:+Nun kann man eine Datei ''/etc/udev/rules.d/99-lesekopf.conf'' mit folgendem Inhalt anlegen:
 <code> <code>
 SUBSYSTEM=="tty", ATTRS{product}=="CP2104 USB to UART Bridge Controller", ATTRS{serial}=="ABC1234", NAME="lesekopf0" SUBSYSTEM=="tty", ATTRS{product}=="CP2104 USB to UART Bridge Controller", ATTRS{serial}=="ABC1234", NAME="lesekopf0"
 </code> </code>
  
-Ergänzend ist zu erwähnen, dass je nach Linux Distribution die udev-"Rules"-Datei, also z.B. "/etc/udev/rules.d/99-lesekopf.confnicht mit ".conf", sondern mit ".rulesenden muss, damit der udev-Dienst diese Datei auch berücksichtigt. Dies betrifft unter anderem Ubuntu und Debian. Siehe [[http://wiki.debian.org/udev|debian-wiki (en)]].+Ergänzend ist zu erwähnen, dass je nach Linux Distribution die udev-"Rules"-Datei, also z.B. ''/etc/udev/rules.d/99-lesekopf.conf'' nicht mit ''.conf'', sondern mit ''.rules'' enden muss, damit der udev-Dienst diese Datei auch berücksichtigt. Dies betrifft unter anderem Ubuntu und Debian. Siehe [[http://wiki.debian.org/udev|debian-wiki (en)]].
  
-Nach dem die Datei angelegt wurde noch kurz den udev-Dienst neu starten/laden (z.B. "/etc/init.d/udevd reload") und man kann über /dev/lesekopf0 auf den Lesekopf zugreifen. Egal, welche anderen ttyUSB Geräte es noch gibt :-)+Nach dem die Datei angelegt wurde noch kurz den udev-Dienst neu starten/laden (z.B. ''/etc/init.d/udevd reload'') und man kann über /dev/lesekopf0 auf den Lesekopf zugreifen. Egal, welche anderen ttyUSB Geräte es noch gibt :-)
  
-Bei Ubuntu 12.10 folgendes:+Beim VZ-Image (Debian) oder Ubuntu 12.10 folgendes:
  
 <code> <code>
Zeile 70: Zeile 74:
  
  
-===== Hinweis zum Betrieb mit Pogoplug V2/V3 ===== 
-Versuche  mit Pogoplug V2, Feroceon 88FR131 [56251311] revision 1 (ARMv5TE) haben ergeben, dass ältere Kernel Probleme mit der Initialisierung des CP2104 haben und obwohl der IR-Kopf einen Gerätenamen, z.B. "/dev/ttyUSB0" bekommt und scheinbar korrekt ansprechbar ist, gelingt es nicht Signale zu empfangen oder zu senden. Der Bug wurde ab Kernel 3.3 korrigiert, man sollte also auf einen aktuellen Kernel achten. 
-Silabs stellt einen modifizierten Treiber für Kernelversionen 2.6.x zur Verfügung. Dieser kann per insmod eingebunden werden. 
-http://www.silabs.com/Support%20Documents/Software/Linux_2.6.x_VCP_Driver_Source.zip 
  
 =====Testmöglichkeiten unter Linux===== =====Testmöglichkeiten unter Linux=====
  
-Will man schnell prüfen ob der IR-Kopf in Verbindung mit einem Zähler funktioniert und wie die Daten aussehen die Empfangen werden, so gibt es verschiedene Möglichkeiten, wobei ''minicom'' die naheliegenste ist. Wenn Binärdaten übermittelt werden wird es ein wenig spannender, denn diese sind unter minicom nicht von etwa gestörten Daten zu unterscheiden. Es kann daher sinnvoll sein, die Daten mit einem Skript abzufangen. Im Rahmen der Tests mit dem oben genannten Pogoplug V2 und einen EMH eHZ haben sich folgende Zeilen als hilfsreich erwiesen. Für andere Zähler ist deren Übertragungsverfahren und das Datenformat zu beachten. +Will man schnell prüfen ob der IR-Kopf in Verbindung mit einem Zähler funktioniert und wie die Daten aussehen die Empfangen werden, so gibt es verschiedene Möglichkeiten, wobei ''minicom'' die naheliegenste ist. Wenn Binärdaten übermittelt werden wird es ein wenig spannender, denn diese sind unter minicom nicht von etwa gestörten Daten zu unterscheiden. 
- +
-<note attention> +
-Aufgrund der Zugriffsrechte unter Linux ist zu beachten, dass der gerade genutze ''user'' die serielle Schnittstelle benutzen darf. Root darf das immer, aber besser ist es dem normalen Benutzer die Gruppe ''uucp'' zuzuordnen. +
-</note>+
  
 === Serielle Schnittstelle einstellen === === Serielle Schnittstelle einstellen ===
  
-Unter vielen anderen Möglichkeiten bietet sich für die Konfiguration der seriellen Schnittstelle das Utility ''stty'' an und sollte im Zweifelsfall nachinstalliert werden. Um sich die vielen Optionen und Parameter einzusparen, bietet sich folgende Vorgehensweise an (als Schnittstelle soll ''/dev/ttyUSB0'' dienen):+Unter vielen anderen Möglichkeiten bietet sich für die Konfiguration der seriellen Schnittstelle das Utility ''stty'' an und sollte im Zweifelsfall nachinstalliert werden. Um sich die vielen Optionen und Parameter einzusparen, bietet sich folgende Vorgehensweise an (als Schnittstelle soll ''/dev/ttyUSB0'' dienen): man stellt die richtige Konfiguration unter minicom ein und verlässt dieses ohne Reset (Ctrl-A, Q). minicom mit sudo aufrufen.
  
-  - man stellt die richtige Daten unter minicom ein und verlässt dieses ohne Reset (Ctrl-A, Q) +{{:hardware:controllers:minicom.png?600|}}
-  - dann exportiert man die Einstellungen mittels ''stty -g -F /dev/ttyUSB0'' +
-  - das Ergebnis wird dann beim Aufruf von ''stty'' verwendet+
  
-Für 9600 8N1 würde solch ein Aufruf wie folgt aussehen:+Wobei die Punkte A und E natürlich an die Gegebenheiten angepasst werden können.
  
-<code> +Wenn man dann aber schon in minicom ist, kann man auch gleich den IR-Kopf testen, indem man über die Tastatur Zeichen ausgibt, die dann, wenn man den IR-Kopf 1-2 cm über eine weiße Fläche (Papier) hält, sofort wieder empfangen werden und in minicom angezeigt werden. 
-stty -F /dev/ttyUSB0 1:0:8bd:0:3:1c:7f:15:4:5:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:+ 
-</code> +
- +
-Die Befehlszeile kann natürlich auch in Skripte übernommen werden.\\+
 <note important>In vzlogger ist für das Protokoll "sml" 8N1 und für "d0" 7E1 der Defaultwert und braucht nicht extra eingestellt werden.</note> <note important>In vzlogger ist für das Protokoll "sml" 8N1 und für "d0" 7E1 der Defaultwert und braucht nicht extra eingestellt werden.</note>
  
Zeile 115: Zeile 106:
  
 um zu sehen was über die serielle Schnittstelle empfangen wird.\\ um zu sehen was über die serielle Schnittstelle empfangen wird.\\
-Um die Einstellungen auch nach erneutem Booten zu haben kann man diese in /etc/rc.local eintragen. 
- 
 Die Ausgabe sollte dann für binäre Daten so aussehen: Die Ausgabe sollte dann für binäre Daten so aussehen:
  
hardware/controllers/ir-schreib-lesekopf-usb-ausgang.1460354743.txt.gz · Zuletzt geändert: 2016/04/11 08:05 von udo1