I2C Bus Scan

Mit dem I2C-Modem ist es relativ einfach einen Bus Scan durchzuführen und so den I2C-Bus nach Teilnehmern mit unbekannten Slaveadressen zu durchsuchen.

Ich habe einfach eine FOR NEXT Schleife programmiert in der alle Adressen von 1 – 255 nacheinander abgefragt werden.

Antwortet ein I2C-Slave wird die Adresse in ein Textfeld eingetragen. Am Ende sieht man welche Teilnehmer sich am Bus befinden.

Wenn man von einem I2C-Slave die Adresse nicht kennt kann diese mit dem Makro herausgefunden werden.

 


Private Sub Command_SCAN_Click()

Dim ScanAdresse, A, I

TextBox_SCAN = “”

For ScanAdresse = 1 To 255

   SENDBYTE (128)           ‘Befehl 128 = Multiread + (Anzahl Bytes -1)  
   SENDBYTE (ScanAdresse)   ‘Bus-Adresse des CON-TEMOD-I2C Moduls schreiben

   A = READBYTE             ‘Status vom Modem abfragen

   If A = 192 Then
           TextBox_SCAN = TextBox_SCAN & ScanAdresse & vbCrLf
   End If

   ‘Lesepuffer leeren
   Do: A = READBYTE : Loop Until A = -1

Next

End Sub


 

 

Ein Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.