Skip to main content
roland van straten
Associate III
October 14, 2017
Question

Can I use higher speed than 400kHz with I2C with STM32F439

  • October 14, 2017
  • 4 replies
  • 2820 views
Posted on October 14, 2017 at 21:43

Dear ,

Currently I use a STM32F439. I have a demand to increase the speed of I2C above 400kHz. Is this possible? If not is there a STM32F/L4 controller that is pin-2-pin compatible that can be used instead?

Regards,

Roland

#i2c-fast-mode-+-stm32f439
This topic has been closed for replies.

4 replies

LMI2
Senior III
October 14, 2017
Posted on October 15, 2017 at 01:21

Bus capacitance also limits I2C bus speed.

Hungyin Chang
Visitor II
October 15, 2017
Posted on October 15, 2017 at 07:55

But SDIO can reach 25MHz, and even 50MHz in some devices.

roland van straten
Associate III
October 15, 2017
Posted on October 15, 2017 at 15:18

Dear Chang, SDIO is 'SPI' with a twitch and not I2C.

S.Ma
Principal
October 15, 2017
Posted on October 15, 2017 at 11:26

Check the STM32 reference manual for the chosen part. Some I2C can go over 400kHz, usually when all slaves are on the same board (no connector, no wires). The quality of the signal (speed, slewrate, capacitance/pull-up) must be tuned. Also remember ALL slaves should be compatible with higher speed. The highest speed is defined by the slowest slave's. Going beyond 400kHz requires sending a special command to slaves. Make sure they are designed for it.

However, before going to the brute force of speeding up, ask yourself if the communication done between MCU and slaves is optimal (are you using autoincrement multi-byte block transfer? some slaves have FIFO for bigger block transfer)....

roland van straten
Associate III
October 15, 2017
Posted on October 15, 2017 at 12:52

Thanks for the remarks, and yes the remarks are all very very true. I think I have to rephrase my question:

The I2C spec has been upgraded over the years from 100kHz to 400kHz (fast mode) and nowadays you can go to speeds over 3MHz. What I specifically look for is the fast speed + mode, being 1MHz or above. Some controller may have this, some don't. I was wondering if the F4xx series do support the 'fast speed +' mode of 1MHz? Or when it is limited by design to 400kHz max, if there is a (pin) equivalent processor that does... Target processor used is the STM32F437VIT6 to be precise (not the 439 as I mentioned in the original question). 

Best regards,

Roland

Amel NASRI
ST Technical Moderator
October 23, 2017
Posted on October 23, 2017 at 16:41

Hi

van_straten.roland

‌,

I was wondering if the F4xx series do support the 'fast speed +' mode of 1MHz?

Yes there are some STM32F4 devices embedding I2C that support fast mode plus mode (called I2CFMP). You have to refer to new devices likes STM32F410, STM32F412, STM32F4..

-Amel

To give better visibility on the answered topics, please click on "Best Answer" on the reply which solved your issue or answered your question.