MAX6953 <-> pic16f870: working!
Yes, it's working.
What I was doing wrong was not setting the intensity registers, so the LED's won't light up. Here's the configuration code I'm using now:
SetConfig:
SlaveAddressWrite = $A0
CommandByte = $04 'Set the Command Byte ($04 = Configuration Datasheet page 11)
DataByte = $81 '10000001 Tabel 7 page 12
FOR i = 0 to nAddress
I2CWRITE SDA, SCL, SlaveAddressWrite, CommandByte, [DataByte] 'Write the data to the I2C-device
I2CREAD SDA, SCL, SlaveAddressWrite, CommandByte, [RcvDataByte]
SlaveAddressWrite = SlaveAddressWrite + $02
NEXT i
return
LEDintensity: 'Set intensity of all LEDs
SlaveAddressWrite = $A0
CommandByte = $01 'Set the Command Byte ($01 = Intensity10. Datasheet page 11)
DataByte = Intensity '$FF 'Intensity of all segments set to maximum (Page 20)
I2CWRITE SDA, SCL, SlaveAddressWrite, CommandByte, [DataByte] 'Write the data to the I2C-device
I2CREAD SDA, SCL, SlaveAddressWrite, CommandByte, [RcvDataByte]
for i = 0 to nAddress
I2CWRITE SDA, SCL, SlaveAddressWrite, CommandByte, [DataByte] 'Write the data to the I2C-device
I2CREAD SDA, SCL, SlaveAddressWrite, CommandByte, [RcvDataByte]
SlaveAddressWrite = SlaveAddressWrite + $02
NEXT i
SlaveAddressWrite = $A0
CommandByte = $02 'Set the Command Byte ($01 = Intensity10. Datasheet page 11)
DataByte = Intensity '$FF 'Intensity of all segments set to maximum (Page 20)
I2CWRITE SDA, SCL, SlaveAddressWrite, CommandByte, [DataByte] 'Write the data to the I2C-device
I2CREAD SDA, SCL, SlaveAddressWrite, CommandByte, [RcvDataByte]
for i = 0 to nAddress
I2CWRITE SDA, SCL, SlaveAddressWrite, CommandByte, [DataByte] 'Write the data to the I2C-device
I2CREAD SDA, SCL, SlaveAddressWrite, CommandByte, [RcvDataByte]
SlaveAddressWrite = SlaveAddressWrite + $02
NEXT i
return