Dealing with I2C glitches and DeviceTree description of I2C filters
https://i.stack.imgur.com/xhEk3.png

Dealing with I2C glitches and DeviceTree description of I2C filters

In protocols like I2C occasional glitches may occur (as you can see in the photo in this article), which may confuse the receivers on the bus. Normally any bit is represented by a steady hold of the data line for a minimum amount of time, either at a logical level of 1 or at a logical level of 0. Glitches are anomalies on the bus that do not fit in either a 0 or a 1 when you decode the analog bus signal into digital.

Some I2C controllers support a glitch filtering. In Linux, such filters that are embedded inside the hardware block have to be described trough the DeviceTree of the board.

In this idea, I have submitted DeviceTree property and implemented the basic support in the I2C core to have this available.

For the analog glitch filter, the property will tell the controller which is the `cut-off` frequency, meaning that any kind of signal (glitch for a short signal) that has a higher frequency will be ignored, and such the I2C protocol will be clean for the receiver.

The digital filter is described by time width (nanoseconds) of possible glitches that are seen in the digital signal after the decoding the analog signal. Such glitches will then be removed by the filter if their width is below the given threshold.

Follow me for more facts, work, contributions in the Embedded Linux world !

要查看或添加评论,请登录

Eugen Hristev的更多文章

社区洞察

其他会员也浏览了