![]() ![]() With this design, you can split your I2C bus into four separate channels – controller-side SDA, peripheral-side SDA, combined SDA and SCL. 4 Channels might be a lot for a scope, but this is no problem for today’s cheap logic analyzers. ![]() shared a NapkinCAD schematic with us, meant to be replicate-able in times of dire need. circuit splits SDA signal into controller-side and peripheral-side, helping you make it clear who is to blame for hiccups and stray noise. To do that, he’s using 6N137 optoisolators and LMV393 comparators. Some folks have tricks with resistors and analog sampling, but the tried and true method of de-soldering and physically lifting chip pins off the bus often comes into play. With many devices sharing the same bus, that can become nigh-impossible. Sometimes, when tracing I2C communications you’ll need to figure out which part is holding the line low. The SCL and SDA lines in the I2C communication protocol are bidirectional, which means either a controller or a peripheral can pull it low. Without open collector outputs, one chip could drive a high, while another drives a low – which would create a short circuit, possibly damaging both devices.Įven with all this protection, there can be problems. This is a good thing, because I2C is also a multidrop bus - meaning many devices can be connected to the bus at the time. When nothing is driving the lines low, a weak resistor pulls the lines up to VCC. Chips never drive a logic “HIGH” on the wires. Open collector means a device connected to the I2C bus can only pull the bus down to ground. Inter-integrated circuit bus (aka I2C) uses open collector outputs on a two wire interface. Thankfully over at Hackaday.io, has a proto-boardable circuit that can help! If you’ve ever debugged a misbehaving I2C circuit, you probably know how frustrating it can be. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |