DRV_SADC

[English]

DRV_SADC API Status

API

drv_sadc_init()

drv_sadc_deinit()

drv_sadc_reg_callback()

drv_sadc_cfg_channel_div()

drv_sadc_cfg_samp_param()

drv_sadc_cfg_samp_param2()

drv_sadc_start()

drv_sadc_get_data()

drv_sadc_stop()

DRV_SADC Pin and GPIO Map

DRV_SADC API Reference

Header File

Functions

uint32_t drv_sadc_init(uint32_t dev_index)

init a sadc device.

初始化sadc设备,在使用sadc功能前需要调用它获取device instance

参数:

dev_index[in] device index, start with 0

返回值:
  • 0 – fail

  • other – success

返回:

device instance

int32_t drv_sadc_deinit(uint32_t dev_instance)

deinit a sadc device.

反初始化sadc设备,对drv_sadc_device_init()进行反向操作

参数:

dev_instance[in] return value of drv_sadc_device_init()

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

int32_t drv_sadc_reg_callback(uint32_t dev_instance, pfunc_sadc_cb_t pfn_cb)

register user callback.

参数:
  • dev_instance[in] return value of drv_sadc_device_init()

  • pfn_cb[in] user callback

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

int32_t drv_sadc_cfg_channel_div(uint32_t dev_instance, uint8_t channel, uint32_t div, uint8_t sample_interval_plus_12)

config sadc channel & clock.

参数:
  • dev_instance[in] return value of drv_sadc_device_init()

  • channel[in] 具体从哪个通道进行数据采样, 0~12

  • div[in] 分频参数,最大256

  • sample_interval_plus_12[in] 采样间隔,0:12个clock采样一次 1:13个clock采样一次 。。。

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

int32_t drv_sadc_cfg_samp_param(uint32_t dev_instance, uint8_t drop_cnt, uint8_t sum_cnt, uint8_t out_cnt)

配置sadc channel的其他参数,平均后再写入fifo.

参数:
  • dev_instance[in] return value of drv_sadc_device_init()

  • drop_cnt[in] 采样后先丢掉drop个数据,最大15个

  • sum_cnt[in] 平均多少个数据,求平均出一个数据(1/2/4/8/16)

  • out_cnt[in] 多少个数据触发中断由用户callback读取, < 32=fifo depth

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

int32_t drv_sadc_cfg_samp_param2(uint32_t dev_instance, uint8_t drop_cnt, uint8_t fifo_level)

配置sadc channel的其他参数,使用fifo的中断.

参数:
  • dev_instance[in] return value of drv_sadc_device_init()

  • drop_cnt[in] 采样后先丢掉drop个数据,最大15个

  • fifo_level[in] fifo 中断的level配置 0 ~ 31

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

int32_t drv_sadc_start(uint32_t dev_instance, uint32_t vref_sel)

start sadc, start to sample.

参数:
  • dev_instance[in] return value of drv_sadc_device_init()

  • vref_sel[in] 0: 绝对电压 1:gpio测试相对电压(0~Vsys)

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

uint16_t drv_sadc_get_data(uint32_t dev_instance)

get sample data from sadc FIFO.

参数:

dev_instance[in] return value of drv_sadc_device_init()

返回:

sample data(16bit)

int32_t drv_sadc_stop(uint32_t dev_instance)

force stop sadc.

一般情况下不会调用到该接口

参数:

dev_instance[in] return value of drv_sadc_device_init()

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

Type Definitions

typedef void (*pfunc_sadc_cb_t)(uint32_t dev_instance, uint8_t channel, uint8_t data_cnt)