Hi Dev,
Development platform: NRF54L15 + NCS 3.2.3
We are facing an issue with ADC sampling. The code occasionally gets stuck/hangs inside the adc_read function. This issue does not occur every time — it happens sporadically after long-term operation or under certain unknown conditions.
I have already narrowed down the issue and confirmed that the hang occurs inside adc_read.
Here is the code snippet:
int adc_single_channel_poll(uint8_t chan) { if (chan >= ADC_CH_COUNT) return -EINVAL; int16_t local_sample = 0; struct adc_sequence seq = { .channels = BIT(channel_cfgs[chan].channel_id), .buffer = &local_sample, .buffer_size = sizeof(local_sample), .resolution = 12, }; int err = adc_read(adc_dev, &seq); if (likely(err == 0)) { adc_raw[chan] = (local_sample < 0) ? 0 : local_sample; } return err; }
The execution gets stuck at adc_read() and never returns.
Could you please help clarify:
-
Is this a driver-layer bug in the ADC driver provided with NCS 3.2.3?
-
Or could it be a hardware issue with the NRF54L15 device itself?
-
Are there any known issues or errata related to ADC on NRF54L15 that could cause occasional hangs in
adc_read?
Any suggestions on how to further debug or work around this issue would be greatly appreciated.
Thanks,
Chen