-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IIR state not updating when firmware flashed (vs run via openocd) #32
Comments
I remember something similar and fixing it. |
IIRC I tried programming by openocd then powercycling, or programming by DFU then powercycling - I think these both gave the same result. (But I can check tomorrow to be sure). I have also occasionally observed that x0 is updating but x1 is not updating (but fixed at some plausible non-zero value) even when running in a debug session via openocd. Perhaps this is related. |
Let's make sure that this is not in fact cause by debugging. The SPI peripherals tend to stall in some situations, e.g. when the debugger interrupts and the DMA still fires, probably triggering that stm32h7 silicon erratum. |
Investigating this further, this problem only seems to occur deterministically after programming via DFU. This can be fixed by powercycling the device, or by doing a sysresetreq hardware reset sequence. I have also seen this problem occur far less frequently when programming via openocd before a physical power-cycle / hardware reset. So - this is not a bug in the firmware, just some annoyingly persistent state somewhere in the CPU. |
When I flash the firmware (via DFU) and look at the ADC readings (x0, x1) they stay at 0 regardless of input voltage.
If instead I load the firmware via openocd I see ADC readings that make sense (e.g. with no input I see a few LSB noise on x0).
The text was updated successfully, but these errors were encountered: