servo 2.0.0.0
servo.h File Reference

This file contains API for Servo Click driver. More...

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

Go to the source code of this file.

Data Structures

struct  servo_pos_and_res_t
 
struct  servo_map_t
 
struct  servo_t
 Click ctx object definition. More...
 
struct  servo_cfg_t
 Click configuration structure definition. More...
 

Macros

#define SERVO_MAP_MIKROBUS(cfg, mikrobus)
 
#define SERVO_RETVAL   uint8_t
 
#define SERVO_OK   0x00
 
#define SERVO_INIT_ERROR   0xFF
 
#define SERVO_REG_MODE_1   0x00
 
#define SERVO_REG_MODE_2   0x01
 
#define SERVO_REG_SUB_ADDRESS_1   0x02
 
#define SERVO_REG_SUB_ADDRESS_2   0x03
 
#define SERVO_REG_SUB_ADDRESS_3   0x04
 
#define SERVO_REG_ALL_CALL_ADR   0x05
 
#define SERVO_REG_MOTOR_1_ON_L   0x06
 
#define SERVO_REG_MOTOR_1_ON_H   0x07
 
#define SERVO_REG_MOTOR_1_OFF_L   0x08
 
#define SERVO_REG_MOTOR_1_OFF_H   0x09
 
#define SERVO_REG_MOTOR_2_ON_L   0x0A
 
#define SERVO_REG_MOTOR_2_ON_H   0x0B
 
#define SERVO_REG_MOTOR_2_OFF_L   0x0C
 
#define SERVO_REG_MOTOR_2_OFF_H   0x0D
 
#define SERVO_REG_MOTOR_3_ON_L   0x0E
 
#define SERVO_REG_MOTOR_3_ON_H   0x0F
 
#define SERVO_REG_MOTOR_3_OFF_L   0x10
 
#define SERVO_REG_MOTOR_3_OFF_H   0x11
 
#define SERVO_REG_MOTOR_4_ON_L   0x12
 
#define SERVO_REG_MOTOR_4_ON_H   0x13
 
#define SERVO_REG_MOTOR_4_OFF_L   0x14
 
#define SERVO_REG_MOTOR_4_OFF_H   0x15
 
#define SERVO_REG_MOTOR_5_ON_L   0x16
 
#define SERVO_REG_MOTOR_5_ON_H   0x17
 
#define SERVO_REG_MOTOR_5_OFF_L   0x18
 
#define SERVO_REG_MOTOR_5_OFF_H   0x19
 
#define SERVO_REG_MOTOR_6_ON_L   0x1A
 
#define SERVO_REG_MOTOR_6_ON_H   0x1B
 
#define SERVO_REG_MOTOR_6_OFF_L   0x1C
 
#define SERVO_REG_MOTOR_6_OFF_H   0x1D
 
#define SERVO_REG_MOTOR_7_ON_L   0x1E
 
#define SERVO_REG_MOTOR_7_ON_H   0x1F
 
#define SERVO_REG_MOTOR_7_OFF_L   0x20
 
#define SERVO_REG_MOTOR_7_OFF_H   0x21
 
#define SERVO_REG_MOTOR_8_ON_L   0x22
 
#define SERVO_REG_MOTOR_8_ON_H   0x23
 
#define SERVO_REG_MOTOR_8_OFF_L   0x24
 
#define SERVO_REG_MOTOR_8_OFF_H   0x25
 
#define SERVO_REG_MOTOR_9_ON_L   0x26
 
#define SERVO_REG_MOTOR_9_ON_H   0x27
 
#define SERVO_REG_MOTOR_9_OFF_L   0x28
 
#define SERVO_REG_MOTOR_9_OFF_H   0x29
 
#define SERVO_REG_MOTOR_10_ON_L   0x2A
 
#define SERVO_REG_MOTOR_10_ON_H   0x2B
 
#define SERVO_REG_MOTOR_10_OFF_L   0x2C
 
#define SERVO_REG_MOTOR_10_OFF_H   0x2D
 
#define SERVO_REG_MOTOR_11_ON_L   0x2E
 
#define SERVO_REG_MOTOR_11_ON_H   0x2F
 
#define SERVO_REG_MOTOR_11_OFF_L   0x30
 
#define SERVO_REG_MOTOR_11_OFF_H   0x31
 
#define SERVO_REG_MOTOR_12_ON_L   0x32
 
#define SERVO_REG_MOTOR_12_ON_H   0x33
 
#define SERVO_REG_MOTOR_12_OFF_L   0x34
 
#define SERVO_REG_MOTOR_12_OFF_H   0x35
 
#define SERVO_REG_MOTOR_13_ON_L   0x36
 
#define SERVO_REG_MOTOR_13_ON_H   0x37
 
#define SERVO_REG_MOTOR_13_OFF_L   0x38
 
#define SERVO_REG_MOTOR_13_OFF_H   0x39
 
#define SERVO_REG_MOTOR_14_ON_L   0x3A
 
#define SERVO_REG_MOTOR_14_ON_H   0x3B
 
#define SERVO_REG_MOTOR_14_OFF_L   0x3C
 
#define SERVO_REG_MOTOR_14_OFF_H   0x3D
 
#define SERVO_REG_MOTOR_15_ON_L   0x3E
 
#define SERVO_REG_MOTOR_15_ON_H   0x3F
 
#define SERVO_REG_MOTOR_15_OFF_L   0x40
 
#define SERVO_REG_MOTOR_15_OFF_H   0x41
 
#define SERVO_REG_MOTOR_16_ON_L   0x42
 
#define SERVO_REG_MOTOR_16_ON_H   0x43
 
#define SERVO_REG_MOTOR_16_OFF_L   0x44
 
#define SERVO_REG_MOTOR_16_OFF_H   0x45
 
#define SERVO_REG_ALL_MOTOR_ON_L   0xFA
 
#define SERVO_REG_ALL_MOTOR_ON_H   0xFB
 
#define SERVO_REG_ALL_MOTOR_OFF_L   0xFC
 
#define SERVO_REG_ALL_MOTOR_OFF_H   0xFD
 
#define SERVO_REG_PRE_SCALE   0xFE
 
#define SERVO_REG_TEST_MODE   0xFF
 
#define SERVO_MODE1_RESTART_ENABLE   0x01 << 7
 
#define SERVO_MODE1_RESTART_DISABLE   0x00 << 7
 
#define SERVO_MODE1_INTERNAL_CLOCK   0x00 << 6
 
#define SERVO_MODE1_EXTCLK_PIN_CLOCK   0x01 << 6
 
#define SERVO_MODE1_AUTO_INCREMENT_ENABLE   0x01 << 5
 
#define SERVO_MODE1_AUTO_INCREMENT_DISABLE   0x00 << 5
 
#define SERVO_MODE1_NORMAL_MODE   0x00 << 4
 
#define SERVO_MODE1_LOW_POWER_MODE   0x01 << 4
 
#define SERVO_MODE1_USE_SUBADR_1   0x01 << 3
 
#define SERVO_MODE1_NO_USE_SUBADR_1   0x00 << 3
 
#define SERVO_MODE1_USE_SUBADR_2   0x01 << 2
 
#define SERVO_MODE1_NO_USE_SUBADR_2   0x00 << 2
 
#define SERVO_MODE1_USE_SUBADR_3   0x01 << 1
 
#define SERVO_MODE1_NO_USE_SUBADR_3   0x00 << 1
 
#define SERVO_MODE1_USE_ALL_CALL_ADR   0x01
 
#define SERVO_MODE1_NO_USE_ALL_CALL_ADR   0x00
 
#define SERVO_MODE2_OUT_LOGIC_NOT_INVERTED   0x00 << 4
 
#define SERVO_MODE2_OUT_LOGIC_INVERTED   0x01 << 4
 
#define SERVO_MODE2_OUT_CHANGE_ON_STOP_CMD   0x00 << 3
 
#define SERVO_MODE2_OUT_CHANGE_ON_ACK_CMD   0x01 << 3
 
#define SERVO_MODE2_OPEN_DRAIN_STRUCTURE   0x00 << 2
 
#define SERVO_MODE2_TOTEM_POLE_STRUCTURE   0x01 << 2
 
#define SERVO_DEFAULT_LOW_RESOLUTION   0
 
#define SERVO_DEFAULT_HIGH_RESOLUTION   330
 
#define SERVO_GENERAL_CALL_ADR   0x00
 
#define SERVO_SOFT_RESET   0x06
 
#define SERVO_VREF_3300   3300
 
#define SERVO_VREF_5000   5000
 
#define SERVO_MOTOR_1   0x06
 
#define SERVO_MOTOR_2   0x0A
 
#define SERVO_MOTOR_3   0x0E
 
#define SERVO_MOTOR_4   0x12
 
#define SERVO_MOTOR_5   0x16
 
#define SERVO_MOTOR_6   0x1A
 
#define SERVO_MOTOR_7   0x1E
 
#define SERVO_MOTOR_8   0x22
 
#define SERVO_MOTOR_9   0x26
 
#define SERVO_MOTOR_10   0x2A
 
#define SERVO_MOTOR_11   0x2E
 
#define SERVO_MOTOR_12   0x32
 
#define SERVO_MOTOR_13   0x36
 
#define SERVO_MOTOR_14   0x3A
 
#define SERVO_MOTOR_15   0x3E
 
#define SERVO_MOTOR_16   0x42
 
#define SERVO_POSITIVE_CH0_NEGATIVE_CH1   0xA0
 
#define SERVO_POSITIVE_CH2_NEGATIVE_CH3   0xA1
 
#define SERVO_POSITIVE_CH4_NEGATIVE_CH5   0xA2
 
#define SERVO_POSITIVE_CH6_NEGATIVE_CH7   0xA3
 
#define SERVO_POSITIVE_CH8_NEGATIVE_CH9   0xA4
 
#define SERVO_POSITIVE_CH10_NEGATIVE_CH11   0xA5
 
#define SERVO_POSITIVE_CH12_NEGATIVE_CH13   0xA6
 
#define SERVO_POSITIVE_CH14_NEGATIVE_CH15   0xA7
 
#define SERVO_POSITIVE_CH1_NEGATIVE_CH0   0xA8
 
#define SERVO_POSITIVE_CH3_NEGATIVE_CH2   0xA9
 
#define SERVO_POSITIVE_CH5_NEGATIVE_CH4   0xAA
 
#define SERVO_POSITIVE_CH7_NEGATIVE_CH6   0xAB
 
#define SERVO_POSITIVE_CH9_NEGATIVE_CH8   0xAC
 
#define SERVO_POSITIVE_CH11_NEGATIVE_CH10   0xAD
 
#define SERVO_POSITIVE_CH13_NEGATIVE_CH12   0xAE
 
#define SERVO_POSITIVE_CH15_NEGATIVE_CH14   0xAF
 
#define SERVO_POSITIVE_CH0   0xB0
 
#define SERVO_POSITIVE_CH2   0xB1
 
#define SERVO_POSITIVE_CH4   0xB2
 
#define SERVO_POSITIVE_CH6   0xB3
 
#define SERVO_POSITIVE_CH8   0xB4
 
#define SERVO_POSITIVE_CH10   0xB5
 
#define SERVO_POSITIVE_CH12   0xB6
 
#define SERVO_POSITIVE_CH14   0xB7
 
#define SERVO_POSITIVE_CH1   0xB8
 
#define SERVO_POSITIVE_CH3   0xB9
 
#define SERVO_POSITIVE_CH5   0xBA
 
#define SERVO_POSITIVE_CH7   0xBB
 
#define SERVO_POSITIVE_CH9   0xBC
 
#define SERVO_POSITIVE_CH11   0xBD
 
#define SERVO_POSITIVE_CH13   0xBE
 
#define SERVO_POSITIVE_CH15   0xBF
 

Functions

void servo_cfg_setup (servo_cfg_t *cfg)
 Config Object Initialization function.
 
SERVO_RETVAL servo_init (servo_t *ctx, servo_cfg_t *cfg)
 Initialization function.
 
void servo_default_cfg (servo_t *ctx)
 Click Default Configuration function.
 
void servo_generic_write_of_pca9685 (servo_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
 Generic write function of pca9685.
 
void servo_generic_write_of_of_ltc2497 (servo_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
 Generic write function of ltc2497.
 
void servo_generic_read_of_pca9685 (servo_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
 Generic read function of pca9685.
 
void servo_generic_read_of_ltc2497 (servo_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
 Generic read function of ltc2497.
 
void servo_setting (servo_t *ctx, servo_pos_and_res_t pos_and_res)
 Setting function.
 
void servo_set_vref (servo_t *ctx, uint16_t v_ref)
 Set Vref function.
 
void servo_stop (servo_t *ctx)
 Stop function.
 
void servo_start (servo_t *ctx)
 Start function.
 
void servo_soft_reset (servo_t *ctx)
 Soft reset function.
 
void servo_sleep (servo_t *ctx)
 Sleep function.
 
void servo_set_mode (servo_t *ctx, uint8_t mode, uint8_t w_data)
 Set mode function.
 
void servo_set_position (servo_t *ctx, uint8_t motor, uint8_t position)
 Set position function.
 
void servo_set_freq (servo_t *ctx, uint16_t freq)
 Set frequency function.
 
uint32_t servo_get_channel (servo_t *ctx, uint8_t channel)
 Functions for reading adc value of current.
 
uint16_t setvo_get_current (servo_t *ctx, uint8_t channel)
 Functions for reading current in mA.
 

Detailed Description

This file contains API for Servo Click driver.