USB->I2C Adapter an der FB7390

Begonnen von klausw, 28 April 2014, 14:53:24

Vorheriges Thema - Nächstes Thema

klausw

Hallo zusammen,

hat jemand schon einen USB auf I2C Konverter an der Fritzbox in betrieb?
Ich überlege, die Fritzbox direkt mit I2C Bausteinen wie Portextender und Temperatursensor zu betreiben.
Dadurch könnte ich ein Pi einsparen ;)

Grüße
Klaus
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

PeMue

Hallo Klaus,

ich habe keinen solchen Adapter in Betrieb, aber aus meiner Sicht müssten alle Adapter mit FTDI Chipsatz gehen (zumindest geht der FTDI232RL bei meinem USB 2 1-wire Adapter). Für USB 2 I2C wäre das vermutlich auch dieser da.

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

betateilchen

(OFFTOPIC)
Mich würde interessieren, ob so ein Ding (ich hab hier irgendwo eins rumliegen) an einer richtigen Hardware (Raspi oder Cubietruck) funktionieren würde, um I2C nach ausserhalb des Gehäuses zu verlegen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

klausw

Hallo PeMue,

Zitat von: PeMue am 28 April 2014, 21:25:53
ich habe keinen solchen Adapter in Betrieb, aber aus meiner Sicht müssten alle Adapter mit FTDI Chipsatz gehen (zumindest geht der FTDI232RL bei meinem USB 2 1-wire Adapter). Für USB 2 I2C wäre das vermutlich auch dieser da.
Das klingt schonmal gut. Könnter auch der funktionieren?

Grüße
Klaus
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

klausw

Zitat von: betateilchen am 28 April 2014, 21:32:50
(OFFTOPIC)
Mich würde interessieren, ob so ein Ding (ich hab hier irgendwo eins rumliegen) an einer richtigen Hardware (Raspi oder Cubietruck) funktionieren würde, um I2C nach ausserhalb des Gehäuses zu verlegen.
Das ist das Ziel. Wenn es an der FB geht, dann sicher auch an anderen Linux Systemen.
Wenn ich es richtig verstanden habe dann sorgt das Kernelmodul dafür, dass der I2C vom USB Dogle über sysfs erreichbar ist und damit über das RPII2C Modul nutzbar sein sollte.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

betateilchen

#5
können wir das vielleicht woanders "allgemeiner" weiterdisktuieren?

Das passiert, wenn ich so einen Adapter an den cubietruck anstecke


[180227.136646] ehci_irq: port change detect
[180227.368400] ehci_irq: port change detect
[180227.432109] The port change to OHCI now!
[180227.744858] usb 5-1: new full-speed USB device number 2 using sw-ohci
[180228.034607] usbcore: registered new interface driver usbserial
[180228.050942] usbcore: registered new interface driver usbserial_generic
[180228.066407] USB Serial support registered for generic
[180228.079733] usbserial: USB Serial Driver core
[180228.120559] usbcore: registered new interface driver ftdi_sio
[180228.136972] USB Serial support registered for FTDI USB Serial Device
[180228.154396] ftdi_sio 5-1:1.0: FTDI USB Serial Device converter detected
[180228.168689] usb 5-1: Detected FT-X
[180228.180271] usb 5-1: Number of endpoints 2
[180228.192906] usb 5-1: Endpoint 1 MaxPacketSize 64
[180228.201164] usb 5-1: Endpoint 2 MaxPacketSize 64
[180228.204502] usb 5-1: Setting MaxPacketSize 64
[180228.229858] usb 5-1: FTDI USB Serial Device converter now attached to ttyUSB0
[180228.246554] ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver


UMFT200XD-01 - USB to I2C breakout board

Bus 005 Device 002: ID 0403:6015 Future Technology Devices International, Ltd Bridge(I2C/SPI/UART/FIFO)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

PeMue

Hallo Klaus,

Zitat von: klausw am 28 April 2014, 21:37:39
Könnter auch der funktionieren?
wenn Du den da hast, würde ich das einfach probieren. Bin mir aber nicht sicher, was da auf dem Tiny für eine Firmware läuft und ob dann die Fritz Box Kernelmodule vorhanden sind. Fritz Box ist halt kein richtiger Rechner  8)
@Betateilchen: Richtige Rechner sollten doch von Haus aus eine I2C Schnittstelle haben, zumindest hat die mein Raspberry Pi. Warum dann noch den Adapter? Aber aus meiner Sicht sollte der Adapter auch gehen. Aber das wäre eher was für die Rubrik "Einplatinencomputer".

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

betateilchen

Zitat von: PeMue am 28 April 2014, 22:06:31
@Betateilchen: Richtige Rechner sollten doch von Haus aus eine I2C Schnittstelle haben, zumindest hat die mein Raspberry Pi. Warum dann noch den Adapter?

Hab ich doch oben geschrieben: Um den Bus auf einfache Weise von aussen anstecken zu können.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

klausw

Zitat von: betateilchen am 28 April 2014, 21:51:28
können wir das vielleicht woanders "allgemeiner" weiterdisktuieren?

klar doch, such mal einen schönen Platz und platziere hier einen link ;)

Zitat von: betateilchen am 28 April 2014, 21:51:28

[180228.229858] usb 5-1: FTDI USB Serial Device converter now attached to ttyUSB0


Wie es aussieht, wurde ttyUSB0 angelegt.
Ich habe mir so nen Dongle bestellt. Mal sehen, ob man da mit Device::SMBus draufkommt
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

klausw

Zitat von: PeMue am 28 April 2014, 22:06:31
wenn Du den da hast, würde ich das einfach probieren.

Dazu muss ich den erst bauen ;)
Bietet sich halt an, einen Attiny direkt mit auf eine I2C Portextenderplatine zu bauen.
Die i2c-tiny-usb.ko schein bei der FM mit dabei zu sein. Da schaue ich heute mal nach.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

beSmart

Hallo.

Da ich mich auch für einen USB- to I2C-Adapter interessiere, bin ich über die Suchfunktion zu diesem Beitrag gekommen.

Gibt es schon Erfahrungen, ob so ein Adapter mit Fhem funktioniert?

Ich möchte mein Fhem auf ein Via Epia Mainbord umziehen lassen. Da ich aber 3 MCP23017 am Raspberry nutze, benötige ich auch auf dem Epia-Bord I2C. Das Bord selbst hat zwar einen SMBus, der zum Teil mit dem I2C-Bus kompatibel ist, aber in welchem Umfang ist mir nicht ganz klar.

Wie funktioniert den der Interrupt mit einem USB to I2C -Adapter?

Vielen Dank und Gruß


beSmart

BeetleX

Hallo - haben alle aufgegeben oder habe ich den Link übersehen?
Mich würde eine mögliche Lösung sehr interessieren.
VG Holger

klausw

Das Thema ist auch nicht mehr ganz frisch.  Ich hatte es nicht weiterverfolgt.
Du kannst dir aber Firmata ansehen. Die gibt es als USB Variante und mit I2C.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

BeetleX

#13
Ich habe 2 Hutschienenmodule mit jeweils 16 Relaisausgängen, die zentral im EG und im OG die Lampen schalten. Eigenbau auf 8051-Basis mit I2C-Eingang (mit Pegelwandlern ordentlich entkoppelt). 12V-seriell wäre auch verfügbar.

Firmata ist interessant, nützt mir aber hier nichts. Portierung auf den 51er wäre Klasse, scheint aber nicht durch eine simple Anpassung getan.

Zurück zum I2C: ich habe nun etwas herumgetestet:
ATTINY85 mit der i2c-tiny-usb Software geflasht (die fertige digispark-Variante, direkt ohne Programmer mit dem gelieferten micronucleus Bootloader)
Wird wie erwartet beim Anstecken an einen Raspi vom Kernel-mode Treiber als i2c-3 eingebunden - alles gut.  8)
Mein eigentliches Zielsystem ist ein Cubietruck, ich nehme mal an, das klappt auch.

Jetzt interessiert mich, wie robust das ganze ist. Eine böse Masseschleife z.B. beim Oszi-Anklemmen kann den Bus scheinbar abwerfen.
Erzeugte Kurzschlüsse (Signal auf Masse) steckt er ganz gut weg. Aber wenn ich CLK für einige Sekunden auf Masse klemme, fliegt der Bus weg. Die Frage ist nun, ob ich den Bus bzw. den TINY per Software wieder aktiviert bekomme?

Und weiter im Funktionstest:
Im FHEM habe ich deinen(?) MPC23017 definiert, der Relais-8051 emuliert den Chip. Das funktioniert erst mal Klasse und hat sich seit ein paar Tagen im Dauertest bewährt.  8)


VG Holger


BeetleX

#14
Jetzt wird´s böse:
Eigentlich läuft ja alles bestens, siehe oben.

Aber: falls der I2C-Bus ein einziges mal muckt, passiert folgendes:

1. im Linux ist das device weg (hier: /dev/i2c-4), soweit verständlich.
2. im fhem ist mein RPII2C device aber ebenso weg, und zwar weg aus der config. Als ob es nie existiert hätte!

Ohne explizit zu speichern und ohne rotes ? in WEB.
Wie geht denn das? D.h. ein Neustart oder rereadcfg bringt nichts, da die entsprechenden Zeilen aus der config verschwunden sind.

Und
3. in der Folge verlieren meine I2C_MPC23017-Geräte die outputPort-Einträge, d.h. die Zeile attr blabla OutputPorts A0-A7,B0-B7 ist ebenso verschwunden.

4. Wenn ich RPII2C wieder definiere, steht es hinten in der config und ich muss es händisch vor die MPC devices schieben und dann OutputPorts wieder eintragen.

Was passiert hier? Ist das eine unglückliche Kombination irgendwelcher Attribute und Einstellungen, so dass die Config umgeschrieben wird?

Bitte um Hilfe,
VG Holger