LibDriver CS1237
Loading...
Searching...
No Matches
driver_cs1237.h
Go to the documentation of this file.
1
36
37#ifndef DRIVER_CS1237_H
38#define DRIVER_CS1237_H
39
40#include <stdio.h>
41#include <stdint.h>
42#include <string.h>
43
44#ifdef __cplusplus
45extern "C"{
46#endif
47
53
58
62#ifndef CS1237_COMMAND_DATA_DELAY
63 #define CS1237_COMMAND_DATA_DELAY 5
64#endif
65
69typedef enum
70{
74
85
89typedef enum
90{
91 CS1237_PGA_1 = 0x00,
92 CS1237_PGA_2 = 0x01,
96
106
110typedef struct cs1237_handle_s
111{
112 uint8_t (*sclk_gpio_init)(void);
113 uint8_t (*sclk_gpio_deinit)(void);
114 uint8_t (*sclk_gpio_write)(uint8_t level);
115 uint8_t (*dout_gpio_init)(void);
116 uint8_t (*dout_gpio_deinit)(void);
117 uint8_t (*dout_gpio_write)(uint8_t level);
118 uint8_t (*dout_gpio_read)(uint8_t *level);
119 void (*delay_us)(uint32_t us);
120 void (*delay_ms)(uint32_t ms);
121 void (*debug_print)(const char *const fmt, ...);
122 uint8_t pga;
123 uint8_t channel;
127 uint8_t inited;
129
145
149
156
163#define DRIVER_CS1237_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
164
171#define DRIVER_CS1237_LINK_SCLK_GPIO_INIT(HANDLE, FUC) (HANDLE)->sclk_gpio_init = FUC
172
179#define DRIVER_CS1237_LINK_SCLK_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->sclk_gpio_deinit = FUC
180
187#define DRIVER_CS1237_LINK_SCLK_GPIO_WRITE(HANDLE, FUC) (HANDLE)->sclk_gpio_write = FUC
188
195#define DRIVER_CS1237_LINK_DOUT_GPIO_INIT(HANDLE, FUC) (HANDLE)->dout_gpio_init = FUC
196
203#define DRIVER_CS1237_LINK_DOUT_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->dout_gpio_deinit = FUC
204
211#define DRIVER_CS1237_LINK_DOUT_GPIO_WRITE(HANDLE, FUC) (HANDLE)->dout_gpio_write = FUC
212
219#define DRIVER_CS1237_LINK_DOUT_GPIO_READ(HANDLE, FUC) (HANDLE)->dout_gpio_read = FUC
220
227#define DRIVER_CS1237_LINK_DELAY_US(HANDLE, FUC) (HANDLE)->delay_us = FUC
228
235#define DRIVER_CS1237_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
236
243#define DRIVER_CS1237_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
244
248
255
264uint8_t cs1237_info(cs1237_info_t *info);
265
275uint8_t cs1237_set_reference_voltage(cs1237_handle_t *handle, float volt);
276
286uint8_t cs1237_get_reference_voltage(cs1237_handle_t *handle, float *volt);
287
298uint8_t cs1237_set_temperature_calibration_point(cs1237_handle_t *handle, int32_t temperature_raw, float temperature_deg);
299
310uint8_t cs1237_get_temperature_calibration_point(cs1237_handle_t *handle, int32_t *temperature_raw, float *temperature_deg);
311
322uint8_t cs1237_init(cs1237_handle_t *handle);
323
335uint8_t cs1237_deinit(cs1237_handle_t *handle);
336
350uint8_t cs1237_read(cs1237_handle_t *handle, int32_t *raw, double *mv);
351
367uint8_t cs1237_read_temperature(cs1237_handle_t *handle, int32_t *raw, float *degrees);
368
379uint8_t cs1237_wake_up(cs1237_handle_t *handle);
380
391uint8_t cs1237_power_down(cs1237_handle_t *handle);
392
405
418
431
444
456uint8_t cs1237_set_pga(cs1237_handle_t *handle, cs1237_pga_t pga);
457
469uint8_t cs1237_get_pga(cs1237_handle_t *handle, cs1237_pga_t *pga);
470
482uint8_t cs1237_set_channel(cs1237_handle_t *handle, cs1237_channel_t channel);
483
495uint8_t cs1237_get_channel(cs1237_handle_t *handle, cs1237_channel_t *channel);
496
500
507
520uint8_t cs1237_set_command(cs1237_handle_t *handle, uint8_t command, uint8_t config);
521
534uint8_t cs1237_get_command(cs1237_handle_t *handle, uint8_t command, uint8_t *config);
535
547uint8_t cs1237_get_data(cs1237_handle_t *handle, int32_t *data);
548
552
556
557#ifdef __cplusplus
558}
559#endif
560
561#endif
uint8_t cs1237_set_adc_rate(cs1237_handle_t *handle, cs1237_adc_rate_t rate)
set adc rate
uint8_t cs1237_read_temperature(cs1237_handle_t *handle, int32_t *raw, float *degrees)
read temperature
uint8_t cs1237_set_reference_voltage_output(cs1237_handle_t *handle, cs1237_bool_t enable)
enable or disable reference voltage output
uint8_t cs1237_get_channel(cs1237_handle_t *handle, cs1237_channel_t *channel)
get adc channel
struct cs1237_handle_s cs1237_handle_t
cs1237 handle structure definition
uint8_t cs1237_get_temperature_calibration_point(cs1237_handle_t *handle, int32_t *temperature_raw, float *temperature_deg)
get temperature calibration point
uint8_t cs1237_deinit(cs1237_handle_t *handle)
close the chip
uint8_t cs1237_get_reference_voltage(cs1237_handle_t *handle, float *volt)
get reference voltage
uint8_t cs1237_info(cs1237_info_t *info)
get chip's information
cs1237_bool_t
cs1237 bool enumeration definition
uint8_t cs1237_read(cs1237_handle_t *handle, int32_t *raw, double *mv)
read voltage
uint8_t cs1237_set_reference_voltage(cs1237_handle_t *handle, float volt)
set reference voltage
uint8_t cs1237_wake_up(cs1237_handle_t *handle)
wake up
uint8_t cs1237_get_pga(cs1237_handle_t *handle, cs1237_pga_t *pga)
get adc pga
uint8_t cs1237_get_adc_rate(cs1237_handle_t *handle, cs1237_adc_rate_t *rate)
get adc rate
uint8_t cs1237_set_pga(cs1237_handle_t *handle, cs1237_pga_t pga)
set adc pga
uint8_t cs1237_get_reference_voltage_output(cs1237_handle_t *handle, cs1237_bool_t *enable)
get reference voltage output status
uint8_t cs1237_power_down(cs1237_handle_t *handle)
power down
cs1237_pga_t
cs1237 pga enumeration definition
uint8_t cs1237_set_temperature_calibration_point(cs1237_handle_t *handle, int32_t temperature_raw, float temperature_deg)
set temperature calibration point
cs1237_adc_rate_t
cs1237 adc rate enumeration definition
struct cs1237_info_s cs1237_info_t
cs1237 information structure definition
uint8_t cs1237_set_channel(cs1237_handle_t *handle, cs1237_channel_t channel)
set adc channel
uint8_t cs1237_init(cs1237_handle_t *handle)
initialize the chip
cs1237_channel_t
cs1237 channel enumeration definition
@ CS1237_BOOL_TRUE
@ CS1237_BOOL_FALSE
@ CS1237_PGA_2
@ CS1237_PGA_1
@ CS1237_PGA_128
@ CS1237_PGA_64
@ CS1237_ADC_RATE_1280HZ
@ CS1237_ADC_RATE_640HZ
@ CS1237_ADC_RATE_10HZ
@ CS1237_ADC_RATE_40HZ
@ CS1237_CHANNEL_SHORT_CIRCUIT
@ CS1237_CHANNEL_TEMPERATURE
@ CS1237_CHANNEL_A
uint8_t cs1237_get_command(cs1237_handle_t *handle, uint8_t command, uint8_t *config)
get command
uint8_t cs1237_get_data(cs1237_handle_t *handle, int32_t *data)
get data
uint8_t cs1237_set_command(cs1237_handle_t *handle, uint8_t command, uint8_t config)
set command
cs1237 handle structure definition
int32_t temperature_raw
void(* delay_ms)(uint32_t ms)
uint8_t(* sclk_gpio_deinit)(void)
uint8_t(* dout_gpio_init)(void)
uint8_t(* dout_gpio_write)(uint8_t level)
void(* debug_print)(const char *const fmt,...)
void(* delay_us)(uint32_t us)
uint8_t(* sclk_gpio_init)(void)
uint8_t(* dout_gpio_deinit)(void)
uint8_t(* dout_gpio_read)(uint8_t *level)
uint8_t(* sclk_gpio_write)(uint8_t level)
cs1237 information structure definition
float supply_voltage_max_v
uint32_t driver_version
char manufacturer_name[32]
float supply_voltage_min_v
char chip_name[32]