RA2 MCU是瑞萨在2019年下半年开始推广的Cortex M23核的产品,48MHz主频,各子系列都非常有特点,如入门级的RA2E1子系列带Capacitive Sensing Unit,RA2L1子系列低功耗及带CAN总线,RA2A1子系列增强模拟功能、带16位ADC及24位Sigma-Delta ADC,RE2E2子系列主打小封装。可广泛的用于各种应用上。以下是瑞萨RA MCU Portfolio:
之前有客户在使用瑞萨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:结束扫描延迟时间
1.2
参考“41. Electrical Characteristics”中Table 41.35的Note 1,转换时间是采样时间和比较时间的总和。也就是说,这里的转换时间指的仅仅是tCONV,而并非tSCAN。
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来翻转端口
三
实测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
测试代码:(略)
四
实测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
测试代码:(略)
五
结论
1、手册中的“0.67 μs/channel”仅仅是采样时间和比较时间的总和,并非一个通道的扫描转换时间。
2、在实测3的情况下,我们可以得到比较理想并且合理的结果,一次AD扫描转换时间大概为0.67us。
3、使用FSP自动生成代码的情况下,中断响应时间是比较长的,所以建议采用DTC传送数据,或者客户自己写中断响应函数。测过GPT中断响应时间大概是3.58us
全部0条评论
快来发表一下你的评论吧 !