Hallo,

Ich hab auch ein Problem mit einem I²C Portexpander allerdings nicht mit dem MAX7300 sondern mit dem PCA9535D (16bit Portexpander).
Ich kann auf ihn zugreifen und auch auf ihn schreiben nur schalten die Ports nicht auch wenn sie auf Output gesetzt wurden.
Laut Datenblatt muss man erst die Slaveadresse, dann ein Command Byte, und dann die Daten senden.
  • Register:
    0 = Input Port0
    1 = Input Port1
    2 = Output Port0 (default: &HFF <hat keinen Einfluss auf Port die als Input konfiguriert sind)
    3 = Output Port1 (default: &HFF <hat keinen Einfluss auf Port die als Input konfiguriert sind)
    4 = Polarity Inversion Port0 (default: &H00 < keine invertierung)
    5 = Polarity Inversion Port1 (default: &H00 < keine invertierung)
    6 = Configuration Port0 (default: &HFF = Alles als input)
    7 = Configuration Port1 (default: &HFF = Alles als input)

wenn man Register 7 verwendet und 2 Bytes mit daten schreibt dann wird das 2te Datenbyte ins Register 6 geschrieben.
Demnach müsste man um alle ports als Output zu verwenden die Register 6 und 7 auf &H00 setzen, das geht aber nicht warum auch immer.
Hier mal der Code:

Code:
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600

Config Scl = Portc.5
Config Sda = Portc.4

Print "TEST"
Print

Dim Data0 As Byte
Dim Data1 As Byte
Dim Command As Byte
Dim Slaveaddress As Byte

Slaveaddress = 78

Do

 Input "Data0: " , Data0
 Input "Data1: " , Data1
 Input "Commandbyte: " , Command
 Print "sende..."

 I2cstart
        I2cwbyte Slaveaddress
        If Err = 1 Then
           I2cstop
           Print "....Error1!"
        Else
           I2cwbyte Command
           I2cwbyte Data0
           I2cwbyte Data1

           If Err = 1 Then
               I2cstop
               Print "....Error2!"
           Else
               I2cstop
               Print "... erfolgreich!"
           End If
        End If

        Wait 2

 Loop
 End

Wäre Froh wenn ihr mit helfen könntet bin schon seit 2 tagen am verzweifeln

Hier noch das Datenblatt vom PCA9535: Klick

Gruß Wolfgang