【瑞萨RA_FSP】ADC——电压采集

news2024/11/25 4:34:24

文章目录

  • 一、ADC简介
  • 二、ADC的结构框图
    • 1. 电压输入范围
    • 2. 工作模式
    • 3. 转换过程顺序
    • 4. 触发源
    • 5. ADC转换时间
    • 6. 数据寄存器
    • 7. 电压转换


一、ADC简介

ADC即模拟数字转换器,ADC英文全称(Analog-to-digital converter), 是一种用于将模拟电压的连续信号转换为离散的数字信号。就比如我们可以将我们生活中的温度、压力、声音这样的模拟信号通过ADC转化为我们可以通过单片机处理的数字信号。

RA6M5 有2个ADC单元,每个ADC单元有12位、10位、8位读取数据的格式可以选择,在单元0上有13个ADC通道,而在单元1上有16个ADC通道。 ADC单元具有三种扫描方式分别为:单次描模式、连续扫描模式和分组扫描模式, 对于RA6M5来说ADC单元具有强大的功能,具体可以通过ADC特性和ADC的结构框图中分析每个部分的功能。

RA6M5 的ADC特性如下:

  • 2 个ADC转换单元。

  • 可以进行TrustZone安全设置。

  • 支持内部温度检测,内部参考电压。

  • 逐次逼近型ADC,支持的分辨率:12-bit, 10-bit, 8-bit。

  • 转换时间短:0.4 μs/每通道(12-bit ADC、时钟PCLKC (ADCLK)等于50 MHz的条件下)。

  • 可启用A/D 数据存储缓冲区是一个环形缓冲区,由16个缓冲区组成,用于顺序存储A/D转换后的数据。

  • 自诊断在每次扫描开始时执行一次,在ADC执行生成中的三个参考电压值中选择一个A/D转换值。

二、ADC的结构框图

在这里插入图片描述

1. 电压输入范围

ADC输入范围为:VREFL- ≤ VIN ≤ VREFH+。RA6M5的参考电压是由VREFL、VREFH 、AVCC0 、AVSS0 这四个外部引脚决定,且每个单元可以设置不同的参考电压,具体可以通过设置不同通道的VREFL、VREFH进行改变。

在设计原理图的时候一般把AVSS0和VREFL接地,把AVCC0和VREFH接3V3,得到ADC的输入电压范围为:0~3.3V。 如果想让输入的电压范围变宽,可以测试负电压或者更高的正电压,可以在外部加一个电压调理电路, 把需要转换的电压抬升或者降压到0~3.3V,这样ADC就可以测量了,为了测量的准确性还可以加上磁珠进行滤波。

2. 工作模式

在ADC单元0中有多达13个模拟输入通道,而在ADC单元1中有多达16个模拟输入通道以及内部的温度传感器输出, 两个ADC单元加起来总共就拥有了29个ADC通道。
在这里插入图片描述

  • 单次扫描模式: 在单次扫描下,一次扫描一个或多个指定通道。

  • 连续扫描模式: 在连续扫描下,一个或多个指定的通道被重复扫描,直到软件设置寄存器ADCSR.ADST位为0。

  • 分组扫描模式: 将所选择的模拟输入通道上分为A组和b组,然后按组对所选择的模拟输入通道进行一次A/D转换。A、B组可独立选择扫描启动条件,可独立启动A、B组的A/D转换。

在单次扫描模式下和在连续扫描模式下,都会从最小的扫描通道开始从低到高进行A/D转换。如果开启了自诊断模式,在每次扫描开始时执行一次, 并转换三个参考电压中选择一个。每一种转换都有着它的优点和缺点,但具体使用什么模式进行ADC转换,就需要通过项目的需求需要什么样的效果来决定。

3. 转换过程顺序

有三种扫描转换模式分别为:单次扫描模式、连续扫描模式、组扫描模式。在扫描中,A/D转换是按顺序对指定通道的模拟输入进行的。

  • 单次扫描模式:

在单次扫描模式转换期间,可以通过ADST为来判断ADC是否处在工作状态,在ADC转换的期间ADST为将一直保持为1,当所有选定通道的ADST转换完成时,将自动设置为0。然后ADC将进入一个等待状态。
①当ADCSR.ADST位通过软件触发器、同步触发器输入(ELC)和异步触发器输入被置1的时候,ADC转换开始。对在ADANSA0和ADANSA1寄存器中选择的ANn通道进行A/D转换,从编号最小的n的通道开始。
②每当单个信道的A/D转换完成时,A/D转换结果都被存储在关联的A/D数据寄存器(ADDRy)中。
③当所有选定通道的A/D转换完成时,将生成一个ADC12i_ADI(i = 0,1)中断请求。

  • 连续扫描模式:

在连续扫描模式下,对指定信道的模拟输入重复执行A/D转换。 这里的ADCSR.ADST位不会自动清除,只要ADCSR.ADST位保持1时就会一直的重复步骤2、步骤3、步骤4,直到ADCSR.ADST位通过软件被置0时ADC单元转换才会停止,之后ADC单元进入等待状态。
①当ADCSR.ADST位通过软件触发器、同步触发器输入(ELC)和异步触发器输入被置1的时候,ADC转换开始。对在ADANSA0和ADANSA1寄存器中选择的ANn通道进行A/D转换,从编号最小的n的通道开始。
②每当单个信道的A/D转换完成时,A/D转换结果都被存储在关联的A/D数据寄存器(ADDRy)中。
③当所有选定通道的A/D转换完成时,将生成一个ADC12i_ADI(i = 0,1)中断请求。
④对在ADANSA0和ADANSA1寄存器中选择的ANn通道进行A/D转换,从编号最小的n的通道开始。

  • 组扫描模式

在群组扫描模式下,请选择A、B两组,分别选择A、B两组的开始扫描条件,并在不同的时间开始扫描。 另外还可以设置优先级,假设设置A组优先级高于B组优先级操作时,就可以在B组A/D转换时打断它, 使得A组进行A/D转换,而B组暂停A/D转换。
以ELC为列例子:使用GPT作为A组的触发源,并使用A组作为B组的触发源。

①当ELC0上的GPT触发ELC_ADC(A组)时,A组的ADC开始转换。
②当组A扫描完成时,将生成一个ADC12i_ADI(i = 0,1)中断。
③B组的扫描由ELC_ADC(A组)开始。
④当B组扫描完成时,如果ADCSR.GBADIE位为1时将生成一个ADC12i_GBADI(i = 0,1)中断。

4. 触发源

通道选好了,工作模式也设置好了,那么接下来就需要设置我们的触发源了。 可以设置软件来触发ADC、或者通过使用ELC进行触发、甚至还可以使用外部中断进行触发。 最终的目的是为了使得ADCSR.ADST位被置1,以至于可以使用不同的方式进行触发。

下图为可以在FSP里选择的模式:
在这里插入图片描述

5. ADC转换时间

  • ADC时钟
    ADC输入时钟(转换时钟)ADCLK由PCLKC经过分频产生,最大值是四分频50MHz,ADC允许的最大值是50MHz,当我们使用50 MHz的时候12-bit转换时间为0.4 μs。 PCLKA 和 PCLKC (ADCLK) 的分频比可以设置为 1:1, 2:1, 4:1, 8:1, 1:2, 1:4。

  • 采样时间
    在这里插入图片描述
    扫描转换时间(tSCAN)包括:扫描开始时间(tD)、断开检测辅助处理时间(tDIS)*1、自诊断A/D转换处理时间(tDIAG和tDSD)*2、A/D转换处理时间(tCONV)、扫描结束时间(tED)。

A/D转换处理时间(tCONV)由输入采样时间(tSPL)和逐次逼近转换时间(tSAM)组成。采样时间(tSPL)用于在A/D转换器中对采样和保持电路充电。 如果由于模拟输入信号源的高阻抗而没有足够的采样时间,或者如果A/ D转换时钟(ADCLK)很慢,可以使用ADSSTRn寄存器来调整采样时间。

由逐次逼近(tSAM)转换的时间如下

①12位精度需要13个ADCLK
②状态10位精度需要11个ADCLK
③状态8位精度需要9个ADCLK

选择通道数为n的单次描模式下的扫描转换时间(tSCAN)可确定为:
在这里插入图片描述
连续扫描模式下第一个周期的扫描转换时间为单次扫描减去tED的tSCAN。连续扫描模式下第二次及后续周期的扫描转换时间固定如下:
在这里插入图片描述

6. 数据寄存器

在RA6M5的ADC中的数据寄存器有很多种,用来保存不同描模式下的数据 比如:ADDRn寄存器是16位只读寄存器(n=0~15),用来存储A/D转换结果、ADTSDR寄存器用来保存内部的温度传感器数据寄存器、 ADRD寄存器是用来自动诊断数据寄存器、ADOCDR寄存器是ADC内部参考电压数据寄存器。

还可以通过一些寄存器来设置数据的格式比如: ADC转换精度选择由ADCER.ADPRC[1:0]位设置(12位、10位、8位可选)、 ADC数据寄存器格式选择位ADCER.ADRFMT位设置(左对齐或右对齐)

7. 电压转换

模拟电压经过ADC转换后,是一个12位的数字值,如果通过串口以16进制打印出来的话,可读性比较差,那么有时候我们就需要把数字电压转换成模拟电压,也可以跟实际的模拟电压(用万用表测)对比,看看转换是否准确。

一般在设计原理图的时候会把ADC的输入电压范围设定在:0~3.3v,因为ADC是12位的,那么12位满量程对应的就是3.3V,12位满量程对应的数字值是:2^12。数值0对应的就是0V。如果转换后的数值为 X ,X对应的模拟电压为Y,那么会有这么一个等式成立: 2^12 / 3.3 = X / Y,=> Y = (3.3 * X ) / 2^12。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/644349.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Delphi XE10 dxLayoutControl 控件应用指南

Delphi XE10 dxLayoutControl 控件应用指南 DevExpress VCL套件是一套非常强大的界面控件,可惜关于Delphi开发方面的说明太少,有些控件使用起来一头雾水,不知从何下手。本节详细介绍在Delphi Xe10 Seattle中如何利用dxLayoutControl 控件来做…

MMENGINE.LOGGING

MMENGINE.LOGGING 文章目录 MMENGINE.LOGGING[Print_log](https://mmengine.readthedocs.io/zh_CN/latest/api/generated/mmengine.logging.print_log.html "Print_log")[MMENGINE.LOGGING.LOGGER 源代码](https://mmengine.readthedocs.io/zh_CN/latest/_modules/mm…

Rust每日一练(Leetday0030) 合并有序数组、格雷编码、子集II

目录 88. 合并两个有序数组 Merge Sorted Array 🌟  89. 格雷编码 Gray Code 🌟🌟 90. 子集 II Subsets II 🌟🌟 🌟 每日一练刷题专栏 🌟 Rust每日一练 专栏 Golang每日一练 专栏 Py…

计算机网络-网络体系结构

目录 计算机网络的基本概念计算机网络的定义组成与功能计算机网络的分类按照网络的作用范围进行分类按照网络的使用者进行分类 计算机网络主要性能指标 计算机网络体系结构计算机网络协议、接口、服务等概念ISO/OSI 参考模型和 TCP/IP 模型OSI七层模型TCP/IP 模型封装与分用 计…

[Hadoop之Hive安装配置 第二篇 ]

前言: 记录一下Hive笔记 目录 前言: Hive的基本简介,使用场景介绍 安装地址: 官网的Hive文档地址: 官网 Hive 的教程地址 Hive安装涉及到的应用介绍 Hive安装步骤: 1.解压hive压缩包, tar -zxvf 压缩包,然后进入module目录 查看压缩的文件 ,并改名为hive 2. pwd查看当…

Paper | CenterPoint

CenterPoint paper 文章目录 CenterPoint paper摘要IntroductionRelated WorkCenterPointTwo-Stage CenterPoint Reference 论文链接:https://arxiv.org/pdf/2006.11275.pdf 代码链接:https://github.com/tianweiy/CenterPoint 摘要 该文章是Center-ba…

SpringBoot--日志

日志的作用? 记录用户登陆日志,方便分析用户是正常登陆还是恶意破解用户记录系统的操作日志,方便数据恢复和定位操作人记录程序的执行时间,方便为以后优化程序提供数据支持 日志是程序的重要组成部分,最重要的用途是…

Leetcode | 40 组合总和II

40 组合总和II 文章目录 40 组合总和II题目官方解法:回溯思路与算法 codeReference 题目 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能…

【哈佛积极心理学笔记】第12讲 写日记

第12讲 写日记 preparationincubation (take a break, need some rest time)evaluationelaboration JP Morgan’s quote, I can do a year’s work in 9 months but not in 12" a simple technique of intervation: journaling Postive emotions and painful emotions…

CSS基础学习--12 分组 和 嵌套 选择器

一、分组选择器 在样式表中有很多具有相同样式的元素 h1 {color:green; } h2 {color:green; } p {color:green; } 为了尽量减少代码&#xff0c;你可以使用分组选择器。 每个选择器用逗号分隔。 在下面的例子中&#xff0c;我们对以上代码使用分组选择器&#xff1a; <!DO…

windows下cmake的小白级入门使用教程(hello world)

想学习cmake&#xff0c;基于惯性思维&#xff0c;想先跑通一个“hello world”的例子&#xff0c;奈何网上教程一大把&#xff0c;有用的教程破费功夫寻找。大部分教程都没有从新电脑(重装系统后的电脑)的角度讲述步骤。 为了得到干净的电脑环境&#xff0c;研究了一段时间VMw…

【图像任务】Transformer系列.3

本文介绍3篇改进Transformer以实现不同图像任务的工作&#xff1a;少样本医学图像分割CAT-Net&#xff08;arXiv2023&#xff09;&#xff0c;高效图像重建等任务GRL&#xff08;CVPR2023&#xff09;&#xff0c;轻量视觉Transformer中的局部信息思考CloFormer&#xff08;arX…

根据指定条件和规则逐一判断两个数组中对应元素是否接近 numpy.isclose()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 根据指定条件和规则逐一判断 两个数组中对应元素是否接近 numpy.isclose() [太阳]选择题 请问关于以下代码的表述错误的是&#xff1f; import numpy as np a np.array([2, 7, np.nan]) b …

【RabbitMQ教程】前言 —— 消息队列介绍

&#x1f4a7; 【 R a b b i t M Q 教程】前言——消息队列介绍 \color{#FF1493}{【RabbitMQ教程】前言 —— 消息队列介绍} 【RabbitMQ教程】前言——消息队列介绍&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人.✨ &#x1f984; 个人主页——微风…

力扣题库刷题笔记3--无重复字符的最长子串

1、题目如下&#xff1a; 2、个人Python代码实现如下&#xff1a; 代码如下&#xff1a; class Solution: def lengthOfLongestSubstring(self, s: str) -> int: temp "" #临时变量&#xff0c;记录当前连续不重复子串 out_put …

MEC | 条款1 仔细区别pointers和references

More Effective C&#xff08;MEC&#xff09; 文章目录 More Effective C&#xff08;MEC&#xff09;条款1 仔细区别pointers和references结论 本章描述 pointers 和 references 的差异&#xff0c;并告诉你它们适当使用时机。 条款1 仔细区别pointers和references pointers…

cxgrid显示海量数据

在默认情况下&#xff0c;cxgrid显示几万条以上的数据会很慢。怎么办&#xff1f; 交下面的属性设为TRUE以后&#xff0c;速度飞快。 但速度是快了&#xff0c;自动计算列的合计值这些功能却失效了&#xff0c;正所谓有得必有失&#xff01;

CSS基础学习--11 padding(填充)

一、定义 CSS padding&#xff08;填充&#xff09;是一个简写属性&#xff0c;定义元素边框与元素内容之间的空间&#xff0c;即上下左右的内边距。 当元素的 padding&#xff08;填充&#xff09;内边距被清除时&#xff0c;所释放的区域将会受到元素背景颜色的填充。 单独使…

软考A计划-系统架构师-案例分析考前背诵-下篇

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…

XSS注入(跨站脚本攻击)

今天学习一下xss注入 1.XSS是什么 XSS注入漏洞又称为"跨站脚本攻击(Cross Site Scripting)"&#xff0c;为了不和层叠样式表(Cascading Style Sheets,CSS)混淆&#xff0c;所以将跨站脚本攻击缩写为XSS。xss本质上是黑客通过对网页的HTML注入&#xff0c;篡改了原本…