cancel
Showing results for 
Search instead for 
Did you mean: 

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

roland van straten
Associate III
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
8 REPLIES 8
LMI2
Lead
Posted on October 15, 2017 at 01:21

Bus capacitance also limits I2C bus speed.

Posted on October 15, 2017 at 07:55

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

S.Ma
Principal
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
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

Posted on October 15, 2017 at 15:18

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

Posted on October 15, 2017 at 18:55

>>

Bus capacitance also limits I2C bus speed.

Yes, the capacitive loading will be a major factor in the rising edge of the I2C signals. A stronger (smaller, more aggressive) pull-up may help there.

I would expect the I2C on the F4 could get to 1MHz and beyond. Here you'd want short distance, single board.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Posted on October 15, 2017 at 19:51

Well, I did some checking using the CUBE software and found out the device only allows for normal and fast mode being 100kHz and 400kHz. AN4235 of STM talks about fast mode plus for the F0 and F3. After careful checking the datasheets I came to the conclusion that the STM32F4xx line DOES NOT support the fast mode plus.

So that's it :( 

Most others like 32L4, F0, F3 support Fast Mode Plus.... Time to change to a different family for the next design...

Amel NASRI
ST Employee
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 Accept as Solution on the reply which solved your issue or answered your question.