About SAADC low_power_mode

If you have any knowledge, please let me know, because something strange is going on.

To get 4 channel AD
Set 4 channels with nrf_drv_saadc_channel_init(),
The AD value is obtained by reading nrf_drv_saadc_buffer_convert() with "NRF_DRV_SAADC_EVT_DONE" in the callback.

If the timer of this callback is set to 1ms and aging is performed
A phenomenon occurred in which the AD value of the channel that should have been set shifted.
for example,
m_buffer_pool[0][0] ←A
m_buffer_pool[0][1] ←B
m_buffer_pool[0][2] ←C
m_buffer_pool[0][3] ←D
is normal, if the AD value deviates
m_buffer_pool[0][0] ←D
m_buffer_pool[0][1] ←A
m_buffer_pool[0][2] ←B
m_buffer_pool[0][3] ←C
It looks like.
First, I don't understand the reason for this phenomenon.
(If you increase the timer to 50ms, etc., it will be less likely to occur)

And if you are trying to avoid this phenomenon
By setting NRFX_SAADC_CONFIG_LP_MODE from 0 to 1
The phenomenon no longer occurs.

I understand that NRFX_SAADC_CONFIG_LP_MODE enables/disables low power mode, but I don't understand how it affects workarounds for this behavior.

Can someone please tell me?

Related