打印

adc1注入方式采样2路通道,结果只有1路有数据,为什么?

[复制链接]
2992|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 michael8908 于 2017-3-16 01:49 编辑

贴代码怕大家烦,贴图说明比较简单。
操作过程如下图:芯片是GD32F103VCT6
(1)配置:用ADC1的通道10和11做采样,配置为注入组采样(ADC2没有使用,排除其干扰)。
(2)操作:软件触发一次采样转换。
(3)结果:能正常进入ADC中断,也判断到注入中断标记置位了,但是只有一路通道的数据(通道11),通道10的数据为什么没有?



ADC部分真够复杂的,用过不少单片机,这个算是最复杂的。请高人指教,谢过。
对了,补充一下,请不要怀疑GPIO的配置。只用通道10一个通道的时候,该引脚的采样是正常工作的。



沙发
michael8908|  楼主 | 2017-3-16 20:23 | 只看该作者
自己顶。
搜索网上ST的资源,发现讲的居然都是规则采样方式做的多通道采样,要找注入方式的多通道采样的例子,一个也没找到。。。

使用特权

评论回复
板凳
vibra2016| | 2017-3-17 00:01 | 只看该作者
这个先检查下程序中的,看是否有纰漏

使用特权

评论回复
地板
michael8908|  楼主 | 2017-3-17 01:12 | 只看该作者
为什么网上查不到只用ADC1注入组采样多个通道的用例呢?应该是很常见的用法才是。
网上的用例要么就是注入组只采集一个通道,要么就是规则组带DMA采样多个通道。

从手册资料看,“只用ADC1注入组采样多个通道(不用ADC2)”这种用法芯片应该是可以支持的。继续研究。。。

使用特权

评论回复
5
michael8908|  楼主 | 2017-3-17 01:19 | 只看该作者
vibra2016 发表于 2017-3-17 00:01
这个先检查下程序中的,看是否有纰漏

如问题中的说明,程序有注入组只采集一个通道就是可以的,采集两个通道是有数据的,但是只有一个通道的数据。看配置中,ISQ.IL=1,很明显是指定程序要采集两个通道的。

已经对照手册检查过多遍配置,没有发现问题所在。

使用特权

评论回复
6
chuntian2016| | 2017-3-18 12:10 | 只看该作者
AD数据采集的有两种模式的,,我记得一种模式是一次只能采集一个通道的数据的,需要轮循采集各个通道的数据的。。

使用特权

评论回复
7
chuntian2016| | 2017-3-18 12:11 | 只看该作者
还有一种就是一次性设置好需要采集的数据通道的,,然后依次就可以吧这设置的通道的数据都采集上来的,,,我不是很清楚楼主的注入组的是属哪一种的

使用特权

评论回复
8
michael8908|  楼主 | 2017-3-18 23:36 | 只看该作者
chuntian2016 发表于 2017-3-18 12:11
还有一种就是一次性设置好需要采集的数据通道的,,然后依次就可以吧这设置的通道的数据都采集上来的,,, ...

一次只能采集一个通道是规则采样模式,因为没有为规则采样结果配备buff缓存寄存器,自然一次只能采集一个数据,如果需要采样多个数据,推荐的做法是连接dma通道,自动将每次采集的数据传送到内存保存。

一次性设置好的就是问题的注入采样模式,因为为其采样通道配备了buff缓存,所以可以等几路通道都采集完毕了再一次性处理所有通道的数据。

很明显,我这里用的是后面的注入采样模式。
哎。。。坛子里高人不多啊。。。adc的这种用法问题应该是很常见的才对,不想竟也没有能解答一二的。

使用特权

评论回复
9
michael8908|  楼主 | 2017-3-19 01:36 | 只看该作者
本帖最后由 michael8908 于 2017-3-19 01:39 编辑

自己搞定,废了好多天。
原因是GD的文档中关于ADC的scan模式配置位的说明写反了,改过来以后一切OK。

【很不爽,下面纯粹吐槽】
坛子里有GD的技术看到的话,赶快改用户手册。这几天我把配置看了几十遍,各种怀疑都试过,实在找不到问题所在,最后只好把ST公司的同款user manual的ADC部分看了一遍,才发现这个问题。其实文档里还有其他严重问题,不提了。。。GD公司的文档评审工作——差评!!!

使用特权

评论回复
10
vivilzb1985| | 2017-3-26 16:21 | 只看该作者
这个还是工作模式的配置问题的哈,,不过对楼主的摸索精神值得学习

使用特权

评论回复
11
vivilzb1985| | 2017-3-26 16:22 | 只看该作者
不同厂家的芯片外设说明文档的有差别的是正常的。。

使用特权

评论回复
12
shenmu2012| | 2017-3-26 18:13 | 只看该作者
这个看来还是pdf资料的惹得祸的

使用特权

评论回复
13
firstblood| | 2017-3-26 18:31 | 只看该作者
果不其然,就是采集模式的设置的有问题的

使用特权

评论回复
14
戈卫东| | 2017-3-26 18:53 | 只看该作者
手册难道不是抄的ST的?用复制就可以的,不需要自己打字,还容易错。。。。。

使用特权

评论回复
15
中国加油123| | 2018-5-19 22:40 | 只看该作者
请问怎么用ADC同时采样内部参考电压(17通道)与温度(16通道)而不使用DMA

使用特权

评论回复
16
CharryW| | 2018-5-21 16:55 | 只看该作者
中国加油123 发表于 2018-5-19 22:40
请问怎么用ADC同时采样内部参考电压(17通道)与温度(16通道)而不使用DMA

扫描转换模式

使用特权

评论回复
评论
CharryW 2018-5-21 16:55 回复TA
不用DMA的话要用注入组 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

24

帖子

1

粉丝