2026-03-04 11:08 PM
In STM32F413VGT I2C3 support Fast Mode Plus(1MHz)?
I cannot find documentation
Solved! Go to Solution.
2026-03-06 1:21 AM - edited 2026-03-06 2:41 AM
Hello all,
Getting back to this question.
RM0430 and DS11581 are referring to FMPI2C peripheral which is not the same instance than I2C1.
In RM0430:
Section 26 Fast-mode Plus Inter-integrated circuit interface (FMPI2C) (100kHz, 400kHz and 1MHz) refers to: FMPI2C while Section 27 Inter-integrated circuit (I2C) interface (100kHz and 400kHz) refers to: I2C1, I2C2 and I2C3.
In the datasheet DS11581, all pins with FMPI2C or I2C peripheral are named:
I2CFMP1_SDA or _SCL
I2Cx_SDA or _SCL
This naming convention is the same for STM32F413, F412, F410 and F446. CubeMx also uses these names.
In these STM32F4 reference manuals, sections: RCC, there are also some references to “I2C4” which is in fact FMPI2C (and doesn’t exist in CubeMX for these F4 devices).
You can refer to ES0372 - Rev 7 errata doc: 2.12.10 Inconsistent FMPI2C peripheral instance naming:
Hope I've answered the question.
2026-03-04 11:47 PM - edited 2026-03-05 2:58 AM
Hello,
Only one I2C instance supports Fast mode plus in that device:
It seems to be the first I2C instance: I2C1. I need to check. Internal ticket for follow-up 228415.
2026-03-04 11:49 PM
Please check i2c1 support fast mode plus.
2026-03-05 5:40 AM
Seems to be a mismatch between datasheet and reference manual here.
The datasheet says it has 4 I2C instances, and yet it has no mention of "I2C4". Not even in the pinout list.
The reference manual says it only has 3 and yet refers to I2C4 in several places.
I tend to believe there are only 3 instances here and that none of them support FM+. This post supports that:
Solved: Hello everyone, I am new for STM32F4 microcontroll... - STMicroelectronics Community
2026-03-05 6:01 AM - edited 2026-03-05 6:10 AM
Initially, in the times of 'F4, the FM option was added as a different I2C module (it may be the I2Cv2(*) used in 'F0/'F3 and beyond). See e.g. this post.
(*) not the official versioning; ST never cared to version most of the modules.
The RM also have a separate chapter for I2C and separate for the I2CFMP.
(Note, that you have to enable the FM+ pins' drive in SYSCFG_CFGR).
JW
2026-03-05 6:27 AM
2026-03-05 9:14 AM - edited 2026-03-05 9:16 AM
@waclawek.jan Thanks for the correction as always.
So then the references to "I2C4" in the reference manual should probably be references to "I2CFMP1".
Some already are, it's just inconsistent.
And the documentation should probably either call it I2CFMP or FMPI2C. Both RM and DS use both terminologies.
And to the OP's direct question: Only I2CFMP1/FMPI2C1 supports FM+. This does not refer to "I2C1" which is a separate peripheral. I2C3 does not support it.
2026-03-05 9:20 AM - edited 2026-03-05 9:25 AM
> So then the references to "I2C4" in the reference manual
Nice catch; I haven't noticed that.
Besides the I2CFMPx/FMPI2Cx conundrum, the I2C chapter in DS quoted by @mƎALLEm above should be fixed, too.
This module is to be found in 'F410 (*), 'F412, 'F413/423 and 'F446, so I expect their DS/RM to contain these inconsistencies, too.
JW
(*) not in 'F411 - and not in older 'F405/407/415/417/427/429/437/439. The "contemporary" 'F7 already have the I2Cv2 as their default I2C modules, so that change happened somewhat sooner than I've thought (to be at 'F0/F3). Okay the 'F0/'F3 came before 'F7. It's quite some time...
2026-03-06 1:21 AM - edited 2026-03-06 2:41 AM
Hello all,
Getting back to this question.
RM0430 and DS11581 are referring to FMPI2C peripheral which is not the same instance than I2C1.
In RM0430:
Section 26 Fast-mode Plus Inter-integrated circuit interface (FMPI2C) (100kHz, 400kHz and 1MHz) refers to: FMPI2C while Section 27 Inter-integrated circuit (I2C) interface (100kHz and 400kHz) refers to: I2C1, I2C2 and I2C3.
In the datasheet DS11581, all pins with FMPI2C or I2C peripheral are named:
I2CFMP1_SDA or _SCL
I2Cx_SDA or _SCL
This naming convention is the same for STM32F413, F412, F410 and F446. CubeMx also uses these names.
In these STM32F4 reference manuals, sections: RCC, there are also some references to “I2C4” which is in fact FMPI2C (and doesn’t exist in CubeMX for these F4 devices).
You can refer to ES0372 - Rev 7 errata doc: 2.12.10 Inconsistent FMPI2C peripheral instance naming:
Hope I've answered the question.
2026-03-06 2:32 AM - edited 2026-03-06 2:36 AM
Oh, a "terminology" erratum? :shocked:
Well.... the I2C chapter in DS still needs to say all this explicitly, IMO. An "implementation" table (this is quite common in newer families' I2C chapter in DS), with a footnote saying something like "FMPI2C may be called I2C4 at certain places"?
@mƎALLEm ,
Can this please be submitted as a request for documentation improvement? For all the 'F4 variants using FMPI2C (I've listed tme above, hope did not omit some)?
Thanks,
JW
PS. You have a typo in the post above, FPMI2C :)