Can we connect multiple slaves with different baud rates to a master. For example, I am having a temperate sensor which would work at 50kbps and port expander at 400 kbps, Can these two slaves connect to my master(microcontroller) on the same I2C? If you can add anything more why it should not be a problem, it would help
2 Answers
It's fine so long as you only run the bus as fast as the slowest device on the bus. So in your case, it would work so long as you always run the bus at 50 kbit/sec, even when addressing a part that is capable of running faster. If you try to run a bus at, say, 400 kbit/sec with a device only rated to 50 kbit/sec on it, it is possible that the device may misinterpret some part of the data as a start bit and then cause trouble with the transmission. Basically, you have three choices: run the bus slow, segment the bus with multiple I2C controllers or an I2C mux, or swap out the slow devices for faster ones.
Note that this is less of a problem with SPI devices as SPI uses an explicit chip select line for each device. In this case, it is possible for an SPI bus to run faster than the slowest device, so long as the selected device can handle the speed.
If temperature sensor does not support more than 50kbits/sec, you will have to run bus at or below 50kbits/sec. The slower device(temp sensor) may mul-function with more than 50kbits/sec speed. Also, slower device may have large pin capacitance which can distort the I2C signal.