Go to the documentation of this file.
35 #include "mikrosdk_version.h"
38 #if mikroSDK_GET_VERSION < 20800ul
39 #include "rcu_delays.h"
45 #include "drv_digital_out.h"
46 #include "drv_digital_in.h"
47 #include "drv_spi_master.h"
81 #define LOADCELL6_REG_STAT 0x00
82 #define LOADCELL6_REG_CTRL1 0x01
83 #define LOADCELL6_REG_CTRL2 0x02
84 #define LOADCELL6_REG_CTRL3 0x03
85 #define LOADCELL6_REG_CTRL4 0x04
86 #define LOADCELL6_REG_CTRL5 0x05
87 #define LOADCELL6_REG_DATA 0x06
88 #define LOADCELL6_REG_SOC_SPI 0x07
89 #define LOADCELL6_REG_SCG_SPI 0x08
90 #define LOADCELL6_REG_SCOC_SPI 0x09
91 #define LOADCELL6_REG_SCGC_SPI 0x0A
92 #define LOADCELL6_REG_RAM 0x0C
93 #define LOADCELL6_REG_SYNC_SPI 0x0D
94 #define LOADCELL6_REG_SOC_ADC 0x15
95 #define LOADCELL6_REG_SCG_ADC 0x16
96 #define LOADCELL6_REG_SCOC_ADC 0x17
97 #define LOADCELL6_REG_SCGC_ADC 0x18
120 #define LOADCELL6_CMD_RATE0 0x01
121 #define LOADCELL6_CMD_RATE1 0x02
122 #define LOADCELL6_CMD_RATE2 0x04
123 #define LOADCELL6_CMD_RATE3 0x08
124 #define LOADCELL6_CMD_IMPD 0x10
125 #define LOADCELL6_CMD_CAL 0x20
126 #define LOADCELL6_CMD_START 0x80
127 #define LOADCELL6_CMD_REG_ACCESS_MODE 0x40
133 #define LOADCELL6_STAT_RDY 0x0001
134 #define LOADCELL6_STAT_MSTAT 0x0002
135 #define LOADCELL6_STAT_DOR 0x0004
136 #define LOADCELL6_STAT_SYSGOR 0x0008
137 #define LOADCELL6_STAT_RATE0 0x0010
138 #define LOADCELL6_STAT_RATE1 0x0020
139 #define LOADCELL6_STAT_RATE2 0x0040
140 #define LOADCELL6_STAT_RATE3 0x0080
141 #define LOADCELL6_STAT_AOR 0x0100
142 #define LOADCELL6_STAT_RDERR 0x0200
143 #define LOADCELL6_STAT_PDSTAT0 0x0400
144 #define LOADCELL6_STAT_PDSTAT1 0x0800
145 #define LOADCELL6_STAT_ERROR 0x4000
146 #define LOADCELL6_STAT_INRESET 0x8000
152 #define LOADCELL6_CTRL1_CONTSC 0x01
153 #define LOADCELL6_CTRL1_SCYCLE 0x02
154 #define LOADCELL6_CTRL1_FORMAT 0x04
155 #define LOADCELL6_CTRL1_U_B 0x08
156 #define LOADCELL6_CTRL1_PD0 0x10
157 #define LOADCELL6_CTRL1_PD1 0x20
158 #define LOADCELL6_CTRL1_SYNC 0x40
159 #define LOADCELL6_CTRL1_EXTCK 0x80
165 #define LOADCELL6_CTRL2_PGAIN_x1 0x00
166 #define LOADCELL6_CTRL2_PGAIN_x2 0x01
167 #define LOADCELL6_CTRL2_PGAIN_x4 0x02
168 #define LOADCELL6_CTRL2_PGAIN_x8 0x03
169 #define LOADCELL6_CTRL2_PGAIN_x16 0x04
170 #define LOADCELL6_CTRL2_PGAIN_x32 0x05
171 #define LOADCELL6_CTRL2_PGAIN_x64 0x06
172 #define LOADCELL6_CTRL2_PGAIN_x128 0x07
173 #define LOADCELL6_CTRL2_PGAGEN 0x08
174 #define LOADCELL6_CTRL2_LPMODE 0x10
175 #define LOADCELL6_CTRL2_BUFEN 0x20
176 #define LOADCELL6_CTRL2_DGAIN_x1 0x00
177 #define LOADCELL6_CTRL2_DGAIN_x2 0x40
178 #define LOADCELL6_CTRL2_DGAIN_x4 0x80
179 #define LOADCELL6_CTRL2_DGAIN_x8 0xC0
180 #define LOADCELL6_CTRL2_DGAIN0 0x40
181 #define LOADCELL6_CTRL2_DGAIN1 0x80
187 #define LOADCELL6_CTRL3_DATA32 0x08
188 #define LOADCELL6_CTRL3_MODBITS 0x10
189 #define LOADCELL6_CTRL3_ENMSYNC 0x20
190 #define LOADCELL6_CTRL3_RESERVED 0x41
196 #define LOADCELL6_CTRL4_DIO1 0x01
197 #define LOADCELL6_CTRL4_DIO2 0x02
198 #define LOADCELL6_CTRL4_DIO3 0x04
199 #define LOADCELL6_CTRL4_DIO4 0x08
200 #define LOADCELL6_CTRL4_DIR1 0x10
201 #define LOADCELL6_CTRL4_DIR2 0x20
202 #define LOADCELL6_CTRL4_DIR3 0x40
203 #define LOADCELL6_CTRL4_DIR4 0x80
209 #define LOADCELL6_CTRL5_NOSCO 0x01
210 #define LOADCELL6_CTRL5_NOSCG 0x02
211 #define LOADCELL6_CTRL5_NOSYSO 0x04
212 #define LOADCELL6_CTRL5_NOSYSG 0x08
213 #define LOADCELL6_CTRL5_CAL0 0x40
214 #define LOADCELL6_CTRL5_CAL1 0x80
221 #define LOADCELL6_DATA_NO_DATA 0
222 #define LOADCELL6_DATA_OK 1
223 #define LOADCELL6_WEIGHT_ZERO 0
224 #define LOADCELL6_WEIGHT_100G 100
225 #define LOADCELL6_WEIGHT_200G 200
226 #define LOADCELL6_WEIGHT_500G 500
227 #define LOADCELL6_WEIGHT_1000G 1000
228 #define LOADCELL6_WEIGHT_5000G 5000
229 #define LOADCELL6_WEIGHT_10000G 10000
239 #define LOADCELL6_SET_DATA_SAMPLE_EDGE SET_SPI_DATA_SAMPLE_EDGE
240 #define LOADCELL6_SET_DATA_SAMPLE_MIDDLE SET_SPI_DATA_SAMPLE_MIDDLE
258 #define LOADCELL6_MAP_MIKROBUS( cfg, mikrobus ) \
259 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
260 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
261 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
262 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
263 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
264 cfg.syn = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
265 cfg.rdy = MIKROBUS( mikrobus, MIKROBUS_INT )
648 #endif // LOADCELL6_H
err_t loadcell6_get_status(loadcell6_t *ctx, uint16_t *status)
Load Cell 6 get status function.
pin_name_t cs
Definition: loadcell6.h:300
float weight_coeff_10000g
Definition: loadcell6.h:332
err_t loadcell6_generic_write(loadcell6_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
Load Cell 6 data writing function.
uint8_t loadcell6_check_data_ready(loadcell6_t *ctx)
Load Cell 6 check data ready function.
Load Cell 6 Click load cell data object.
Definition: loadcell6.h:319
This file contains SPI specific macros, functions, etc.
err_t loadcell6_read_reg(loadcell6_t *ctx, uint8_t reg, uint8_t *data_out)
Load Cell 6 read reg function.
Load Cell 6 Click context object.
Definition: loadcell6.h:275
digital_in_t syn
Definition: loadcell6.h:280
pin_name_t miso
Definition: loadcell6.h:297
uint8_t weight_data_5000g_ok
Definition: loadcell6.h:331
err_t loadcell6_generic_read(loadcell6_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
Load Cell 6 data reading function.
pin_name_t rst
Definition: loadcell6.h:303
err_t loadcell6_tare(loadcell6_t *ctx, loadcell6_data_t *cell_data)
Load Cell 6 tare the scales function.
float weight_coeff_5000g
Definition: loadcell6.h:330
err_t loadcell6_write_reg_data(loadcell6_t *ctx, uint8_t reg, uint32_t data_in)
Load Cell 6 read reg data function.
loadcell6_return_value_t
Load Cell 6 Click return value data.
Definition: loadcell6.h:342
float weight_coeff_100g
Definition: loadcell6.h:322
err_t loadcell6_hw_reset(loadcell6_t *ctx)
Load Cell 6 hw reset function.
@ LOADCELL6_ERROR
Definition: loadcell6.h:344
spi_master_t spi
Definition: loadcell6.h:284
uint8_t loadcell6_sync(loadcell6_t *ctx)
Load Cell 6 get sync function.
float weight_coeff_500g
Definition: loadcell6.h:326
uint32_t spi_speed
Definition: loadcell6.h:308
digital_in_t rdy
Definition: loadcell6.h:281
spi_master_mode_t spi_mode
Definition: loadcell6.h:309
float weight_coeff_1000g
Definition: loadcell6.h:328
@ LOADCELL6_OK
Definition: loadcell6.h:343
spi_master_chip_select_polarity_t cs_polarity
Definition: loadcell6.h:310
uint8_t weight_data_500g_ok
Definition: loadcell6.h:327
err_t loadcell6_default_cfg(loadcell6_t *ctx)
Load Cell 6 default configuration function.
void loadcell6_cfg_setup(loadcell6_cfg_t *cfg)
Load Cell 6 configuration object setup function.
pin_name_t chip_select
Definition: loadcell6.h:286
err_t loadcell6_init(loadcell6_t *ctx, loadcell6_cfg_t *cfg)
Load Cell 6 initialization function.
uint8_t weight_data_1000g_ok
Definition: loadcell6.h:329
pin_name_t mosi
Definition: loadcell6.h:298
err_t loadcell6_get_weight(loadcell6_t *ctx, loadcell6_data_t *cell_data, float *weight_g)
Load Cell 6 get weight function.
float weight_coeff_200g
Definition: loadcell6.h:324
uint8_t weight_data_100g_ok
Definition: loadcell6.h:323
digital_out_t rst
Definition: loadcell6.h:277
pin_name_t rdy
Definition: loadcell6.h:305
err_t loadcell6_write_reg(loadcell6_t *ctx, uint8_t reg, uint8_t data_in)
Load Cell 6 write reg function.
pin_name_t syn
Definition: loadcell6.h:304
err_t loadcell6_calibration(loadcell6_t *ctx, uint16_t cal_val, loadcell6_data_t *cell_data)
Load Cell 6 calibration function.
float tare
Definition: loadcell6.h:320
pin_name_t sck
Definition: loadcell6.h:299
err_t loadcell6_set_command(loadcell6_t *ctx, uint8_t cmd)
Load Cell 6 set command function.
uint8_t tare_ok
Definition: loadcell6.h:321
uint8_t weight_data_10000g_ok
Definition: loadcell6.h:333
err_t loadcell6_read_adc(loadcell6_t *ctx, uint32_t *data_out)
Load Cell 6 read ADC data function.
uint8_t weight_data_200g_ok
Definition: loadcell6.h:325
err_t loadcell6_read_reg_data(loadcell6_t *ctx, uint8_t reg, uint32_t *data_out)
Load Cell 6 read reg data function.
Load Cell 6 Click configuration object.
Definition: loadcell6.h:295