Here is my new code and a shot of my oscilloscope to show the output. I can see that I'm not getting an acknowledge, but I do not know why.
Code:'**************************************************************** '* Name : i2c comms test with led driver * '* Author : Cody Finden * '* Version : 1.0 * '* Notes : SOFTWARE FOR A 16F887 TO WRITE TO A LED DRIVER * '* : OVER THE I2C PROTOCOL * '**************************************************************** #config __CONFIG _CONFIG1, _HS_OSC & _WDT_ON & _PWRTE_ON & _MCLRE_OFF & _CPD_OFF & _BOR_ON & _IESO_ON & _FCMEN_ON & _LVP_OFF __CONFIG _CONFIG2, _BOR40V & _WRT_OFF #endconfig DEFINE OSC 20 ANSEL = %00000000 ANSELH = %00000000 TRISA = %00000000 TRISB = %00000000 TRISC = %00000000 TRISD = %00000000 SDA VAR PORTD.3 SCL VAR PORTD.2 led var portc.5 addr var byte INIT: PAUSE 400 'let hardware settle 'PCA9532 i2c address(7 bits + 1 bit for R/W) 'Slave address is 1100(A2)(A1)(A0) + (R/W) 'In my setup A2 is pulled low, A1 pulled high, A0 pulled low addr = %11000100 MAIN: ' I2CWRITE SDA,SCL,ADDR,[$12,$97,$80,$00,$40,$55,$FA,$00,$00] I2CWRITE SDA,SCL,ADDR,$06,[$00] 'turn off led 0-3 led = 1 'blink led for feedback PAUSE 250 I2CWRITE SDA,SCL,ADDR,$06,[$55] 'turn on led 0-3 led = 0 pause 250 goto main![]()




Bookmarks