Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/Documentation/devicetree/bindings/iio/afe/temperature-transducer.yaml
26309 views
1
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2
%YAML 1.2
3
---
4
$id: http://devicetree.org/schemas/iio/afe/temperature-transducer.yaml#
5
$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7
title: Temperature Transducer
8
9
maintainers:
10
- Liam Beguin <liambeguin@gmail.com>
11
12
description: |
13
A temperature transducer is a device that converts a thermal quantity
14
into any other physical quantity. This binding applies to temperature to
15
voltage (like the LTC2997), and temperature to current (like the AD590)
16
linear transducers.
17
In both cases these are assumed to be connected to a voltage ADC.
18
19
When an io-channel measures the output voltage of a temperature analog front
20
end such as a temperature transducer, the interesting measurement is almost
21
always the corresponding temperature, not the voltage output. This binding
22
describes such a circuit.
23
24
The general transfer function here is (using SI units)
25
V(T) = Rsense * Isense(T)
26
T = (Isense(T) / alpha) + offset
27
T = 1 / (Rsense * alpha) * (V + offset * Rsense * alpha)
28
29
When using a temperature to voltage transducer, Rsense is set to 1.
30
31
The following circuits show a temperature to current and a temperature to
32
voltage transducer that can be used with this binding.
33
34
VCC
35
-----
36
|
37
+---+---+
38
| AD590 | VCC
39
+---+---+ -----
40
| |
41
V proportional to T +----+----+
42
| D+ --+ |
43
+---- Vout | LTC2997 +--- Vout
44
| D- --+ |
45
+---+----+ +---------+
46
| Rsense | |
47
+---+----+ -----
48
| GND
49
-----
50
GND
51
52
properties:
53
compatible:
54
const: temperature-transducer
55
56
io-channels:
57
maxItems: 1
58
description: |
59
Channel node of a voltage io-channel.
60
61
'#io-channel-cells':
62
const: 0
63
64
sense-offset-millicelsius:
65
description: |
66
Temperature offset.
67
This offset is commonly used to convert from Kelvins to degrees Celsius.
68
In that case, sense-offset-millicelsius would be set to <(-273150)>.
69
default: 0
70
71
sense-resistor-ohms:
72
description: |
73
The sense resistor.
74
By default sense-resistor-ohms cancels out the resistor making the
75
circuit behave like a temperature transducer.
76
default: 1
77
78
alpha-ppm-per-celsius:
79
description: |
80
Sometimes referred to as output gain, slope, or temperature coefficient.
81
82
alpha is expressed in parts per million which can be micro-amps per
83
degrees Celsius or micro-volts per degrees Celsius. The is the main
84
characteristic of a temperature transducer and should be stated in the
85
datasheet.
86
87
additionalProperties: false
88
89
required:
90
- compatible
91
- io-channels
92
- alpha-ppm-per-celsius
93
94
examples:
95
- |
96
ad950: temperature-sensor-0 {
97
compatible = "temperature-transducer";
98
#io-channel-cells = <0>;
99
io-channels = <&temp_adc 3>;
100
101
sense-offset-millicelsius = <(-273150)>; /* Kelvin to degrees Celsius */
102
sense-resistor-ohms = <8060>;
103
alpha-ppm-per-celsius = <1>; /* 1 uA/K */
104
};
105
- |
106
znq_tmp: temperature-sensor-1 {
107
compatible = "temperature-transducer";
108
#io-channel-cells = <0>;
109
io-channels = <&temp_adc 2>;
110
111
sense-offset-millicelsius = <(-273150)>; /* Kelvin to degrees Celsius */
112
alpha-ppm-per-celsius = <4000>; /* 4 mV/K */
113
};
114
...
115
116