3 ms·
This seems to only get into the electrical issues associated with connecting lots of devices to an I2C bus. Due to deficiencies in the protocol specifications a
by MrBuddyCasino 6y ago
This seems to only get into the electrical issues associated with connecting lots of devices to an I2C bus. Due to deficiencies in the protocol specifications and real-world implementation issues, there are logical problems as well. As a consequence, it is near impossible to make it 100% reliable.
If you're interested in the unpleasant details, whitequark has posted about this at length on Twitter.
- rcxdude 6y agoeeyup, I2C is probably my least favorite protocol at this level. It's an absolute minefield of problems (often subtle and hard to reproduce), and I go out of my way to avoid it if at all possible.
- GeorgeTirebiter 6y agoHard to find any supporters of i2c these days. To be 100% compatible, sda and scl must be bi-directional. Complicates bus buffers; also complicates a bit-banging implementation. In the olden days, this was fairly easy by having an input on each pin, with the pull-down transistor per pin as shown in the article. The main drag about SPI is this Phase and Polarity. Being opinionated (!) I wish the SPI were were all CPHA=0 and CPOL=0 (bits clock in on the positive-going edge).