You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm new to Zephyr and currently working on a project that involves writing an application using it. While waiting for my custom board to arrive, I started development on a NUCLEO-H7A3ZI-Q. I’ve been able to read digital inputs and sample 3 ADC channels successfully on that board.
Now that my custom board is here (based on the STM32H7A3ZIT6 — without the "-Q" suffix), I expected the transition to be smooth, but I’ve run into some issues.
Key differences:
The custom board uses an 8 MHz crystal as the input frequency.
On the NUCLEO-H7A3ZI-Q, I had to use CONFIG_POWER_SUPPLY_DIRECT_SMPS.
On the custom board, I had to switch to CONFIG_POWER_SUPPLY_LDO.
The problem:
The Zephyr application does not reach main(). It seems to get stuck waiting for the LL_ADC_FLAG_LDORDY bit to be set. Here's a snippet from the GDB session:
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Hi everyone,
I'm new to Zephyr and currently working on a project that involves writing an application using it. While waiting for my custom board to arrive, I started development on a NUCLEO-H7A3ZI-Q. I’ve been able to read digital inputs and sample 3 ADC channels successfully on that board.
Now that my custom board is here (based on the STM32H7A3ZIT6 — without the "-Q" suffix), I expected the transition to be smooth, but I’ve run into some issues.
Key differences:
The custom board uses an 8 MHz crystal as the input frequency.
On the NUCLEO-H7A3ZI-Q, I had to use CONFIG_POWER_SUPPLY_DIRECT_SMPS.
On the custom board, I had to switch to CONFIG_POWER_SUPPLY_LDO.
The problem:
The Zephyr application does not reach main(). It seems to get stuck waiting for the LL_ADC_FLAG_LDORDY bit to be set. Here's a snippet from the GDB session:
Code
modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h:7552
7550 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_LDORDY(const ADC_TypeDef *ADCx)
7551 {
7552 return ((READ_BIT(ADCx->ISR, LL_ADC_FLAG_LDORDY) == (LL_ADC_FLAG_LDORDY)) ? 1UL : 0UL);
7553 }
My configuration:
prj.conf
board.dts
Has anyone run into this issue before? Is there something I’m missing in the power or clock setup that could cause LDORDY to never be set?
Any help would be greatly appreciated!
Thanks in advance 🙏
Beta Was this translation helpful? Give feedback.
All reactions