Go to the documentation of this file.
35 #include "drv_digital_out.h"
36 #include "drv_digital_in.h"
37 #include "drv_i2c_master.h"
59 #define HWMONITOR2_REG_CONFIGURATION 0x00
60 #define HWMONITOR2_REG_INT_STATUS_1 0x01
61 #define HWMONITOR2_REG_INT_STATUS_2 0x02
62 #define HWMONITOR2_REG_INT_MASK_1 0x03
63 #define HWMONITOR2_REG_INT_MASK_2 0x04
64 #define HWMONITOR2_REG_FAN_DIVISOR 0x05
65 #define HWMONITOR2_REG_OS_T_RES_CONFIG 0x06
66 #define HWMONITOR2_REG_CONVERSION_RATE 0x07
67 #define HWMONITOR2_REG_CHANNEL_DISABLE 0x08
68 #define HWMONITOR2_REG_INPUT_MODE 0x09
69 #define HWMONITOR2_REG_ADC_CONTROL 0x0A
70 #define HWMONITOR2_REG_CONVERS_RATE_CNT 0x0B
71 #define HWMONITOR2_REG_RAM_IN_0 0x20
72 #define HWMONITOR2_REG_RAM_IN_1 0x21
73 #define HWMONITOR2_REG_RAM_IN_2 0x22
74 #define HWMONITOR2_REG_RAM_IN_3 0x23
75 #define HWMONITOR2_REG_RAM_IN_4 0x24
76 #define HWMONITOR2_REG_RAM_IN_5 0x25
77 #define HWMONITOR2_REG_RAM_IN_6 0x26
78 #define HWMONITOR2_REG_RAM_TEMPERATURE 0x27
79 #define HWMONITOR2_REG_RAM_FAN_1 0x28
80 #define HWMONITOR2_REG_RAM_FAN_2 0x29
81 #define HWMONITOR2_REG_RAM_LIM_IN_0_H 0x2A
82 #define HWMONITOR2_REG_RAM_LIM_IN_0_L 0x2B
83 #define HWMONITOR2_REG_RAM_LIM_IN_1_H 0x2C
84 #define HWMONITOR2_REG_RAM_LIM_IN_1_L 0x2D
85 #define HWMONITOR2_REG_RAM_LIM_IN_2_H 0x2E
86 #define HWMONITOR2_REG_RAM_LIM_IN_2_L 0x2F
87 #define HWMONITOR2_REG_RAM_LIM_IN_3_H 0x30
88 #define HWMONITOR2_REG_RAM_LIM_IN_3_L 0x31
89 #define HWMONITOR2_REG_RAM_LIM_IN_4_H 0x32
90 #define HWMONITOR2_REG_RAM_LIM_IN_4_L 0x33
91 #define HWMONITOR2_REG_RAM_LIM_IN_5_H 0x34
92 #define HWMONITOR2_REG_RAM_LIM_IN_5_L 0x35
93 #define HWMONITOR2_REG_RAM_LIM_IN_6_H 0x36
94 #define HWMONITOR2_REG_RAM_LIM_IN_6_L 0x37
95 #define HWMONITOR2_REG_RAM_LIM_HOT_H 0x38
96 #define HWMONITOR2_REG_RAM_LIM_HOT_L 0x39
97 #define HWMONITOR2_REG_RAM_LIM_TEMP_H 0x3A
98 #define HWMONITOR2_REG_RAM_LIM_TEMP_L 0x3B
99 #define HWMONITOR2_REG_RAM_CURRENT_LIM_FUN_1 0x3C
100 #define HWMONITOR2_REG_RAM_CURRENT_LIM_FUN_2 0x3D
101 #define HWMONITOR2_REG_RAM_MANUFACTURE_ID 0x3E
102 #define HWMONITOR2_REG_RAM_REVISION_ID 0x3F
120 #define HWMONITOR2_SET_CONFIG_START_DIS 0x00
121 #define HWMONITOR2_SET_CONFIG_START_EN 0x01
122 #define HWMONITOR2_SET_CONFIG_INT_DIS 0x00
123 #define HWMONITOR2_SET_CONFIG_INT_EN 0x01
124 #define HWMONITOR2_SET_CONFIG_INT_OPEN_DRAIN 0x00
125 #define HWMONITOR2_SET_CONFIG_INT_ACT_LOW 0x01
126 #define HWMONITOR2_SET_CONFIG_INT_CLR_DIS 0x00
127 #define HWMONITOR2_SET_CONFIG_INT_CLR_EN 0x01
128 #define HWMONITOR2_SET_CONFIG_CHA_NCLR_GPI 0x00
129 #define HWMONITOR2_SET_CONFIG_CHA_GPI 0x01
130 #define HWMONITOR2_SET_CONFIG_GPO_LOW 0x00
131 #define HWMONITOR2_SET_CONFIG_GPO_HIGH 0x01
132 #define HWMONITOR2_SET_CONFIG_PWR_ON 0x00
133 #define HWMONITOR2_SET_CONFIG_PWR_DIS 0x01
139 #define HWMONITOR2_SET_FAN1_MODE_COUNT 0x00
140 #define HWMONITOR2_SET_FAN1_MODE_SENS_INPUT 0x01
141 #define HWMONITOR2_SET_FAN2_MODE_COUNT 0x00
142 #define HWMONITOR2_SET_FAN2_MODE_SENS_INPUT 0x02
143 #define HWMONITOR2_SET_FAN1_CTRL_SPEED_DIV1 0x00
144 #define HWMONITOR2_SET_FAN1_CTRL_SPEED_DIV2 0x04
145 #define HWMONITOR2_SET_FAN1_CTRL_SPEED_DIV4 0x08
146 #define HWMONITOR2_SET_FAN1_CTRL_SPEED_DIV8 0x0C
147 #define HWMONITOR2_SET_FAN2_CTRL_SPEED_DIV1 0x00
148 #define HWMONITOR2_SET_FAN2_CTRL_SPEED_DIV2 0x10
149 #define HWMONITOR2_SET_FAN2_CTRL_SPEED_DIV4 0x20
150 #define HWMONITOR2_SET_FAN2_CTRL_SPEED_DIV8 0x30
151 #define HWMONITOR2_SET_MODE_OS_DISABLE 0x00
152 #define HWMONITOR2_SET_MODE_OS_ENABLE 0x01
153 #define HWMONITOR2_SET_MODE_RST_DISABLE 0x00
154 #define HWMONITOR2_SET_MODE_RST_ENABLE 0x01
160 #define HWMONITOR2_SET_TEMP_RES_8_bit 0x00
161 #define HWMONITOR2_SET_TEMP_RES_11_bit 0x01
162 #define HWMONITOR2_TEMP_RES_11_bit_BIT_MASK 0x08
168 #define HWMONITOR2_SET_ALL_CH_ENABLE 0x00
169 #define HWMONITOR2_SET_ALL_CH_DISABLE 0xFF
175 #define HWMONITOR2_MANUFACTURERS_ID 0x80
176 #define HWMONITOR2_STEPPING_DIE_REVISION_ID 0x08
182 #define HWMONITOR2_CH_0 0
183 #define HWMONITOR2_CH_1 1
184 #define HWMONITOR2_CH_2 2
185 #define HWMONITOR2_CH_3 3
186 #define HWMONITOR2_CH_4 4
187 #define HWMONITOR2_CH_5 5
188 #define HWMONITOR2_CH_6 6
189 #define HWMONITOR2_FAN_1 0
190 #define HWMONITOR2_FAN_2 1
197 #define HWMONITOR2_DEVICE_ADDRESS_0 0x28
198 #define HWMONITOR2_DEVICE_ADDRESS_1 0x29
199 #define HWMONITOR2_DEVICE_ADDRESS_2 0x2A
200 #define HWMONITOR2_DEVICE_ADDRESS_3 0x2B
201 #define HWMONITOR2_DEVICE_ADDRESS_4 0x2C
202 #define HWMONITOR2_DEVICE_ADDRESS_5 0x2D
203 #define HWMONITOR2_DEVICE_ADDRESS_6 0x2E
204 #define HWMONITOR2_DEVICE_ADDRESS_7 0x2F
222 #define HWMONITOR2_MAP_MIKROBUS( cfg, mikrobus ) \
223 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
224 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
225 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
226 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
528 #endif // HWMONITOR2_H
uint8_t start
Definition: hwmonitor2.h:274
digital_in_t int_pin
Definition: hwmonitor2.h:241
err_t hwmonitor2_get_fan_output(hwmonitor2_t *ctx, uint8_t fan_pos, uint8_t *fan_output)
HW Monitor 2 gets FAN output function.
uint8_t gpo
Definition: hwmonitor2.h:279
err_t hwmonitor2_get_analog_inputs(hwmonitor2_t *ctx, uint8_t ch_pos, float *voltage)
HW Monitor 2 gets analog inputs voltage function.
err_t hwmonitor2_get_device_id(hwmonitor2_t *ctx, uint8_t *manufacture_id, uint8_t *revision_id)
HW Monitor 2 gets device ID function.
@ HWMONITOR2_OK
Definition: hwmonitor2.h:290
uint8_t hwmonitor2_get_int_pin(hwmonitor2_t *ctx)
HW Monitor 2 gets interrupt function.
err_t hwmonitor2_get_config(hwmonitor2_t *ctx, hwmonitor2_config_t *config)
HW Monitor 2 gets configuration function.
pin_name_t sda
Definition: hwmonitor2.h:258
err_t hwmonitor2_generic_read(hwmonitor2_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
HW Monitor 2 I2C reading function.
err_t hwmonitor2_set_temp_res(hwmonitor2_t *ctx, uint8_t temp_res)
HW Monitor 2 set temperature resolution function.
err_t hwmonitor2_get_temperature(hwmonitor2_t *ctx, float *temperature)
HW Monitor 2 gets temperature function.
void hwmonitor2_cfg_setup(hwmonitor2_cfg_t *cfg)
HW Monitor 2 configuration object setup function.
HW Monitor 2 Click context object.
Definition: hwmonitor2.h:236
err_t hwmonitor2_default_cfg(hwmonitor2_t *ctx)
HW Monitor 2 default configuration function.
uint32_t i2c_speed
Definition: hwmonitor2.h:263
void hwmonitor2_reset(hwmonitor2_t *ctx)
HW Monitor 2 reset function.
pin_name_t scl
Definition: hwmonitor2.h:257
pin_name_t rst
Definition: hwmonitor2.h:260
uint8_t i2c_address
Definition: hwmonitor2.h:264
digital_out_t rst
Definition: hwmonitor2.h:238
err_t hwmonitor2_generic_write(hwmonitor2_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
HW Monitor 2 I2C writing function.
HW Monitor 2 Click configuration object.
Definition: hwmonitor2.h:273
err_t hwmonitor2_init(hwmonitor2_t *ctx, hwmonitor2_cfg_t *cfg)
HW Monitor 2 initialization function.
i2c_master_t i2c
Definition: hwmonitor2.h:244
uint8_t int_clear
Definition: hwmonitor2.h:277
HW Monitor 2 Click configuration object.
Definition: hwmonitor2.h:256
uint8_t slave_address
Definition: hwmonitor2.h:247
uint8_t int_enable
Definition: hwmonitor2.h:275
uint8_t chas_clear
Definition: hwmonitor2.h:278
err_t hwmonitor2_set_config(hwmonitor2_t *ctx, hwmonitor2_config_t config)
HW Monitor 2 set the configuration function.
hwmonitor2_return_value_t
HW Monitor 2 Click return value data.
Definition: hwmonitor2.h:289
err_t hwmonitor2_set_ch_out(hwmonitor2_t *ctx, uint8_t ch_out)
HW Monitor 2 set voltage/temperature channel function.
@ HWMONITOR2_ERROR
Definition: hwmonitor2.h:291
uint8_t init
Definition: hwmonitor2.h:280
pin_name_t int_pin
Definition: hwmonitor2.h:261
uint8_t int_pol_sel
Definition: hwmonitor2.h:276