Home    Impressum / Datenschutz   Shop    Download    Links     Blog  

Programmierbeispiel für den 4-Cannel I2C-Multiplexer PCA9544A

Mehrere I2C-Slaves mit gleicher Busadresse ansteuern

Hier ein Programm-Ausschnitt wie der Multiplexer mit dem I2C-USB-Modem angesprochen werden kann. Das Excel-Makro funktioniert auch mit dem neuen I2C-RS232-Modem 2.

Über vier Buttons kann zwischen den Kanälen des PCA9544 umgeschaltet werden. Das INT-Signal wird auf den Eingang durchgereicht. Welcher Kanal den INT ausgelöst hat kann über das Register ausgelesen werden.


Private Sub Command_CH0_Click()
'Der Befehl I2C-Data 33 hex = 51 dez.
'liest oder schreibt bis zu 128 Bytes vom I2C-Slave
 
Dim Adr
Adr = Combo_Mux_Adresse.Text 'Bus-Adresse des PCA 9544
 
SENDBYTE (51)  'Befehl 51 = Daten senden
SENDBYTE (3)   'Frame Anzahl = 3
SENDBYTE (Adr) 'Bus-Adresse des PCF 8574
SENDBYTE (0)   'Adresse MSB
SENDBYTE (4)   'Register auf Cannel 0 einstellen
SENDBYTE (4)   'Endekennung
 
If Modem_Antwort = False Then
    MsgBox ("Fehler bei I2C-MUX")
End If
End Sub

Private Sub Command_CH1_Click()
'Der Befehl I2C-Data 33 hex = 51 dez.
'liest oder schreibt bis zu 128 Bytes vom I2C-Slave
 
Dim Adr
Adr = Combo_Mux_Adresse.Text 'Bus-Adresse des PCA 9544
 
SENDBYTE (51)  'Befehl 51 = Daten senden
SENDBYTE (3)   'Frame Anzahl = 3
SENDBYTE (Adr) 'Bus-Adresse des PCF 8574
SENDBYTE (0)   'Adresse MSB
SENDBYTE (5)   'Register auf Cannel 1 einstellen
SENDBYTE (4)   'Endekennung
 
If Modem_Antwort = False Then
    MsgBox ("Fehler bei I2C-MUX")
End If
End Sub

Private Sub Command_CH2_Click()
'Der Befehl I2C-Data 33 hex = 51 dez.
'liest oder schreibt bis zu 128 Bytes vom I2C-Slave
 
Dim Adr
Adr = Combo_Mux_Adresse.Text 'Bus-Adresse des PCA 9544
 
SENDBYTE (51)  'Befehl 51 = Daten senden
SENDBYTE (3)   'Frame Anzahl = 3
SENDBYTE (Adr) 'Bus-Adresse des PCF 8574
SENDBYTE (0)   'Adresse MSB
SENDBYTE (6)   'Register auf Cannel 2 einstellen
SENDBYTE (4)   'Endekennung
 
If Modem_Antwort = False Then
    MsgBox ("Fehler bei I2C-MUX")
End If
End Sub

Private Sub Command_CH3_Click()
'Der Befehl I2C-Data 33 hex = 51 dez.
'liest oder schreibt bis zu 128 Bytes vom I2C-Slave
 
Dim Adr
Adr = Combo_Mux_Adresse.Text 'Bus-Adresse des PCA 9544
 
SENDBYTE (51)  'Befehl 51 = Daten senden
SENDBYTE (3)   'Frame Anzahl = 3
SENDBYTE (Adr) 'Bus-Adresse des PCF 8574
SENDBYTE (0)   'Adresse MSB
SENDBYTE (7)   'Register auf Cannel 4 einstellen
SENDBYTE (4)   'Endekennung
 
If Modem_Antwort = False Then
    MsgBox ("Fehler bei I2C-MUX")
End If
End Sub

Private Sub Command_AUS_Click()
'Der Befehl I2C-Data 33 hex = 51 dez.
'liest oder schreibt bis zu 128 Bytes vom I2C-Slave
 
Dim Adr
Adr = Combo_Mux_Adresse.Text 'Bus-Adresse des PCA 9544
 
SENDBYTE (51)  'Befehl 51 = Daten senden
SENDBYTE (3)   'Frame Anzahl = 3
SENDBYTE (Adr) 'Bus-Adresse des PCF 8574
SENDBYTE (0)   'Adresse MSB
SENDBYTE (0)   'Register auf 0 stellen
SENDBYTE (4)   'Endekennung
 
If Modem_Antwort = False Then
    MsgBox ("Fehler bei I2C-MUX")
End If
End Sub

Private Sub Command_REGISTER_Click()
'Der Befehl I2C-Data 33 hex = 51 dez.
'liest oder schreibt bis zu 128 Bytes vom I2C-Slave
Dim Adr, R, Rbin
 
Adr = Combo_Mux_Adresse.Text + 1 'Bus-Adresse des PCA 9544
 
SENDBYTE (51)      'Befehl 51 = I2C-DATA
SENDBYTE (3)       'Frame Anzahl = 3
SENDBYTE (Adr)     'Bus-Adresse des PCF 8574
SENDBYTE (0)       'Adresse MSB
SENDBYTE (1)       '1 Byte lesen
SENDBYTE (4)       'Endekennung
 
If Modem_Antwort = True Then
    R = D(1)                                  'Register vom PCA lesen
    Rbin = Right$("00000000" & Dec2Bin(R), 8) 'nach binär wandeln
    TextBox_Register.Text = Rbin              'Wert in Textbox eintragen
Else
    MsgBox ("Fehler bei Register lesen")
End If
End Sub


Testprogramm für I2C-Multiplexer PCA9544

Beispiele als Excel Makro
I2C-USB+M2-Multiplexer-Test.zip (133 kB)
Excel-Makro
mit einem Beispiel zur Ansteuerung der Kanalauswahl des I2C-Multiplexer PCA9544A für das I2C-USB-Modem oder das I2C-RS232-Modem 2
vba-makros.pdf (528 kB)
Bei den Makros kann es je nach Sicherheitseinstellungen zu Fehlermeldungen kommen. Eine Anleitung wie Sie die Makros ausführen können finden Sie in diesem Dokument



Bausätze können Sie günstig in unserem Onlineshop in der Rubrik
"I2C-Komponenten" bestellen.