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

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

3天内不再提示

单片机AD转换时间的理论推算与测量

strongerHuang 来源:瑞萨嵌入式小百科 2023-12-12 09:19 次阅读

转自 | 瑞萨嵌入式小百科

AD转换时间指的是完成一次AD转换所需的时间,即从启动信号开始到转换结束并得到稳定的数字输出量所需要的时间。

不知道大家平时使用ADC有没有关注转换时间的问题,这里结合瑞萨单片机为例给大家讲述一下AD转换时间的理论推算与测量。

RA2L1硬件手册(R01UH0853EJ0130)第1067页的电气特性“Table 41.35 A/D conversion characteristics (1) in high-speed A/D conversion mode (2 of 2) ”中的内容,看到RA2L1的AD转换时间在对应的测试条件下最小值为0.67us。

35efc6ce-9885-11ee-8b88-92fbcf53809c.png

那么如果用户测试AD转换时间,是否能得到跟硬件手册中电气特性的最小AD conversion time (0.67us) 一样的结果呢?

基于上述问题,我们从理论和实际两方面做了分析和测试。

理论分析

首先,基于RA2L1硬件手册中Figure 30.25和Figure 30.26, 单次扫描模式下所选通道数为n的扫描转换时间(tSCAN可按如下方式确定:

35f8e934-9885-11ee-8b88-92fbcf53809c.png

tSCAN = tD + tDIS × n + tDIAG + tED + tCONV × n

tSCAN: 扫描转换时间

tD: 开始扫描延迟时间

tDIS: 断线检测辅助处理时间

tDIAG 和 tDSD: 自诊断A/D转换处理时间

tCONV: A/D转换处理时间

tED: 结束扫描延迟时间

另外,参考“Table 41.35 A/D conversion characteristics (1) in high-speed A/D conversion mode (2 of 2) ”中Note 1的内容,转换时间是采样时间和比较时间的总和。也就是说,这里的转换时间指的仅仅是tCONV,而并非扫描转换时间tSCAN。测试的话测量的是扫描转换时间,所以不能以“最小0.67us” 这个数值作为参考。

接下来,我们先从理论上计算一下如何获得扫描转换时间的最小值。参考RA2L1硬件手册,选取公式中每一项的最小值和其对应的条件。

tSCAN = tD + tDIS × n + tDIAG + tED + tCONV × n

tD = 2 PCLKB + 4 ADCLK: All other, Synchronous trigger. But this does not include the time consumed in the path from timer output to trigger input.

tDIS = 0: Setting in ADNDIS[3:0] (initial value = 0x00) × ADCLK

tDIAG = 0: DIAGST[1:0] = 00 (Self-diagnosis not executed after power-on.)

tCONV = 0.67us:Operation at PCLKD = 48 MHz, High-precision channel, ADCSR.ADHSC = 0, ADSSTRn.SST[7:0] = 0x0A, ADACSR.ADSAC = 1

tED = 2 PCLKB + 3 ADCLK: PCLKB to ADCLK frequency ratio = 1:2

从而确定测试条件为:PCLKD (ADCLK) = 48MHz、PCLKB = 24MHz(PCLKB不能超过32MHz)、快速转换模式、高速A/D转换模式、AN000(高精度通道)、不使用自诊断。

基于以上测试条件,计算AD扫描转换时间的理论值为:

35fd1ad6-9885-11ee-8b88-92fbcf53809c.png

实际测试

对照着AD扫描转换时间的理论值为0.90us,进行了以下3个测试:

1使用GPT+ELC+ADC+中断方式进行测试

● GPT:设置周期为50ms,允许GTIOC0A输出

● ELC:设置GPT的计数值发生Overflow时触发AD转换

● ADC:设置为Single Scan模式,选择Channel 0,允许扫描完成时产生中断,在中断Callback函数中翻转端口(P301:H→L)

360ad310-9885-11ee-8b88-92fbcf53809c.png

通过以上波形,可以得到实际测试结果为7.31us。根据测试情况进行分析,这个时间包括了中断响应时间和端口执行时间。

采用在中断中翻转端口测量ADC转换时间,结果较理论值长很多,接下来使用DTC来翻转端口。

2使用GPT+ELC+ADC+DTC方式进行测试

● GPT:设置周期为50ms,允许GTIOC0A输出

● ELC:设置GPT的计数值发生Overflow时触发AD转换

● ADC:设置为Single Scan模式,选择Channel 0,允许扫描完成时产生中断

● DTC:触发源为每次ADC扫描结束,进行DTC传送,即翻转IO口(P301:H→L)

361c6d8c-9885-11ee-8b88-92fbcf53809c.png

通过以上波形,可以得到实际测量结果为1.36us (VS理论值0.67us)。根据测试情况进行分析,这个时间包括DTC的响应时间和端口执行时间。

单独测试端口执行时间,大概为0.21us。

362e08f8-9885-11ee-8b88-92fbcf53809c.png

采用单次转换测量ADC转换时间,结果较理论值偏长,接下来使用多次转换测量总时间,用来消除端口翻转时间的影响。

3使用GPT+ELC+ADC+DTC方式(500次)进行测试

● GPT:设置周期为50ms,允许GTIOC0A输出

● ELC:设置GPT的计数值发生Overflow时触发AD转换

● ADC:设置为Continuous Scan模式,选择Channel 0,允许扫描完成时产生中断

● DTC:触发源为每次ADC扫描结束,进行一次DTC传送,500次传送后,在中断Callback函数中,翻转IO口(P301:H→L)

36320ff2-9885-11ee-8b88-92fbcf53809c.png

通过以上波形,可以得到实际测量结果为337.31us/500 = 0.67us (=理论值)。根据测试情况进行分析,这个时间包括DTC的响应时间、中断响应时间和端口执行时间。

这个测试结果和理论值相符,因为这个时间还包括DTC的响应时间、中断响应时间和端口执行时间,所以可以推断实际测量结果优于电气特性中内容。

最后,总结一下AD转换时间的计算和测量。

● 手册中的“0.67 μs/channel”仅仅是采样时间和比较时间的总和,并非一个通道的全部扫描转换时间。

● 在实测③的情况下,我们可以得到比较理想并且合理的结果,一次AD扫描转换时间大概为0.67us。

● 使用FSP自动生成代码的情况下,中断响应时间是比较长的,所以建议采用DTC传送数据,或者客户采用自己的ADC中断响应函数。

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

    关注

    6011

    文章

    44158

    浏览量

    624463
  • adc
    adc
    +关注

    关注

    97

    文章

    5729

    浏览量

    540714
  • 瑞萨
    +关注

    关注

    32

    文章

    22226

    浏览量

    85187
  • 硬件
    +关注

    关注

    11

    文章

    2989

    浏览量

    65356
  • AD转换
    +关注

    关注

    3

    文章

    166

    浏览量

    45103

原文标题:单片机AD转换时间的理论推算与测量

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AD转换时间理论推算测量简析

    AD转换时间指的是完成一次AD转换所需的时间,即从启动信号开始到转换结束并得到稳定的数字输出量所需要的
    的头像 发表于 12-08 13:48 1163次阅读
    AD<b class='flag-5'>转换</b><b class='flag-5'>时间</b>的<b class='flag-5'>理论</b><b class='flag-5'>推算</b>与<b class='flag-5'>测量</b>简析

    单片机的学习方法,是实践还是理论重要

    是先看完理论或者教学视频然后跟着教程动手实践 还是一开始就实践呢 10天学会单片机还没看完 要不要现在买块51板呢?
    发表于 03-15 19:32

    单片机测量响应时间

    用霍尔传感器检测一个运动物体,速度很快。如何利用单片机检测物体通过第一个传感器到通过第二个传感器的时间?请大神指点!
    发表于 08-11 16:26

    (毕业设计资料)基于52单片机的脉搏心率测量仪系统 精选资料分享

    083【电路方案】基于52单片机的脉搏心率测量仪系统脉搏心率测量仪在我们的日常生活中已经得到了非常广泛的应用。为了提高脉搏心率测量仪的简便性和精确度,本课题设计了一种基于52
    发表于 07-20 07:21

    单片机作息时间控制设计

    控制电铃 2.作息时间能...2019-09-14本系统由前向通道、后向通道、单片机子系统及外围电路和上位、下位软件组成。前向通道将采集到的信号经过放大、滤波、A/D
    发表于 09-01 07:45

    单片机设计测量频率相关资料分享

    单片机设计测量频率一、电路设计单片机应用系统中,经常要对一个连续的脉冲波频率进行测量。在实际应用中,对于转速,位移、速度、流量等物理量的测量
    发表于 11-09 06:52

    基于单片机的脉搏测量仪设计

    题设计了一种基于51单片机的脉搏测量仪。系统以STC89C52单片机为核心,以光电传感器利用单片机系统内部定时器来计算时间,由光电传感器感应
    发表于 11-19 08:31

    怎么学习单片机

    ,定时器,单片机汇编语句等。每天背概念,记理论,过了大概一个月,结果肯定就是一个懵逼的状态。正在这个懵逼的时候,实验室的一个同学建议我先学C语言,再学习单片机程序开发,说汇编没有啥用。我又花了2-3个月的
    发表于 11-22 08:00

    如何入门单片机

    很多初学者最初接触单片机时较为苦恼的就是如何入门,也就是从哪一部份,按照怎样的步骤进行学习。在摸索学习步骤的过程浪费时间的同时也会造成学习兴趣的降低。为了帮助大家解决这种情况。第一步:基础理论
    发表于 11-30 06:50

    请问ADC转换后的值推算还原实际测量电量有哪些步骤呢

    请问ADC转换后的值推算还原实际测量电量有哪些步骤呢?
    发表于 02-23 07:53

    介绍几种测量单片机程序运行时间的方法

      有时我们需要知道自己的单片机程序需要花费多长时间,delay延时的精确时间等。今天来介绍几种测量程序运行时间的方法。  1.
    发表于 03-23 14:55

    基于单片机的高精度时间间隔测量模块设计

    设计了一种高精度时间间隔测量模块,该模块由单片机控制,采用脉冲计数原理,通过测量时间间隔内高频参考时钟个数,得到被测
    发表于 09-20 17:23 3307次阅读
    基于<b class='flag-5'>单片机</b>的高精度<b class='flag-5'>时间</b>间隔<b class='flag-5'>测量</b>模块设计

    基于STM32的步行者航位推算装置设计

    本文主要介绍了基于STM32F103RBT6单片机的步行者航位推算装置的硬件设计与采用的软件算法,完成了对多传感器数据的采集和航迹推算
    发表于 12-11 17:38 2236次阅读
    基于STM32的步行者航位<b class='flag-5'>推算</b>装置设计

    使用单片机实现AD转换测量电压的实验文件免费下载

    本文档的主要内容详细介绍的是使用单片机实现AD转换测量电压的实验文件免费下载。
    发表于 03-24 11:11 29次下载

    单片机设计 测量频率

    单片机设计 测量频率一、电路设计单片机应用系统中,经常要对一个连续的脉冲波频率进行测量。在实际应用中,对于转速,位移、速度、流量等物理量的测量
    发表于 11-04 11:21 34次下载
    <b class='flag-5'>单片机</b>设计 <b class='flag-5'>测量</b>频率