This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

SAADC Scan Mode mixes channel buffers whan fast.

Hi, i have a strange problem which happens when i use scan mode to get 3 separate channels on saadc.

For example when i use uint32_t ticks = nrf_drv_timer_us_to_ticks(&m_timer, 200); everytihing is ok but whan i use 50us buffers get mixed up?

Is this possible?

I use nrf52 with sdk 12.2.0

Parents
  • I have 3 sensors. 1. is the IR sensor, 2. the microphone and 3. the battery measurement. IR sensor gave me around 400 and reacted to my movement. The microphone was around 1500 and the battery around 2200. So I took 3 channel but used one SEGGER_RTT_printf with filter like these: if (i % 3 == 0) SEGGER_RTT_printf(0, "fill: %d: %d\n", i, p_event->data.done.p_buffer[i]);. Now. When i was measuring at the timer rate of 50us it was mixed (i got sometimes 2000, sometimes 1500, sometimes 400) but when i used 200us it NEVER got mixed up. So that was my conclusion.

Reply
  • I have 3 sensors. 1. is the IR sensor, 2. the microphone and 3. the battery measurement. IR sensor gave me around 400 and reacted to my movement. The microphone was around 1500 and the battery around 2200. So I took 3 channel but used one SEGGER_RTT_printf with filter like these: if (i % 3 == 0) SEGGER_RTT_printf(0, "fill: %d: %d\n", i, p_event->data.done.p_buffer[i]);. Now. When i was measuring at the timer rate of 50us it was mixed (i got sometimes 2000, sometimes 1500, sometimes 400) but when i used 200us it NEVER got mixed up. So that was my conclusion.

Children
No Data
Related