cancel
Showing results for 
Search instead for 
Did you mean: 

Are there design change guides e.g. 32F417 to 32F437

PHolt.1
Senior III

Surprisingly, google doesn't find anything.

I found the 100QFP pinout appears identical, so such a change, with no PCB change, appears possible.

But it would take many hours just to compare the 300 page data sheets, let alone compare the RMs.

9 REPLIES 9
TDK
Guru

Peripherals within families are the same, at least for these two chips. Make sure the peripherals you're using are present on both. Make sure clock scheme in compatible with both. Shouldn't be anything else you need to worry about.

Moving from a less capable chip (F417) to a more capable chip (F437) generally requires no changes.

That would be a pretty specific sheet. There are thousands of chips, making a change guide between each of them would be a significant amount of work. You can look at general differences between each line on the family page.

https://www.st.com/en/microcontrollers-microprocessors/stm32f4-series.html

If you feel a post has answered your question, please click "Accept as Solution".
PHolt.1
Senior III

By "no changes" do you mean the same Cube project will "just work" (maybe with a new debugger setup to accept the different CPU - I have never done that since somebody else set up Cube for me ~ 3 years ago) or do you mean one has to create a new project with ST HAL libs changed from 32F407/417 to 32F427/437? The latter is probably not a small change.

Most of my .c files have

"#include "stm32f4xx_hal_def.h"

and similar. Those files remain the same?

Is there any possibility that a 417 is just a factory-configured 437?

PHolt.1
Senior III

Thank you. Can one use the same Cube config for both 417 and 437, possibly with a different debugger config?

What do you mean by Cube?

For the library (CubeF4), if you don't intend to use any of the extra peripherals, you can still pretend that you are using 'F417, just change the linker script to cater for the bigger memories.

The clicking configurator (CubeMX) should work as with 'F417, too, again if you don't want to use any of the extra features.

However, the debugger in IDE (CubeIDE) may be picky about the chip's ID. I don't know if it is and I don't know if anything simple can be done about it - I don't use the Cubes.

JW

Nikita91
Lead II

I think there is no problem with the debugger or the loader. They read the chip ID to get the proper .stldr file.

I already move a project from G431 to G491 (and reciprocally) by changing the MCU name in the compiler symbols and the linker script (not a MX project!).

PHolt.1
Senior III

The MX "code generator" is not being used (it was used early on to get various code snippets).

Interesting about the debugger self-configuring the CPU P/N.

Yes indeed the CPU name is in the makefile generated script; no idea how it gets there.

The linker script I am familiar with.

Right click on the project name > Properties >C/C++ Build > Settings > MCU Compiler > Preprocessor

There is a define like "STM32F446xx". It allows to include the proper MCU file.

Also in C++ Proprocessor.

PHolt.1
Senior III

Thanks - also apparently here

0693W00000Lx0f1QAB.png