Skip to main content
PHolt.1
Senior
April 3, 2022
Question

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

  • April 3, 2022
  • 9 replies
  • 1707 views

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.

This topic has been closed for replies.

9 replies

TDK
April 3, 2022

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
PHolt.1Author
Senior
April 3, 2022

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
PHolt.1Author
Senior
April 3, 2022

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

waclawek.jan
Super User
April 3, 2022

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
April 3, 2022

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
PHolt.1Author
Senior
April 3, 2022

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.

Nikita91
Lead II
April 4, 2022

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
PHolt.1Author
Senior
April 5, 2022

Thanks - also apparently here

0693W00000Lx0f1QAB.png