no-OS
|
Header file for the TMC7300 driver. More...
Go to the source code of this file.
Classes | |
struct | _tmc7300_drv_status |
union | tmc7300_drv_status |
struct | _tmc7300_ioin |
union | tmc7300_ioin |
struct | tmc7300_bridge_priv |
struct | tmc7300_desc |
struct | tmc7300_init_param |
TMC7300 initialization structure. More... | |
Macros | |
#define | TMC7300_BRIDGE_NUM 2 |
#define | TMC7300_DUTY_MAX_VALUE 511 |
#define | TMC7300_SENDDELAY_MAX_VALUE 15 |
#define | TMC7300_GCONF_REG 0x00 |
#define | TMC7300_IFCNT_REG 0x02 |
#define | TMC7300_SLAVECONF_REG 0x03 |
#define | TMC7300_IOIN_REG 0x03 |
#define | TMC7300_CURRENT_LIMIT_REG 0x10 |
#define | TMC7300_PWM_AB_REG 0x22 |
#define | TMC7300_CHOPCONF_REG 0x6C |
#define | TMC7300_DRV_STATUS_REG 0x6F |
#define | TMC7300_PWMCONF_REG 0x70 |
#define | TMC7300_PAR_MODE_MASK NO_OS_BIT(2) |
#define | TMC7300_PWM_DIRECT_MASK NO_OS_BIT(0) |
#define | TMC7300_DRV_ENABLE_MASK NO_OS_BIT(0) |
#define | TMC7300_SLAVECONF_MASK NO_OS_GENMASK(11, 8) |
#define | TMC7300_IRUN_MASK NO_OS_GENMASK(12, 8) |
#define | TMC7300_PWM_B_MASK NO_OS_GENMASK(24, 16) |
#define | TMC7300_PWM_FREQ_MASK NO_OS_GENMASK(17, 16) |
#define | TMC7300_FREEWHEEL_MASK NO_OS_GENMASK(21, 20) |
#define | TMC7300_BLANK_TIME_MASK NO_OS_GENMASK(16, 15) |
#define | TMC7300_LI_MASK(bridge) |
#define | TMC7300_PWM_MASK(bridge) |
Functions | |
int | tmc7300_reg_read (struct tmc7300_desc *, uint32_t, uint32_t *) |
Read a register. More... | |
int | tmc7300_reg_write (struct tmc7300_desc *, uint32_t, uint32_t) |
Write a register. More... | |
int | tmc7300_reg_update (struct tmc7300_desc *, uint32_t, uint32_t, uint32_t) |
Update a register. More... | |
int | tmc7300_get_load_indicator (struct tmc7300_desc *, enum tmc7300_bridge, uint32_t *) |
Get the load indicator. More... | |
int | tmc7300_drv_enable (struct tmc7300_desc *, bool) |
Enable the bridge driver. More... | |
int | tmc7300_set_pwm_duty (struct tmc7300_desc *, enum tmc7300_bridge, int32_t) |
Set the PWM duty cycle. More... | |
int | tmc7300_set_send_delay (struct tmc7300_desc *, uint8_t) |
Set the UART response delay. More... | |
int | tmc7300_set_current_limit (struct tmc7300_desc *, uint32_t) |
Set the current limit. More... | |
int | tmc7300_get_ifcnt (struct tmc7300_desc *, uint8_t *) |
Get the number of UART valid write accesses. Wraps around at 255. More... | |
int | tmc7300_get_drv_status (struct tmc7300_desc *, union tmc7300_drv_status *) |
Read the driver status register. More... | |
int | tmc7300_get_ioin (struct tmc7300_desc *, union tmc7300_ioin *) |
Read the IOIN register. More... | |
int | tmc7300_set_standstill_mode (struct tmc7300_desc *, enum tmc7300_standstill_mode) |
Set the standstill mode. The motorrun bit will be set to 0. More... | |
int | tmc7300_set_pwm_freq (struct tmc7300_desc *, enum tmc7300_pwm_freq) |
Set the frequency of the PWM signal. More... | |
int | tmc7300_get_pwm_freq (struct tmc7300_desc *, enum tmc7300_pwm_freq *) |
Get the frequency of the PWM signal. More... | |
int | tmc7300_get_blank_time (struct tmc7300_desc *, enum tmc7300_blank_time *) |
Get the comparator blank time register. More... | |
int | tmc7300_set_blank_time (struct tmc7300_desc *, enum tmc7300_blank_time) |
Set the comparator blank time register. More... | |
int | tmc7300_set_pwm_duty_dir (struct tmc7300_desc *, enum tmc7300_bridge, uint8_t, enum tmc7300_motor_dir) |
Set the PWM duty cycle and direction. More... | |
int | tmc7300_init (struct tmc7300_desc **, struct tmc7300_init_param *) |
Initialize the TMC7300 driver. More... | |
int | tmc7300_remove (struct tmc7300_desc *) |
Free the resources allocated by tmc7300_init(). More... | |
Header file for the TMC7300 driver.
Copyright 2024(c) Analog Devices, Inc.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define TMC7300_BLANK_TIME_MASK NO_OS_GENMASK(16, 15) |
#define TMC7300_BRIDGE_NUM 2 |
#define TMC7300_CHOPCONF_REG 0x6C |
#define TMC7300_CURRENT_LIMIT_REG 0x10 |
#define TMC7300_DRV_ENABLE_MASK NO_OS_BIT(0) |
#define TMC7300_DRV_STATUS_REG 0x6F |
#define TMC7300_DUTY_MAX_VALUE 511 |
#define TMC7300_FREEWHEEL_MASK NO_OS_GENMASK(21, 20) |
#define TMC7300_GCONF_REG 0x00 |
#define TMC7300_IFCNT_REG 0x02 |
#define TMC7300_IOIN_REG 0x03 |
#define TMC7300_IRUN_MASK NO_OS_GENMASK(12, 8) |
#define TMC7300_LI_MASK | ( | bridge | ) |
#define TMC7300_PAR_MODE_MASK NO_OS_BIT(2) |
#define TMC7300_PWM_AB_REG 0x22 |
#define TMC7300_PWM_B_MASK NO_OS_GENMASK(24, 16) |
#define TMC7300_PWM_DIRECT_MASK NO_OS_BIT(0) |
#define TMC7300_PWM_FREQ_MASK NO_OS_GENMASK(17, 16) |
#define TMC7300_PWM_MASK | ( | bridge | ) |
#define TMC7300_PWMCONF_REG 0x70 |
#define TMC7300_SENDDELAY_MAX_VALUE 15 |
#define TMC7300_SLAVECONF_MASK NO_OS_GENMASK(11, 8) |
#define TMC7300_SLAVECONF_REG 0x03 |
enum tmc7300_blank_time |
enum tmc7300_bridge |
enum tmc7300_motor_dir |
enum tmc7300_pwm_freq |
int tmc7300_drv_enable | ( | struct tmc7300_desc * | desc, |
bool | enable | ||
) |
Enable the bridge driver.
Set the state of the bridge driver
desc | - The TMC7300 descriptor. |
enable | - Enable or disable the driver. |
int tmc7300_get_blank_time | ( | struct tmc7300_desc * | desc, |
enum tmc7300_blank_time * | time | ||
) |
Get the comparator blank time register.
Read the comparator's blank time.
desc | - The TMC7300 descriptor. |
time | - The blank time setting. |
int tmc7300_get_drv_status | ( | struct tmc7300_desc * | desc, |
union tmc7300_drv_status * | status | ||
) |
Read the driver status register.
Read the DRV_STATUS register
desc | - The TMC7300 descriptor. |
status | - The driver status. |
int tmc7300_get_ifcnt | ( | struct tmc7300_desc * | desc, |
uint8_t * | ifcnt | ||
) |
Get the number of UART valid write accesses. Wraps around at 255.
Read the valid write access counter
desc | - The TMC7300 descriptor. |
ifcnt | - The number of valid write accesses. |
int tmc7300_get_ioin | ( | struct tmc7300_desc * | desc, |
union tmc7300_ioin * | ioin | ||
) |
Read the IOIN register.
Read the IOIN register
desc | - The TMC7300 descriptor. |
ioin | - The IOIN register value. |
int tmc7300_get_load_indicator | ( | struct tmc7300_desc * | desc, |
enum tmc7300_bridge | bridge, | ||
uint32_t * | val | ||
) |
Get the load indicator.
Read the LI{A,B} field, indicating if the bridge output is current limited or not
desc | - The TMC7300 descriptor. |
bridge | - The bridge to get the load indicator for. |
val | - The load indicator value. |
int tmc7300_get_pwm_freq | ( | struct tmc7300_desc * | desc, |
enum tmc7300_pwm_freq * | freq | ||
) |
Get the frequency of the PWM signal.
Read the PWM frequency
desc | - The TMC7300 descriptor. |
freq | - Division factor for the internal clock oscillator (12 MHz). |
int tmc7300_init | ( | struct tmc7300_desc ** | desc, |
struct tmc7300_init_param * | param | ||
) |
Initialize the TMC7300 driver.
Configure the initial state of the TMC7300
desc | - The TMC7300 descriptor. |
param | - The initialization parameters. |
int tmc7300_reg_read | ( | struct tmc7300_desc * | desc, |
uint32_t | addr, | ||
uint32_t * | val | ||
) |
Read a register.
Read the value of a register
desc | - The TMC7300 descriptor. |
addr | - The register address. |
val | - The value to read. |
int tmc7300_reg_update | ( | struct tmc7300_desc * | desc, |
uint32_t | addr, | ||
uint32_t | mask, | ||
uint32_t | val | ||
) |
Update a register.
Update the value of a field specified using a bit mask
desc | - The TMC7300 descriptor. |
addr | - The register address. |
mask | - The mask to apply. |
val | - The value of the field specified by the mask. Will be shifted to the correct position. |
int tmc7300_reg_write | ( | struct tmc7300_desc * | desc, |
uint32_t | addr, | ||
uint32_t | val | ||
) |
Write a register.
Write the value of a register
desc | - The TMC7300 descriptor. |
addr | - The register address. |
val | - The value to write. |
int tmc7300_remove | ( | struct tmc7300_desc * | desc | ) |
Free the resources allocated by tmc7300_init().
Free the resources allocated by the tmc7300_init() function
desc | - The TMC7300 descriptor. |
int tmc7300_set_blank_time | ( | struct tmc7300_desc * | desc, |
enum tmc7300_blank_time | time | ||
) |
Set the comparator blank time register.
Set the comparator's blank time.
desc | - The TMC7300 descriptor. |
time | - The blank time setting. |
int tmc7300_set_current_limit | ( | struct tmc7300_desc * | desc, |
uint32_t | val | ||
) |
Set the current limit.
Set the current limit field
desc | - The TMC7300 descriptor. |
val | - The current limit value. |
int tmc7300_set_pwm_duty | ( | struct tmc7300_desc * | desc, |
enum tmc7300_bridge | bridge, | ||
int32_t | duty | ||
) |
Set the PWM duty cycle.
Set the value of the PWM duty cycle. The sign specifies the full bridge output direction
desc | - The TMC7300 descriptor. |
bridge | - The bridge to set the PWM duty cycle for. |
duty | - The duty cycle value. |
int tmc7300_set_pwm_duty_dir | ( | struct tmc7300_desc * | desc, |
enum tmc7300_bridge | bridge, | ||
uint8_t | duty, | ||
enum tmc7300_motor_dir | dir | ||
) |
Set the PWM duty cycle and direction.
Set the PWM duty cycle in the 0 - 255 (0% - 100%) range and the output direction (CW/CCW)
desc | - The TMC7300 descriptor. |
bridge | - The bridge to set the PWM duty cycle for. |
duty | - The duty cycle value. |
dir | - The direction of the motor. |
int tmc7300_set_pwm_freq | ( | struct tmc7300_desc * | desc, |
enum tmc7300_pwm_freq | freq | ||
) |
Set the frequency of the PWM signal.
Set the PWM frequency
desc | - The TMC7300 descriptor. |
freq | - Division factor for the internal clock oscillator (12 MHz). |
int tmc7300_set_send_delay | ( | struct tmc7300_desc * | desc, |
uint8_t | delay | ||
) |
Set the UART response delay.
Set the delay in the device's UART access response
desc | - The TMC7300 descriptor. |
delay | - The delay value. |
int tmc7300_set_standstill_mode | ( | struct tmc7300_desc * | desc, |
enum tmc7300_standstill_mode | mode | ||
) |
Set the standstill mode. The motorrun bit will be set to 0.
Set the standstill mode (freewheeling/braking). The PWM output will be stopped.
desc | - The TMC7300 descriptor. |
mode | - The standstill mode setting (freewheeling or break). |