Go to the documentation of this file.
38 #include "mikrosdk_version.h"
41 #if mikroSDK_GET_VERSION < 20800ul
42 #include "rcu_delays.h"
48 #include "drv_digital_out.h"
49 #include "drv_digital_in.h"
50 #include "drv_spi_master.h"
63 #define PWRMETER2_MAP_MIKROBUS( cfg, mikrobus ) \
64 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
65 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
66 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
67 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
68 cfg.md1 = MIKROBUS( mikrobus, MIKROBUS_AN ); \
69 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
70 cfg.md0 = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
71 cfg.dr = MIKROBUS( mikrobus, MIKROBUS_INT );
78 #define PWRMETER2_OK 0
79 #define PWRMETER2_ERROR -1
86 #define PWRMETER2_REG_CH0_ADC_DATA 0x00
87 #define PWRMETER2_REG_CH1_ADC_DATA 0x01
88 #define PWRMETER2_REG_MODUL_OUTPUT 0x08
89 #define PWRMETER2_REG_PHASE_CONFIG 0x0A
90 #define PWRMETER2_REG_GAIN_CONFIG 0x0B
91 #define PWRMETER2_REG_STATUS_COMM 0x0C
92 #define PWRMETER2_REG_CONFIG0 0x0D
93 #define PWRMETER2_REG_CONFIG1 0x0E
94 #define PWRMETER2_REG_OFFCAL_CH0 0x0F
95 #define PWRMETER2_REG_GAINCAL_CH0 0x10
96 #define PWRMETER2_REG_OFFCAL_CH1 0x11
97 #define PWRMETER2_REG_GAINCAL_CH1 0x12
98 #define PWRMETER2_REG_LOCK_CRC 0x1F
105 #define PWRMETER2_CH0_GAIN1 0x000000ul
106 #define PWRMETER2_CH0_GAIN2 0x000001ul
107 #define PWRMETER2_CH0_GAIN4 0x000002ul
108 #define PWRMETER2_CH0_GAIN8 0x000003ul
109 #define PWRMETER2_CH0_GAIN16 0x000004ul
110 #define PWRMETER2_CH0_GAIN32 0x000005ul
111 #define PWRMETER2_CH1_GAIN1 0x000000ul
112 #define PWRMETER2_CH1_GAIN2 0x000008ul
113 #define PWRMETER2_CH1_GAIN4 0x000010ul
114 #define PWRMETER2_CH1_GAIN8 0x000018ul
115 #define PWRMETER2_CH1_GAIN16 0x000020ul
116 #define PWRMETER2_CH1_GAIN32 0x000028ul
123 #define PWRMETER2_READ_SAME_SINGLE_REG 0x000000ul
124 #define PWRMETER2_READ_REG_GROUPS 0x400000ul
125 #define PWRMETER2_READ_REG_TYPES 0x800000ul
126 #define PWRMETER2_READ_ENTIRE_REG_MAP 0xC00000ul
127 #define PWRMETER2_ADDR_COUNT_NOT_INCR_WRITE 0x000000ul
128 #define PWRMETER2_ADDR_COUNT_INCR_WRITE 0x200000ul
129 #define PWRMETER2_DR_PIN_HIGH_IMP_NOT_READY 0x000000ul
130 #define PWRMETER2_DR_PIN_LOGIC_HIGH_NOT_READY 0x100000ul
131 #define PWRMETER2_DATA_READY_LINK_DIS 0x000000ul
132 #define PWRMETER2_DATA_READY_LINK_EN 0x080000ul
133 #define PWRMETER2_CRC_WIDTH_16_BIT 0x000000ul
134 #define PWRMETER2_CRC_WIDTH_32_BIT 0x040000ul
135 #define PWRMETER2_DATA_WIDTH_16_BIT 0x000000ul
136 #define PWRMETER2_DATA_WIDTH_24_BIT 0x010000ul
137 #define PWRMETER2_DATA_WIDTH_32_BIT_WITH_ZEROS 0x020000ul
138 #define PWRMETER2_DATA_WIDTH_32_BIT_WITH_SIGN 0x030000ul
139 #define PWRMETER2_CRC_DIS 0x000000ul
140 #define PWRMETER2_CRC_EN 0x008000ul
141 #define PWRMETER2_CRCREG_INTERR_DIS 0x000000ul
142 #define PWRMETER2_CRCREG_INTERR_EN 0x004000ul
143 #define PWRMETER2_MODUL_OUTPUT_DIS 0x000000ul
144 #define PWRMETER2_MODUL_OUTPUT_EN 0x000800ul
151 #define PWRMETER2_OFFCAL_DIS 0x000000ul
152 #define PWRMETER2_OFFCAL_EN 0x800000ul
153 #define PWRMETER2_GAINCAL_DIS 0x000000ul
154 #define PWRMETER2_GAINCAL_EN 0x400000ul
155 #define PWRMETER2_DITHERING_OFF 0x000000ul
156 #define PWRMETER2_DITHERING_STRENGTH_MIN 0x100000ul
157 #define PWRMETER2_DITHERING_STRENGTH_MED 0x200000ul
158 #define PWRMETER2_DITHERING_STRENGTH_MAX 0x300000ul
159 #define PWRMETER2_CURRENT_X_0_5 0x000000ul
160 #define PWRMETER2_CURRENT_X_0_66 0x040000ul
161 #define PWRMETER2_CURRENT_X_1 0x080000ul
162 #define PWRMETER2_CURRENT_X_2 0x0C0000ul
163 #define PWRMETER2_AMCLK_MCLK 0x000000ul
164 #define PWRMETER2_AMCLK_MCLK_PER_2 0x010000ul
165 #define PWRMETER2_AMCLK_MCLK_PER_4 0x020000ul
166 #define PWRMETER2_AMCLK_MCLK_PER_8 0x030000ul
167 #define PWRMETER2_OSR_32 0x000000ul
168 #define PWRMETER2_OSR_64 0x002000ul
169 #define PWRMETER2_OSR_128 0x004000ul
170 #define PWRMETER2_OSR_256 0x006000ul
171 #define PWRMETER2_OSR_512 0x008000ul
172 #define PWRMETER2_OSR_1024 0x00A000ul
173 #define PWRMETER2_OSR_2048 0x00C000ul
174 #define PWRMETER2_OSR_4096 0x00E000ul
181 #define PWRMETER2_CH0_NORMAL_MODE 0x000000ul
182 #define PWRMETER2_CH1_NORMAL_MODE 0x000000ul
183 #define PWRMETER2_CH0_SOFT_RESET_MODE 0x010000ul
184 #define PWRMETER2_CH1_SOFT_RESET_MODE 0x020000ul
185 #define PWRMETER2_CH0_SHUTDOWN_MODE 0x000100ul
186 #define PWRMETER2_CH1_SHUTDOWN_MODE 0x000200ul
187 #define PWRMETER2_INTERNAL_VOL_REF_EN 0x000000ul
188 #define PWRMETER2_INTERNAL_VOL_REF_DIS 0x000080ul
189 #define PWRMETER2_INTERNAL_CLOCK_EN 0x000000ul
190 #define PWRMETER2_INTERNAL_CLOCK_DIS 0x000040ul
197 #define PWRMETER2_CH0_CHECK_DIS 0x00
198 #define PWRMETER2_CH1_CHECK_DIS 0x00
199 #define PWRMETER2_CH0_CHECK_EN 0x01
200 #define PWRMETER2_CH1_CHECK_EN 0x02
395 #endif // _PWRMETER2_H_
uint8_t pwrmeter2_check_ready_pin(pwrmeter2_t *ctx)
Ready Pin Check function.
pin_name_t miso
Definition: pwrmeter2.h:235
digital_out_t rst
Definition: pwrmeter2.h:216
void pwrmeter2_reset(pwrmeter2_t *ctx)
Reset function.
digital_in_t dr
Definition: pwrmeter2.h:221
err_t pwrmeter2_write_reg(pwrmeter2_t *ctx, uint8_t reg, uint32_t data_in)
Generic Write function.
uint8_t pwrmeter2_get_modulator_1(pwrmeter2_t *ctx)
Modulator 1 Get function.
pin_name_t rst
Definition: pwrmeter2.h:242
pin_name_t dr
Definition: pwrmeter2.h:244
spi_master_chip_select_polarity_t cs_polarity
Definition: pwrmeter2.h:249
digital_in_t md1
Definition: pwrmeter2.h:219
pin_name_t cs
Definition: pwrmeter2.h:238
pin_name_t chip_select
Definition: pwrmeter2.h:225
void pwrmeter2_cfg_setup(pwrmeter2_cfg_t *cfg)
Config Object Initialization function.
err_t pwrmeter2_read_conv_data(pwrmeter2_t *ctx, uint32_t *data_ch_0, uint32_t *data_ch_1)
Read Converted Data function.
pin_name_t md1
Definition: pwrmeter2.h:241
spi_master_t spi
Definition: pwrmeter2.h:224
err_t pwrmeter2_default_cfg(pwrmeter2_t *ctx)
Click Default Configuration function.
uint8_t pwrmeter2_get_modulator_0(pwrmeter2_t *ctx)
Modulator 0 Get function.
err_t pwrmeter2_get_data(pwrmeter2_t *ctx, float *voltage, float *current, float *power)
Data Get function.
spi_master_mode_t spi_mode
Definition: pwrmeter2.h:248
err_t pwrmeter2_read_reg(pwrmeter2_t *ctx, uint8_t reg, uint32_t *data_out, uint8_t len)
Generic Read function.
Click ctx object definition.
Definition: pwrmeter2.h:214
uint32_t spi_speed
Definition: pwrmeter2.h:247
pin_name_t mosi
Definition: pwrmeter2.h:236
pin_name_t md0
Definition: pwrmeter2.h:243
digital_in_t md0
Definition: pwrmeter2.h:220
err_t pwrmeter2_init(pwrmeter2_t *ctx, pwrmeter2_cfg_t *cfg)
Initialization function.
Click configuration structure definition.
Definition: pwrmeter2.h:233
pin_name_t sck
Definition: pwrmeter2.h:237