2024-02-22 09:32 AM
Eyes rolling back in my head with all the choices for doing STM32 development... need help.
I'm trying to setup for embedded processor programming and testing using the STM32 devices... like the STM32H747... for a variety of upcoming projects...
The Question... What specific items do I need for a complete STM32 development system?
A - Are these devices all that I need?
Nucleo-32 or Nucleo-64 or Nucleo-144 board?
B - Or do I need all this?
- Hardware:
STM32H747I-DISCO Discovery kit with STM32H747XI MCU
- Software: (STM32 Software Development Tools)
C - And if "A" above which software to work with it?
I anticipate "it all depends on what you are trying to do" as a response but...
right now, to get familiar with the capabilities and practical applications of the STM32 products, I would like to setup a rather complete development environment with all the appropriate hardware and software for the STM32 series...
and get started learning and experimenting with the STM32 uP's.
Thanks in advance for any time saving help as I've drilled down online on this topic so long that... well, I need help.
2024-02-22 09:49 AM
The H747 is not available on a NUCLEO board, it has DSI, and anticipated to have a display attached, and likely SDRAM in support of that. The DISCO or EVAL boards might make a suitable proxy for your own.
For your own design you'd want to facilitate the connection of a ST-LINK/V3 debugger or some sort. The V2's would work but would be slower as the design expands. Segger and other vendors have alternative debug/programming pods.
The Dual Core H7 is available on NUCLEO boards via H745 or H755 models.
IAR, GHS and KEIL have alternative Compiler / IDE. Depends on the tools you currently use, customers request, or regulatory demands.
Your Option#B basically enumerates an ALL ST approach, it will at least get you to the point you're able to make other decisions that suit you better.
2024-02-22 11:55 AM
In my experience you can build a free and efficient development configuration with ST tools:
STM32CubeIDE
STM32CubeMX
CubeMX is also accessible from CubeIDE but it is slow...
CubeMX is useful for defining the hardware configuration (assigning pins), and generating sometimes complicated pieces of code (initializing clocks).
It can also be used to generate an application skeleton (.ioc file) with HAL or LL. But it imposes a particular architecture on the application.
In development and debugging CubeProgrammer is less useful (unless you use an "external loader" for external flash).
Never used Cube Monitor.
Choose a Nucleo or Discovery board with an MCU close to the one you will use in your application (e.g. H755). They have an integrated ST-LINK interface, nothing to add.
Once the knowledge is acquired, changing the MCU is easy. But for your specific card you will need a programming/debug probe like STLINK_V3SET or STLINK_V3MODS.
2024-02-22 12:15 PM - edited 2024-02-22 12:16 PM
Hi @Will_iii
Overall, I suggest this MOOC on STM32CubeIDE based on the Nucleo-G071RB board. It covers main peripherals programming with hands-on: STM32CubeIDE basics - STMicroelectronics
If you find it very basic, we can point you to more advanced trainings.
Best Regards,
Younes
2024-02-22 12:22 PM - edited 2024-02-22 12:25 PM
The ramp is quite high indeed. Good news is that you don't have to suffer with "eyes rolling back". Get help for your whole project, or any part of it, here. You can request to choose and set up an IDE (this likely will be CubeIDE because it's free and popular), other tools, bring up some evaluation board, interpret ST technical manuals, review design of custom board, select 3rd party components.
> I anticipate "it all depends on what you are trying to do" as a response
Correct. This question is anticipated from your helpers and you should know the answer.
2024-02-22 12:45 PM
@Will_iii wrote:
- I've done embedded processor development work before but it has been awhile and I'm trying to catch up with the world as it is today.
For context/background, it might help to say what you used back then? What processor(s) were you using?