HPM SDK
HPMicro Software Development Kit
hpm_hall_drv.h File Reference
#include "hpm_common.h"
#include "hpm_hall_regs.h"

Go to the source code of this file.

Macros

#define HALL_EVENT_WDOG_FLAG_MASK   (1U << 31)
 
#define HALL_EVENT_PHUPT_FLAG_MASK   (1U << 30)
 
#define HALL_EVENT_PHPRE_FLAG_MASK   (1U << 29)
 
#define HALL_EVENT_PHDLYEN_FLAG_MASK   (1U << 28)
 
#define HALL_EVENT_U_FLAG_MASK   (1U << 23)
 
#define HALL_EVENT_V_FLAG_MASK   (1U << 22)
 
#define HALL_EVENT_W_FLAG_MASK   (1U << 21)
 
#define HALL_UVW_STAT_MASK   (HALL_COUNT_U_USTAT_MASK | HALL_COUNT_U_VSTAT_MASK | HALL_COUNT_U_WSTAT_MASK)
 
#define HALL_U_STAT_MASK   HALL_COUNT_U_USTAT_MASK
 
#define HALL_V_STAT_MASK   HALL_COUNT_U_VSTAT_MASK
 
#define HALL_W_STAT_MASK   HALL_COUNT_U_WSTAT_MASK
 

Typedefs

typedef enum hall_count_delay_start hall_count_delay_start_t
 select delay start time More...
 
typedef enum hall_rotate_direction hall_rotate_direction_t
 return value of motor movement direction More...
 
typedef enum hall_counter_type hall_counter_type_t
 counter type config More...
 

Enumerations

enum  hall_count_delay_start { hall_count_delay_start_after_uvw_toggle = 0 , hall_count_delay_start_after_pre_trigger = 1 }
 select delay start time More...
 
enum  hall_rotate_direction { hall_rotate_direction_forward = 0 , hall_rotate_direction_reversed = 1 }
 return value of motor movement direction More...
 
enum  hall_counter_type { hall_counter_type_w = 0 , hall_counter_type_v = 1 , hall_counter_type_u = 2 , hall_counter_type_timer = 3 }
 counter type config More...
 

Functions

static void hall_wdog_enable (HALL_Type *hall_x, uint32_t timeout)
 enable the watchdog More...
 
static void hall_wdog_disable (HALL_Type *hall_x)
 disable the watchdog More...
 
static void hall_phase_config (HALL_Type *hall_x, uint32_t delay_count, hall_count_delay_start_t delay_start)
 delay a certain number of clock cycles after receiving a trigger event More...
 
static void hall_pre_uvw_transition_config (HALL_Type *hall_x, uint32_t counter)
 early trigger configuration More...
 
static void hall_trigger_output_event_enable (HALL_Type *hall_x, uint32_t event_mask)
 enable trigger event mask More...
 
static void hall_trigger_output_event_disable (HALL_Type *hall_x, uint32_t event_mask)
 disable trigger event mask More...
 
static void hall_load_read_trigger_event_enable (HALL_Type *hall_x, uint32_t event_mask)
 enable hardware read event More...
 
static void hall_load_read_trigger_event_disable (HALL_Type *hall_x, uint32_t event_mask)
 disable hardware read event More...
 
static void hall_clear_status (HALL_Type *hall_x, uint32_t mask)
 clear status register More...
 
static uint32_t hall_get_status (HALL_Type *hall_x)
 get status register More...
 
static void hall_irq_enable (HALL_Type *hall_x, uint32_t mask)
 enable irq More...
 
static void hall_irq_disable (HALL_Type *hall_x, uint32_t mask)
 disable irq More...
 
static void hall_dma_request_enable (HALL_Type *hall_x, uint32_t mask)
 enable dma request More...
 
static void hall_dma_request_disable (HALL_Type *hall_x, uint32_t mask)
 disable dma request More...
 
static hall_rotate_direction_t hall_get_rotate_direction (HALL_Type *hall_x)
 get rotate direction More...
 
static uint32_t hall_get_current_uvw_stat (HALL_Type *hall_x)
 get three bits indicate UVW state More...
 
static uint32_t hall_get_current_count (HALL_Type *hall_x, hall_counter_type_t type)
 get current count U or V or W More...
 
static uint32_t hall_get_count_on_read_event (HALL_Type *hall_x, hall_counter_type_t type)
 get count when read event generated More...
 
static uint32_t hall_get_count_on_snap0_event (HALL_Type *hall_x, hall_counter_type_t type)
 get count when snap0 event generated More...
 
static uint32_t hall_get_count_on_snap1_event (HALL_Type *hall_x, hall_counter_type_t type)
 get count when snap1 event generated More...
 
static uint32_t hall_get_u_history0 (HALL_Type *hall_x)
 get the history count of u when u signal transition from 0 to 1 More...
 
static uint32_t hall_get_u_history1 (HALL_Type *hall_x)
 get the history count of u when u signal transition from 1 to 0 More...
 
static uint32_t hall_get_v_history0 (HALL_Type *hall_x)
 get the history count of v when v signal transition from 0 to 1 More...
 
static uint32_t hall_get_v_history1 (HALL_Type *hall_x)
 get the history count of v when v signal transition from 1 to 0 More...
 
static uint32_t hall_get_w_history0 (HALL_Type *hall_x)
 get the history count of w when w signal transition from 0 to 1 More...
 
static uint32_t hall_get_w_history1 (HALL_Type *hall_x)
 get the history count of w when w signal transition from 1 to 0 More...
 
static void hall_load_count_to_read_registers (HALL_Type *hall_x)
 load ucnt, vcnt, wcnt and tmrcnt into their read registers. Hardware auto-clear; More...
 
static void hall_snap_enable (HALL_Type *hall_x)
 enable hall snap More...
 
static void hall_snap_disable (HALL_Type *hall_x)
 disable hall snap More...
 
static void hall_counter_reset_assert (HALL_Type *hall_x)
 reset all counter and related snapshots assert More...
 
static void hall_counter_reset_release (HALL_Type *hall_x)
 reset all counter and related snapshots release More...