Re: hwmon : raw reading -> temperature conversion

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

 



On Mon, Aug 13, 2012 at 12:57:03PM +0530, Bitan Biswas wrote:
> Hi Guenter,
> 
>  Thank you for the guidance.
> 
> >>
> >>But looking at the hwmon linux documentation, seems the sensor
> >>kernel drivers should report only raw readings.
> >>The raw readings can be converted into required output,
> >>e.g. temperature in this case, by respective user space implementation.
> >>
> >"raw" means the value as reported to the sensor. For example, for an ADC, the
> >raw value means the voltage in mV as seen on the sensor's input pins. This
> >voltage is the voltage to be reported. Converting it to a "real" voltage as,
> >typically, determined by a set of voltage divider resistors should be done in
> >user space.
> >
> >For temperature sensors this is a bit more tricky. Presumably you get readings
> >from a thermistor or similar. The hwmon subsystem includes a driver for NTC
> >thermistors; maybe you can get some ideas from it. Maybe you can even use
> >it and/or extend it to support your hardware.
> 
> The sensor is Tegra3 integrated thermal sensor. It is not a
> thermistor, but gives a counter reading. The expressions to convert
> the counter to temperature use characterization data and certain
> initialization parameters. I looked at the NTC thermistor driver.
> The expressions I need to use to convert counter value to
> temperature would need floating point arguments.
> 
> >
> >>However because of my driver clients being in kernel space, I am
> >>thinking of doing fixed point calculations in the sensor driver
> >>and get the temperature corresponding to raw sensor readings.
> >>
> >>Please let me know if this a correct approach?
> >>
> >Question is really what chip you are using, and how exactly your hardware looks
> >like. Do you use a generic ADC ? If so, is it already supported in the kernel ?
> >How are the thermistor readings converted and reported to SW ?
> 
> I think this is somewhat like an ADC but I need to implement the
> expressions to convert the counter readings to temperature. Using
> fixed point approximations instead of the floating point operands,
> the expressions can be implemented in kernel. The expressions to be
> used for calculation are specific to chip and I could not find a
> existing driver that could support this sensor.
> 
>  There are expressions that can convert the counter readings to
> temperature and vice-versa.
> 1) SW could call the driver callbacks and get the temperature.
> 2) SW could also request temperature thresholds to be configured for
> thermal monitoring.
> 
> The software that may need to use the temperature are some other
> kernel drivers.
> 
> Is it not allowed to implement the counter raw readings to
> temperature in the hwmon sensor driver?
> 
If you look at the NTC driver, that is pretty much exactly what it does. It
accepts Ohm or Volt as input, and calculates a temperature from it. One can
think of a counter reading as to be similar to a resistance reading; if you
do that, you have a good starting point for your driver. You can use either
fixed point approximations, or a table approach as in the NTC driver.

Thanks,
Guenter

_______________________________________________
lm-sensors mailing list
lm-sensors@xxxxxxxxxxxxxx
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors


[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux