max31855 - Support for the MAX31855 Thermocouple-to-Digital converter using bitbanged spi
loadrt max31855 [count=N|names=name1[,name2...]] [personality=P,P,...] |
The component requires at least 3 pins to bitbang spi protocol, for example:
loadrt max31855 personality=1
setp
hm2_6i25.0.gpio.023.is_output true
setp hm2_6i25.0.gpio.024.is_output true
net
spi.clk.in hm2_6i25.0.gpio.023.out max31855.0.clk.out
net spi.cs.in hm2_6i25.0.gpio.024.out max31855.0.cs.out
net spi.data0.in hm2_6i25.0.gpio.033.in_not
max31855.0.data.0.in
addf max31855.0.bitbang-spi servo-thread
The MAX31855 supports a range of -270C to 1800C, however linearization data is only available for the -200C to 1350C range, beyond which raw temperature is returned.
Temperature pins are provided for readings in Celsius, Fahrenheit and Kelvin, temperature values are not updated while a fault condition is present.
The personality parameter is used to indicate the number of sensors. Multiple sensors share the clk and cs pins, but connect to discrete data input pins. A maximum of 15 sensors are supported.
max31855.N.bitbang-spi (requires a floating-point thread)
max31855.N.data.M.in bit in (M=0..( personality & 0xf ))
Pin(s) connected to data out.
max31855.N.cs.out bit out
Pin connected to cs, pulled low to shift data, pulled high for data refresh.
max31855.N.clk.out bit out
Pin connected to clk.
max31855.N.temp-celsius.M float out (M=0..( personality & 0xf ))
Temperature output values in Celsius.
max31855.N.temp-fahrenheit.M float out (M=0..( personality & 0xf ))
Temperature in Fahrenheit.
max31855.N.temp-kelvin.M float out (M=0..( personality & 0xf ))
Temperature in Kelvin.
max31855.N.fault.M bit out (M=0..( personality & 0xf ))
Fault condition detected.
max31855.N.fault-flags.M u32 out (M=0..( personality & 0xf ))
Fault flags: 0x1 = open sensor, 0x2 short to gnd, 0x3 short to vcc.
Joseph Calderon
GPL