2020-10-05 05:26 AM
a. There are lots of mcus series to choose from . but i don't get understanding why there are few nucleo boards available. like for f7 nucleo f767zi is available. while there is another series stm32f765
b. Is it easy to port from one chip to another in the same series like if i code a firmware for nucleo f767zi will it work on stm32f765 with some modifications ?
2020-10-05 05:37 AM
Seem to be plenty of NUCLEO boards, obviously not for every combination of IC in different pins and memory configurations. There are only a few die, which get packaged differently.
Porting using the HAL should be straight forward enough, and things like CubeMX should be able to generate a workable template managing clocks/startup appropriately, and you can merge code into the template if required.
GNU/GCC is relatively agnostic, just set up your linker script and startup code appropriately, and pass in the command line define indicating the part to pull from the include files.
STM32Cube_FW_F7_V1.14.0\Drivers\CMSIS\Device\ST\STM32F7xx\Source\Templates\gcc\startup_stm32f765xx.s
2020-10-05 06:13 AM
I count three boards available:
NUCLEO-F722ZE
NUCLEO-F746ZG
NUCLEO-F767ZI
As long as you don't use peripherals or memory that isn't there, code should be easily ported between chips within a family. Try to get the board which most closely matches your target chip.
https://www.st.com/en/microcontrollers-microprocessors/stm32f7-series.html
2020-10-05 06:25 AM
Thank you for the greate explanation. i am just trying to get some confusion clear regarding the compatibility. SInce i baught two boards nucleo stm32f767zi and nucleo h743zi2. but since i don't' need some of the feature on the production board i was planning to look up for different mcu but for the same series in stm32. so i was confused regarding compatibility . other than gpio i am fine. since i can understand that peripherals can be different. but i was more worried on the timer and interrupt side since i spent much more sleepless nights to configure approriate timers and interrupts. and uart configurations as well.
lets say i am using timer 1 on stm32f767zi how much compatible will it be with other series. will it compatible with series stm32f7 , stm32f4 stm32h7 ? on only with stm32f7. i also own NUCLEO H743ZI2 I am also planning to shift to some cheaper series on H7 But then also the question is the same compatibility on the firmware side. can you link some documents or some blogs where can i get the idea what features will compatible with which series. so when i develop the code i can be sure that specific features will compatible stm32 series.
The problem is i have used stm32duino stack so far for stm32 series. and I am very glade to use stm32 for each product in the company. but moving from the stm32duino to hal and ll or even the bare metal register level creates some confusions regarding compatibility.
Thank you for the support. Please help to clear some of the confusion !
2020-10-05 06:44 AM
I would stick to using chips within the same family if you want to port code. Some stuff is the same between families but its well outside the range of what I'm willing to provide in a forum answer. The reference manual is a good source of info to answer those questions. If the peripheral registers are the same, the code is probably compatible.
2020-10-05 06:51 AM
Thank you for the information. But reading the reference manual is a big tragic though. May be i should stick with the stm32duino . Thank you for the clearance.