1.1 RA6T2中的16位ADC可以工作在Oversampling(过采样)和Hybrid(混合)两种模式下,但是采用过采样单次扫描功能时,ADC转换过程较慢,所以在对于ADC转换时间要求比较快的场合,推荐用户在混合模式下,使用带有采样保持( sample-and-hold )的连续扫描(Continuous Scan)功能。


1.2 本文的样例中,选择AN003、AN005、AN007、AN008作为信号采集端口。


参看RA6T2数据手册,ADC通道所属单元和功能设计如下表所示:


可以将ADC0单元的AN003和AN005、ADC1单元的AN007和AN008设置为Sample-and-Hold采样保持模式。

具体FSP设置请看图片提示,并注意Virtual Channel 2和Virtual Channel 5的设置。

Scan Group模式的设置,请参照下图:


根据数据手册中章节36.9 Scan Conversion Time介绍,这个模式下AD转换时间为黄色部分时间的总和。

根据数据手册中章节46.4 A/D Converter Characteristics介绍,以最节省时间的方式设置上面黄色部分。
1) 设置tAD_SPL时间

2) 设置tSH_D时间

3) 设置tAD_CNV时间

4) 设置采样保持功能时间

以上设置完成后,工程建立完成。
1.3 下面对AD采样过程进行实测。根据RA6T2硬件手册第1559页Figure 36.56进行确认。

本模式下,每次AD转换处理时间为
tSH_D +(tSH_SPL+ tSH_HLD)+(tAD_SPL+ tAD_CNV)* 2+ tADDP
=2 +(25+4)+(7+11)* 2 + 9 + 5=81 (ADCLK)
在我们选择ADCLK=60M时钟时,时间约为1.35us。
实际测试中,我们在ADC转换结束中断 adc_b_adi0_isr 中,通过翻转I/O口进行ADC转换时间的测量。如下图所示,端口翻转时间为1.44us。

追加测试单独翻转端口时间为0.084us,即ADC实际转换时间为(1.44us-0.084us =) 1.356us。该结果说明实际测试结果与硬件手册中内容一致。

2. Hybrid模式下后台模式功能具体应用讲解
后台模式可以设置触发在某一特定时刻,输出当前AD采样结果。
2.1 设置ADC采样模式为Hybrid Background Continuous Scan

本测试使用Renesas官方样板 MCK-RA6T2,详细请参看 MCK-RA6T2 User's Manual (renesas.com) 。根据4个ADC通道,并分为两个Group设计该实验。并使能ADC0的结束中断,输出一个I/O信号,以测试ADC的转换时间。



使用ELC功能,将ADC12A0和GPT4的比较匹配链接起来,当GPT4发生比较匹配时触发ADC。



当比较匹配发生时,设置GTIOC4A输出信号,来协助确认ADC耗时。

在GPT4比较匹配中断程序里,加入用户代码,使PE11输出高。

|
void gpt_capture_a_isr (void) { ..... g_ioport.p_api->pinWrite(g_ioport.p_ctrl,BSP_IO_PORT_14_PIN_11,BSP_IO_LEVEL_HIGH); ..... }void gpt_capture_a_isr (void)
|
在ADC0结束中断里,加入用户代码,使PE11输出低。

|
void adc_b_adi0_isr (void) {
g_ioport.p_api->pinWrite(g_ioport.p_ctrl,BSP_IO_PORT_14_PIN_11,BSP_IO_LEVEL_LOW); …… }
|
使用示波器进行测试,AD转换时间为0.39us。如下图所示,绿色为GPT4比较匹配输出,紫色为PE11输出。

Hybrid 后台模式工作模式原理如下图所示:

根据数据手册中表36.55、表36.56和图36.55详细描述, 当设置 ADCLK=60MHz时, 本动作过程理论计算时间为:
总耗时=(触发的作用时间)+(数据输出时间) = tD_ADST+ tADD= tD_TRG + tD_ITRG + tD_SYOP = (1+3+1+3+0+9)* ADCLK+5* PCLKA= 0.283+0.042 = 0.322us。
理论计算与实际测试结果基本一致。