Go to the documentation of this file.
38 #include "drv_digital_out.h"
39 #include "drv_digital_in.h"
40 #include "drv_i2c_master.h"
54 #define BRUSHLESS3_MAP_MIKROBUS( cfg, mikrobus ) \
55 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
56 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
57 cfg.dir = MIKROBUS( mikrobus, MIKROBUS_RST ); \
58 cfg.pwm = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
59 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
66 #define BRUSHLESS3_RETVAL uint8_t
68 #define BRUSHLESS3_OK 0x00
69 #define BRUSHLESS3_INIT_ERROR 0xFF
72 #define BRUSHLESS3_I2C_ADDRESS 0x52
73 #define BRUSHLESS3_MAX_SPEED 0x1FF
74 #define BRUSHLESS3_DEF_FREQ 25000
80 #define BRUSHLESS3_SPEED_CTRL_1 0x00
81 #define BRUSHLESS3_SPEED_CTRL_2 0x01
82 #define BRUSHLESS3_DEV_CTRL 0x02
83 #define BRUSHLESS3_EE_CTRL 0x03
90 #define BRUSHLESS3_STATUS 0x10
91 #define BRUSHLESS3_MOTOR_SPEED_1 0x11
92 #define BRUSHLESS3_MOTOR_SPEED_2 0x12
93 #define BRUSHLESS3_MOTOR_PERIOD_1 0x13
94 #define BRUSHLESS3_MOTOR_PERIOD_2 0x14
95 #define BRUSHLESS3_MOTOR_KT_1 0x15
96 #define BRUSHLESS3_MOTOR_KT_2 0x16
97 #define BRUSHLESS3_IPD_POSITION 0x19
98 #define BRUSHLESS3_SUPPLY_VOLTAGE 0x1A
99 #define BRUSHLESS3_SPEED_CMD 0x1B
100 #define BRUSHLESS3_SPD_CMD_BUFFER 0x1C
101 #define BRUSHLESS3_FAULT_CODE 0x1E
108 #define BRUSHLESS3_MOTOR_PARAM_1 0x20
109 #define BRUSHLESS3_MOTOR_PARAM_2 0x21
110 #define BRUSHLESS3_MOTOR_PARAM_3 0x22
111 #define BRUSHLESS3_SYS_OPT_1 0x23
112 #define BRUSHLESS3_SYS_OPT_2 0x24
113 #define BRUSHLESS3_SYS_OPT_3 0x25
114 #define BRUSHLESS3_SYS_OPT_4 0x26
115 #define BRUSHLESS3_SYS_OPT_5 0x27
116 #define BRUSHLESS3_SYS_OPT_6 0x28
117 #define BRUSHLESS3_SYS_OPT_7 0x29
118 #define BRUSHLESS3_SYS_OPT_8 0x2A
119 #define BRUSHLESS3_SYS_OPT_9 0x2B
126 #define BRUSHLESS3_PARAM_START_EE_CTRL 0x40
127 #define BRUSHLESS3_PARAM_STOP_EE_CTRL 0x50
128 #define BRUSHLESS3_PARAM_MOTOR_PARAM_1 0x39
129 #define BRUSHLESS3_PARAM_MOTOR_PARAM_2 0x1E
130 #define BRUSHLESS3_PARAM_MOTOR_PARAM_3 0x3A
131 #define BRUSHLESS3_PARAM_SYS_OPT_1 0x08
132 #define BRUSHLESS3_PARAM_SYS_OPT_2 0x50
133 #define BRUSHLESS3_PARAM_SYS_OPT_3 0xDA
134 #define BRUSHLESS3_PARAM_SYS_OPT_4 0xB8
135 #define BRUSHLESS3_PARAM_SYS_OPT_5 0x10
136 #define BRUSHLESS3_PARAM_SYS_OPT_6 0x27
137 #define BRUSHLESS3_PARAM_SYS_OPT_7 0x37
138 #define BRUSHLESS3_PARAM_SYS_OPT_8 0x04
139 #define BRUSHLESS3_PARAM_SYS_OPT_9 0x0C
140 #define BRUSHLESS3_PARAM_DEV_CTRL 0xB6
585 #endif // _BRUSHLESS3_H_
uint8_t slave_address
Definition: brushless3.h:170
pwm_t pwm
Definition: brushless3.h:165
uint8_t i2c_address
Definition: brushless3.h:194
void brushless3_set_speedPWM(brushless3_t *ctx, uint16_t motor_speed_hz)
Set speed PWM function.
uint8_t brushless3_check_motor_lock(brushless3_t *ctx)
Check indicate that the motor is locked function.
float brushless3_get_speed(brushless3_t *ctx)
Get speed function.
void brushless3_disable_sleep_mode(brushless3_t *ctx)
Disable entering into sleep or standby mode function.
digital_out_t dir
Definition: brushless3.h:156
i2c_master_t i2c
Definition: brushless3.h:164
void brushless3_forward_direction(brushless3_t *ctx)
Set the direction of rotation in the forward direction function.
pin_name_t pwm
Definition: brushless3.h:183
float brushless3_get_period(brushless3_t *ctx)
Get motor period function.
void brushless3_copy_eeprom(brushless3_t *ctx)
Copy EEPROM data to register function.
void brushless3_reverse_direction(brushless3_t *ctx)
Set the direction of rotation in the reverse direction function.
uint8_t brushless3_check_sleep_mode(brushless3_t *ctx)
Check indicate that device went into sleep or standby mode function.
float brushless3_get_velocity_constant(brushless3_t *ctx)
Get measured velocity constant function.
void brushless3_disable_write_eeprom(brushless3_t *ctx)
Disable the writing to the EEPROM registers function.
uint8_t brushless3_get_interrupt_status(brushless3_t *ctx)
Get Interrupt pin state function.
void brushless3_write_data(brushless3_t *ctx, uint8_t reg_addr, uint8_t write_data)
Write function.
pin_name_t scl
Definition: brushless3.h:181
void brushless3_pwm_start(brushless3_t *ctx)
Start PWM module.
void brushless3_enable_write_eeprom(brushless3_t *ctx)
Enable the writing to the EEPROM registers function.
uint8_t brushless3_read_data(brushless3_t *ctx, uint8_t reg_addr)
Read function.
void brushless3_set_an_mode(brushless3_t *ctx)
Set Analog mode function.
float brushless3_get_supply_voltage_value(brushless3_t *ctx)
Get the supply voltage function.
void brushless3_pwm_stop(brushless3_t *ctx)
Stop PWM module.
void brushless3_default_cfg(brushless3_t *ctx)
Click Default Configuration function.
digital_in_t int_pin
Definition: brushless3.h:160
float brushless3_get_speed_cmd(brushless3_t *ctx)
Get the speed command ( % ) based on analog or PWM or I2C function.
uint32_t dev_pwm_freq
Definition: brushless3.h:192
void brushless3_cfg_setup(brushless3_cfg_t *cfg)
Config Object Initialization function.
void brushless3_enable_programming_eeprom(brushless3_t *ctx)
Set prog key function.
pin_name_t sda
Definition: brushless3.h:182
void brushless3_disable_config(brushless3_t *ctx)
Disable the writing to the configuration registers function.
pin_name_t int_pin
Definition: brushless3.h:188
void brushless3_set_speed(brushless3_t *ctx, uint16_t motor_speed_hz)
Set speed function.
void brushless3_enable_config(brushless3_t *ctx)
Enable the writing to the configuration registers function.
uint8_t brushless3_check_over_temp(brushless3_t *ctx)
Check indicate device temperature is over its limits function.
uint32_t i2c_speed
Definition: brushless3.h:193
BRUSHLESS3_RETVAL brushless3_init(brushless3_t *ctx, brushless3_cfg_t *cfg)
Initialization function.
Click ctx object definition.
Definition: brushless3.h:152
uint8_t brushless3_check_fault_code(brushless3_t *ctx)
Check fault code function.
uint32_t pwm_freq
Definition: brushless3.h:169
Click configuration structure definition.
Definition: brushless3.h:177
void brushless3_set_duty_cycle(brushless3_t *ctx, float duty_cycle)
Generic sets PWM duty cycle.
void brushless3_set_pwm_mode(brushless3_t *ctx)
Set PWM mode function.
void brushless3_set_default_param(brushless3_t *ctx)
Set default parameter function.
#define BRUSHLESS3_RETVAL
Definition: brushless3.h:66
pin_name_t dir
Definition: brushless3.h:187