0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【Renesas RA6M4開發(fā)板之Arduino六路ADC采樣】

RT-Thread單片機(jī)學(xué)習(xí) ? 來(lái)源:RT-Thread單片機(jī)學(xué)習(xí) ? 作者:RT-Thread單片機(jī)學(xué)習(xí) ? 2023-01-13 15:50 ? 次閱讀

1.0 ADC簡(jiǎn)介

ADC(Analog-to-Digital Converter) 指模數(shù)轉(zhuǎn)換器。是指將連續(xù)變化的模擬信號(hào)轉(zhuǎn)換為離散的數(shù)字信號(hào)的器件。真實(shí)世界的模擬信號(hào),例如溫度、壓力、聲音或者圖像等,需要轉(zhuǎn)換成更容易儲(chǔ)存、處理和發(fā)射的數(shù)字形式。模數(shù)轉(zhuǎn)換器可以實(shí)現(xiàn)這個(gè)功能,在各種不同的產(chǎn)品中都可以找到它的身影。與之相對(duì)應(yīng)的 DAC(Digital-to-Analog Converter),它是 ADC 模數(shù)轉(zhuǎn)換的逆向過(guò)程。ADC 最早用于對(duì)無(wú)線信號(hào)向數(shù)字信號(hào)轉(zhuǎn)換。如電視信號(hào),長(zhǎng)短播電臺(tái)發(fā)射接收等。

1.1 I/O 設(shè)備模型框架

如下圖所示模數(shù)轉(zhuǎn)換一般要經(jīng)過(guò)采樣、保持和量化、編碼這幾個(gè)步驟。在實(shí)際電路中,有些過(guò)程是合并進(jìn)行的,如采樣和保持,量化和編碼在轉(zhuǎn)換過(guò)程中是同時(shí)實(shí)現(xiàn)的。

在這里插入圖片描述

1.2 訪問(wèn) ADC 設(shè)備

應(yīng)用程序通過(guò) RT-Thread 提供的 ADC 設(shè)備管理接口來(lái)訪問(wèn) ADC 硬件,相關(guān)接口如下所示:

函數(shù) 描述
rt_device_find() 根據(jù) ADC 設(shè)備名稱查找設(shè)備獲取設(shè)備句柄
rt_adc_enable() 使能 ADC 設(shè)備
rt_adc_read() 讀取 ADC 設(shè)備數(shù)據(jù)
rt_adc_disable() 關(guān)閉 ADC 設(shè)備

2. RT-theard配置

2.1 硬件需求

實(shí)現(xiàn)功能:

板載Arduino拓展口六處模擬信號(hào)讀取。

1、RA6M4開發(fā)板

在這里插入圖片描述

2、USB下載線,ch340串口和附帶2根母母線,rx---p613;tx---p614

在這里插入圖片描述

實(shí)驗(yàn)中J13六處模擬信號(hào)需要焊接插針,方便調(diào)試

2.2 軟件配置

Renesas RA6M4開發(fā)板環(huán)境配置參照:【基于 RT-Thread Studio的CPK-RA6M4 開發(fā)板環(huán)境搭建】

1、新建項(xiàng)目RA6M4-ADC工程

在這里插入圖片描述

2、在RT-theard Setting 硬件下開啟ADC,使能ADC0

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述5、確認(rèn)端口一一對(duì)應(yīng)P000~P005

在這里插入圖片描述

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

在這里插入圖片描述

圖形化配置已經(jīng)完成,接下來(lái)配置相關(guān)代碼

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 設(shè) 備 名 稱 */
#define ADC_CHANNEL       6     /* ADC 通 道個(gè)數(shù) */
#define REFER_VOLTAGE    330    /* 參 考 電 壓 3.3V,數(shù) 據(jù) 精 度 乘 以100保 留2位 小 數(shù)
*/
#define CONVERT_BITS (1 << 12) /* 轉(zhuǎn) 換 位 數(shù) 為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;
    /* 查 找 設(shè) 備 */
    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) {
        /* 使 能 設(shè) 備 */
        ret = rt_adc_enable(adc_dev, var);
        /* 讀 取 采 樣 值 */
        value = rt_adc_read(adc_dev, var);
        rt_kprintf("the value is :%d 
", value);
        /* 轉(zhuǎn) 換 為 對(duì) 應(yīng) 電 壓 值 */
        vol = value * REFER_VOLTAGE / CONVERT_BITS;
        rt_kprintf("the voltage is :%d.%02d 
", vol / 100, vol % 100);
        /* 關(guān) 閉 通 道 */
        ret = rt_adc_disable(adc_dev, var);
    }
    return ret;
}
/* 導(dǎo) 出 到 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_ */

保存完是灰色,沒(méi)有保存是藍(lán)色。

adc_sample導(dǎo) 出 到 msh 命 令 列 表 中,采樣1次

4. 下載驗(yàn)證

1、編譯重構(gòu)

在這里插入圖片描述

編譯成功

2、下載程序

在這里插入圖片描述

下載成功

3、CMD串口調(diào)試

在這里插入圖片描述

然后板載復(fù)位,輸入:adc_sample

效果如下

在這里插入圖片描述

這樣我們就可以天馬行空啦!

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • adc
    adc
    +關(guān)注

    關(guān)注

    98

    文章

    6498

    瀏覽量

    544640
  • Renesas
    +關(guān)注

    關(guān)注

    0

    文章

    1757

    瀏覽量

    22756
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5050

    瀏覽量

    97468
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6469

    瀏覽量

    187063
  • RA6M4
    +關(guān)注

    關(guān)注

    0

    文章

    51

    瀏覽量

    450
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    開發(fā)板評(píng)測(cè)】Renesas RA6M4開發(fā)板ESP8266_AT

    串口也是比較常用的外設(shè),應(yīng)用也比較簡(jiǎn)單,具體的外設(shè)功能描述也不多講什么了。下面只講如何使用CPK-RA6M4開發(fā)板通過(guò)串口連接esp8266(esp-01s)使用AT命令聯(lián)網(wǎng)。 評(píng)測(cè)所需要的環(huán)境
    的頭像 發(fā)表于 12-30 12:35 ?2385次閱讀
    【<b class='flag-5'>開發(fā)板</b>評(píng)測(cè)】<b class='flag-5'>Renesas</b> <b class='flag-5'>RA6M4</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>之</b>ESP8266_AT

    Renesas RA6M4開發(fā)板I2C(模擬)驅(qū)動(dòng)ssd1306 OLED屏幕】

    Renesas RA6M4開發(fā)板I2C(模擬)驅(qū)動(dòng)ssd1306 OLED屏幕】
    的頭像 發(fā)表于 01-11 09:34 ?4551次閱讀
    【<b class='flag-5'>Renesas</b> <b class='flag-5'>RA6M4</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>之</b>I2C(模擬)驅(qū)動(dòng)ssd1306 OLED屏幕】

    Renesas RA6M4開發(fā)板I2C讀取BMP180氣壓溫度】

    本篇通過(guò)Renesas RA6M4開發(fā)板采用I2C讀取BMP180傳感器的氣壓溫度示例程序演示。
    的頭像 發(fā)表于 01-16 09:29 ?4009次閱讀
    【<b class='flag-5'>Renesas</b> <b class='flag-5'>RA6M4</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>之</b>I2C讀取BMP180氣壓溫度】

    如何對(duì)Renesas RA6M4開發(fā)板的FLASH模塊進(jìn)行測(cè)評(píng)呢

    硬件部分本次測(cè)評(píng)的板子為基于瑞薩 RA6M4 MCU 開發(fā)的 CPK-RA6M4 MCU 評(píng)估。支持 TrustZone?的 200 MHz Arm? Cortex?-
    發(fā)表于 04-01 16:54

    基于RT-Thread Studio的CPK-RA6M4開發(fā)板環(huán)境搭建方案推薦

    1、基于RT-Thread Studio的CPK-RA6M4開發(fā)板環(huán)境搭建CPK-RA6M4 開發(fā)板特點(diǎn)基于瑞薩RA6M4 MCU
    發(fā)表于 07-14 17:45

    Renesas RA6M4開發(fā)板Arduino六路ADC采樣分析

    如下所示:2RT-theard配置2.1 硬件需求實(shí)現(xiàn)功能:板載Arduino拓展口處模擬信號(hào)讀取。1、RA6M4開發(fā)板2、USB下載線,ch340串口和附帶2根母母線,rx—-p6
    發(fā)表于 07-20 11:25

    Renesas CPK-RA6M4開發(fā)板SDIO模塊評(píng)測(cè)

    首先感謝RT-Thread和Renesas給我這次評(píng)測(cè)的機(jī)會(huì),很榮幸成為本次評(píng)測(cè)的一員。本次評(píng)測(cè)的開發(fā)板Renesas的CPK-RA6M4開發(fā)板
    發(fā)表于 07-21 11:14

    Renesas RA6M4開發(fā)板USB-H評(píng)測(cè)活動(dòng)

    1、Renesas RA6M4開發(fā)板USB-H評(píng)測(cè)  這次是第二次接觸這塊開發(fā)板了,但是還是第一次仔細(xì)觀察這塊
    發(fā)表于 11-22 16:08

    開發(fā)板評(píng)測(cè)】Renesas RA6M4開發(fā)板FLASH

    硬件部分 本次測(cè)評(píng)的板子為基于瑞薩RA6M4 MCU開發(fā)的 CPK-RA6M4 MCU 評(píng)估。 ● 支持 TrustZone ? 的200 MHz Arm Cortex -
    的頭像 發(fā)表于 12-16 18:25 ?1523次閱讀

    開發(fā)板評(píng)測(cè)】Renesas RA6M4開發(fā)板CAN

    介紹 通過(guò)閱讀用戶手冊(cè),我們可以了解到RA6M4 MCU具有豐富的外設(shè)如IIC、SPI、CAN、USB等(如下圖)。在此次測(cè)評(píng)中我們暫且只關(guān)心CAN的使用。 國(guó)際慣例先看說(shuō)明書,打開《開發(fā)板用戶手冊(cè)》認(rèn)真研讀,通篇看完沒(méi)有關(guān)于CAN總線的介紹,很明顯此
    的頭像 發(fā)表于 12-20 12:10 ?1487次閱讀

    開發(fā)板評(píng)測(cè)】Renesas RA6M4開發(fā)板SDIO(SDHI)

    本次評(píng)測(cè)的開發(fā)板Renesas的CPK-RA6M4開發(fā)板,它是一款Renesas官方基于RA6M4
    的頭像 發(fā)表于 12-27 13:15 ?2504次閱讀

    基于RT-Thread Studio的CPK-RA6M4開發(fā)板環(huán)境搭建

    基于瑞薩RA6M4 MCU開發(fā)的CPK-RA6M4 MCU評(píng)估 ,通過(guò) 靈活配置軟件包和IDE,可幫助用戶對(duì)RA6M4 MCU 群組的特性
    的頭像 發(fā)表于 01-10 14:56 ?1338次閱讀
    基于RT-Thread Studio的CPK-<b class='flag-5'>RA6M4</b><b class='flag-5'>開發(fā)板</b>環(huán)境搭建

    Renesas RA6M4開發(fā)板I2C讀取mpu6050】

    本篇通過(guò)Renesas RA6M4開發(fā)板采用I2C讀取mpu6050傳感器的角加速度,角速度和溫度示例程序演示。
    的頭像 發(fā)表于 01-17 09:07 ?7744次閱讀
    【<b class='flag-5'>Renesas</b> <b class='flag-5'>RA6M4</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>之</b>I2C讀取mpu6050】

    Renesas RA6M4開發(fā)板DHT11溫濕度讀取】

    本篇通過(guò)Renesas RA6M4開發(fā)板DHT11溫濕度讀取示例程序演示。
    的頭像 發(fā)表于 01-18 17:18 ?1688次閱讀
    【<b class='flag-5'>Renesas</b> <b class='flag-5'>RA6M4</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>之</b>DHT11溫濕度讀取】

    RA6M4 組 數(shù)據(jù)表

    RA6M4 組 數(shù)據(jù)表
    發(fā)表于 06-30 18:42 ?0次下載
    <b class='flag-5'>RA6M4</b> 組 數(shù)據(jù)表