Replies: 1 comment
-
|
Hi, I found the culprit, the custom board had an issue generating the vref (and vdda). After having the board fixed, the ADC is working. So no Zephyr issue :o) |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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