Hi.
First, some background.
I am developing a unit with four identical slots for plug-in modules. These modules will be identical insofar as the I2C devices on them and therefore have the same addresses. To manage this, I added a PCA9546A chip to select the slot I want to communicate with. The slots are within an inch (25mm) from the PCA9546A which in turn is about the same distance from the MCU controlling it. I have two PNP transistors configured for constant current pull-ups on the lines and have also replaced it with 1k5 resistors to be check if that was an issue. I am running at 100kHz.
When addressing the PCA9546A to select a channel, the SDA and CLK lines output the correct signals ( as verified by oscilloscope, logic analyzer and Active-Pro debugger ), but there is no Ack from the PCA9546A. I changed the software to scan all I2C addresses from 0 to 0x7F to look for a device, but it is not found.
I then soldered pins onto the board and hooked up an external I2C device ( bus expander ) and the scan found the address at 0x27, I then bypassed the PCA9546A and essentially connected the MCU directly to one of the slots and plugged a module in and did the scan again which detected both the I2C devices on the module at addresses 0x38 and 0x50 where they belong..
I think I can safely say that the issue is not on my hardware/firmware other than the PCA9546A chip. I checked the board layout several times and all connections are ok. The 3 x address pins are grounded, the /Reset pin goes to the MCU and is driven correctly. The SDA and SCL lines are also correct, as verified by the other I2C devices.
I had 5 x boards made for prototypes and tested all 5 with exactly the same results, so it should not be a single chip issue.
My question is, has anybody else had the same issue?
Best regards
Chris