Hello All,
Method 1: I am writing a test application to read the ADC data at a specific intervals(10 samples for every 5ms interval for every 50sec). I am using blocking mode here with oversampling disabled and using delays between samples. It works well. Managing averaging manually.
Method 2:
In addition, I have seen the concept of oversampling and tried to understand it's usage. After going through the ticket below, I have got all my queries answered except one.
https://devzone.nordicsemi.com/f/nordic-q-a/14583/nrf52832-saadc-sampling#comment-84340
It's all clearly mentioned that, oversampling can be used to get the average of multiple samples by using oversampling of *x. Suppose,
- With oversampling 8x and buffer size of 1, the SAADC will collect 8 samples, take the averaged value and output that averaged value to the RAM buffer. The application will get a notification(NRF_DRV_SAADC_EVT_DONE to callback function) as the buffer is full with only one averaged sample.
But I am not clear with the sampling rate at which the SAADC driver/ sample task operates to collect the samples? Suppose, if we set oversampling as 8x, what will be the time taken to get a notification?
If in case, SAADC driver uses some inbuilt sampling, can it be modified as per our application? I want to read average of 10 samples for every 50sec and each sample should have time difference of 5ms.
Can someone help me to understand the concept in details as per above requirement. Please comment on power and performance stand point difference as well between 2 methods.