0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【NuMaker-M2354试用】_adc测试分享

冬至配饺子 来源:xiaogs 作者:xiaogs 2023-08-02 17:23 次阅读

1 ADC简介

模拟数字转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号电子元件。

通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。

2 测评硬件

NuMaker-M2354 开发板的板载资源很丰富,IO接口都已引出,而且板载自带烧录器。本次测评,我测试了ADC0 CH6的ADC功能。

3 快速上手

按照官方文档进行操作,我们就能顺利的将官方提供的测试程序跑起来;

4 工程裁剪

官方提供的代码将所有的功能都开启了,而本次我需要测试的仅仅是ADC,所以我们还需要对工程进行裁剪:

step1:
使用ENV,进入./rt-thread/bsp/nuvoton/numaker-m2354 目录

step2:
执行以下代码:

menuconfig

step3:

1.jpg

在 Hardware Drivers config -> On chip Peripheral Drivers下将无关项取消

1.jpg

1 ADC简介
模拟数字转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。

2 测评硬件

NuMaker-M2354 开发板的板载资源很丰富,IO接口都已引出,而且板载自带烧录器。本次测评,我测试了ADC0 CH6的ADC功能。

3 快速上手
RT-Thread已经很贴心的将新唐 NuMaker-M2354这块开发板加入RT-Thread官方的文档中心:新唐NuMaker-M2354
按照官方文档进行操作,我们就能顺利的将官方提供的测试程序跑起来;

4 工程裁剪
官方提供的代码将所有的功能都开启了,而本次我需要测试的仅仅是ADC,所以我们还需要对工程进行裁剪:

step1:
使用ENV,进入./rt-thread/bsp/nuvoton/numaker-m2354 目录

step2:
执行以下代码:

menuconfig
step3:

在 Hardware Drivers config -> On chip Peripheral Drivers下将无关项取消

step4
然后执行以下代码进行构建工程,因为本人使用的是keil5进行开发:

scans --target=mdk5 -s

5 代码开发

打开工程文件,执行编译

1.jpg

没有报错,然后我们创建一个adc_test.c文件,编写以下代码:

#include
#include
static int adc_test(int argc,char *argv[])
{
rt_adc_device_t adc_device;
rt_uint32_t adc_value, voltage;
rt_err_t result = RT_EOK;
//!<查找设备
adc_device = (rt_adc_device_t)rt_device_find("eadc0");
if(adc_device == RT_NULL)
{
rt_kprintf("adc_test can't find eadc0!n");
return RT_ERROR;
}
//!<使能设备
result = rt_adc_enable(adc_device, atoi(argv[1]));
//!<读取ADC值
adc_value = rt_adc_read(adc_device, atoi(argv[1]));
//!<打印ADC值
rt_kprintf("the adc_value is :%d n", adc_value);
//!<对ADC值进行转换
voltage = adc_value * 300 / ( 1 << 12 );
//!<打印转换后的ADC值
rt_kprintf("the voltage is :%d.%02d n", voltage / 100, voltage % 100);
//!<释放设备
result = rt_adc_disable(adc_device, atoi(argv[1]));
return result;
}
//!<注册到 msh 中
MSH_CMD_EXPORT(adc_test,adc test);

编译后,烧录到板块上,使用串口工具

1.jpg

输入adc_test 1:

msh >adc_test 1
the adc_value is :1
the voltage is :0.00
msh >

查看开发板的引脚图:

1.jpg

可以看到A5~A0对应的是ADC0_CH6~ADC0_CH11,我们使用杜邦线,将A5接到GND:

1.jpg

由于时间有限,只进行了简单测试,后续有时间再进行深入的测试。官方已经将ADC设备驱动写好,真正的拿来即用,降低了开发难度和开发成本。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ADC驱动器
    +关注

    关注

    0

    文章

    35

    浏览量

    13934
  • 烧录器
    +关注

    关注

    3

    文章

    184

    浏览量

    26279
  • GND
    GND
    +关注

    关注

    2

    文章

    539

    浏览量

    38696
  • 模拟数字转换器

    关注

    1

    文章

    74

    浏览量

    12471
  • RT-Thread
    +关注

    关注

    31

    文章

    1285

    浏览量

    40078
收藏 人收藏

    评论

    相关推荐

    NuMaker-M2354开发板试用资料汇总

    转 TTL 2.测试任务 本次测试任务为 NuMaker-M2354 USCI 模块今天抽空驱动了收拾的一款兼容 UNO 接口的 SPI 屏幕~LCD 分辨率 240X320,驱动芯片
    发表于 03-16 15:27

    基于NuMaker-2354开发板的UART1与GPIO测评资料推荐

    1、NuMaker-M2354 UART1测评测试任务本次NuMaker-M2354试用的任务为UART,第一次接触新塘的开发板,发现新塘的芯片功能还是很强大的,由于时间关系我只简单
    发表于 06-14 17:18

    NuMaker-M2354开发板的正交编码器QEI模块进行测试

    任务为新唐 NuMaker-M2354正交编码器QEI模块3.资源介绍翻阅新唐M2354数据手册查看新唐开发板原理图及数据手册,PD10、PD11、PD12空闲,配置为QEI0_B、QEI0_A
    发表于 06-29 11:23

    电量芯片SH366006 I2C接口测试及其程序配置流程

    :rt-thread-v4.0.4二、测试任务本次测试任务:新唐 NuMaker-M2354嵌入MCU I2C接口及Uart通信应用三、硬件资源1.新唐NuMaker-M2354嵌入式
    发表于 07-29 11:33

    NuMaker-M2354开发板之CRYPTO硬件密码加速器测评

    1、【NuMaker-M2354试用M2354测评_CRYPTO  本次的任务是CRYPTO, 就是硬件密码加速器(Cryptographic Accelerator) 。  对应
    发表于 10-20 14:19

    NuMaker-M2354开发板之ECAP详解

    进行周期为5ms,PWM脉冲宽度值为2.5ms、3ms以及周期为7ms,PWM脉冲宽度值为3ms的脉冲输出  工程裁剪及修改  这里请参考我的上一篇文章【NuMaker-M2354试用ADC
    发表于 10-20 14:40

    NuMaker-M2354 ADC测试分享

    文件夹下除了libraries和numaker-m2354其它都删除了,再然后将libraries下除了m2354和nu_packages以外的都删了。再然后回到numaker-m2354文件夹开始使用
    发表于 10-20 14:46

    基于NuMaker-M2354板的adc测试分享

    1、NuMaker-M2354adc测试分享  模拟数字转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。通常的模数转换器是将一个输入电压信号转换为
    发表于 12-22 17:35

    基于NuMaker-M2354板的CAN总线通信功能评测

    、功能模块的硬件介绍使用了TJA1050作为CAN收发器,具体硬件介绍详见我的另一篇文章【NuMaker-M2354试用】CAN总线开发与测试分享【硬件篇】硬件连接如下图所示:目前,RTT中未开启CAN功能
    发表于 12-29 17:39

    NuMaker-IoT-M2354用户手册

    NuMaker-IoT-M2354用户手册
    发表于 11-08 19:27 0次下载
    <b class='flag-5'>NuMaker-IoT-M2354</b>用户手册

    NuMaker-IoT-M2354原理图、PCB和Gerber文件

    NuMaker-IoT-M2354原理图、PCB和Gerber文件
    发表于 11-08 19:27 0次下载
    <b class='flag-5'>NuMaker-IoT-M2354</b>原理图、PCB和Gerber文件

    NuMaker-M2354用户手册

    NuMaker-M2354用户手册
    发表于 11-08 19:27 1次下载
    <b class='flag-5'>NuMaker-M2354</b>用户手册

    NuMaker-M2354原理图、PCB和Gerber文件

    NuMaker-M2354原理图、PCB和Gerber文件
    发表于 11-08 19:27 2次下载
    <b class='flag-5'>NuMaker-M2354</b>原理图、PCB和Gerber文件

    NuMaker-M2354试用】microSD实验

    测试M2354的硬件RTC,开启RTC功能,运用RT-Thread提供的bsp及库函数,实现一个RTC功能。
    的头像 发表于 08-02 17:18 912次阅读
    【<b class='flag-5'>NuMaker-M2354</b><b class='flag-5'>试用</b>】microSD实验

    NuMaker-M2354试用】spi测试分享

    SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线
    发表于 08-02 17:28 676次阅读
    【<b class='flag-5'>NuMaker-M2354</b><b class='flag-5'>试用</b>】spi<b class='flag-5'>测试</b>分享