11. ADC操作指南

11.1. ADC的操作准备如下:

  • 使用SDK发布的kernel。

11.2. 操作过程

  • 插入模块:cv180x则insmod cv180x_saradc.ko, cv181x则insmod cv181x_saradc.ko。

  • 在控制台下运行ADC读写命令或者自行在内核态或者用户态编写ADC读写程序,就可以对ADC进行输入输出操作。

  • 用户层通过访问IIO接口来实现三通道,12-bit ADC的触发、采样等操作。

  • 1.5v ref参考电压。

11.3. 操作示例

11.3.1. ADC操作命令示例:

步骤1:
指定ADC通道 1~6, 此例為ADC1:

(其中ADC通道4為量測VDDC_RTC專用; ADC通道5為PWR_GPIO1; ADC通道6為PWR_VBAT_

echo 1 > /sys/class/cvi-saradc/cvi-saradc0/device/cv_saradc

步骤2:

讀出剛才選定的ADC channel值:
cat /sys/class/cvi-saradc/cvi-saradc0/device/cv_saradc

11.3.2. 用户态ADC读取操作程序示例:

用户态ADC读写操作程序示例:

步骤1: 配置待操作的ADC信道编号:

fd = open(/sys/class/cvi-saradc/cvi-saradc0/device/cv_saradc”,O_RDWR
O_NOCTTY|O_NDELAY));
If (fd < 0)
   printf("open adc err!\\n");
write(fd, “1”, 1);

步骤2: 读取ADC量测值:

char buffer[512];
int len = 0;
int adc_value = 0;

len = read(fd, buffer, 10);
if (len != 0) {
   adc_value= atoi(buffer);
   printf("adc value is %d\\n",adc_alue);
}
close(fd);