项目需要使用到ADC的同步采样,然后去阅读了DAVE的APP(VADC_GROUP_CONFIG)帮助文档,根据文档中的例程2进行了同样的配置,复制粘贴使用了同样的代码,然后发现代码运行有问题,同步采样失败,然后再官网上发帖获得了帮助实现了同步采样,但还是有点疑惑。
下面是正确配置方法:
1、添加VADC_GROUP_CONFIG_0和VADC_GROUP_CONFIG_1,然后任意选择一个通道配置为采样(这个可以参考VADC_GROUP_CONFIG文档中的例程1,例程1可以正常运行),然后去通道配置界面勾选同步采样如下图红色部分:
2、然后配置另一组ADC的同通道,随便做一点改动,比如修改Result register,或者别的什么改动,因为如果不做改动,那么生成代码时不会配置该通道,也就是说不进行改动=该通道不被使用,实在没什么需要改的,可以勾选Request a synchronized conversion of this ch,也就是勾选同步采样,确保通道被使用。例程中只配置了一个VADC_GROUP_CONFIG_0,并未配置VADC_GROUP_CONFIG_1,所以跑起来会有问题。
3、在被同步的组中选择主采样通道,比如我这个例子是VADC_GROUP_CONFIG_1的通道3为主动触发采样,VADC_GROUP_CONFIG_0的通道3是被动同步采样,我的代码中有触发VADC_GROUP_CONFIG_1的通道3的采样,但是没有触发VADC_GROUP_CONFIG_0的通道3,所以说VADC_GROUP_CONFIG_1的通道3是主动触发,VADC_GROUP_CONFIG_0的通道3是被动同步,所以我在VADC_GROUP_CONFIG_0的如下图界面选择了采样的Master为Kernel 1。这样就能实现两组ADC的通道同步采样了。
但是我也有点疑惑,那就是这样配置能够VADC_GROUP_CONFIG_1被触发时进行同步采样,但是如果VADC_GROUP_CONFIG_0被触发,能同步采样吗?后续我有时间试试再补上吧。
|