HPM SDK
HPMicro Software Development Kit
hpm_mmc_drv.h File Reference
#include "hpm_common.h"
#include "hpm_mmc_regs.h"

Go to the source code of this file.

Data Structures

struct  mmc_track_pos_mode_t
 
struct  mmc_track_mode_t
 
struct  mmc_pos_or_delta_pos_input_t
 
struct  mmc_coef_input_t
 
struct  mmc_coef_trig_config_t
 
struct  mmc_pos_out_t
 
struct  mmc_coef_out_t
 
struct  mmc_pred_mode_t
 
struct  mmc_pred_period_time_t
 
struct  mmc_pos_trig_t
 
struct  mmc_speed_trig_t
 

Enumerations

enum  mmc_pos_update_trigger_t {
  mmc_pos_update_by_timestamp = 0 , mmc_pos_update_by_intrgr0_rise_edge = 1 , mmc_pos_update_by_intrgr1_rise_edge = 2 , mmc_pos_update_by_outtrgr0_rise_edge = 3 ,
  mmc_pos_update_by_outtrgr1_rise_edge = 4 , mmc_pos_update_by_self_pos_thr = 5 , mmc_pos_update_by_self_speed_thr = 6
}
 
enum  mmc_pos_update_cmd_mask_t {
  mmc_pos_update_none = 0 , mmc_pos_update_position = 1 << 0 , mmc_pos_update_revolution = 1 << 1 , mmc_pos_update_speed = 1 << 2 ,
  mmc_pos_update_accel = 1 << 3 , mmc_pos_update_all = 0b1111
}
 
enum  mmc_coef_update_cmd_mask_t {
  mmc_coef_not_update = 0 , mmc_coef_p_update = 1 << 0 , mmc_coef_i_update = 1 << 1 , mmc_coef_a_update = 1 << 2 ,
  mmc_coef_update_all = 0b111
}
 
enum  mmc_track_event_t {
  mmc_track_shadow_read_done = 1 << 0 , mmc_track_init_coefs_done = 1 << 1 , mmc_track_init_pos_done = 1 << 2 , mmc_track_oosync = 1 << 4 ,
  mmc_track_idle = 1 << 5 , mmc_pred1_init_pos_done = 1 << 6 , mmc_pred0_init_pos_done = 1 << 7 , mmc_track_init_delta_pos_done = 1 << 8 ,
  mmc_track_pos_trig_valid = 1 << 9 , mmc_track_speed_trig_valid = 1 << 10
}
 
enum  mmc_pred_event_t {
  mmc_pred_idle = MMC_BR_BR_ST_IDLE_MASK , mmc_pred_init_delta_pos_done = MMC_BR_BR_ST_INI_DELTA_POS_DONE_MASK , mmc_pred_pos_trig_valid = MMC_BR_BR_ST_POS_TRG_VLD_MASK , mmc_pred_speed_trig_valid = MMC_BR_BR_ST_SPEED_TRG_VLD_MASK ,
  mmc_pred_open_loop = MMC_BR_BR_ST_OPEN_LOOP_ST_MASK
}
 
enum  mmc_pred_int_t { mmc_pred_pos_trig_valid_int = MMC_BR_BR_CTRL_POS_TRG_VALID_IE_MASK , mmc_pred_speed_trig_valid_int = MMC_BR_BR_CTRL_SPEED_TRG_VALID_IE_MASK , mmc_pred_init_delta_pos_done_int = MMC_BR_BR_CTRL_INI_DELTA_POS_DONE_IE_MASK }
 
enum  mmc_pred_reload_pos_cmd_t { mmc_pred_not_reload_pos_cmd = 0 , mmc_pred_0_reload_pos_cmd = 2 , mmc_pred_1_reload_pos_cmd = 1 , mmc_pred_both_reload_pos_cmd = 3 }
 
enum  mmc_pred_time_t { mmc_pred_by_period = 0 , mmc_pred_continuously_repeat = 1 , mmc_pred_only_once = 2 }
 

Functions

static void mmc_set_sysclk_freq (MMC_Type *base, uint32_t freq)
 MMC set frequency. More...
 
static void mmc_software_reset (MMC_Type *base)
 MMC software reset. More...
 
static void mmc_enable_module (MMC_Type *base)
 MMC module enable. More...
 
static void mmc_disable_module (MMC_Type *base)
 MMC module disable. More...
 
static void mmc_track_set_open_loop_mode (MMC_Type *base, bool open_loop)
 MMC track set loop mode. More...
 
static void mmc_track_set_adjop_mode (MMC_Type *base, bool adjop)
 MMC track set adjop mode. More...
 
static void mmc_track_enable_shadow_read (MMC_Type *base)
 MMC track request shadow read. More...
 
static void mmc_track_enable_interrupt (MMC_Type *base, uint32_t int_mask)
 MMC track enable interrupt. More...
 
static void mmc_track_disable_interrupt (MMC_Type *base, uint32_t int_mask)
 MMC track disable interrupt. More...
 
static uint32_t mmc_track_get_status (MMC_Type *base)
 MMC track get status register value. More...
 
static void mmc_track_clear_status (MMC_Type *base, uint32_t clr_mask)
 MMC track clear status flag in status register. More...
 
static void mmc_track_set_oosync_theta_threshold (MMC_Type *base, uint32_t threshold)
 MMC track set the threshold of theta for out-of-sync. More...
 
void mmc_track_config_pos_mode (MMC_Type *base, mmc_track_pos_mode_t *mode)
 MMC track config position mode. More...
 
void mmc_track_get_default_mode_config (MMC_Type *base, mmc_track_mode_t *config)
 MMC track get default mode config. More...
 
void mmc_track_config_mode (MMC_Type *base, mmc_track_mode_t *config)
 MMC track config mode. More...
 
void mmc_track_config_pos_para (MMC_Type *base, mmc_pos_or_delta_pos_input_t *para)
 MMC track config position parameter. More...
 
void mmc_track_config_delta_para (MMC_Type *base, mmc_pos_or_delta_pos_input_t *para)
 MMC track config delta parameter. More...
 
void mmc_track_config_coef_para (MMC_Type *base, mmc_coef_input_t *para)
 MMC track config coef parameter. More...
 
void mmc_track_config_position_trig (MMC_Type *base, mmc_pos_trig_t *trig)
 MMC track config position trigger. More...
 
void mmc_track_config_speed_trig (MMC_Type *base, mmc_speed_trig_t *trig)
 MMC track config speed trigger. More...
 
static void mmc_track_disable_position_trig (MMC_Type *base)
 MMC track disable position trigger. More...
 
static void mmc_track_disable_speed_trig (MMC_Type *base)
 MMC track disable speed trigger. More...
 
void mmc_track_config_coef_trig (MMC_Type *base, uint8_t index, mmc_coef_trig_config_t *config)
 MMC track config multiple coef trigger. More...
 
void mmc_track_get_result (MMC_Type *base, mmc_pos_out_t *pos_out, mmc_coef_out_t *coef_out)
 MMC track get result. More...
 
static void mmc_enable_pred (MMC_Type *base, uint8_t index)
 MMC enable predictor. More...
 
static void mmc_disable_pred (MMC_Type *base, uint8_t index)
 MMC disable predictor. More...
 
static void mmc_pred_set_open_loop_mode (MMC_Type *base, uint8_t index, bool open_loop)
 MMC predictor set loop mode. More...
 
static void mmc_pred_set_pred_time (MMC_Type *base, uint8_t index, mmc_pred_time_t time)
 MMC predictor set pred time. More...
 
static void mmc_pred_enable_interrupt (MMC_Type *base, uint8_t index, uint32_t int_mask)
 MMC pred enable interrupt. More...
 
static void mmc_pred_disable_interrupt (MMC_Type *base, uint8_t index, uint32_t int_mask)
 MMC pred disable interrupt. More...
 
static uint32_t mmc_pred_get_status (MMC_Type *base, uint8_t index)
 MMC predictor get status register value. More...
 
static void mmc_pred_clear_status (MMC_Type *base, uint8_t index, uint32_t clr_mask)
 MMC predictor clear status bit in reigster. More...
 
void mmc_pred_get_default_mode_config (MMC_Type *base, mmc_pred_mode_t *config)
 MMC predictor get default mode config. More...
 
void mmc_pred_config_mode (MMC_Type *base, uint8_t index, mmc_pred_mode_t *config)
 MMC predictor config mode. More...
 
void mmc_pred_config_pos_para (MMC_Type *base, uint8_t index, mmc_pos_or_delta_pos_input_t *para, bool req_reload)
 MMC predictor config position parameter. More...
 
static void mmc_pred_reload_pos_cmd (MMC_Type *base, mmc_pred_reload_pos_cmd_t cmd)
 MMC predictor reload position parameter cmd. More...
 
void mmc_pred_config_delta_para (MMC_Type *base, uint8_t index, mmc_pos_or_delta_pos_input_t *para)
 MMC predictor update delta parameter. More...
 
void mmc_pred_config_period_time (MMC_Type *base, uint8_t index, mmc_pred_period_time_t *time)
 MMC predictor config period time. More...
 
void mmc_pred_config_position_trig (MMC_Type *base, uint8_t index, mmc_pos_trig_t *trig)
 MMC predictor config position trigger. More...
 
void mmc_pred_config_speed_trig (MMC_Type *base, uint8_t index, mmc_speed_trig_t *trig)
 MMC predictor config speed trigger. More...
 
static void mmc_pred_disable_position_trig (MMC_Type *base, uint8_t index)
 MMC predictor disable position trigger. More...
 
static void mmc_pred_disable_speed_trig (MMC_Type *base, uint8_t index)
 MMC predictor disable speed trigger. More...
 
void mmc_pred_get_result (MMC_Type *base, uint8_t index, mmc_pos_out_t *pos_out)
 MMC predictor get result. More...
 
void mmc_get_default_pos_or_delta_pos_para (MMC_Type *base, mmc_pos_or_delta_pos_input_t *para)
 MMC predictor get result. More...