This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Detection of connected sensor - DeviceID

Other Parts Discussed in Thread: PCA9536

Hello,

we developed an interface board which accepts connection of different types of external sensors. We would like to recognize what type of sensor is connected at speicific moment. One option would be to select type of connected sensor via for ex. 4-pin GPIO, where different combinations of zeroes and ones belong to the specific sensor. However, with 4 bits a limitation of 15 different devices arise, since one combination must be reserved for "no sensor isconnected" state also. In this way, a PCA9536 I2C I/O expander IC could be used (for example).
Another option would be to use some identification IC which would be part of sensor device. Since each identification - DeviceID is unique, interface board would be able to know which sensor is used at the specific moment. In such example, a translation table that includes a device description and DeviceID number should be present on the interface board's mCU. A number of connected sensors would be practicatlly unlimited in this example, since deviceID could be also a 64-bit number.   
Are there any other ways suggested to implement mentioned functionality? Wireless solutions are not as much suitable as wire solutions, because environment is "noisy".

Many thanks,
Kind regards,
Dejan.


  • Hi Dejan,

    From what I have gathered so far, you are attempting to interface with 15 different sensors with 15 different unique I2C addresses? In such case, why do we need an external device such as the PCA9536 to make this work? Since each device has a different address, they can all be connected to the same I2C bus without the need for PCA9536. I have made a diagram describing what I am thinking here:

    However, if you are desiring multiple sets of 15 devices (4 sets of 15 devices = 60 devices total), then something like the PCA9536 might suit your needs. At all times, I2C parasitic bus capacitance spec of 400pF must be respected at all times. The bus cannot exceed this number, otherwise rise-times become too slow due to an overloaded bus. In this case, add some type of I2C buffer to filter the capacitance. 

    I mention this because you talk about...

    A number of connected sensors would be practicatlly unlimited in this example, since deviceID could be also a 64-bit number. 

    Each target/controller device added to the I2C bus will add parasitic capacitance to the bus. There becomes a finite amount of devices that can be present on the I2C bus before needing a buffered solution to separate said parasitic bus capacitance. 

    An I2C switch / multiplexer solution might be applicable here. This will allow you to switch between many different I2C busses, however, these are passive devices not able to buffer. Therefore, whatever active channels are present, their parasitic bus capacitances will be additive whereas a buffer will separate bus capacitances for each channel. 

    I have recommended popular I2C devices from our portfolio:

    Buffer: TCA9617B

    I/O Expander: TCA9536 (upgrade to the PCA9536)

    Switch: TCA9546A

    Mux: TCA9544A

    Regards,

    Tyler