ELV USB-I2C Interface und H Therm

Gast #5920648
Lesenswert?

Hallo
habe diesen Bausatz von ELV fertig aufgebaut zu liegen. Wollte mal damit 
was am I2C Bus machen. Leider ist mir die Nutzung ein Rätzel dazu. Es 
soll mit dem Programm Htrem laufen. Siftware installieren und so. Hat 
auch alles geklappt, nur ist die Nutzung bzw. Befehlsübergabe pder 
Empfang total unklar.
Hat jemand damit Erfahrung gemacht oder gibt es Beispiele dazu oder ein 
bessees Programm dazu?
LG Peer
#5920658
Lesenswert?

@Peer

Was ist das denn das?

Wenn Du nicht fähig bist
- einen korrekten und verwendbaren link zu posten
- Deine Anfrage ohne Rechtsschreibfehler zu posten (=> lies erst mal, 
was Du zu posten gedenkst und korrigier die Fehler)
- anhand von Beispielen Dein Problem zu schildern

wirst Du auch keine brauchbare Hilfe erhalten.

Glaskugel gucken kann jeder, aber es kommt nichts verwendbares dabei 
heraus
(Firma: www.elpra.de) Persönliche Seite #5920669
Lesenswert?

Das ist eigentlich relativ simpel. Via UART sendest du Kommandos an die 
ELV Box und diese uebersetzt das dann auf I2C. Ich finde leider gerade 
kein Beispiel, das ist aber wirklich super simpel und du kannst jedes 
UART Terminal Programm nehmen (ich hab unter Linux z.B. Minicom 
verwendet oder Python Skripte geschrieben wenn ich eine feste 
Befehlsfolge absetzen wollte).

Am besten du wirfst mal ein Blick ins Handbuch: 
https://files.elv.com/Assets/Produkte/8/841/84123/Downloads/84123_usb_i2c_handbuch_v1_7.pdf

Auf Seite 12 in Kapitel 4.1.1 sind Beispiele. Z.B. sendest du
1
S 40 FF P

Das S erzeugt die Start Condition, gefolgt von der I2C Device Adresse 
0x40 (da Bit 0 von 0x40 0 ist, ist es ein I2C Write Request). Da Write 
Request werden die Daten 0xFF gesendet und mit einer Stop Condition 
beendet.

Falls du nicht sicher bist, ob die UART Verbindung zur Box richtig 
konfiguriert ist, einfach mal ein ? senden. Wenn das schon nicht klappt, 
dann ist irgendwas falsch konfiguriert.
Gast #5920683
Lesenswert?

Peer schrieb:
> Hat jemand damit Erfahrung gemacht oder gibt es Beispiele dazu oder ein
> bessees Programm dazu?

Ein Beispiel von mir um den PCF8574 zu testen.
Wenn Du auf Sequence Overview gehst kannst das hts File öffnen.
Durch klicken auf einen Eintrag wird der Befehl ausgeführt.
Das hts File kannst mit einem Editor bearbeiten.

Ein besseres Programm dafür, ich habe noch keines gefunden, brauche ich 
auch nicht, sonst eventl. selber eins schreiben, oder die Scripte 
ausführen.
Angehängte Dateien:
Gast #5920772
Lesenswert?

Gut, so weit klar. Habe mich da wohl nicht präzise ausgedrückt. Habe mir 
die Anleitung noch mal genauer angesehen. Die Ein- bzw. Ausgabe erfolgt 
in HEX. Dabei werden ja nur die Werte dargestellt die übertragen werden. 
Kenne das von anderen Teilen als Sniffer.
Gibt es ein Programm um z.B. über das Interfache von ELV mir bestimmte 
Abläufe oder Daten anzeigen lassen kann ohne das es in HEX erfolgt oder 
durch einfaches anklicken Ausgänge schalten kann. Möglichkeit über LAN 
oder WLAN. Es gibt einige ICs die so was machen, Programme die dann 
alles auf dem Handy anzeigen und damit z.B. eine Heizungssteuerung oder 
Lichtsteuerung machen. Das Problem bei mir sind dann die APP und die 
Einbindung in den Bus, z.B. ESP32 - zu kompliziert?
LG Peer
Gast #5920811
Lesenswert?

Peer schrieb:
> Programme die dann
> alles auf dem Handy anzeigen und damit z.B. eine Heizungssteuerung oder
> Lichtsteuerung machen. Das Problem bei mir sind dann die APP und die
> Einbindung in den Bus, z.B. ESP32 - zu kompliziert?

Mal eine Frage, was wolltest Du mit den USB/I2C Wandler machen, der 
Wandler ist in erster Linie dazu da um mit einem I2C Bauteil zu 
kommunizieren.
Deshalb das einfache Beispiel mit den 8Bit I/O PCF8574.
Womit willst Du den ELV Wandler verbinden, welches I2C Bauteil?

Das was Du hier beschreibst, mit LAN, WLAN, Heizungssteuerung, APP usw. 
das hat alles nichts damit zu tun.

Dafür wäre das hier eher geeignet.
https://www.pollin.de/p/bausatz-avr-net-io-810058
Gibt es auch als Fertiggerät.
Da kannst Du mit LAN dran gehen, mit dem Browser die Ein/Ausgänge 
bedienen.
Gast #6764111
Lesenswert?

Hallo

Ich habe mir ebenfalls das USB 2 I2C Interface von ELV geholt.

Leider Funktioniert es überhaupt nicht wie beschrieben.

Wenn ich z.B auf Adr. 0x27 schreiben will, dann bekomme ich kein 
Acknowledge

Ich habe mir dann eine Arduino als I2C Monitor gebastelt, der auf Adr. 
0x27 hört und es kommt ebenfalls nichts an. Dann habe ich mir alles mit 
dem Oszi angeschaut und festgestellt, dass die Bits der Zieladresse um 1 
Bit nach links verschoben sind. Also schreibe ich dann z.B  S4E AA p 
dann regiert der Slave mit Adr. 0x27 und AA wird angezeigt. Das gleiche 
habe ich auch mit dem IO Expander Chip.

Na ja, jetzt könnte man sagen, mit dem Adressproblem kann man leben  
Jedoch kann ich nur ein Byte korrekt übertragen. Beim Kommando S4E AA FF 
AA FF p kommt nur das letze Byte korrekt an.

Hat jemand die gleiche Erfahrung gemacht? Hat jemand eine Lösung

Grüße Micha
Gast #6764145
Lesenswert?

micha schrieb:
> Ich habe mir dann eine Arduino als I2C Monitor gebastelt, der auf Adr.
> 0x27 hört und es kommt ebenfalls nichts an. Dann habe ich mir alles mit
> dem Oszi angeschaut und festgestellt, dass die Bits der Zieladresse um 1
> Bit nach links verschoben sind. Also schreibe ich dann z.B  S4E AA p
> dann regiert der Slave mit Adr. 0x27 und AA wird angezeigt. Das gleiche
> habe ich auch mit dem IO Expander Chip.

Dann schau dir an wie die Adressierung von I2C definiert ist. Das 
niederwertigste Bit-0 ist das Read/Write Bit, und die Adresse steckt in 
Bit-1 bis Bit-7. Also kein Problem, sondern so definiert. Wenn 0x27 
adressiert werden soll, dann muss 0x4E herausgeschickt werden.

> Na ja, jetzt könnte man sagen, mit dem Adressproblem kann man leben 
> Jedoch kann ich nur ein Byte korrekt übertragen. Beim Kommando S4E AA FF
> AA FF p kommt nur das letze Byte korrekt an.

Mit dem Oszi angeschaut?
#6764172
Lesenswert?

micha schrieb:
> Na ja, jetzt könnte man sagen, mit dem Adressproblem kann man leben 
> Jedoch kann ich nur ein Byte korrekt übertragen. Beim Kommando S4E AA FF
> AA FF p kommt nur das letze Byte korrekt an.

1) Es gibt 2 definitions um die I2C adresse an zu geben ; 7-bit oder 
8-bit. 50% der Komponenten-Datasheets und Tools der ich benutzt habe 
benutzt 7-bits und die andere 50% benutzt 8-bits. Das format "S 40 FF p" 
habe ich bei mehrere tools geseheb, zB I2CChip und Cypress Bridge 
Control Panel. Bei diesem format wird immer 8-bit adressiert. Mit ELV 
habe ich keine erfahrung.

2) Ich nehme an du sendest das Kommand "S4E AA FF AA FF p" zu einer 
PCF8574 mit adressierung "111" ? Laut paragraph 8.3.1 von datasheet 
:"The data byte is followed by an acknowledge sent from this device. If 
other data bytes are sent from the master, following the acknowledge, 
they are ignored by this device" - Also pro WRITE kan mann nur 1 byte 
geben.

Grusz Patrick aus die Niederlaende
Gast #6765139
Lesenswert?

Hallo Patrick,
Hallo Holger,
vielen Dank für die Info. Das macht mir Mut das ganz doch nochmal 
anzufassen.
Ich habe auf die Schnelle nur das I2C Display angesprochen, wie hier 
beschrieben.
https://rn-wissen.de/wiki/index.php/I2C_USB_PC_Adapter

Als Display habe ich
https://www.amazon.de/SunFounder-Serial-Arduino-Mega2560-MEHRWEG/dp/B07P7SCF4Y

Wenn ich S4E AA FF AA FF p an mein Arduino sende, dann wird mir nur ??? 
FF ausgegeben. OK, das muss ich dann nochmal mit dem Oszi anschauen.
Grüße und Danke nochmals

Micha
Gast #6765610
Lesenswert?

Wieso baust du dir das Teil nicht selbst nach mit einen Arduino und ein 
paar PFC8574.

Ist doch viel einfacher. Dazu eine kleine Software auf den Arudino der 
die Steuerbefehle umsetzt und das war's.

Ist wirklich kein Hexenwerk wenn man Programmieren kann.

Ich hab so was sogar mal Spasseshalber mit 433-Mhz Modulen aus China 
gemacht. Da hab ich an den Arduino am USB-Port via Com-Schnittstelle 
Befehle geschickt und der hat sie an Arduino 2 via Funk weiter 
geschickt.

Der Rest in nur Pharsen : Also erkennen was er für Befehle bekommt, und 
umsetzen.
Gast #6765622
Lesenswert?

Christoph db1uq K. schrieb:
> Für den Raspberry gibt es das praktische Programm i2cdetect, das scannt
> den Bus und listet alle gefundenen Adressen auf.

Gibt es auch für den Arduino. Bloß wenn die da keine Hardware-Schaltung 
eingebaut haben, oder die Adressen in die Anleitung geschrieben haben, 
gibt  es nur eine Möglichkeit. Aufmachen // Nachschauen // und im 
Datenblatt die Adresse ablesen.

Das mit den 2 Jahren habe ich auch übersehen.
#6765647
Lesenswert?

Patrick C. schrieb:
> Laut paragraph 8.3.1 von datasheet
> :"The data byte is followed by an acknowledge sent from this device. If
> other data bytes are sent from the master, following the acknowledge,
> they are ignored by this device" - Also pro WRITE kan mann nur 1 byte
> geben.

Wo hast Du das her?

Man kann natürlich mehrere Bytes hintereinander schreiben oder lesen. 
Z.B. werden an ein LCD am PCF8574 beide Nibble und das E Takten in einem 
Rutsch ausgegeben.
In Fig 8. ist das auch schön zu sehen, wie P5 erst auf 1 und beim 
nächsten Byte auf 0 geht.
Genauso beim Lesen (Fig 9.), erst wird DATA1 eingelesen, dann DATA4.
DATA2, DATA3 werden ignoriert, da sie nicht bis zum ACK anliegen.
Probiers aus.

https://www.nxp.com/docs/en/data-sheet/PCF8574_PCF8574A.pdf
Gast #6765670
Lesenswert?

Danke für die Infos.

Das mit der 7 und 8 Bit Adressierung muss man erst mal wissen. Im ELV 
Handbuch hatte ich zumindest nichts darüber gelesen. Aber Suchmaschinen 
machen schlau.
Das mit mehreren Bytes schreiben habe ich jetzt mit
z.B S4e AA w FF x 01 p gelöst.

Ich hatte mich einfach zu sehr auf das Beispiel konzentriert.
 https://rn-wissen.de/wiki/index.php/I2C_USB_PC_Adapter augeruht.
Warum auch immer das nicht geht. Es sollte auch nur ein Prinziptest sein

Vielen Dank nochmal.
#6765716
Lesenswert?

Peter D. schrieb:
> Patrick C. schrieb:
>> Laut paragraph 8.3.1 von datasheet
>> :"The data byte is followed by an acknowledge sent from this device. If
>> other data bytes are sent from the master, following the acknowledge,
>> they are ignored by this device" - Also pro WRITE kan mann nur 1 byte
>> geben.
>
> Wo hast Du das her?

Sorry das habe ich aus PCF8574 datasheet von ti
https://www.ti.com/lit/ds/symlink/pcf8574.pdf?ts=1626926352710&ref_url=https%253A%252F%252Fwww.google.com%252F

.. Aber ich könnte falsch liegen

Patrick aus die Niederlaende
#6765862
Lesenswert?

Ich hätte das auch so verstanden. Entweder wir sprechen zu schlecht 
English oder das Datenblatt hats schlecht beschrieben. Mit dem Ack wird 
der Wert ausgegeben und es ist bereit für einen Neuen. Ob das endlos 
geht weiß ich nicht aber 28 Werte hintereinander geht problemlos. (Test 
mit 16x2 Lcd an einem Pcf)
Bild 8.4 (Figur 16) sagt auch was anderes - da ist wohl das Datenblatt 
falsch - nicht unser englisch :-)
Im Datenblatt von Philips steht es richtig.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren