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

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

3天内不再提示

【Renesas RA6M4开发板之Arduino六路ADC采样】

RT-Thread单片机学习 来源:RT-Thread单片机学习 作者:RT-Thread单片机学习 2023-01-13 15:50 次阅读

1.0 ADC简介

ADC(Analog-to-Digital Converter) 指模数转换器。是指将连续变化的模拟信号转换为离散的数字信号的器件。真实世界的模拟信号,例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的数字形式。模数转换器可以实现这个功能,在各种不同的产品中都可以找到它的身影。与之相对应的 DAC(Digital-to-Analog Converter),它是 ADC 模数转换的逆向过程。ADC 最早用于对无线信号向数字信号转换。如电视信号,长短播电台发射接收等。

1.1 I/O 设备模型框架

如下图所示模数转换一般要经过采样、保持和量化、编码这几个步骤。在实际电路中,有些过程是合并进行的,如采样和保持,量化和编码在转换过程中是同时实现的。

在这里插入图片描述

1.2 访问 ADC 设备

应用程序通过 RT-Thread 提供的 ADC 设备管理接口来访问 ADC 硬件,相关接口如下所示:

函数 描述
rt_device_find() 根据 ADC 设备名称查找设备获取设备句柄
rt_adc_enable() 使能 ADC 设备
rt_adc_read() 读取 ADC 设备数据
rt_adc_disable() 关闭 ADC 设备

2. RT-theard配置

2.1 硬件需求

实现功能:

板载Arduino拓展口六处模拟信号读取。

1、RA6M4开发板

在这里插入图片描述

2、USB下载线,ch340串口和附带2根母母线,rx---p613;tx---p614

在这里插入图片描述

实验中J13六处模拟信号需要焊接插针,方便调试

2.2 软件配置

Renesas RA6M4开发板环境配置参照:【基于 RT-Thread Studio的CPK-RA6M4 开发板环境搭建】

1、新建项目RA6M4-ADC工程

在这里插入图片描述

2、在RT-theard Setting 硬件下开启ADC,使能ADC0

在这里插入图片描述

3、打开RA Smart Congigurator,在Stacks中New Stack添加r_adc

在这里插入图片描述

4、在Property的Module的Channel中勾选Channel0~5

在这里插入图片描述5、确认端口一一对应P000~P005

在这里插入图片描述

6、然后Generate Project Content 同步更新刚刚配置的文件

在这里插入图片描述

图形化配置已经完成,接下来配置相关代码

3. 代码分析

在src文件下新建test_adc.c和test_adc.h文件,其他不变。

在这里插入图片描述

test_adc.c

/*
 * Copyright (c) 2006-2021, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2022-07-11     Asus       the first version
 */

#include 
#include 
#define ADC_NAME        "adc0"  /* ADC 设 备 名 称 */
#define ADC_CHANNEL       6     /* ADC 通 道个数 */
#define REFER_VOLTAGE    330    /* 参 考 电 压 3.3V,数 据 精 度 乘 以100保 留2位 小 数
*/
#define CONVERT_BITS (1 << 12) /* 转 换 位 数 为12位 */
static int adc_sample(int argc, char *argv[])
{
    rt_adc_device_t adc_dev;
    rt_uint32_t value, vol;
    rt_err_t ret = RT_EOK;
    /* 查 找 设 备 */
    adc_dev = (rt_adc_device_t)rt_device_find(ADC_NAME);
    if (adc_dev == RT_NULL)
    {
        rt_kprintf("adc sample run failed! can't find %s device!
", ADC_NAME);
        return RT_ERROR;
    }
    for (int var = 0; var < ADC_CHANNEL; ++var) {
        /* 使 能 设 备 */
        ret = rt_adc_enable(adc_dev, var);
        /* 读 取 采 样 值 */
        value = rt_adc_read(adc_dev, var);
        rt_kprintf("the value is :%d 
", value);
        /* 转 换 为 对 应 电 压 值 */
        vol = value * REFER_VOLTAGE / CONVERT_BITS;
        rt_kprintf("the voltage is :%d.%02d 
", vol / 100, vol % 100);
        /* 关 闭 通 道 */
        ret = rt_adc_disable(adc_dev, var);
    }
    return ret;
}
/* 导 出 到 msh 命 令 列 表 中 */
MSH_CMD_EXPORT(adc_sample, adc voltage convert sample);

test_adc.h

/*
 * Copyright (c) 2006-2021, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2022-07-11     Asus       the first version
 */
#ifndef TEST_ADC_H_
#define TEST_ADC_H_

static int adc_sample(int argc, char *argv[]);

#endif /* TEST_ADC_H_ */

保存完是灰色,没有保存是蓝色。

adc_sample导 出 到 msh 命 令 列 表 中,采样1次

4. 下载验证

1、编译重构

在这里插入图片描述

编译成功

2、下载程序

在这里插入图片描述

下载成功

3、CMD串口调试

在这里插入图片描述

然后板载复位,输入:adc_sample

效果如下

在这里插入图片描述

这样我们就可以天马行空啦!

审核编辑:汤梓红

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

    关注

    98

    文章

    6500

    浏览量

    544717
  • Renesas
    +关注

    关注

    0

    文章

    1757

    浏览量

    22773
  • 开发板
    +关注

    关注

    25

    文章

    5057

    浏览量

    97519
  • Arduino
    +关注

    关注

    188

    文章

    6470

    浏览量

    187135
  • RA6M4
    +关注

    关注

    0

    文章

    51

    浏览量

    457
收藏 人收藏

    评论

    相关推荐

    开发板评测】Renesas RA6M4开发板ESP8266_AT

    串口也是比较常用的外设,应用也比较简单,具体的外设功能描述也不多讲什么了。下面只讲如何使用CPK-RA6M4开发板通过串口连接esp8266(esp-01s)使用AT命令联网。 评测所需要的环境
    的头像 发表于 12-30 12:35 2390次阅读
    【<b class='flag-5'>开发板</b>评测】<b class='flag-5'>Renesas</b> <b class='flag-5'>RA6M4</b><b class='flag-5'>开发板</b><b class='flag-5'>之</b>ESP8266_AT

    Renesas RA6M4开发板I2C(模拟)驱动ssd1306 OLED屏幕】

    Renesas RA6M4开发板I2C(模拟)驱动ssd1306 OLED屏幕】
    的头像 发表于 01-11 09:34 4554次阅读
    【<b class='flag-5'>Renesas</b> <b class='flag-5'>RA6M4</b><b class='flag-5'>开发板</b><b class='flag-5'>之</b>I2C(模拟)驱动ssd1306 OLED屏幕】

    Renesas RA6M4开发板I2C读取BMP180气压温度】

    本篇通过Renesas RA6M4开发板采用I2C读取BMP180传感器的气压温度示例程序演示。
    的头像 发表于 01-16 09:29 4018次阅读
    【<b class='flag-5'>Renesas</b> <b class='flag-5'>RA6M4</b><b class='flag-5'>开发板</b><b class='flag-5'>之</b>I2C读取BMP180气压温度】

    如何对Renesas RA6M4开发板的FLASH模块进行测评呢

    硬件部分本次测评的板子为基于瑞萨 RA6M4 MCU 开发的 CPK-RA6M4 MCU 评估。支持 TrustZone®的 200 MHz Arm® Cortex®-
    发表于 04-01 16:54

    基于RT-Thread Studio的CPK-RA6M4开发板环境搭建方案推荐

    1、基于RT-Thread Studio的CPK-RA6M4开发板环境搭建CPK-RA6M4 开发板特点基于瑞萨RA6M4 MCU
    发表于 07-14 17:45

    Renesas RA6M4开发板Arduino六路ADC采样分析

    如下所示:2RT-theard配置2.1 硬件需求实现功能:板载Arduino拓展口处模拟信号读取。1、RA6M4开发板2、USB下载线,ch340串口和附带2根母母线,rx—-p6
    发表于 07-20 11:25

    Renesas CPK-RA6M4开发板SDIO模块评测

    首先感谢RT-Thread和Renesas给我这次评测的机会,很荣幸成为本次评测的一员。本次评测的开发板Renesas的CPK-RA6M4开发板
    发表于 07-21 11:14

    Renesas RA6M4开发板USB-H评测活动

    1、Renesas RA6M4开发板USB-H评测  这次是第二次接触这块开发板了,但是还是第一次仔细观察这块
    发表于 11-22 16:08

    开发板评测】Renesas RA6M4开发板FLASH

    硬件部分 本次测评的板子为基于瑞萨RA6M4 MCU开发的 CPK-RA6M4 MCU 评估。 ● 支持 TrustZone   的200 MHz Arm Cortex -
    的头像 发表于 12-16 18:25 1526次阅读

    开发板评测】Renesas RA6M4开发板CAN

    介绍 通过阅读用户手册,我们可以了解到RA6M4 MCU具有丰富的外设如IIC、SPI、CAN、USB等(如下图)。在此次测评中我们暂且只关心CAN的使用。 国际惯例先看说明书,打开《开发板用户手册》认真研读,通篇看完没有关于CAN总线的介绍,很明显此
    的头像 发表于 12-20 12:10 1488次阅读

    开发板评测】Renesas RA6M4开发板SDIO(SDHI)

    本次评测的开发板Renesas的CPK-RA6M4开发板,它是一款Renesas官方基于RA6M4
    的头像 发表于 12-27 13:15 2515次阅读

    基于RT-Thread Studio的CPK-RA6M4开发板环境搭建

    基于瑞萨RA6M4 MCU开发的CPK-RA6M4 MCU评估 ,通过 灵活配置软件包和IDE,可帮助用户对RA6M4 MCU 群组的特性
    的头像 发表于 01-10 14:56 1341次阅读
    基于RT-Thread Studio的CPK-<b class='flag-5'>RA6M4</b><b class='flag-5'>开发板</b>环境搭建

    Renesas RA6M4开发板I2C读取mpu6050】

    本篇通过Renesas RA6M4开发板采用I2C读取mpu6050传感器的角加速度,角速度和温度示例程序演示。
    的头像 发表于 01-17 09:07 7749次阅读
    【<b class='flag-5'>Renesas</b> <b class='flag-5'>RA6M4</b><b class='flag-5'>开发板</b><b class='flag-5'>之</b>I2C读取mpu6050】

    Renesas RA6M4开发板DHT11温湿度读取】

    本篇通过Renesas RA6M4开发板DHT11温湿度读取示例程序演示。
    的头像 发表于 01-18 17:18 1692次阅读
    【<b class='flag-5'>Renesas</b> <b class='flag-5'>RA6M4</b><b class='flag-5'>开发板</b><b class='flag-5'>之</b>DHT11温湿度读取】

    RA6M4 组 数据表

    RA6M4 组 数据表
    发表于 06-30 18:42 0次下载
    <b class='flag-5'>RA6M4</b> 组 数据表