RA2 MCU ADC转换时间测试方法

cathy的头像
cathy 发布于:周三, 02/08/2023 - 15:20 ,关键词:

RA2 MCU是瑞萨在2019年下半年开始推广的Cortex M23核的产品,48MHz主频,各子系列都非常有特点,如入门级的RA2E1子系列带Capacitive Sensing Unit,RA2L1子系列低功耗及带CAN总线,RA2A1子系列增强模拟功能、带16位ADC及24位Sigma-Delta ADC,RE2E2子系列主打小封装。可广泛的用于各种应用上。以下是瑞萨RA MCU Portfolio:

1.png

之前有客户在使用瑞萨RA2 MCU时,由于测试方法不对,导致测出来的ADC转换时间比规格书中宣称的0.67us要长许多,达到了2.1us左右。后来瑞萨AE用三种方法做了详细的测试,用连续转换模式得到了比较理想并且合理的结果,一次AD扫描转换时间大概为0.67us,与规格书宣称的值相近。现将测试方法及步骤分享如下。

一、理论说明

1.1

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

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

tSCAN:扫描转换时间

tD:开始扫描延迟时间

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

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

tCONV:A/D转换处理时间

tED:结束扫描延迟时间

2.png

1.2

参考“41. Electrical Characteristics”中Table 41.35的Note 1,转换时间是采样时间和比较时间的总和。也就是说,这里的转换时间指的仅仅是tCONV,而并非tSCAN。

3.png

1.3

从理论上,如何获得扫描转换时间的最小值

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

1.4

测试条件:

PCLKD (ADCLK) = 48MHz、PCLKB = 24MHz (PCLKB不能超过32MHz)、快速转换模式、高速A/D转换模式、AN000(高精度通道)、不使用自诊断

AD扫描转换时间的理论值为:

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

= (2 PCLKB + 4 ADCLK) + (0 cycles of ADCLK) ×1 + 0 + (2 PCLKB + 3 ADCLK) + tCONV×1 = 0.23 + 0.67 = 0.90 us

二、实测1 使用GPT+ELC+ADC+中断方式

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

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

ADC:Single Scan模式,选择Channel0,允许扫描完成时产生中断,在中断中翻转端口(P301:H –>L)

实际测量结果:7.31us

这个时间包括中断响应时间和端口执行时间

测试代码:(略)

考虑到中断响应时间比较长,所以后面选择使用DTC来翻转端口

4.png

三、实测2 使用GPT+ELC+ADC+DTC方式

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

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

ADC:Single Scan模式,选择Channel0,允许扫描完成时产生中断

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

实际测量结果:1.36us

这个时间包括DTC的响应时间和端口执行时间

测试端口执行时间:大概为0.21us

测试代码:(略)

5.png6.png

四、实测3 使用GPT+ELC+ADC+DTC方式(500次)

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

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

ADC:Continuous Scan模式,选择Channel0,允许扫描完成时产生中断

DTC:触发源为每次ADC扫描结束,进行一次DTC传送,500次传送后,进入中断,翻转IO口(P301:H –>L)

实际测量结果:337.31us

这个时间包括DTC的响应时间、中断相应时间和端口执行时间

折合到每次的话,大概0.67us

测试代码:(略)

7.png

五、结论

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

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

3、使用FSP自动生成代码的情况下,中断响应时间是比较长的,所以建议采用DTC传送数据,或者客户自己写中断响应函数。测过GPT中断响应时间大概是3.58us

8.png

来源:瑞萨MCU小百科

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 103