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中断响应函数。

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

    关注

    6037

    文章

    44559

    浏览量

    635506
  • adc
    adc
    +关注

    关注

    98

    文章

    6500

    浏览量

    544717
  • 瑞萨
    +关注

    关注

    35

    文章

    22309

    浏览量

    86338
  • 硬件
    +关注

    关注

    11

    文章

    3337

    浏览量

    66233
  • AD转换
    +关注

    关注

    3

    文章

    168

    浏览量

    45315

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

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

收藏 人收藏

    评论

    相关推荐

    基于msp430单片机的温度测量系统设计

    本文介绍一种应用msp430单片机测量温度的方法,温度是模拟量,要把被测的模拟量转换成数字量,以供单片机处理。为了节约成本,可以通过斜率A/D转换
    发表于 09-01 16:58 6155次阅读
    基于msp430<b class='flag-5'>单片机</b>的温度<b class='flag-5'>测量</b>系统设计

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

    AD转换时间指的是完成一次AD转换所需的时间,即从启动信号开始到转换结束并得到稳定的数字输出量所需要的
    的头像 发表于 12-08 13:48 2003次阅读
    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>简析

    单片机ad转换电路

    单片机ad转换电路:通过对双积分A/ D 转换过程及其原理的分析,结合8031 单片机定时计数器的特点,设计出一种新的A/ D 转换电路.
    发表于 05-11 22:50 265次下载
    <b class='flag-5'>单片机</b>ad<b class='flag-5'>转换</b>电路

    基于单片机和CPLD的频率测量研究

    摘 要:针对单片机进行高频测量存在的响应速度问题,利用CPLD适合精确、高速计数的特点,提出了一种基于单片机和CPLD的频率测量电路,通过CPLD对被测信号分频再与
    发表于 07-06 23:41 42次下载

    单片机湿度测量电路

    单片机湿度测量电路
    发表于 02-13 22:35 1415次阅读
    <b class='flag-5'>单片机</b>湿度<b class='flag-5'>测量</b>电路

    单片机脉搏测量

    单片机脉搏测量仪  单片机脉搏测量仪   本文介绍一种用单片机制作的脉搏测量仪,只要把手指
    发表于 02-05 09:13 3239次阅读
    <b class='flag-5'>单片机</b>脉搏<b class='flag-5'>测量</b>仪

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

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

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

    单片机为基础,设计的用于测量脉搏的脉搏测量仪,内容包含单片机
    发表于 07-01 17:35 48次下载

    单片机实验-- AD转换实验

    单片机实验-- AD转换实验
    发表于 12-24 23:10 0次下载

    基于单片机的桥梁挠度测量系统

    基于单片机的桥梁挠度测量系统
    发表于 08-03 09:49 18次下载

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

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

    单片机设计 测量频率

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

    基于单片机的血压测量

    基于单片机的血压测量
    发表于 11-12 17:06 20次下载
    基于<b class='flag-5'>单片机</b>的血压<b class='flag-5'>测量</b>计

    51单片机怎么显示当前时间_51单片机轻松入门与实践 — 畅学单片机

    简介 本课程是单片机学习者从入门到深入的一套经典视频教程,以初学者为对象,从零开始手把手教你学习单片机,循序渐进地基于理论讲解并结合实验项目实战开发,讲解当前最热门的51单片机的C
    发表于 11-15 15:51 15次下载
    51<b class='flag-5'>单片机</b>怎么显示当前<b class='flag-5'>时间</b>_51<b class='flag-5'>单片机</b>轻松入门与实践 — 畅学<b class='flag-5'>单片机</b>

    单片机大小端转换的几点小技巧

    单片机大小端转换的几点小技巧
    的头像 发表于 09-18 10:58 1112次阅读
    <b class='flag-5'>单片机</b>大小端<b class='flag-5'>转换</b>的几点小技巧