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_i2c_master.h"
70 #define PAC1944_REG_REFRESH 0x00
71 #define PAC1944_REG_CTRL 0x01
72 #define PAC1944_REG_ACC_COUNT 0x02
73 #define PAC1944_REG_VACC_CH1 0x03
74 #define PAC1944_REG_VACC_CH2 0x04
75 #define PAC1944_REG_VACC_CH3 0x05
76 #define PAC1944_REG_VACC_CH4 0x06
77 #define PAC1944_REG_VBUS_CH1 0x07
78 #define PAC1944_REG_VBUS_CH2 0x08
79 #define PAC1944_REG_VBUS_CH3 0x09
80 #define PAC1944_REG_VBUS_CH4 0x0A
81 #define PAC1944_REG_VSENSE_CH1 0x0B
82 #define PAC1944_REG_VSENSE_CH2 0x0C
83 #define PAC1944_REG_VSENSE_CH3 0x0D
84 #define PAC1944_REG_VSENSE_CH4 0x0E
85 #define PAC1944_REG_VBUS_CH1_AVG 0x0F
86 #define PAC1944_REG_VBUS_CH2_AVG 0x10
87 #define PAC1944_REG_VBUS_CH3_AVG 0x11
88 #define PAC1944_REG_VBUS_CH4_AVG 0x12
89 #define PAC1944_REG_VSENSE_CH1_AVG 0x13
90 #define PAC1944_REG_VSENSE_CH2_AVG 0x14
91 #define PAC1944_REG_VSENSE_CH3_AVG 0x15
92 #define PAC1944_REG_VSENSE_CH4_AVG 0x16
93 #define PAC1944_REG_VPOWER_CH1 0x17
94 #define PAC1944_REG_VPOWER_CH2 0x18
95 #define PAC1944_REG_VPOWER_CH3 0x19
96 #define PAC1944_REG_VPOWER_CH4 0x1A
97 #define PAC1944_REG_SMBUS_CFG 0x1C
98 #define PAC1944_REG_NEG_PWR_FSR 0x1D
99 #define PAC1944_REG_REFRESH_G 0x1E
100 #define PAC1944_REG_REFRESH_V 0x1F
101 #define PAC1944_REG_SLOW 0x20
102 #define PAC1944_REG_CTRL_ACT 0x21
103 #define PAC1944_REG_NEG_PWR_FSR_ACT 0x22
104 #define PAC1944_REG_CTRL_LAT 0x23
105 #define PAC1944_REG_NEG_PWR_FSR_LAT 0x24
106 #define PAC1944_REG_ACC_CFG 0x25
107 #define PAC1944_REG_ALERT_STATUS 0x26
108 #define PAC1944_REG_SLOW_ALERT1 0x27
109 #define PAC1944_REG_GPIO_ALERT2 0x28
110 #define PAC1944_REG_ACC_FULLNESS_LIM 0x29
111 #define PAC1944_REG_OC_LIM_CH1 0x30
112 #define PAC1944_REG_OC_LIM_CH2 0x31
113 #define PAC1944_REG_OC_LIM_CH3 0x32
114 #define PAC1944_REG_OC_LIM_CH4 0x33
115 #define PAC1944_REG_UC_LIM_CH1 0x34
116 #define PAC1944_REG_UC_LIM_CH2 0x35
117 #define PAC1944_REG_UC_LIM_CH3 0x36
118 #define PAC1944_REG_UC_LIM_CH4 0x37
119 #define PAC1944_REG_OP_LIM_CH1 0x38
120 #define PAC1944_REG_OP_LIM_CH2 0x39
121 #define PAC1944_REG_OP_LIM_CH3 0x3A
122 #define PAC1944_REG_OP_LIM_CH4 0x3B
123 #define PAC1944_REG_OV_LIM_CH1 0x3C
124 #define PAC1944_REG_OV_LIM_CH2 0x3D
125 #define PAC1944_REG_OV_LIM_CH3 0x3E
126 #define PAC1944_REG_OV_LIM_CH4 0x3F
127 #define PAC1944_REG_UV_LIM_CH1 0x40
128 #define PAC1944_REG_UV_LIM_CH2 0x41
129 #define PAC1944_REG_UV_LIM_CH3 0x42
130 #define PAC1944_REG_UV_LIM_CH4 0x43
131 #define PAC1944_REG_OC_LIM_NSAMPLES 0x44
132 #define PAC1944_REG_UC_LIM_NSAMPLES 0x45
133 #define PAC1944_REG_OP_LIM_NSAMPLES 0x46
134 #define PAC1944_REG_OV_LIM_NSAMPLES 0x47
135 #define PAC1944_REG_UV_LIM_NSAMPLES 0x48
136 #define PAC1944_REG_ALERT_ENABLE 0x49
137 #define PAC1944_REG_ACC_CFG_ACT 0x4A
138 #define PAC1944_REG_ACC_CFG_LAT 0x4B
139 #define PAC1944_REG_ID_PRODUCT 0xFD
140 #define PAC1944_REG_ID_MANUFACTURER 0xFE
141 #define PAC1944_REG_ID_REVISION 0xFF
155 #define PAC1944_MEAS_SEL_V_SOURCE 0
156 #define PAC1944_MEAS_SEL_I_SENSE 1
157 #define PAC1944_MEAS_SEL_P_SENSE 2
171 #define PAC1944_CH_SEL_CH_1 1
172 #define PAC1944_CH_SEL_CH_2 2
173 #define PAC1944_CH_SEL_CH_3 3
174 #define PAC1944_CH_SEL_CH_4 4
188 #define PAC1944_AVG_SEL_DISABLE 0
189 #define PAC1944_AVG_SEL_ENABLE 1
203 #define PAC1944_MEAS_MODE_UNIPOLAR_FSR 0
204 #define PAC1944_MEAS_MODE_BIPOLAR_FSR 1
205 #define PAC1944_MEAS_MODE_BIPOLAR_HALF_FSR 2
219 #define PAC1944_SLOW_STATE_ON 1
220 #define PAC1944_SLOW_STATE_OFF 0
222 #define PAC1944_DEV_ENABLE 1
223 #define PAC1944_DEV_PWR_DWN 0
225 #define PAC1944_ALERT_ACTIVE 0
226 #define PAC1944_ALERT_INACTIVE 1
245 #define PAC1944_CTRLH_SPS_1024_ADAPT_ACC 0x00
246 #define PAC1944_CTRLH_SPS_256_ADAPT_ACC 0x10
247 #define PAC1944_CTRLH_SPS_64_ADAPT_ACC 0x20
248 #define PAC1944_CTRLH_SPS_8_ADAPT_ACC 0x30
249 #define PAC1944_CTRLH_SPS_1024 0x40
250 #define PAC1944_CTRLH_SPS_256 0x50
251 #define PAC1944_CTRLH_SPS_64 0x60
252 #define PAC1944_CTRLH_SPS_8 0x70
253 #define PAC1944_CTRLH_SINGLE_SHOT_MODE 0x80
254 #define PAC1944_CTRLH_SINGLE_SHOT_8X 0x90
255 #define PAC1944_CTRLH_FAST_MODE 0xA0
256 #define PAC1944_CTRLH_BURST_MODE 0xB0
257 #define PAC1944_CTRLH_SLEEP 0xF0
259 #define PAC1944_CTRLH_INT_PIN_ALERT 0x00
260 #define PAC1944_CTRLH_INT_PIN_DIG_IN 0x04
261 #define PAC1944_CTRLH_INT_PIN_DIG_OUT 0x08
262 #define PAC1944_CTRLH_INT_PIN_SLOW 0x0C
264 #define PAC1944_CTRLH_SLW_PIN_ALERT 0x00
265 #define PAC1944_CTRLH_SLW_PIN_DIG_IN 0x01
266 #define PAC1944_CTRLH_SLW_PIN_DIG_OUT 0x02
267 #define PAC1944_CTRLH_SLW_PIN_SLOW 0x03
269 #define PAC1944_CTRLL_CH1_OFF 0x80
270 #define PAC1944_CTRLL_CH2_OFF 0x40
271 #define PAC1944_CTRLL_CH3_OFF 0x20
272 #define PAC1944_CTRLL_CH4_OFF 0x10
273 #define PAC1944_CTRLL_ALL_CH_OFF 0xF0
274 #define PAC1944_CTRLL_ALL_CH_ON 0x00
276 #define PAC1944_SMBUS_INT_PIN_MASK 0x80
277 #define PAC1944_SMBUS_SLW_PIN_MASK 0x40
278 #define PAC1944_SMBUS_ALERT_MASK 0x20
279 #define PAC1944_SMBUS_POR_MASK 0x10
280 #define PAC1944_SMBUS_TIMEOUT_OFF 0x00
281 #define PAC1944_SMBUS_TIMEOUT_ON 0x08
282 #define PAC1944_SMBUS_BYTE_COUNT_OFF 0x00
283 #define PAC1944_SMBUS_BYTE_COUNT_ON 0x04
284 #define PAC1944_SMBUS_AUTO_INC_SKIP_ON 0x00
285 #define PAC1944_SMBUS_AUTO_INC_SKIP_OFF 0x02
286 #define PAC1944_SMBUS_I2C_HIGH_SPEED 0x01
294 #define PAC1944_DEVICE_ADDR_GND 0x10
295 #define PAC1944_DEVICE_ADDR_499_OHM 0x11
296 #define PAC1944_DEVICE_ADDR_806_OHM 0x12
297 #define PAC1944_DEVICE_ADDR_1270_OHM 0x13
298 #define PAC1944_DEVICE_ADDR_2050_OHM 0x14
299 #define PAC1944_DEVICE_ADDR_3240_OHM 0x15
300 #define PAC1944_DEVICE_ADDR_5230_OHM 0x16
301 #define PAC1944_DEVICE_ADDR_8450_OHM 0x17
302 #define PAC1944_DEVICE_ADDR_13K3_OHM 0x18
303 #define PAC1944_DEVICE_ADDR_21K5_OHM 0x19
304 #define PAC1944_DEVICE_ADDR_34K_OHM 0x1A
305 #define PAC1944_DEVICE_ADDR_54K9_OHM 0x1B
306 #define PAC1944_DEVICE_ADDR_88K7_OHM 0x1C
307 #define PAC1944_DEVICE_ADDR_140K_OHM 0x1D
308 #define PAC1944_DEVICE_ADDR_226K_OHM 0x1E
309 #define PAC1944_DEVICE_ADDR_VCC 0x1F
327 #define PAC1944_MAP_MIKROBUS( cfg, mikrobus ) \
328 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
329 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
330 cfg.en = MIKROBUS( mikrobus, MIKROBUS_CS ); \
331 cfg.slw = MIKROBUS( mikrobus, MIKROBUS_RST ); \
332 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
uint8_t slave_address
Definition: pac1944.h:358
PAC1944 Click context object.
Definition: pac1944.h:342
pin_name_t scl
Definition: pac1944.h:368
uint8_t cfg_vbus2
Definition: pac1944.h:395
uint8_t cfg_vsense1
Definition: pac1944.h:390
digital_out_t slw
Definition: pac1944.h:346
uint8_t cfg_vsense4
Definition: pac1944.h:393
void pac1944_set_slow_state(pac1944_t *ctx, uint8_t state)
PAC1944 set slow state function.
uint8_t cfg_vsense2
Definition: pac1944.h:391
digital_in_t int_pin
Definition: pac1944.h:350
void pac1944_get_accumulator_output(pac1944_t *ctx, uint8_t ch_sel, uint8_t *acc_out)
PAC1944 get accumulator output function.
pin_name_t sda
Definition: pac1944.h:369
uint8_t pac1944_get_alert_state(pac1944_t *ctx)
PAC1944 get alert state function.
pin_name_t slw
Definition: pac1944.h:372
i2c_master_t i2c
Definition: pac1944.h:354
void pac1944_device_state(pac1944_t *ctx, uint8_t state)
PAC1944 set device state function.
pin_name_t int_pin
Definition: pac1944.h:373
uint8_t cfg_vsense3
Definition: pac1944.h:392
PAC1944 Click configuration object.
Definition: pac1944.h:367
void pac1944_volatile_refresh_cmd(pac1944_t *ctx)
PAC1944 volatile refresh command.
uint8_t cfg_vbus3
Definition: pac1944.h:396
void pac1944_general_refresh_cmd(pac1944_t *ctx)
PAC1944 general refresh command.
uint8_t cfg_vbus1
Definition: pac1944.h:394
float pac1944_get_calc_measurement(pac1944_t *ctx, uint8_t meas_sel, uint8_t ch_sel, uint8_t avg_sel, uint8_t meas_mode)
PAC1944 get calculated measurement function.
err_t pac1944_generic_read(pac1944_t *ctx, uint8_t reg, uint8_t *rx_buf, uint8_t rx_len)
PAC1944 I2C reading function.
PAC1944 Configuration setup structure.
Definition: pac1944.h:385
digital_out_t en
Definition: pac1944.h:345
void pac1944_set_address_pointer(pac1944_t *ctx, uint8_t reg_addr)
PAC1944 set address pointer function.
uint8_t gpio_alert2
Definition: pac1944.h:387
pin_name_t en
Definition: pac1944.h:371
uint8_t slow_alert1
Definition: pac1944.h:388
uint8_t sample_mode
Definition: pac1944.h:386
err_t pac1944_generic_write(pac1944_t *ctx, uint8_t reg, uint8_t *tx_buf, uint8_t tx_len)
PAC1944 I2C writing function.
uint32_t pac1944_get_accumulator_count(pac1944_t *ctx)
PAC1944 accumulator count function.
uint32_t pac1944_get_measurement(pac1944_t *ctx, uint8_t meas_sel, uint8_t ch_sel, uint8_t avg_sel)
PAC1944 get measurement function.
void pac1944_cfg_setup(pac1944_cfg_t *cfg)
PAC1944 configuration object setup function.
uint8_t pac1944_read_last_accessed_register(pac1944_t *ctx)
PAC1944 last accessed register read function.
uint8_t i2c_address
Definition: pac1944.h:376
void pac1944_setup_config(pac1944_t *ctx, pac1944_setup_t cfg_data)
PAC1944 setup config function.
uint8_t channels_state
Definition: pac1944.h:389
err_t pac1944_init(pac1944_t *ctx, pac1944_cfg_t *cfg)
PAC1944 initialization function.
uint8_t cfg_vbus4
Definition: pac1944.h:397
uint32_t i2c_speed
Definition: pac1944.h:375
void pac1944_refresh_cmd(pac1944_t *ctx)
PAC1944 refresh command.
void pac1944_default_cfg(pac1944_t *ctx)
PAC1944 default configuration function.