Edit online

接口设计

Driver 层接口设计

以下接口是 PSADC 设备驱动框架的标准接口。
struct rt_adc_ops
{
    rt_err_t (*enabled)(struct rt_adc_device *device, rt_uint32_t channel, rt_bool_t enabled);
    rt_err_t (*convert)(struct rt_adc_device *device, rt_uint32_t channel, rt_uint32_t *value);
    rt_uint8_t (*get_resolution)(struct rt_adc_device *device);
    rt_int16_t (*get_vref) (struct rt_adc_device *device);
};

其中的 get_vref()暂未支持。

1. drv_psadc_enabled
函数原型 rt_err_t drv_psadc_enabled(struct rt_adc_device *dev, rt_uint32_t ch, rt_bool_t enabled)
功能说明 使能一个 ADC 通道
参数定义 dev - 指向 ADC 设备 ch - 指定 ADC 通道的通道编号 enabled - 使能
返回值 0,成功; < 0,失败
注意事项 -
2. drv_psadc_convert
函数原型 rt_err_t drv_psadc_convert(struct rt_adc_device *dev, rt_uint32_t ch, rt_uint32_t *value)
功能说明 读取一个 ADC 通道的当前数据
参数定义 dev - 指向 ADC 设备 ch - 指定 ADC 通道的通道编号 value - 用于保存返回的 ADC 数据
返回值 0,成功; < 0,失败
注意事项 -
3. drv_psadc_resolution
函数原型 rt_err_t drv_psadc_resolution(struct rt_adc_device *dev)
功能说明 获取 PSADC 控制器的采样精度
参数定义 dev - 指向 ADC 设备
返回值 12,表示 12bit 的采样精度
注意事项 -

HAL 层接口设计

HAL 层的函数接口声明存放在 hal_psadc.h 中,主要接口有:
void hal_psadc_enable(int enable);
void hal_psadc_single_queue_mode(int enable);
void hal_psadc_qc_irq_enable(int enable);
int hal_psadc_ch_init(struct aic_psadc_ch *chan, u32 pclk);
irqreturn_t hal_psadc_isr(int irq, void *arg);
int hal_psadc_read(struct aic_psadc_ch *chan, u32 *val, u32 timeout);
struct hal_psadc_ch *hal_psadc_ch_is_valid(u32 ch);
void hal_psadc_set_ch_num(u32 num);
void hal_psadc_status_show(struct aic_psadc_ch *chan);