前言
根据测评计划,当前继续板子的外设测试,本次测试的是ADC功能,使用外部电源给芯片引脚供电。
硬件设计
HDG2L-IOT处理器引出8路12bits ADC模拟采集通道,位于扩展接口[J25]的bit3~10。
设置外部电源电压,板子芯片ADC采集范围为0~1.8V,需注意输入电压,使用芯片的ADC通道1进行测试,设置输入电压为1.324V,电流为0.3A,硬件连接:
软件设计
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/wait.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int channel,times;
char cmd[128]={0};
FILE *stream = NULL;
char adc_v[1024] = {0};
if (argc != 2)
{
fprintf(stderr, "usage:adc_test channel\n");
return -1;
}
channel = atoi(argv[1]);
if ( channel < 0 || channel > 7 )
{
fprintf(stderr, "channel must be 0 ~ 7\n");
return -1;
}
snprintf(cmd, sizeof(cmd),"cat /sys/bus/iio/devices/iio\:device0/in_voltage%d_raw",channel);
for(times=0;times<100;times++)
{
stream = popen(cmd,"r");
fread(adc_v,1,sizeof(adc_v),stream);
pclose(stream);
printf("adc_channel%d: %s",channel,adc_v);
sleep(1);
}
return 0;
}
编译:
生成可执行文件:
通过SSH将可执行文件加载到开发中
添加可执行文件权限:
读取ADC的采样值:
采样值计算:
总结
ADC测试已经完成,和万用表对比了下,如下所示:
|