Ich hatte die Gelegenheit die o.g. I²C-Interfaces von Horter & Kalb zu testen.
http://www.horter.de/i2c/index.htm
Dabei entstand nachstehendes Projekt, mit dem man den Zugriff auf I²C-Peripherie ganz gut ausprobieren kann...
Bitte auch die Doku zu den Modulen lesen!
http://www.horter.de/doku/i2c-usb-modem_kommandos.pdf
Horter & Kalb I²C-RS232 Modem 2 / I²C-USB-Modem
Horter & Kalb I²C-RS232 Modem 2 / I²C-USB-Modem
ABACOM support
Re: Horter & Kalb I²C-RS232 Modem 2 / I²C-USB-Modem
P.S. Ggf. muss die Baudrate im Projekt an die tatsächlichen Gegebenheiten des Moduls angepasst werden!
ABACOM support
Re: Horter & Kalb I²C-RS232 Modem 2 / I²C-USB-Modem
Als problematisch erwiess sich im Protokoll der H&K-Interfaces das Zeichen $04,
das einerseits das Datenende markiert und andererseits auch in den Nutzdaten vorkommt.
Das Update von heute berücksichtigt dieses und enthält auch aktuelle Beispiele für die H&K I²C Interfaces.
viewtopic.php?f=53&t=4130
http://www.abacom-online.de/updates/pro ... pdate).exe
das einerseits das Datenende markiert und andererseits auch in den Nutzdaten vorkommt.
Das Update von heute berücksichtigt dieses und enthält auch aktuelle Beispiele für die H&K I²C Interfaces.
viewtopic.php?f=53&t=4130
http://www.abacom-online.de/updates/pro ... pdate).exe
ABACOM support
Re: Horter & Kalb I²C-RS232 Modem 2 / I²C-USB-Modem
Hallo Profilab-Team,
danke das sie jetzt einige Horter-Module eingebaut haben. Das hilft sehr zu sehen, wie das hier gemacht wurde.
Ein wichtiger Hinweis jedoch:
Das "USB-Modem" von Horter hat eine fest eingestellte Baud-Rate von 115200 , das RS232-Modem eine einstellbare. Das ist wichtig zu wissen, denn wenn das USB-Modem mit "9600" angesteuert wird, geht es in die "Hose", es muss der richtige "COM-Port" und "115200" eingetragen sein.
Nun fehlt eigentlich als Abrundung ein Makro für den Multiplexer PCA 9544A, um Messkanäle zu switchen.
Die Sequenzen für den MUX kenne ich schon:
Adr_Mux = 224
Kanal 0: 51 3 Adr_Mux 0 4 4
Kanal 1: 51 3 Adr_Mux 0 5 4
Kanal 2: 51 3 Adr_Mux 0 6 4
Kanal 3: 51 3 Adr_Mux 0 7 4
keiner : 51 3 Adr_Mux 0 0 4
Demnach könnte man jetzt auch noch "weiter" ausholen, um einen Datenlogger mit I2C zu realisieren:
a) Temperatur LM75 mit gleicher Adresse
LM 75 an Kanal 0 und an Kanal 4
Adr_Temp = 144
Adr_Mux = 224
Dann wäre zu senden:
Sequenz Befehl Sequenz Antwort
51 3 Adr_Mux 0 4 0 --> 58 1 1 4 (ok) (Kanal 0)
51 3 Adr_Temp 0 2 4 --> 58 2 25 128 4 (25,5°C)
// 25=25°C 128=0,5°C dazu zählen also Temperatur = 25,5°C
// negative Temperaturen sind Werte von 128 bis 255, wo bei 255 = -1°C sind.
// also IF Wert>127 Then Wert:=Wert-255 else Wert= Wert
51 3 Adr_Mux 0 7 0 --> 58 1 1 4 (ok) (Kanal 4)
51 3 Adr_Temp 0 2 4 --> 58 2 26 0 4 (26,0°C)
Vielleicht können sie einen Tip geben, wie man das übersichtlich realisieren kann.
Parameter des "Sensors" wäre der Kanal und die Adresse, wo er dran hängt, der Typ bestimmt die Befehls- und Auswerte-Sequenz.
So wären im Hauptprogramm eigendlich nur eine Anzahl von Ausgabefenster der verschiedenen Sensoren da und ein Knopf, wo man "Startet" und beginnt Daten wegzuschreiben.
Aber nochmals heissen Dank für das aktuelle Update, es rettet zwar nicht die ganze Welt, aber einen kleinen Teil davon!!!
Liebe Grüße
Peter Heinrich
danke das sie jetzt einige Horter-Module eingebaut haben. Das hilft sehr zu sehen, wie das hier gemacht wurde.
Ein wichtiger Hinweis jedoch:
Das "USB-Modem" von Horter hat eine fest eingestellte Baud-Rate von 115200 , das RS232-Modem eine einstellbare. Das ist wichtig zu wissen, denn wenn das USB-Modem mit "9600" angesteuert wird, geht es in die "Hose", es muss der richtige "COM-Port" und "115200" eingetragen sein.
Nun fehlt eigentlich als Abrundung ein Makro für den Multiplexer PCA 9544A, um Messkanäle zu switchen.
Die Sequenzen für den MUX kenne ich schon:
Adr_Mux = 224
Kanal 0: 51 3 Adr_Mux 0 4 4
Kanal 1: 51 3 Adr_Mux 0 5 4
Kanal 2: 51 3 Adr_Mux 0 6 4
Kanal 3: 51 3 Adr_Mux 0 7 4
keiner : 51 3 Adr_Mux 0 0 4
Demnach könnte man jetzt auch noch "weiter" ausholen, um einen Datenlogger mit I2C zu realisieren:
a) Temperatur LM75 mit gleicher Adresse
LM 75 an Kanal 0 und an Kanal 4
Adr_Temp = 144
Adr_Mux = 224
Dann wäre zu senden:
Sequenz Befehl Sequenz Antwort
51 3 Adr_Mux 0 4 0 --> 58 1 1 4 (ok) (Kanal 0)
51 3 Adr_Temp 0 2 4 --> 58 2 25 128 4 (25,5°C)
// 25=25°C 128=0,5°C dazu zählen also Temperatur = 25,5°C
// negative Temperaturen sind Werte von 128 bis 255, wo bei 255 = -1°C sind.
// also IF Wert>127 Then Wert:=Wert-255 else Wert= Wert
51 3 Adr_Mux 0 7 0 --> 58 1 1 4 (ok) (Kanal 4)
51 3 Adr_Temp 0 2 4 --> 58 2 26 0 4 (26,0°C)
Vielleicht können sie einen Tip geben, wie man das übersichtlich realisieren kann.
Parameter des "Sensors" wäre der Kanal und die Adresse, wo er dran hängt, der Typ bestimmt die Befehls- und Auswerte-Sequenz.
So wären im Hauptprogramm eigendlich nur eine Anzahl von Ausgabefenster der verschiedenen Sensoren da und ein Knopf, wo man "Startet" und beginnt Daten wegzuschreiben.
Aber nochmals heissen Dank für das aktuelle Update, es rettet zwar nicht die ganze Welt, aber einen kleinen Teil davon!!!
Liebe Grüße
Peter Heinrich
Re: Horter & Kalb I²C-RS232 Modem 2 / I²C-USB-Modem
Danke für die Ergänzungen. Ich hatte nur die RS232-Version zum Testen.
In den Beispielen sind schon Makros vorhanden. Nach gleichem Schema kann man auch weitere, andere I²C-Chips implementieren. Ich diese aber leider nicht zur Verfügung.
In den Beispielen sind schon Makros vorhanden. Nach gleichem Schema kann man auch weitere, andere I²C-Chips implementieren. Ich diese aber leider nicht zur Verfügung.
ABACOM support