2022-04-03 09:59 AM
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.
2022-04-03 10:26 AM
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
2022-04-03 12:37 PM
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?
2022-04-03 01:12 PM
2022-04-03 01:27 PM
Thank you. Can one use the same Cube config for both 417 and 437, possibly with a different debugger config?
2022-04-03 01:37 PM
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
2022-04-03 02:20 PM
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!).
2022-04-03 02:25 PM
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.
2022-04-04 03:28 AM
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.
2022-04-05 02:28 PM
Thanks - also apparently here