GPADC - 模数转换模块
模块介绍
GPADC 是 12bit 采集精度的模数转换模块,支持 4 路通道,模拟输入范围 0-1.8v,最高采样率 1MHZ,并且支持数据比较,自校验功能,同时工作于可配置的四种工作模式:
- Single mode:在指定的通道完成一次转换并将数据放在响应数据寄存器中;
- Single-cycle mode:在指定的通道完成一个周期转换并将数据放在响应数据寄存器中;
- Continuous mode:在指定的通道持续转换并将数据放在响应数据寄存器中;
- Burst mode:边采样边转换并将数据放入 32 字节的 FIFO,支持中断控制。
一般来说 GPADC 接口用于 KEY 模块按键的读取,一般包括 VOL+、VOL-、HOME、MENU、ENTER 等等,GPADC0 用于 KEY 的电路如上图。AVCC-AP 为 1.8V 的供电,不同的按键按下,GPADC 口的电压不同,CPU 通过对这个电压的采样来确定具体是那一个按键按下。 如下图,VOL+、VOL-、MENU、ENTER、HOME对应的电压分别为 0.21V、0.41V、0.59V、0.75V、0.88V。
模块配置
其 menuconfig 的配置如下:
Kernel Setup --->
Drivers Setup --->
SoC HAL Drivers --->
GPADC devices --->
[*] enable gpadc driver
[*] enbale gpadc hal APIs Test command
源码结构
GPADC 模块源码结构如下所示:
rtos-hal/
|--hal/source/gpadc/hal_gpadc.c // hal层接口代码
|--include/hal/sunxi_hal_gpadc.h // 头文件
模块接口说明
头文件:
#include <sunxi_hal_gpadc.h>
GPADC 初始化接口
GPADC 模块初始化,主要初始化时钟,中断以及采样率配置等
int hal_gpadc_init(void)
参数:
- 无
返回值:
- 0 代表成功
- 负数代表失败
GPADC 通道配置接口
选择并配置 GPADC 某个通道
hal_gpadc_status_t hal_gpadc_channel_init(hal_gpadc_channel_t channal)
参数:
- channel:通道号
返回值:
- 0 代表成功
- 负数代表失败
GPADC 通道取消配置接口
取消 GPADC 某个通道配置
hal_gpadc_status_t hal_gpadc_channel_exit(hal_gpadc_channel_t channal)