No. There is no minimum speed and the clock pulses do not have to be uniform or synchronous.I don't know. I'm not actively monitoring the bus.
Do most i2c devices have a minimum speed? In the datasheet it only has a maximum of 400khz. I'm using 20khz. Could that be an issue?
if you have the datasheet attached here, more people may be able to help you.So my question is
If you would have read the thread, you'll realize I already did that.if you have the datasheet attached here, more people may be able to help you.
no, a link to somewhere else doesn't count. you have to help others help you.
Oh, I thought that the crystal on the 8007 had to be operating in order for you to access the registers via i2c. That doesn't explain why I'm now occasionally able to read back values though (after changing the load capacitance on the 8007).If you are talking about '8007 crystal then I don't think this will have any bearing on the I2C as the timing comes from the master. You set the crystal capacitance by writing, using I2C, to a register in the '8007 so that wouldn't work well if it changed the I2C.
Yeah, the problem is that I'm at the flash limit for my microcontroller and adding the code for checking the ACK makes it go over. Yeah I know I can remove other stuff and get a better micro (and I eventually will), but I want to know what load caps I need to use?Back to the ACK pulses.
You haven't said which processor you are using (or if you have I can't find it) but usually the I2C library functions return the value of ACK so you can check for errors.
Which processor, compiler/assembler and I2C library are you using?
OK, nevermind. It looks like the cap would have to be lowered slightly inside the 8007. Is the 20 close enough to the 18 load capacitance to not be an issue?So my question is what capacitors should I use externally if there are 2 x 20pf inside and my crystal says it needs 18pf load capacitance?
One similar schematic has a 33ohm resistor in one of the lines of the crystal. Could this be necessary?

I have no idea because I had it set up to scan all slave addresses to find the correct one. Anyway, this is beside the problem.The previous shot showed writing to a slave at 6eh. What address do you expect the slave to be at?
Of note: 6Eh is frequently the default address for devices that accept some address-setting protocol. The master sends a request to 6eh and all of the slaves at the default address reply with a unique string. Only one will make it through, the others will be arbitrated off the bus. When the unique ID string is received, the master then sends a 'set address to xxh' command to set that slave to xx.
Can you post another shot - like or quote so I'll get an alert.
Wow. That is.. unusual. It is also out of I2C spec - maybe they screwed up and that's why they call it 'modified I2C'.The device itself also has the peculiarity of responding on all addresses unlike any other chip I've tried. This made the debugging process harder because I assumed the problem was with the IC or the wiring of the IC, but not the PIC.