My favourite trick is swapping test. But this time I have two identical circuits to test, so I just compare, no need to swap. Actually I did swap the two MCP23017's to make sure that the old one is not defective. I found both workiing OK on the breadboard, and both does not work on the proto board. Then I removed the level shifter IC from the socket, so that it will not interfere the MCP23017. Still it did not work. Then I used a multimeter to compare the voltage levels at each pin for both ICs.
It took me less than 3 minutes to find that for the SCL pin, the working IC has 3.3V, but the problematic IC has 0V. At first I thought the SCL pin is a clock, and so should have a reading of 3.3/2 around 1.5V. But on second thought, 3V3 should be the correct value, because RPi pulls both SCL and SDA to 3V3, as I measured on the good IC.
I looked at the SCL on the bad circuit and found the problem - a bad soldering joint which just came off, not even loosely connected!
I resoldered the bad joint and everything looks good - i2cdetect detects 2 I2C devices, at 0x20 and 0x21.
.END
No comments:
Post a Comment