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
Was ist im Handbuch Kapitel 3.1ff unklar? Haste das überhaupt mal gelesen?
@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
:
Bearbeitet durch User
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.
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.
Stefanus F. schrieb: > OS schrieb: >> Ein Beispiel von mir um den PCF8574 zu testen. > > Das kann keiner lesen. Die Eingangsfrage bezog sich auf Hterm. Dieses Programm kann diese Datei möglicherweise lesen. Menschenlesbar scheint sie auch, nach kurzem Drüberschauen, plausibel.
Stefanus F. schrieb: > Das kann keiner lesen. Was kannst Du nicht lesen? Die hts Datei kannst mit eine Texteditor öffnen, wo ist das Problem?
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
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.
OS schrieb: >> Das kann keiner lesen. > Was kannst Du nicht lesen? Ich meinte das Bild. Ich konnte nur die zu stark verkleinerte Voransicht sehen. Jetzt geht der Download/PDF Ansicht aber.
Ich kenne das Teil und habe es auch aufgebaut. Technisch für mich ist das Steinkohle und voller Fehler, z.B. falsche Aufschrift, Netzteil wird heiss, RS232 ??? wozu noch im Zeitalter von USB. Auch ein PCF8574 kann man per Handy schalten durch einfaches antippen auf dem Display.
Schau Dir mal das ESPEasy Projekt an. Da wird es ESP8266 Modul verwendet, um diverse gängige I/O Schnittstellen und Sensoren über ein WLAN Web Interface anzusteuern. https://www.letscontrolit.com/wiki/index.php/ESPEasy
Peer schrieb: > Auch ein PCF8574 kann man per Handy schalten durch einfaches antippen > auf dem Display. Interessant, kannst Du das bitte mal genauer beschreiben, welche Hard und Software (App) verwendest Du dafür. Mich würde die Verbindung Handy PCF8574 interessieren.
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
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?
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
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
Micha schrieb: > Ich habe auf die Schnelle nur das I2C Display angesprochen, wie hier > beschrieben. Wie gesagt kann dieser Chip nur einzelne Bytes empfangen. Und wenn du ihn ausliest bekommst du 0xFF weil tatsächlich alle Leitungen HIGH sind (hast du ja vorher so gesendet).
>ohne Rechtsschreibfehler zu posten https://www.heise.de/ct/ausgabe/2015-19-Schlagseite-2783052.html
Stefan ⛄ F. schrieb: > Das kann keiner lesen. Es gibt genug Programme, die XML-Dateien lesen können. Womit hast du es denn versucht?
Wolfgang schrieb: > Es gibt genug Programme, die XML-Dateien lesen können. Womit hast du es > denn versucht? Das weiß ich jetzt 2 Jahre später doch nicht mehr. Ich vermute, dass ich damals nur auf die mir unbekannte Dateiendung geachtet hatte, nicht den Inhalt.
Ich sehe gerade, der Original-Post ist schon zwei Jahre her. Für den Raspberry gibt es das praktische Programm i2cdetect, das scannt den Bus und listet alle gefundenen Adressen auf.
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.
Christoph db1uq K. schrieb: > Für den Raspberry gibt es das praktische Programm i2cdetect, das scannt > den Bus und listet alle gefundenen Adressen auf. Dafür reicht ein ATmega328 z.B. mit Arduino I2C-Scanner.
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.
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
:
Bearbeitet durch User
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.
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
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.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.