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 für das I2C-RS232-Modem (1).


Private Sub Command_Switch_C0_Click()  'Multiplexer alle Kanäle abschalten
Dim A
 
SENDBYTE (64)                          'Befehl 64 = Multiwrite + (Anzahl Bytes -1)
SENDBYTE (Combo_Switch_Adresse.Text)   'Bus-Adresse des PCA 9544 schreiben
SENDBYTE (0)                           'Cannel und Enable-Bit = FALSE
 
TextBox_PCA9545.Text = M_Stat(READBYTE)'Status vom Modem Abfragen
'Lesepuffer leeren
Do: A = READBYTE: Loop Until A = -1
 
End Sub 



Private Sub Command_Switch_C0_Click()  'Multiplexer auf Kanal 0 einstellen
Dim A
 
SENDBYTE (64)                          'Befehl 64 = Multiwrite + (Anzahl Bytes -1)
SENDBYTE (Combo_Switch_Adresse.Text)   'Bus-Adresse des PCA 9544 schreiben
SENDBYTE (4)                           'Cannel 0 + enable-Bit
 
TextBox_PCA9545.Text = M_Stat(READBYTE)'Status vom Modem Abfragen
'Lesepuffer leeren
Do: A = READBYTE: Loop Until A = -1
 
End Sub 

Private Sub Command_Switch_C1_Click()  'Multiplexer auf Kanal 1 einstellen
Dim A
 
SENDBYTE (64)                          'Befehl 64 = Multiwrite + (Anzahl Bytes -1)
SENDBYTE (Combo_Switch_Adresse.Text)   'Bus-Adresse des PCA 9544 schreiben
SENDBYTE (5)                           'Cannel 1 + enable-Bit
 
TextBox_PCA9545.Text = M_Stat(READBYTE)'Status vom Modem Abfragen
'Lesepuffer leeren
Do: A = READBYTE: Loop Until A = -1
 
End Sub

Private Sub Command_Switch_C2_Click()  'Multiplexer auf Kanal 2 einstellen
Dim A
 
SENDBYTE (64)                          'Befehl 64 = Multiwrite + (Anzahl Bytes -1)
SENDBYTE (Combo_Switch_Adresse.Text)   'Bus-Adresse des PCA 9544 schreiben
SENDBYTE (6)                           'Cannel 2 + enable-Bit
 
TextBox_PCA9545.Text = M_Stat(READBYTE)'Status vom Modem Abfragen
'Lesepuffer leeren
Do: A = READBYTE: Loop Until A = -1
 
End Sub 

Private Sub Command_Switch_C3_Click()  'Multiplexer auf Kanal 3 einstellen
Dim A
 
SENDBYTE (64)                          'Befehl 64 = Multiwrite + (Anzahl Bytes -1)
SENDBYTE (Combo_Switch_Adresse.Text)   'Bus-Adresse des PCA 9544 schreiben
SENDBYTE (7)                           'Cannel 3 + enable-Bit
 
TextBox_PCA9545.Text = M_Stat(READBYTE)'Status vom Modem Abfragen
'Lesepuffer leeren
Do: A = READBYTE: Loop Until A = -1
 
End Sub

Private Sub Command_Switch_REGISTER_Click() 'Register auslesen
Dim A, W, Wbin
 
SENDBYTE (128)                         'Befehl 128 = Multiread + (Anzahl Bytes -1)
SENDBYTE (Combo_Switch_Adresse.Text)   'Bus-Adresse des PCA 9545 schreiben
 
A = READBYTE                           'Status vom Modem abfragen
TextBox_PCA9545.Text = M_Stat(A)       'Status vom Modem Abfragen
 
If A = 192 Then
    W = READBYTE                              'Wert vom PCF 9544A lesen
    Wbin = Right$("00000000" & Dec2Bin(W), 8) 'nach binär wandeln
    TextBox_Register.Text = Wbin              'Wert in Textbox eintragen
End If
 
'Lesepuffer leeren
Do: A = READBYTE: Loop Until A = -1
 
End Sub


Testprogramm für I2C-Multiplexer PCA9544

Beispiele als Excel Makro
I2C-PM-Multiplexer.zip (104 kB)
Excel-Makro
mit einem Beispiel zur Kanalauswahl des I2C-Multiplexer PCA9544A für das
I2C-RS232-Modem (1)
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.