Re: [PATCH RFC v6 09/10] iio: adc: ad7380: add support for rolling average oversampling mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 6 May 2024 10:04:10 -0500
David Lechner <dlechner@xxxxxxxxxxxx> wrote:

> On Mon, May 6, 2024 at 9:17 AM Jonathan Cameron <jic23@xxxxxxxxxx> wrote:
> >
> > On Wed, 01 May 2024 16:55:42 +0200
> > Julien Stephan <jstephan@xxxxxxxxxxxx> wrote:
> >  
> > > Adds support for rolling average oversampling mode.
> > >
> > > Rolling oversampling mode uses a first in, first out (FIFO) buffer of
> > > the most recent samples in the averaging calculation, allowing the ADC
> > > throughput rate and output data rate to stay the same, since we only need
> > > to take only one sample for each new conversion.
> > >
> > > The FIFO length is 8, thus the available oversampling ratios are 1, 2, 4, 8
> > > in this mode (vs 1,  2, 4, 8, 16, 32 for the normal average)  
> >
> > Ah. I should have read on!
> >  
> > >
> > > In order to be able to change the averaging mode, this commit also adds
> > > the new "oversampling_mode" and "oversampling_mode_available" custom
> > > attributes along with the according documentation file in
> > > Documentation/ABI/testing/sysfs-bus-iio-adc-ad7380 since no standard
> > > attributes correspond to this use case.  
> >
> > This comes to the comment I stuck in the previous patch.
> >
> > To most people this is not a form of oversampling because the data rate
> > remains unchanged. It's a cheap low pass filter (boxcar) Google pointed me at:
> > https://dsp.stackexchange.com/questions/9966/what-is-the-cut-off-frequency-of-a-moving-average-filter
> >
> > in_voltage_low_pass_3db_frequency would be the most appropriate standard
> > ABI for this if we do treat it as a low pass filter control.
> >
> > I'm not necessarily saying we don't want new ABI for this, but I would
> > like to consider the pros and cons of just using the 3db frequency.
> >
> > So would that work for this part or am I missing something?
> >  
> 
> I like the idea. But from the link, it looks like the 3dB frequency
> depends on the sampling frequency which is unknown (e.g. could come
> from hrtimer trigger).
> 
> Would it be reasonable to calculate the 3db frequency at the max
> sample rate that the chip allows and just use those numbers?
> 
Ah. So looking at datasheet the normal average oversampling is
self clocked, but this version is not.

So, I'll ask the dumb question.  What is this feature for?
We have to pump the SPI bus anyway why not just do the maths in
userspace?  Oversampling is normally about data rate reduction
with a bonus in precision obtained.

Jonathan











[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux