Go to the documentation of this file.
35 #include "drv_digital_out.h"
36 #include "drv_digital_in.h"
37 #include "drv_spi_master.h"
60 #define TEMPPROBE_REG_COMM_STATUS 0x0000
61 #define TEMPPROBE_REG_THERMO_K_CONV_RES 0x0024
62 #define TEMPPROBE_REG_PN_JUNCTION_CONV_RES 0x0030
63 #define TEMPPROBE_REG_EEPROM_KEY 0x00B0
64 #define TEMPPROBE_REG_EEPROM_READ_RES_CODE 0x00D0
65 #define TEMPPROBE_REG_GLOBAL_CONFIG 0x00F0
66 #define TEMPPROBE_REG_MEAS_MULTIPLE_CHANN_MASK 0x00F4
67 #define TEMPPROBE_REG_EEPROM_STATUS 0x00F9
68 #define TEMPPROBE_REG_MUX_CONFIG_DELAY 0x00FF
69 #define TEMPPROBE_REG_THERMO_K_ASSIGN_DATA 0x0214
70 #define TEMPPROBE_REG_PN_JUNCTION_ASSIGN_DATA 0x0220
71 #define TEMPPROBE_REG_CUSTOM_SENS_TABLE_DATA 0x0250
94 #define TEMPPROBE_TYPE_J_THERMOCOUPLE 0x08000000
95 #define TEMPPROBE_TYPE_K_THERMOCOUPLE 0x10000000
96 #define TEMPPROBE_TYPE_E_THERMOCOUPLE 0x18000000
97 #define TEMPPROBE_TYPE_N_THERMOCOUPLE 0x20000000
98 #define TEMPPROBE_TYPE_R_THERMOCOUPLE 0x28000000
99 #define TEMPPROBE_TYPE_S_THERMOCOUPLE 0x30000000
100 #define TEMPPROBE_TYPE_T_THERMOCOUPLE 0x38000000
101 #define TEMPPROBE_TYPE_B_THERMOCOUPLE 0x40000000
102 #define TEMPPROBE_CUSTOM_THERMOCOUPLE 0x48000000
108 #define TEMPPROBE_CH1_COLD_JUNCTION 0x00400000
109 #define TEMPPROBE_CH2_COLD_JUNCTION 0x00800000
110 #define TEMPPROBE_CH3_COLD_JUNCTION 0x00C00000
111 #define TEMPPROBE_CH4_COLD_JUNCTION 0x01000000
112 #define TEMPPROBE_CH5_COLD_JUNCTION 0x01400000
113 #define TEMPPROBE_CH6_COLD_JUNCTION 0x01800000
114 #define TEMPPROBE_CH7_COLD_JUNCTION 0x01C00000
115 #define TEMPPROBE_CH8_COLD_JUNCTION 0x02000000
116 #define TEMPPROBE_CH9_COLD_JUNCTION 0x02400000
117 #define TEMPPROBE_CH10_COLD_JUNCTION 0x02800000
118 #define TEMPPROBE_NO_COLD_JUNCTION 0x00000000
124 #define TEMPPROBE_DIFF_EXTERNAL_CURR 0x00000000
125 #define TEMPPROBE_DIFF_10MICROA_CURR 0x00100000
126 #define TEMPPROBE_DIFF_100MICROA_CURR 0x00140000
127 #define TEMPPROBE_DIFF_500MICROA_CURR 0x00180000
128 #define TEMPPROBE_DIFF_1MILIA_CURR 0x001C0000
129 #define TEMPPROBE_SINGLE_ENDED_EXT_CURR 0x00200000
130 #define TEMPPROBE_SINGLE_ENDED_10MICROA_CURR 0x00300000
131 #define TEMPPROBE_SINGLE_ENDED_100MICROA_CURR 0x00340000
132 #define TEMPPROBE_SINGLE_ENDED_500MICROA_CURR 0x00380000
133 #define TEMPPROBE_SINGLE_ENDED_1MILIA_CURR 0x003C0000
139 #define TEMPPROBE_SENSE_RES_CH2_CH1 0x00800000
140 #define TEMPPROBE_SENSE_RES_CH3_CH2 0x00C00000
141 #define TEMPPROBE_SENSE_RES_CH4_CH3 0x01000000
142 #define TEMPPROBE_SENSE_RES_CH5_CH4 0x01400000
143 #define TEMPPROBE_SENSE_RES_CH6_CH5 0x01800000
144 #define TEMPPROBE_SENSE_RES_CH7_CH6 0x01C00000
145 #define TEMPPROBE_SENSE_RES_CH8_CH7 0x02000000
146 #define TEMPPROBE_SENSE_RES_CH9_CH8 0x02400000
147 #define TEMPPROBE_SENSE_RES_CH10_CH9 0x02800000
153 #define TEMPPROBE_2_WIRE_GND_EXT 0x00000000
154 #define TEMPPROBE_2_WIRE_GND_INT 0x00040000
155 #define TEMPPROBE_3_WIRE_GND_EXT 0x00100000
156 #define TEMPPROBE_3_WIRE_GND_INT 0x00140000
157 #define TEMPPROBE_4_WIRE_GND_EXT 0x00200000
158 #define TEMPPROBE_4_WIRE_GND_INT 0x00240000
159 #define TEMPPROBE_4_WIRE_CURR_ROT 0x00280000
160 #define TEMPPROBE_4_WIRE_KELVIN_RSENSE_GND_EXT 0x00300000
161 #define TEMPPROBE_4_WIRE_KELVIN_RSENSE_GND_INT 0x00340000
162 #define TEMPPROBE_4_WIRE_KELVIN_RSENSE_CURR_ROT 0x00380000
168 #define TEMPPROBE_EXTERNAL_CURR 0x00000000
169 #define TEMPPROBE_5MICROA_CURR 0x00004000
170 #define TEMPPROBE_10MICROA_CURR 0x00008000
171 #define TEMPPROBE_25MICROA_CURR 0x0000C000
172 #define TEMPPROBE_50MICROA_CURR 0x00010000
173 #define TEMPPROBE_100MICROA_CURR 0x00014000
174 #define TEMPPROBE_250MICROA_CURR 0x00018000
175 #define TEMPPROBE_500MICROA_CURR 0x0001C000
176 #define TEMPPROBE_1MILIA_CURR 0x00020000
182 #define TEMPPROBE_EUROPEAN_CURVE 0x00000000
183 #define TEMPPROBE_AMERICAN_CURVE 0x00001000
184 #define TEMPPROBE_JAPANESE_CURVE 0x00002000
185 #define TEMPPROBE_ITS_90_CURVE 0x00003000
186 #define TEMPPROBE_OTHERS_CURVES 0x00000000
192 #define TEMPPROBE_SENSE_RESISTOR 0xE8000000
193 #define TEMPPROBE_SENSE_RES_2K 0x001F4000
194 #define TEMPPROBE_SENSE_RES_10K2 0x009C40CD
195 #define TEMPPROBE_SENSE_RES_1K 0x000FA933
201 #define TEMPPROBE_DIODE 0xE0000000
202 #define TEMPPROBE_DIRECT_ADC 0xF0000000
203 #define TEMPPROBE_ANALOG_TEMP_SENS 0xF8000000
204 #define TEMPPROBE_DIODE_SNGL_END 0x04000000
205 #define TEMPPROBE_DIODE_DIFF 0x00000000
206 #define TEMPPROBE_DIODE_2_READ 0x00000000
207 #define TEMPPROBE_DIODE_3_READ 0x02000000
208 #define TEMPPROBE_DIODE_AVRG_ON 0x01000000
214 #define TEMPPROBE_START_CONV 0x80
215 #define TEMPPROBE_INITIATE_SLEEP 0x97
216 #define TEMPPROBE_READ_EEPROM 0x96
217 #define TEMPPROBE_WRITE_EEPROM 0x95
223 #define TEMPPROBE_FILTER_FREQ_55HZ 0x00
224 #define TEMPPROBE_FILTER_FREQ_60HZ 0x01
225 #define TEMPPROBE_FILTER_FREQ_50HZ 0x02
226 #define TEMPPROBE_CELSIUS 0x00
227 #define TEMPPROBE_FAHRENHEIT 0x04
228 #define TEMPPROBE_3_WIRE_RTD_KELVIN_CURR 0x10
229 #define TEMPPROBE_2_WIRE_RTD_KELVIN_CURR 0x20
230 #define TEMPPROBE_THERMISTOR_KELVIN_CURR 0x40
236 #define TEMPPROBE_CH10_MASK 0x00000200
237 #define TEMPPROBE_CH9_MASK 0x00000100
238 #define TEMPPROBE_CH8_MASK 0x00000080
239 #define TEMPPROBE_CH7_MASK 0x00000040
240 #define TEMPPROBE_CH6_MASK 0x00000020
241 #define TEMPPROBE_CH5_MASK 0x00000010
242 #define TEMPPROBE_CH4_MASK 0x00000008
243 #define TEMPPROBE_CH3_MASK 0x00000004
244 #define TEMPPROBE_CH2_MASK 0x00000002
245 #define TEMPPROBE_CH1_MASK 0x00000001
246 #define TEMPPROBE_NO_CHANN_MASK 0x00000000
247 #define TEMPPROBE_ALL_CHANN_MASK 0x000003FF
249 #define TEMPPROBE_EEPROM_KEY 0xA53C0F5A
255 #define TEMPPROBE_SPI_READ_INSTR 0x03
256 #define TEMPPROBE_SPI_WRITE_INSTR 0x02
262 #define TEMPPROBE_REG_ADDR_ERROR 0x01
263 #define TEMPPROBE_NUM_BYTES_ERROR 0x02
264 #define TEMPPROBE_NO_ERROR 0x00
265 #define TEMPPROBE_BUSY_STATE 0x02
266 #define TEMPPROBE_NO_BUSY_STATE 0x01
267 #define TEMPPROBE_EEPROM_READ_PASS 0x00
268 #define TEMPPROBE_EEPROM_READ_FAIL 0xFF
269 #define TEMPPROBE_CHANN_SEL_ERROR 0xFF
271 #define TEMPPROBE_PN_JUNCTION_DEF_CFG 0xE5000000
272 #define TEMPPROBE_GLOBAL_CONFIG_DEF_CFG 0x00000072
283 #define TEMPPROBE_SET_DATA_SAMPLE_EDGE SET_SPI_DATA_SAMPLE_EDGE
284 #define TEMPPROBE_SET_DATA_SAMPLE_MIDDLE SET_SPI_DATA_SAMPLE_MIDDLE
302 #define TEMPPROBE_MAP_MIKROBUS( cfg, mikrobus ) \
303 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
304 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
305 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
306 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
307 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
308 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
560 #endif // TEMPPROBE_H
pin_name_t int_pin
Definition: tempprobe.h:347
err_t tempprobe_init(tempprobe_t *ctx, tempprobe_cfg_t *cfg)
Temp Probe initialization function.
uint8_t tempprobe_read_eeprom_data(tempprobe_t *ctx)
EEPROM Read function.
pin_name_t miso
Definition: tempprobe.h:340
Definition: tempprobe.h:362
err_t tempprobe_read_bytes(tempprobe_t *ctx, uint16_t reg_addr, uint8_t *data_out, uint8_t n_bytes)
Byte Read function.
This file contains SPI specific macros, functions, etc.
digital_in_t int_pin
Definition: tempprobe.h:323
uint8_t tempprobe_read_temp(tempprobe_t *ctx, uint16_t sel_channel, float *data_out)
Temperature Read function.
uint32_t spi_speed
Definition: tempprobe.h:350
pin_name_t chip_select
Definition: tempprobe.h:328
uint8_t tempprobe_write_eeprom_data(tempprobe_t *ctx)
EEPROM Write function.
uint8_t tempprobe_read_word(tempprobe_t *ctx, uint16_t reg_addr, uint32_t *data_out)
Word Read function.
pin_name_t sck
Definition: tempprobe.h:342
Temp Probe Click configuration object.
Definition: tempprobe.h:337
Temp Probe Click context object.
Definition: tempprobe.h:317
err_t tempprobe_default_cfg(tempprobe_t *ctx)
Temp Probe default configuration function.
uint8_t drv_temperature_format
Definition: tempprobe.h:329
Definition: tempprobe.h:363
void tempprobe_reset(tempprobe_t *ctx)
Reset function.
pin_name_t rst
Definition: tempprobe.h:346
err_t tempprobe_generic_write(tempprobe_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
Temp Probe data writing function.
spi_master_t spi
Definition: tempprobe.h:326
tempprobe_return_value_t
Temp Probe Click return value data.
Definition: tempprobe.h:360
pin_name_t cs
Definition: tempprobe.h:343
err_t tempprobe_write_byte(tempprobe_t *ctx, uint16_t reg_addr, uint8_t data_in)
Byte Write function.
err_t tempprobe_generic_read(tempprobe_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
Temp Probe data reading function.
spi_master_chip_select_polarity_t cs_polarity
Definition: tempprobe.h:352
spi_master_mode_t spi_mode
Definition: tempprobe.h:351
void tempprobe_cfg_setup(tempprobe_cfg_t *cfg)
Temp Probe configuration object setup function.
err_t tempprobe_write_word(tempprobe_t *ctx, uint16_t reg_addr, uint32_t data_in)
Word Write function.
uint8_t tempprobe_check_busy(tempprobe_t *ctx)
Busy Check function.
pin_name_t mosi
Definition: tempprobe.h:341
digital_out_t rst
Definition: tempprobe.h:320