Good evening !

No way with this problem !
I have spent the whole day on it with no result...

The circuit is yet very simplified : only the 18F2685 + the MAX517 + 2 pull-up resistors. The PIC is running at 32 MHz.

The program is also very simple and starts with :

DEFINE I2C_SLOW 1
DEFINE I2C_HOLD 1
....

AppGain:

Gain = $55
RESET517 = $10
CTRL517 = $00

Re2 : I2CWRITE PORTC.4,PORTC.3,CTRL517,ADR517,[Gain],Re1
PAUSE 10
GOTO Re3

Re1: ADR517 = ADR517 + 1
if (ADR517 <> $FF) then
goto Re2
else
endif

Re3: RETURN

All the variables are bytes.
AppGain is called by a test section of my program.

The hereabove version was adapted to scan the addresses in search of a response from the MAX517. According to the manual, the program jumps to Re1 if no ACK was received from the slave. And there is never any ACK received, the program always ends with $FF in ADR517. The slave address should be $2c but I got no answer from there.

I have checked the SDA and SCL lines with my scope. The signals look fine but no ACK is visible. I have even changed the MAX517 for a new one : same behaviour.

Any idea ?

MikeBZH