一、前言
在使用 ADC 进行采样时,ADC 的硬件触发采样是 ADC 的典型应用。
本文将介绍 SemiDrive E3 MCAL 配置 :PWM 硬件触发 ADC 采样。
硬件平台:芯驰 E3640 Gateway 开发板
软件平台:SemiDrive_E3_MCAL_V3.0
二、EB 配置
2.1 ADC 配置
ADC 的 Hardware 触发对应的是 ADC 中 Group 的触发方式,所以首先对需要作为 HW(下文中 Hardware 以 HW 为简称)触发方式的 Group 进行配置。
将 AdcGroupTriggSrc 设置为 ADC_TRIGG_SRC_HW(注:每个 ADC Unit 可以至多设置 4 个 Group,作为 HW 触发的 Group 必须配置在当前 Unit 中的第 0 个 Group,
并且每个 Unit 下至多只能配置 1 个 HW 触发的 Group)
Group 的转换模式在 HW 触发下,一定要设置为 OneShot 模式。
在 MCAL3.0 及之后的 MCAL 软件版本中,HW 触发的 group 的 AccessMode 如果设置为 ADC_ACCESS_MODE_SINGLE,此时 StreamingBufferMode 的设置并不影响
调用流程如下所述:
1. Adc_EnableHardwareTrigger(),将 Group 的 Status 转换为 ADC_BUSY;
2. 等待该 Group的Status 至 ADC_STREAM_COMPLETED;
3. Adc_ReadGroup();该步会获取采样值,并且自动开启新一轮转换,并将 Group 的 Status 转换为ADC_BUSY;
如果接下来需要重复:转换->读值->转换->读值,那么只要确保 Group 的 Status 至 ADC_STREAM_COMPLETED 后调用 Adc_ReadGroup 就可以。
一般来说,触发信号会源源不断的以一定频率产生,而 ADC 的转换和读值会不断重复进行,如果在此情况下使用 HW 触发的 Group,推荐配置方式如下:
1. AdcGroupConversionMode->ADC_CONV_MODE_ONESHOT
2. AdcGroupAccessMode->ADC_ACCESS_MODE_SINGLE;
需要注意