dcmotor22 2.0.0.0
dcmotor22.h File Reference

This file contains API for DC Motor 22 Click Driver. More...

#include "drv_digital_out.h"
#include "drv_digital_in.h"
#include "drv_uart.h"
#include "drv_i2c_master.h"

Go to the source code of this file.

Data Structures

struct  dcmotor22_t
 DC Motor 22 Click context object. More...
 
struct  dcmotor22_cfg_t
 DC Motor 22 Click configuration object. More...
 

Macros

#define DCMOTOR22_REG_GCONF   0x00
 DC Motor 22 registers map.
 
#define DCMOTOR22_REG_GSTAT   0x01
 
#define DCMOTOR22_REG_IFCNT   0x02
 
#define DCMOTOR22_REG_SLAVECONF   0x03
 
#define DCMOTOR22_REG_IOIN   0x06
 
#define DCMOTOR22_REG_CURRENT_LIMIT   0x10
 
#define DCMOTOR22_REG_PWM_AB   0x22
 
#define DCMOTOR22_REG_CHOPCONF   0x6C
 
#define DCMOTOR22_REG_DRV_STATUS   0x6F
 
#define DCMOTOR22_REG_PWMCONF   0x70
 
#define DCMOTOR22_SYNC_BYTE   0x05
 DC Motor 22 sync byte, read/write bit, and timeout value for read and retry send in milliseconds.
 
#define DCMOTOR22_READ_WRITE_BIT   0x80
 
#define DCMOTOR22_RETRY_SEND_TIMEOUT   100
 
#define DCMOTOR22_READ_TIMEOUT   1000
 
#define DCMOTOR22_GCONF_PWM_DIRECT   ( 0x01ul )
 DC Motor 22 GCONF register settings.
 
#define DCMOTOR22_GCONF_EXTCAP_AVAILABLE   ( 0x02ul )
 
#define DCMOTOR22_GCONF_PAR_MODE_DUAL_MOTOR   ( 0x00ul )
 
#define DCMOTOR22_GCONF_PAR_MODE_SINGLE_MOTOR   ( 0x04ul )
 
#define DCMOTOR22_GCONF_TEST_MODE   ( 0x08ul )
 
#define DCMOTOR22_GSTAT_RESET   ( 0x01ul )
 DC Motor 22 GSTAT register settings.
 
#define DCMOTOR22_GSTAT_DRV_ERR   ( 0x02ul )
 
#define DCMOTOR22_GSTAT_UNDER_3V5   ( 0x04ul )
 
#define DCMOTOR22_GSTAT_CLEAR_ALL   ( 0x07ul )
 
#define DCMOTOR22_SLAVECONF_SENDDELAY_8BIT   ( 0x0000ul )
 DC Motor 22 SLAVECONF register settings.
 
#define DCMOTOR22_SLAVECONF_SENDDELAY_24BIT   ( 0x0200ul )
 
#define DCMOTOR22_SLAVECONF_SENDDELAY_40BIT   ( 0x0400ul )
 
#define DCMOTOR22_SLAVECONF_SENDDELAY_56BIT   ( 0x0600ul )
 
#define DCMOTOR22_SLAVECONF_SENDDELAY_72BIT   ( 0x0800ul )
 
#define DCMOTOR22_SLAVECONF_SENDDELAY_88BIT   ( 0x0A00ul )
 
#define DCMOTOR22_SLAVECONF_SENDDELAY_104BIT   ( 0x0C00ul )
 
#define DCMOTOR22_SLAVECONF_SENDDELAY_120BIT   ( 0x0E00ul )
 
#define DCMOTOR22_IOIN_EN   ( 0x01ul )
 DC Motor 22 IOIN register settings.
 
#define DCMOTOR22_IOIN_NSTDBY   ( 0x02ul )
 
#define DCMOTOR22_IOIN_AD0   ( 0x04ul )
 
#define DCMOTOR22_IOIN_AD1   ( 0x08ul )
 
#define DCMOTOR22_IOIN_DIAG   ( 0x10ul )
 
#define DCMOTOR22_IOIN_UART_ON   ( 0x20ul )
 
#define DCMOTOR22_IOIN_UART_IN   ( 0x40ul )
 
#define DCMOTOR22_IOIN_MODE_IN   ( 0x80ul )
 
#define DCMOTOR22_IOIN_A2   ( 0x0100ul )
 
#define DCMOTOR22_IOIN_A1   ( 0x0200ul )
 
#define DCMOTOR22_IOIN_COMP_A1A2   ( 0x0400ul )
 
#define DCMOTOR22_IOIN_COMP_B1B2   ( 0x0800ul )
 
#define DCMOTOR22_IOIN_VERSION   ( 0x40000000ul )
 
#define DCMOTOR22_IOIN_VERSION_MASK   ( 0xFF000000ul )
 
#define DCMOTOR22_CURRENT_LIMIT_EN_FREEWHEELING   ( 0x01ul )
 DC Motor 22 CURRENT_LIMIT register settings.
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_1_32   ( 0x0000ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_2_32   ( 0x0100ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_3_32   ( 0x0200ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_4_32   ( 0x0300ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_5_32   ( 0x0400ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_6_32   ( 0x0500ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_7_32   ( 0x0600ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_8_32   ( 0x0700ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_9_32   ( 0x0800ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_10_32   ( 0x0900ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_11_32   ( 0x0A00ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_12_32   ( 0x0B00ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_13_32   ( 0x0C00ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_14_32   ( 0x0D00ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_15_32   ( 0x0E00ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_16_32   ( 0x0F00ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_17_32   ( 0x1000ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_18_32   ( 0x1100ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_19_32   ( 0x1200ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_20_32   ( 0x1300ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_21_32   ( 0x1400ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_22_32   ( 0x1500ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_23_32   ( 0x1600ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_24_32   ( 0x1700ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_25_32   ( 0x1800ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_26_32   ( 0x1900ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_27_32   ( 0x1A00ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_28_32   ( 0x1B00ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_29_32   ( 0x1C00ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_30_32   ( 0x1D00ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_31_32   ( 0x1E00ul )
 
#define DCMOTOR22_CURRENT_LIMIT_IRUN_32_32   ( 0x1F00ul )
 
#define DCMOTOR22_MAX_PWM   255
 DC Motor 22 motor PWM settings.
 
#define DCMOTOR22_MIN_PWM   ( -255 )
 
#define DCMOTOR22_PWM_RES   0x01FF
 
#define DCMOTOR22_PWM_DUTY_0   ( 0x00ul )
 
#define DCMOTOR22_CHOPCONF_DISS2VS   ( 0x80000000ul )
 DC Motor 22 CHOPCONF register settings.
 
#define DCMOTOR22_CHOPCONF_DISS2G   ( 0x40000000ul )
 
#define DCMOTOR22_CHOPCONF_TBL_0   ( 0x00000000ul )
 
#define DCMOTOR22_CHOPCONF_TBL_1   ( 0x00008000ul )
 
#define DCMOTOR22_CHOPCONF_TBL_2   ( 0x00010000ul )
 
#define DCMOTOR22_CHOPCONF_TBL_3   ( 0x00018000ul )
 
#define DCMOTOR22_CHOPCONF_ENABLEDRV   ( 0x00000001ul )
 
#define DCMOTOR22_PWMCONF_FREEWHEEL_NORMAL_OP   ( 0x00000000ul )
 DC Motor 22 PWMCONF register settings.
 
#define DCMOTOR22_PWMCONF_FREEWHEEL_FREEWHEELING   ( 0x00100000ul )
 
#define DCMOTOR22_PWMCONF_FREEWHEEL_LS_SHORTED   ( 0x00200000ul )
 
#define DCMOTOR22_PWMCONF_FREEWHEEL_HS_SHORTED   ( 0x00300000ul )
 
#define DCMOTOR22_PWMCONF_PWM_FREQ_2_1024   ( 0x00000000ul )
 
#define DCMOTOR22_PWMCONF_PWM_FREQ_2_683   ( 0x00010000ul )
 
#define DCMOTOR22_PWMCONF_PWM_FREQ_2_512   ( 0x00020000ul )
 
#define DCMOTOR22_PWMCONF_PWM_FREQ_2_410   ( 0x00030000ul )
 
#define DCMOTOR22_MOTOR_A   0x00
 DC Motor 22 motor selection values.
 
#define DCMOTOR22_MOTOR_B   0x01
 
#define DCMOTOR22_NUM_CONVERSIONS   100
 DC Motor 22 current calculation values.
 
#define DCMOTOR22_RSENSE   0.1
 
#define DCMOTOR22_ADC_REG_SETUP   0x80
 DC Motor 22 ADC setup byte values.
 
#define DCMOTOR22_ADC_SETUP_VREF_VDD_REF_NC_OFF   0x00
 
#define DCMOTOR22_ADC_SETUP_VREF_EXT_REF_IN_OFF   0x20
 
#define DCMOTOR22_ADC_SETUP_VREF_INT_REF_NC_OFF   0x40
 
#define DCMOTOR22_ADC_SETUP_VREF_INT_REF_NC_ON   0x50
 
#define DCMOTOR22_ADC_SETUP_VREF_INT_REF_OUT_OFF   0x60
 
#define DCMOTOR22_ADC_SETUP_VREF_INT_REF_OUT_ON   0x70
 
#define DCMOTOR22_ADC_SETUP_CLK_INT   0x00
 
#define DCMOTOR22_ADC_SETUP_CLK_EXT   0x08
 
#define DCMOTOR22_ADC_SETUP_UNIPOLAR   0x00
 
#define DCMOTOR22_ADC_SETUP_BIPOLAR   0x04
 
#define DCMOTOR22_ADC_SETUP_RST_RESET   0x00
 
#define DCMOTOR22_ADC_SETUP_RST_NO_ACTION   0x02
 
#define DCMOTOR22_ADC_REG_CONFIG   0x00
 DC Motor 22 ADC config byte values.
 
#define DCMOTOR22_ADC_CONFIG_SCAN_AIN0_TO_CS0   0x00
 
#define DCMOTOR22_ADC_CONFIG_SCAN_CS0_8_TIMES   0x20
 
#define DCMOTOR22_ADC_CONFIG_SCAN_CS0   0x60
 
#define DCMOTOR22_ADC_CONFIG_CS0_AIN0   0x00
 
#define DCMOTOR22_ADC_CONFIG_CS0_AIN1   0x02
 
#define DCMOTOR22_ADC_CONFIG_DIFFERENTIAL   0x00
 
#define DCMOTOR22_ADC_CONFIG_SINGLE_ENDED   0x01
 
#define DCMOTOR22_ADC_REG_BIT_MASK   0x80
 DC Motor 22 ADC register bit mask.
 
#define DCMOTOR22_ADC_SETUP_VREF_BIT_MASK   0x70
 
#define DCMOTOR22_ADC_SETUP_CLK_BIT_MASK   0x08
 
#define DCMOTOR22_ADC_SETUP_UNI_BIP_BIT_MASK   0x04
 
#define DCMOTOR22_ADC_SETUP_RST_BIT_MASK   0x02
 
#define DCMOTOR22_ADC_CONFIG_SCAN_BIT_MASK   0x60
 
#define DCMOTOR22_ADC_CONFIG_CS0_BIT_MASK   0x02
 
#define DCMOTOR22_ADC_CONFIG_SGL_DIF_BIT_MASK   0x01
 
#define DCMOTOR22_ADC_CHANNEL_0   0
 DC Motor 22 ADC channel selection values.
 
#define DCMOTOR22_ADC_CHANNEL_1   1
 
#define DCMOTOR22_ADC_RESOLUTION   0x0FFF
 DC Motor 22 ADC calculation values.
 
#define DCMOTOR22_ADC_VREF   2.048
 
#define DCMOTOR22_ADC_DEVICE_ADDRESS   0x36
 DC Motor 22 device address setting.
 
#define DCMOTOR22_UART_DEVICE_ADDRESS_0   0x00
 
#define DCMOTOR22_UART_DEVICE_ADDRESS_1   0x01
 
#define DCMOTOR22_UART_DEVICE_ADDRESS_2   0x02
 
#define DCMOTOR22_UART_DEVICE_ADDRESS_3   0x03
 
#define DCMOTOR22_UART_DEVICE_ADDRESS_MASK   0x03
 
#define DRV_BUFFER_SIZE   200
 DC Motor 22 driver buffer size.
 
#define DCMOTOR22_MAP_MIKROBUS(cfg, mikrobus)
 MikroBUS pin mapping.
 

Enumerations

enum  dcmotor22_return_value_t { DCMOTOR22_OK = 0 , DCMOTOR22_ERROR = -1 }
 DC Motor 22 Click return value data. More...
 

Functions

void dcmotor22_cfg_setup (dcmotor22_cfg_t *cfg)
 DC Motor 22 configuration object setup function.
 
err_t dcmotor22_init (dcmotor22_t *ctx, dcmotor22_cfg_t *cfg)
 DC Motor 22 initialization function.
 
err_t dcmotor22_default_cfg (dcmotor22_t *ctx)
 DC Motor 22 default configuration function.
 
err_t dcmotor22_write_register (dcmotor22_t *ctx, uint8_t reg, uint32_t data_in)
 DC Motor 22 write register function.
 
err_t dcmotor22_read_register (dcmotor22_t *ctx, uint8_t reg, uint32_t *data_out)
 DC Motor 22 read register function.
 
err_t dcmotor22_adc_write_setup_byte (dcmotor22_t *ctx, uint8_t setup_byte)
 DC Motor 22 ADC write setup byte function.
 
err_t dcmotor22_adc_write_config_byte (dcmotor22_t *ctx, uint8_t config_byte)
 DC Motor 22 ADC write config byte function.
 
err_t dcmotor22_adc_set_channel (dcmotor22_t *ctx, uint8_t channel)
 DC Motor 22 ADC set channel function.
 
err_t dcmotor22_adc_get_voltage (dcmotor22_t *ctx, float *voltage)
 DC Motor 22 ADC get voltage function.
 
err_t dcmotor22_get_motor_current (dcmotor22_t *ctx, uint8_t motor_sel, float *current)
 DC Motor 22 get motor current function.
 
err_t dcmotor22_set_motor_pwm (dcmotor22_t *ctx, uint8_t motor_sel, int16_t pwm_duty)
 DC Motor 22 set motor pwm function.
 
void dcmotor22_enable_device (dcmotor22_t *ctx)
 DC Motor 22 enable device function.
 
void dcmotor22_disable_device (dcmotor22_t *ctx)
 DC Motor 22 disable device function.
 
void dcmotor22_reset_device (dcmotor22_t *ctx)
 DC Motor 22 reset device function.
 
void dcmotor22_set_device_address (dcmotor22_t *ctx, uint8_t addr)
 DC Motor 22 set device address function.
 
uint8_t dcmotor22_get_int_pin (dcmotor22_t *ctx)
 DC Motor 22 get int pin function.
 

Detailed Description

This file contains API for DC Motor 22 Click Driver.

Enumeration Type Documentation

◆ dcmotor22_return_value_t

DC Motor 22 Click return value data.

Predefined enum values for driver return values.

Enumerator
DCMOTOR22_OK 
DCMOTOR22_ERROR