How to issue the resets required by FDCAN Bootloader on H7 dual cores?
Hi,
We are currently using H745 in our design and we noticed this little excerpt in the bootloader manual (AN2606):
" Additional reset needed after power off/on to enable connection to the BL interfaces "
It seems that not all resets are equal and the reset is counted towards this requirement if the reset is applied when the chip is already waiting in the bootloader.
Currently, our procedure is this (we use STLink v3:
- go to debug mode
- Issue three resets (debug configuration has this assigned to HWReset) with Keil uVision IDE
- Press "Run Code" to run our application
- After this, we issue our "Enter bootloader command" (as explained in the article by ST)
- The controller is ready to enter bootloader and is stopped
- We press "run code" and the board enters bootloader
- We can use FDCAN commands
As you can see, we rely on the IDE to get us to a functioning bootloader. We need to be able to do this programmatically.
Any idea on how this could be done?
We have also done this in a different way:
- Let the board start in a normal environment with the debug adapter attached (no IDE involved in this stage)
- Issue "Enter bootloader command"
- Reset the board using STM32CubeProgrammer for example
- The controller is responding to FDCAN bootloader commands
We have set both of the cores to boot simultaneously and CM4 just waits in main (we use semaphores to block the progress) until CM7 has finished configuring the system.
We have access to Boot0 pin programmatically, but unfortunately, we have left the nRST pin unconnected (only connection is to jtag).
Also, there might be mistake in the AN2606 in picture 58, FDCAN is not passed this briefly, I think the state machine loops back to it like with the rest of the interfaces.
I appreciate any insight into this, if someone has already tackled the issue.
Best regards,
Tero
