HPM SDK
HPMicro Software Development Kit
VAD driver APIs

VAD driver APIs. More...

Data Structures

struct  vad_config
 vad config More...
 

Macros

#define VAD_EVENT_VAD   (1U << 7)
 vad event More...
 
#define VAD_EVENT_FIFO_DATA_AVAILABLE   (1U << 6)
 
#define VAD_EVENT_MEMBUF_EMPTY   (1U << 5)
 
#define VAD_EVENT_FIFO_OVERFLOW   (1U << 4)
 
#define VAD_EVENT_IIR_OVERLOAD   (1U << 3)
 
#define VAD_EVENT_IIR_OVERFLOW   (1U << 2)
 
#define VAD_EVENT_CIC_OVERLOAD_ERROR   (1U << 1)
 
#define VAD_EVENT_CIC_STA_ERROR   (1U << 0)
 

Typedefs

typedef struct vad_config vad_config_t
 vad config More...
 

Functions

static void vad_set_capture_delay (VAD_Type *ptr, uint8_t delay)
 set capture deplay cycle More...
 
static void vad_set_pdm_clock_half_div (VAD_Type *ptr, uint8_t div)
 set pdm clock hald_divider More...
 
static void vad_enable_irq (VAD_Type *ptr, uint32_t irq_mask)
 enable irq More...
 
static void vad_disable_irq (VAD_Type *ptr, uint32_t irq_mask)
 disable irq More...
 
static void vad_disable_buffer (VAD_Type *ptr)
 disable buffer More...
 
static void vad_enable_buffer (VAD_Type *ptr)
 enable buffer More...
 
static void vad_set_fifo_threshold (VAD_Type *ptr, uint8_t threshold)
 set fifo threshold More...
 
static void vad_enable_pdm_clock_out (VAD_Type *ptr)
 enable pdm clock out More...
 
static void vad_disable_pdm_clock_out (VAD_Type *ptr)
 disable pdm clock out More...
 
static void vad_set_pdm_clock_capture_level (VAD_Type *ptr, uint8_t level)
 set pdm clock polarity More...
 
static void vad_set_channel_number (VAD_Type *ptr, bool two_channels)
 set channel number More...
 
static uint32_t vad_get_status (VAD_Type *ptr)
 get status More...
 
static void vad_clear_status (VAD_Type *ptr, uint32_t mask)
 slear status More...
 
static uint32_t vad_get_data (VAD_Type *ptr)
 get data More...
 
static void vad_software_reset (VAD_Type *ptr)
 software reset More...
 
static void vad_start (VAD_Type *ptr)
 start More...
 
static void vad_stop (VAD_Type *ptr)
 stop More...
 
static bool vad_is_running (VAD_Type *ptr)
 check whether vad is running More...
 
static void vad_enable_fifo (VAD_Type *ptr)
 enable fifo More...
 
static void vad_disable_fifo (VAD_Type *ptr)
 disable fifo More...
 
static uint32_t vad_get_coef_value (VAD_Type *ptr, uint32_t index)
 get coefficient value More...
 
static void vad_set_post_scale (VAD_Type *ptr, uint8_t post_scale)
 set ouptput value post scale More...
 
static void vad_set_amplify (VAD_Type *ptr, uint16_t high, uint16_t low)
 set sampling signal amplitude limits More...
 
void vad_get_default_config (VAD_Type *ptr, vad_config_t *config)
 get default config More...
 
void vad_init (VAD_Type *ptr, vad_config_t *config)
 initialization More...
 
void vad_reset (VAD_Type *ptr)
 reset More...
 

Detailed Description

VAD driver APIs.

Macro Definition Documentation

◆ VAD_EVENT_CIC_OVERLOAD_ERROR

#define VAD_EVENT_CIC_OVERLOAD_ERROR   (1U << 1)

◆ VAD_EVENT_CIC_STA_ERROR

#define VAD_EVENT_CIC_STA_ERROR   (1U << 0)

◆ VAD_EVENT_FIFO_DATA_AVAILABLE

#define VAD_EVENT_FIFO_DATA_AVAILABLE   (1U << 6)

◆ VAD_EVENT_FIFO_OVERFLOW

#define VAD_EVENT_FIFO_OVERFLOW   (1U << 4)

◆ VAD_EVENT_IIR_OVERFLOW

#define VAD_EVENT_IIR_OVERFLOW   (1U << 2)

◆ VAD_EVENT_IIR_OVERLOAD

#define VAD_EVENT_IIR_OVERLOAD   (1U << 3)

◆ VAD_EVENT_MEMBUF_EMPTY

#define VAD_EVENT_MEMBUF_EMPTY   (1U << 5)

◆ VAD_EVENT_VAD

#define VAD_EVENT_VAD   (1U << 7)

#include <drivers/inc/hpm_vad_drv.h>

vad event

Typedef Documentation

◆ vad_config_t

typedef struct vad_config vad_config_t

#include <drivers/inc/hpm_vad_drv.h>

vad config

Function Documentation

◆ vad_clear_status()

static void vad_clear_status ( VAD_Type ptr,
uint32_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

slear status

Parameters
[in]ptrVAD base address
[in]maskstatus mask value

◆ vad_disable_buffer()

static void vad_disable_buffer ( VAD_Type ptr)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

disable buffer

Parameters
[in]ptrVAD base address

◆ vad_disable_fifo()

static void vad_disable_fifo ( VAD_Type ptr)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

disable fifo

Parameters
[in]ptrVAD base address

◆ vad_disable_irq()

static void vad_disable_irq ( VAD_Type ptr,
uint32_t  irq_mask 
)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

disable irq

Parameters
[in]ptrVAD base address
[in]irq_maskirq mask value

◆ vad_disable_pdm_clock_out()

static void vad_disable_pdm_clock_out ( VAD_Type ptr)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

disable pdm clock out

Parameters
[in]ptrVAD base address

◆ vad_enable_buffer()

static void vad_enable_buffer ( VAD_Type ptr)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

enable buffer

Parameters
[in]ptrVAD base address

◆ vad_enable_fifo()

static void vad_enable_fifo ( VAD_Type ptr)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

enable fifo

Parameters
[in]ptrVAD base address

◆ vad_enable_irq()

static void vad_enable_irq ( VAD_Type ptr,
uint32_t  irq_mask 
)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

enable irq

Parameters
[in]ptrVAD base address
[in]irq_maskirq mask value

◆ vad_enable_pdm_clock_out()

static void vad_enable_pdm_clock_out ( VAD_Type ptr)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

enable pdm clock out

Parameters
[in]ptrVAD base address

◆ vad_get_coef_value()

static uint32_t vad_get_coef_value ( VAD_Type ptr,
uint32_t  index 
)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

get coefficient value

Parameters
[in]ptrVAD base address
[in]indexcoefficient index

◆ vad_get_data()

static uint32_t vad_get_data ( VAD_Type ptr)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

get data

Parameters
[in]ptrVAD base address
Return values
OFIFOregister value

◆ vad_get_default_config()

void vad_get_default_config ( VAD_Type ptr,
vad_config_t config 
)

#include <drivers/inc/hpm_vad_drv.h>

get default config

Parameters
[in]ptrVAD base address
[out]configvad_config_t

◆ vad_get_status()

static uint32_t vad_get_status ( VAD_Type ptr)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

get status

Parameters
[in]ptrVAD base address
Return values
STregister value

◆ vad_init()

void vad_init ( VAD_Type ptr,
vad_config_t config 
)

#include <drivers/inc/hpm_vad_drv.h>

initialization

Parameters
[in]ptrVAD base address
[in]configvad_config_t

◆ vad_is_running()

static bool vad_is_running ( VAD_Type ptr)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

check whether vad is running

Parameters
[in]ptrVAD base address
Return values
trueif vad is running

◆ vad_reset()

void vad_reset ( VAD_Type ptr)

#include <drivers/inc/hpm_vad_drv.h>

reset

Parameters
[in]ptrVAD base address

◆ vad_set_amplify()

static void vad_set_amplify ( VAD_Type ptr,
uint16_t  high,
uint16_t  low 
)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

set sampling signal amplitude limits

Parameters
[in]ptrVAD base address
[in]highhigh limit
[in]lowlow limit

◆ vad_set_capture_delay()

static void vad_set_capture_delay ( VAD_Type ptr,
uint8_t  delay 
)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

set capture deplay cycle

Parameters
[in]ptrVAD base address
[in]delaydelay cycle value

◆ vad_set_channel_number()

static void vad_set_channel_number ( VAD_Type ptr,
bool  two_channels 
)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

set channel number

Parameters
[in]ptrVAD base address
[in]two_channels
  • true: set two channels
  • false: set one channel

◆ vad_set_fifo_threshold()

static void vad_set_fifo_threshold ( VAD_Type ptr,
uint8_t  threshold 
)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

set fifo threshold

Parameters
[in]ptrVAD base address
[in]thresholdfifo threshold value

◆ vad_set_pdm_clock_capture_level()

static void vad_set_pdm_clock_capture_level ( VAD_Type ptr,
uint8_t  level 
)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

set pdm clock polarity

Parameters
[in]ptrVAD base address
[in]levelclock polarity

◆ vad_set_pdm_clock_half_div()

static void vad_set_pdm_clock_half_div ( VAD_Type ptr,
uint8_t  div 
)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

set pdm clock hald_divider

Parameters
[in]ptrVAD base address
[in]divdivider value

◆ vad_set_post_scale()

static void vad_set_post_scale ( VAD_Type ptr,
uint8_t  post_scale 
)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

set ouptput value post scale

Parameters
[in]ptrVAD base address
[in]post_scalepost scale value

◆ vad_software_reset()

static void vad_software_reset ( VAD_Type ptr)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

software reset

Parameters
[in]ptrVAD base address

◆ vad_start()

static void vad_start ( VAD_Type ptr)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

start

Parameters
[in]ptrVAD base address

◆ vad_stop()

static void vad_stop ( VAD_Type ptr)
inlinestatic

#include <drivers/inc/hpm_vad_drv.h>

stop

Parameters
[in]ptrVAD base address