I am new here and to the STM32 world, I did worked several other CPUs in the past, now mostly AVR, and Teensy. But here I have the need of a very simple, small, and fast deterministic solution to create a one shot programmable in length pulse, that is synchronized externally. Essentially some small with lots of mips and light running (no IRQs or other disruptions in the background) Teensy is problematic at that. I saw the STM32 families simplicity, performance, and low cost, on top of STM32duino and got in love, and wrote some very quick for these STM32F103s available everywhere for 10 bucks including debugger! Timing was shockingly great, not a lot of jitter and I can sync a pulse with in 100nS (pulse length down to 32nS writing directly the IO registers).
Now, I found that the STM32103F103C8/B family can be hard to get stock individually (at least now) and also has USB that I don't use at all, in fact I have to deactivate all IRQ background to maintain timing right. So I found lying around a shield board to control stepper motors with a STM32F410 and found is a great match, very small , simple, and at 125MIPS even significantly faster than the STM32F103. Schematic here:
However, not sure what is going on in this board, as a simple blink a led connected to PC13 doesn't work with this particular CPU, it loads successfully only but even if it says is running, doesn't appear so. The same code in the STM32F103 is ok . I loaded this using the generic variance for STM32F410CB and no errors are reported. I tried both with ST link and UART methods and same results. With the ST link I can go to the Cube programmer and see registers, memory loaded, etc. Even i can stop and step on the CPU core but still won't work. The CPU board is fine because I saved the original stepper shield code in the CPU to a bin file and put it back and that interact with the same LED fine. Is the code that comes from STM32Duino what doesn't interact with the world.
I also compiled in the Arduino IDE to export compiled bin file and then program with CUBE and same results.
My only leads at this time are the fact that there is no 32K oscillator installed, and the main one is 24MHz that depending how the clocks are configured by default in the programmer may result in a non clock situation?
Also could the linker or programmer have watchdog enabled by default?
I know are long shots but also I am not familiar yet of how the STM32duino or the Cube programmer set the clocks or watchdogs before any code is read. In the AVR family, the AVR studio programming tool let's you to set all this with their "fuses" menu. No idea how this is done in ST world yet.
I saw here some posts with a similar issue on a STM32F401 that I also have ordered to evaluate. But answers suggest initialization settings on the hal, clocks , etc. All that I imagine assumes there is a valid clock running code already. I am not even sure my code is moving at all.
Any suggestions? Otherwise can suggest an least painful path to program and ICD directly ST32F. ST tools to took at?
Thank you, and sorry for the lengthy email, have been two long days already.