cancel
Showing results for 
Search instead for 
Did you mean: 

I2C in different STM32 mcu lines

veacheslavkris
Associate II
Posted on December 28, 2017 at 11:36

What is the reason for ST microelectronics to have different I2C modules in STM32 mcus ?

Stm32f303 and Stm32f092 has the same I2C, but stm32f446 has another I2C, and Stm32f103 has the third type of I2C. 

#i2c #stm32
8 REPLIES 8
T J
Lead
Posted on December 28, 2017 at 21:49

ARM is not a FAB company. they only sell licenses for ARM-IP

Any company can license a chip from ARM and other peripherals from other suppliers.

then the FAB company will produce those parts.

it comes down to money and complaints.

if everyone complains about a 'function//part' then the next design will be changed somehow.

if the third party IP is too expensive, then can select different IP

Posted on December 28, 2017 at 22:48

 ,

 ,

And what ?

Is not a convincing explanation.

Two STM32F4 MCU are cortex m4 core, have the same architecture with very

close frequency but with different I2C ...

I can understand when one old MCU architecture is changed by new

architecture with new peripherals.

But STM32F412 and STM32F303 are new MCU but with different I2C. And now

when I need more powerful mcu I can not just change core, I must also

rewrite all peripherals. More over, now I need suport 2, 3 and so on

versions of I2C. Excelent. I can understand if next version of peripherals

will be slightly differ in detail. No problem. But not absolutely

different. And now STM32F0 - F4 have several type of I2C.

It is amazing. You know that pin to pin compatibility is very important.

Why not software compatibility ?

Now I need to change one mcu in an project. But cannot. Because I have too

much to rewrite. It was a reason of my question.

2017-12-28 22:50 GMT+02:00 marsh.nick <,st-microelectronics@jiveon.com>,:

STMicroelectronics Community

<,https://community.st.com/?et=watches.email.thread>,

Re: I2C in different STM32 mcu lines

reply from marsh.nick

<,https://community.st.com/people/Marsh.Nick?et=watches.email.thread>, in *STM32

MCUs Forum* - View the full discussion

<,https://community.st.com/message/179537-re-i2c-in-different-stm32-mcu-lines?commentID=179537&,et=watches.email.thread ♯ comment-179537>,

Posted on December 28, 2017 at 23:11

It is frustrating beyond belief, the back-flips we have to do in hardware and firmware

Hardware causing 100% of the issues that the firmware has to manage to 100% reliable.

It is totally understandable why the chips differ and why it is causing you grief.

Many of these processors are quite old, and some are new. thereinis your issue.

upgrading processors is not as simple as we would like.

These problems should become less frequent as the years go by,.

For a new product it is worth a few days of pain, yes ?

Posted on December 28, 2017 at 23:29

'few days of pain' is not a problem. The problem is a 'few years' of

supporting of several versions of I2C.

But actualy I did expect the more technical answer from ST engineer and in

accordance with which I can make right choice. Will ST be supporting in

next MCUs I2C from STM32F303 or I2C from STM32F413 or both or ... What is

the technical reason to have several I2C ... I don't know, may be the

technical answers will not be useful for me.

By the way, in MSP430 line of TI the peripheral modules are very similar.

And MSP430 line is huge.

2017-12-29 0:12 GMT+02:00 marsh.nick <st-microelectronics@jiveon.com>:

STMicroelectronics Community

<https://community.st.com/?et=watches.email.thread>

Re: I2C in different STM32 mcu lines

reply from marsh.nick

<

MCUs Forum* - View the full discussion

<https://community.st.com/message/179497-re-i2c-in-different-stm32-mcu-lines?commentID=179497&et=watches.email.thread&sharpcomment-179497>

Posted on December 29, 2017 at 00:33

I'm not an ST engineer either but ST's mantra in the last years is that you are supposed to use Cube as a solution for migration issues between STM32 subfamilies (disclaimer: I don't use Cube and I do use both 'F4 and 'F0 I2C).

The reason for difference is historical. The 'F1 is the oldest subfamily and I don't know its I2C. 'F2/'F4 is newer (and even if 'F41x may be more recent than the 'F0s, ST appears to stick to the same version of IPs within subfamilies, with only minor tweaks). Their I2C is rather complex and I gess it also means high silicon footprint, thus the newer 'F0 has a simpler I2C. You may want to check also 'L0/'L4/'F7(/'H7) which are even newer - if their I2C matches the 'F0/'F3 one, it may be the model to stay.

JW

Posted on December 29, 2017 at 01:21

Thanks, is good guess

I think the same. Stm32F1 was the first arm from ST. And its I2C is

different from the I2C of Stm32F0 that is newer mcu (architecture).

Stm32F303 (M4) has the same I2C as F0. Is very convenient for me.

But new Stm32F446 has again new I2C. But GPIO, RTF are the same as in F0

and F303. I am confused.

And I decided to follow the line of F0 and F30XX. But what to do with

performance line ?

F413 and so on... again new peripheral modules. And a big disadvantage is

the excess complexity of peripheral modules from ST.

About Cube I know. I did find last year several bugs in HAL and still they

are present. So I do not use HAL of Cube. Registers, only direct registers

with pain of each new I2C

--

Sent from Gmail Mobile

Posted on December 29, 2017 at 02:32

Well, the MSP430 has at least 2 different I2C implementations - in USI and USCI ...

Posted on December 29, 2017 at 09:35

Yes, but USI and USCI are different multifunctional modules. I2C in stm32

is not multifunctional module. It is just I2C. But everytime is different.

--

Sent from Gmail Mobile