SLAU846A June 2023 – October 2023 MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G3105 , MSPM0G3105-Q1 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3505 , MSPM0G3505-Q1 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1
The I2C module supports glitch suppression on the SCL and SDA lines to meet the 50ns glitch suppression as specified in the I2C specification.
Analog glitch Filter
By default, an analog glitch filter is enabled and configured to suppress spikes with a pulse width up to 50 ns. I2C spec advises to suppress noise spikes of less than 50ns. The user can disable this filter by clear the I2Cx.GFCTL.AGFEN bit and the suppression pulse width can also be configured by using I2Cx.GFCTL.AGFEN. The analog glitch filter can only be used to wake up the I2C in low-power mode.
Digital glitch Filter
The DGFSEL bits in the I2Cx.GFCTL register can be programmed to provide glitch suppression on the SCL and SDA lines and assure proper signal values. The glitch suppression value is in terms of the I2C functional clocks. All signals are delayed internally when glitch suppression is nonzero. For example, if DGFSEL bit is set to 0x7, 31 clocks should be added onto the calculation for the expected transaction time, for more information please see register description. Digital glitch filter can't be used to wake up the I2C from low-power mode.
Analog Glitch Filter | Digital Glitch Filter | |
---|---|---|
Default | Default enabled with 50 ns | Default bypassed |
Pulse width of suppressed spikes | Configurable 5 ns, 10 ns, 25 ns, 50 ns | Programmable I2C clock cycle 1, 2, 3, 4, 8, 16, 31 |
Benefits | Available without needing clock |
|
Limitation | Variation with temperature, voltage, process | Does not work in low-power mode wakeup when there is no sufficient clock . Enabled only after 3 clock cycles after start of I2C packet |