Bouffalo SDK  1.0
Bouffalolab Software Development Kit
bflb_pwm_v2.h File Reference
#include "bflb_core.h"
Include dependency graph for bflb_pwm_v2.h:

Go to the source code of this file.

Data Structures

struct  bflb_pwm_v2_channel_config_s
 PWM channel configuration structure. More...
 
struct  bflb_pwm_v2_config_s
 PWM configuration structure. More...
 

Macros

#define PWM_CH0   0
 
#define PWM_CH1   1
 
#define PWM_CH2   2
 
#define PWM_CH3   3
 
#define PWM_V2_CH_MAX   4
 
#define PWM_POLARITY_ACTIVE_LOW   0
 
#define PWM_POLARITY_ACTIVE_HIGH   1
 
#define PWM_STATE_INACTIVE   0
 
#define PWM_STATE_ACTIVE   1
 
#define PWM_TRIG_ADC_SRC_CH0_L   0
 
#define PWM_TRIG_ADC_SRC_CH0_H   1
 
#define PWM_TRIG_ADC_SRC_CH1_L   2
 
#define PWM_TRIG_ADC_SRC_CH1_H   3
 
#define PWM_TRIG_ADC_SRC_CH2_L   4
 
#define PWM_TRIG_ADC_SRC_CH2_H   5
 
#define PWM_TRIG_ADC_SRC_CH3_L   6
 
#define PWM_TRIG_ADC_SRC_CH3_H   7
 
#define PWM_TRIG_ADC_SRC_PERIOD   8
 
#define PWM_TRIG_ADC_SRC_NONE   0xF
 
#define PWM_INTEN_CH0_L   (1 << 0)
 
#define PWM_INTEN_CH0_H   (1 << 1)
 
#define PWM_INTEN_CH1_L   (1 << 2)
 
#define PWM_INTEN_CH1_H   (1 << 3)
 
#define PWM_INTEN_CH2_L   (1 << 4)
 
#define PWM_INTEN_CH2_H   (1 << 5)
 
#define PWM_INTEN_CH3_L   (1 << 6)
 
#define PWM_INTEN_CH3_H   (1 << 7)
 
#define PWM_INTEN_PERIOD   (1 << 8)
 
#define PWM_INTEN_BRAKE   (1 << 9)
 
#define PWM_INTEN_REPT   (1 << 10)
 
#define PWM_INTSTS_CH0_L   (1 << 0)
 
#define PWM_INTSTS_CH0_H   (1 << 1)
 
#define PWM_INTSTS_CH1_L   (1 << 2)
 
#define PWM_INTSTS_CH1_H   (1 << 3)
 
#define PWM_INTSTS_CH2_L   (1 << 4)
 
#define PWM_INTSTS_CH2_H   (1 << 5)
 
#define PWM_INTSTS_CH3_L   (1 << 6)
 
#define PWM_INTSTS_CH3_H   (1 << 7)
 
#define PWM_INTSTS_PERIOD   (1 << 8)
 
#define PWM_INTSTS_BRAKE   (1 << 9)
 
#define PWM_INTSTS_REPT   (1 << 10)
 
#define PWM_INTCLR_CH0_L   (1 << 0)
 
#define PWM_INTCLR_CH0_H   (1 << 1)
 
#define PWM_INTCLR_CH1_L   (1 << 2)
 
#define PWM_INTCLR_CH1_H   (1 << 3)
 
#define PWM_INTCLR_CH2_L   (1 << 4)
 
#define PWM_INTCLR_CH2_H   (1 << 5)
 
#define PWM_INTCLR_CH3_L   (1 << 6)
 
#define PWM_INTCLR_CH3_H   (1 << 7)
 
#define PWM_INTCLR_PERIOD   (1 << 8)
 
#define PWM_INTCLR_BRAKE   (1 << 9)
 
#define PWM_INTCLR_REPT   (1 << 10)
 
#define PWM_CMD_SET_TRIG_ADC_SRC   (0x01)
 
#define PWM_CMD_SET_EXT_BRAKE_POLARITY   (0x02)
 
#define PWM_CMD_SET_EXT_BRAKE_ENABLE   (0x03)
 
#define PWM_CMD_SET_SW_BRAKE_ENABLE   (0x04)
 
#define PWM_CMD_SET_STOP_ON_REPT   (0x05)
 
#define PWM_CMD_SET_REPT_COUNT   (0x06)
 

Functions

void bflb_pwm_v2_init (struct bflb_device_s *dev, const struct bflb_pwm_v2_config_s *config)
 Initialize pwm. More...
 
void bflb_pwm_v2_deinit (struct bflb_device_s *dev)
 Deinitialize pwm. More...
 
void bflb_pwm_v2_start (struct bflb_device_s *dev)
 Start pwm output. More...
 
void bflb_pwm_v2_stop (struct bflb_device_s *dev)
 Stop pwm output. More...
 
void bflb_pwm_v2_set_period (struct bflb_device_s *dev, uint16_t period)
 Set pwm period to change pwm frequence. Frequcence(hz) = pwm source clock /div/period. More...
 
float bflb_pwm_v2_get_frequency (struct bflb_device_s *dev)
 Get pwm frequcency. More...
 
void bflb_pwm_v2_channel_init (struct bflb_device_s *dev, uint8_t ch, struct bflb_pwm_v2_channel_config_s *config)
 Config pwm channel. More...
 
void bflb_pwm_v2_channel_set_threshold (struct bflb_device_s *dev, uint8_t ch, uint16_t low_threhold, uint16_t high_threhold)
 Set pwm dutycycle. Dutycycle(%) = (high_threhold - low_threhold)/period * 100%. More...
 
void bflb_pwm_v2_channel_positive_start (struct bflb_device_s *dev, uint8_t ch)
 Start pwm positive output. More...
 
void bflb_pwm_v2_channel_negative_start (struct bflb_device_s *dev, uint8_t ch)
 Start pwm negative output. More...
 
void bflb_pwm_v2_channel_positive_stop (struct bflb_device_s *dev, uint8_t ch)
 Stop pwm positive output. More...
 
void bflb_pwm_v2_channel_negative_stop (struct bflb_device_s *dev, uint8_t ch)
 Stop pwm negative output. More...
 
void bflb_pwm_v2_int_enable (struct bflb_device_s *dev, uint32_t int_en, bool enable)
 Enable pwm interrupt. More...
 
uint32_t bflb_pwm_v2_get_intstatus (struct bflb_device_s *dev)
 Get pwm interrupt status. More...
 
void bflb_pwm_v2_int_clear (struct bflb_device_s *dev, uint32_t int_clear)
 Clear pwm interrupt status. More...
 
int bflb_pwm_v2_feature_control (struct bflb_device_s *dev, int cmd, size_t arg)
 Control pwm feature. More...