打印

(转)GD32F130FXP6学习笔记六:cortex-m3系列的ADC初识

[复制链接]
1450|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
renzheshengui|  楼主 | 2018-8-4 10:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
出处:https://blog.csdn.net/wuhenyouyuyouyu/article/details/70940384

参考资料:http://blog.sina.com.cn/s/blog_5e87dc1201018l1n.html



查看GD32F130FXP6用户指南的ADC章节,发现AD有两个组,4中转换模式。

一、AD两个组

1、规则通道组

通过寄存器配置把某些通道放到一组里面(GD32F130FXP6最多支持16个通道),

然后逐个转换这组通道,这组通道都转换完成后,再从头开始转换,那么这个组就

叫做规则组。

2、注入组

但是实际应用中,有可能需要临时中断规则组的转换,对某些通道进行转换,这些需要中断

规则组而进行转换的通道组,就称为注入组(GD32F130FXP6最多支持4个通道)。对于

ADC模块来说,它按规则转换规则组时,被要求临时转换规则组之外的某些通道,就好像

这组通道临时注入了原来的顺序,所以形象地称其为注入组。

一个不太恰当的比喻是:规则通道组的转换好比是程序的正常执行,而注入通道组的转换则

好比是程序正常执行之外的一个中断处理程序。

二、四中工作模式

1、单次模式

每触发一次,规则组或者注入组就转换一次,每次转换都是按着既定的通道次序转换,每次

转换完成后,EOC或者EOIC就被置位。每个通道转换,都需要触发信号。


2、连续转换模式

触发一次,规则组或者注入组就把本组所有指定的通道按着顺序,逐个转换一遍,每个通道

转换完成都会引发EOC或者EOIC就被置位,切循环不停(有待验证)。


才会

注:扫描模式下,要使能DMA。


3、扫描模式

规则组或者注入组就把本组所有指定的通道按着顺序,逐个转换一遍,只有当最后

引发

注:扫描模式下,要使能DMA。


4、间断模式

规则组和注入组同时只能有一组被设置为间断模式。

规则组:可以每次选择N(<=8)个进行转换,每个分片都需要启动信号,最后一个分片转换

完成后,触发EOC。

注入组:只能每次转换一个,当注入组最后一个转换完成后,触发EOIC。




三、ADC模块初始化

初始化顺序:

1、禁止ADC模块工作(ADCON = 0);

2、设置时钟源、预分频系数;

3、设置通道采样周期,设置数据对齐方式,设置ADC工作模式;

4、设置PIN为模拟引脚或者模拟输入引脚;

5、设置规则组是否工作在间断模式、触发源选择、通道选择、是否使能中断;

6、设置注册组是否工作在间断欧式、触发源选择、通道选择、是够使能中断,是否自动注入;

ADCON = 1


说明:

1、单次模式和连续模式只能任选其一,且对所有组都有效;

且对所有组都有效

3、两个组只能同时有一组工作在间断模式下,间断模式下(单次、连续、扫描设定无效);

4、单次和连续区别:单次:启动一次,转换一次(不一定是一个通道);连续:启动一次,不关闭就不停;

5、扫描模式禁止和和使能区别:禁止:每个通道转换完成,都会置位标志位;使能:只有当本组设定的最后

      一个通道转换完成,才置位标志位;

6、如果使能了扫描模式,规则组必须使用DMA方式存储数据;注册组则不用(每个通道都有自己的缓存存储器);

7、使能外部触发模式,其使能位必须使能(软件触发也是外部触发类,没有找到内部触发类);


8、使能中断时候,不但要使能ADC模块中断控制位,还要通过

NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)

设置优先级;

NVIC_EnableIRQ(IRQn_Type IRQn)

(我就在这里吃了大亏,欲哭无泪。。。。。。)。

9、查询模式OK,中断不进原因

NVIC_EnableIRQ(IRQn_Type IRQn)没有使能;

2)启动文件里面没有注册中断向量函数(厂家提供的启动文件不全);

3)启动文件里面的中断函数名称和xxxxxx_it(例如:gd32f1x0_it)里面的中断函数名称不一致;

注意:

1、AD的校准会触发AD转换,如果这个时候中断是开启的,会进入AD中断;


沙发
wakayi| | 2018-8-6 12:59 | 只看该作者
这个需要自己校准不

使用特权

评论回复
板凳
晓伍| | 2018-8-7 12:10 | 只看该作者
和其他型号的没有什么区别

使用特权

评论回复
地板
八层楼| | 2018-8-7 12:12 | 只看该作者
在我的印象中,好像只有st的f4有一些不同

使用特权

评论回复
5
观海| | 2018-8-7 12:40 | 只看该作者
八层楼 发表于 2018-8-7 12:12
在我的印象中,好像只有st的f4有一些不同

请问 哪里不同啊

使用特权

评论回复
6
renzheshengui|  楼主 | 2018-8-7 13:02 | 只看该作者
观海 发表于 2018-8-7 12:40
请问 哪里不同啊

同问 我也很好奇

使用特权

评论回复
7
guanjiaer| | 2018-8-8 10:54 | 只看该作者
我看图的意思是外部信号会引发不同形式的采集?

使用特权

评论回复
8
renzheshengui|  楼主 | 2018-8-8 12:56 | 只看该作者
guanjiaer 发表于 2018-8-8 10:54
我看图的意思是外部信号会引发不同形式的采集?

是的 是这样

使用特权

评论回复
9
vibra2016| | 2018-8-18 20:14 | 只看该作者
通过寄存器配置把某些通道放到一组里面(GD32F130FXP6最多支持16个通道),然后逐个转换这组通道,这组通道都转换完成后,再从头开始转换,那么这个组就叫做规则组。

使用特权

评论回复
10
shenmu2012| | 2018-8-19 21:37 | 只看该作者
ADC模块来说,它按规则转换规则组时,被要求临时转换规则组之外的某些通道,就好像
这组通道临时注入了原来的顺序,所以形象地称其为注入组。

使用特权

评论回复
11
comeon201208| | 2018-8-19 21:47 | 只看该作者
对某些通道进行转换,这些需要中断
规则组而进行转换的通道组,就称为注入组(GD32F130FXP6最多支持4个通道)

使用特权

评论回复
12
comeon201208| | 2018-8-19 21:48 | 只看该作者
这个了解下的了哈,adc数据采集的很有难度的

使用特权

评论回复
13
renzheshengui|  楼主 | 2018-8-20 12:45 | 只看该作者
comeon201208 发表于 2018-8-19 21:48
这个了解下的了哈,adc数据采集的很有难度的

主要是方方面面想要很精通就难了

使用特权

评论回复
14
angerbird| | 2018-8-23 21:08 | 只看该作者
对于ADC模块来说,它按规则转换规则组时,被要求临时转换规则组之外的某些通道,就好像这组通道临时注入了原来的顺序,所以形象地称其为注入组。

使用特权

评论回复
15
angerbird| | 2018-8-23 21:09 | 只看该作者
ADC的注入组的概念很是重要的

使用特权

评论回复
16
smilingangel| | 2018-8-23 22:03 | 只看该作者
这些设计方向的要把握好的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

78

主题

4079

帖子

2

粉丝