Skip to main content
Robmar
Senior II
January 21, 2026
Question

I2C 800 KBS noise filtering features - where's the documentation?

  • January 21, 2026
  • 2 replies
  • 194 views

I'm have the HAL_I2CEx_ConfigDigitalFilter call in my H743VIT6 code with the setting of zero.

The AI recomends 4 to take out 8ns noise pulses, RF; etc., but where is the STM documentation or an AN about this, and the analogue filter?

Its not in the RM0433 bible as far as I can search.

2 replies

TDK
Super User
January 21, 2026

It's in the reference manual. The value to program depends on your I2C kernel speed.

TDK_0-1769028240055.png

 

"If you feel a post has answered your question, please click ""Accept as Solution""."
Robmar
RobmarAuthor
Senior II
January 21, 2026

Right, so h743 i2c clock is i think fixed at 120mhz, 8.333 ns period.  I'm using 800 kbs i2c, 1 k pullups, works fine to the si5351a (overclocked of course), just trying to make it robust as possible given its a 20w RF transmitter 30mhz.

Robmar
RobmarAuthor
Senior II
January 21, 2026

Found it thanks to Gemini AI:-
47.4.5 I2C initialization
Enabling and disabling the peripheral
The I2C peripheral clock must be configured and enabled in the clock controller, then the
I2C can be enabled by setting the PE bit in the I2C_CR1 register.
When the I2C is disabled (PE = 0), the I2C performs a software reset. Refer to
Section 47.4.6 for more details.
Noise filters
Before enabling the I2C peripheral by setting the PE bit in I2C_CR1 register, the user must
configure the noise filters, if needed. By default, an analog noise filter is present on the SDA
and SCL inputs. This filter is compliant with the I2C specification, which requires the
suppression of spikes with pulse width up to 50 ns in Fast-mode and Fast-mode Plus.