Hi Jonathan, Thank you for your reply. Ok, I understand your points. So in my case scaling is composed by rawvalue*rates_to_lsb/pga, rate is setted by writing sampling frequency, pga is setted writing in_voltage_scale. 2013/8/29 Jonathan Cameron <jic23@xxxxxxxxxx>: > Firstly keep this sort Of question on the list as it acts as a reference for others. > > Angelo Compagnucci <angelo.compagnucci@xxxxxxxxx> wrote: >>Hi Jonathan, >> >>I carefully read your last email and I have some doubts that I want to >>share with you. >>I carefully read the documentation and I read the source code for the >>most >>other adc drivers, but really cannot understand how it works the >>raw/scale >>duo. >> > >From my understanding I have to read the raw vale, read the scale >>value, >>make some math and have a final value. > Yes. That is correct >> >>So for the mcp3422 I should use rates_to_lsb as base and pga as a >>multiplier. >>I can select rates_to_lsb via sampling rate (because they are coupled) >>and select pga via in_voltageX_scale read/write operations. >> >>So what I have now is wrong, because I'm applying math in scale read, >>instead that should be done from userspace. > > The point is that scale should only change as a result of user intervention and so is considered a slow interface. The raw readings are a the fast path hence we keep that to the minimum. Note your scale maths can be implemented as a const lookup table. > I would be tempted to do it that way both for speed (not crucial) and simplicity of code. > Putting a comment in to explain the maths would make it clear where the magic numbers come from. > > You are right in that it would be nice to do this in user space but it is very difficult to come up with a clean abi that works in all cases! >> >>Am I wrong? >> >>Can you point me to a documentation to understand better? > Err. Nope our documentation is awful unfortunately. >> >>Thank you! > > -- > Sent from my Android phone with K-9 Mail. Please excuse my brevity. -- Profile: http://it.linkedin.com/in/compagnucciangelo -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html