Re: Unable to access I2C device behind two muxes configured to deselect.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jun 17, 2015 at 8:23 AM, Michael Berger <mikeaberger@xxxxxxxxx> wrote:
> I cannot access an I2C device located behind two or more nested
> PCA9545 muxes if the muxes are configured to use a deselect function.
> ...
> Address 0x50 --- At this point I see an error/NACK with the SDA
> floating high and the SCLK staying low.  I would have thought that the
> second write of 0x08 to address 0x71 would (re-)select the correct
> path through the top mux, but that isn't happening and I don't have a
> good explanation for it.  This behaviour is 100% reproducible on my
> system.

I removed all other I2C devices from the bus in question - I also had
several SMBUS devices and several GPIO I/O expanders on the same bus
running through the same top two muxes.  I did not think they were
relevant to the problem, so I did not mention them in my OP.

After removing all the other devices, leaving only the four PCA9545
muxes and eight at24 EEPROMS running in isolation, the mux
selects/deselects are performing correctly.  The method for
deselecting the muxes was not immediately obvious to me since it was
my bus that was misbehaving.  But now that I can see an entire
operation from start to finish, I now understand how the deselecting
of nested muxes works and see that it is correct.  It does not matter
what order the muxes are deselected since all muxes above the mux
being deselected are explicitly selected/deselected to establish the
path to the mux to be deselected.  It's much easier to understand when
you watch it on an analyzer.

So, I must look further into the interactions with the other devices
on the bus to determine why my bus misbehaves shortly after boot - the
SCLK is being held low by something beyond the top mux.

Regards, Mike
--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux