黑船 · 1月7日

DSP28335 之 ADC 采样模块

导读:本期文章主要介绍 DSP28335 的 ADC 采样控制外设模块。在电机控制中对电流、电压的采样和处理是重要的环节之一。F28335 提供了丰富的 AD 采样资源,可以有效地获取电压和电流。

需要文中的 ADC 采样对应的 CCS 工程,关注微信公众号:浅谈电机控制,留言获取。

一、F28335 的 ADC 采样模块

image.png

图 1 ADC 外设模块框图

ADC 模块是一个12 位逐次逼近(SAR)风格的 ADC。ADC 由一个核心和一个封装器组成。其核心由模拟电路组成,包括通道选择 MUX、采样保持(S/H)电路、逐次逼近电路、电压基准电路和其他模拟支持电路。封装器由配置和控制 ADC 的数字电路组成。这些电路包括可编程转换逻辑、结果寄存器、模拟电路接口、外设总线接口、后处理电路和其他片上模块接口。

每个 ADC 模块由一个采样保持(s/h)电路组成。ADC 模块被设计为在同一芯片上被复制多次,允许同时采样或多个独立操作 ADC。

学习 ADC 模块的实现目的:1、首先需要彻底搞懂 ADC 采样模块原理和相关的寄存器的配置;

2、熟悉控制板上 ADC 模块的硬件原理图;3、软件设计 ADC 实现相关的功能。

实际使用中的 DSP 和单片机等只能处理数字信号,用一个将模拟信号转换为数字信号的介质—模数转换器(ADC),而 F28335 芯片内部含有 ADC 外设。这样当需要采集外部信号时(外部信号多为模拟信号),如电压、电流、压力、温度等(ADC 模块处理幅值随着时间连续变化的模拟信号;eCAP 和 eQEP 处理开关类信号和脉冲类信号),都可以用 F28335 芯片实现。

二、ADC 采样模块的底层配置

a、使能 ADC 外设时钟即设置 ADC 的工作时钟;

要使用 ADC 外设,则需要开启相应的时钟,开启 ADC 外设时钟代码如下:

Image

系统时钟为 150MHz,不能直接供给 ADC 当工作时钟,所以需要分频后才可以给到 ADC。前面介绍过 ADC 最大的工作时钟为 25MHz。

b、ADC 初始化设置,包括对 ADCREFSEL 和 ADC0FFTRIM 寄存器设置等;

前面介绍过,使用 ADC 时除了开启外设时钟外,还需要对参考电压寄存器进行设置,并且在 ADC 开始转换前需要一定的延时。TI 已经提供了一个函数完成 ADC 模块的初始化。调用 ADC 初始化函数。

c、ADC 工作方式设置,包括采样方式、工作频率、采样通道等;

上一步是对 ADC 内部参考源及校准等设置,只需要调用 TI 提供的函数即可,对于 ADC 工作方式的设置需要通过编程实现。这里以实验代码为例:

Image

d、选择 ADC 的触发方式,开启转换(SOC);

上述配置好后,接下来需要设置 ADC 的触发方式,前面介绍过 ADC 触发方式有几种:软件触发、PWM 触发等,本实验采用软件触发:

Image

e、读取 ADC 的转换值。

通过上面的几步配置,ADC 就开启工作了,接下来就是等待转换结束后,读取转换结果值就可以了。通过前面的介绍可知,ADC 转换后的数据存储在结果寄存器中,只需要读取相应的结果寄存器即可,并且有效数据是高 12 位,所以读取后的值要降低 4 位移除。比如读取结果寄存器 0 的转换结果的代码如下:

Image

三、硬件采样电路介绍及在 CCS 工程中实现 ADC 采样

Image

Image

Image

Image

Image

Image

Image

四、硬件上测试 ADC 采样模块实现

首先断开电机连接,使用仿真器连续读取 AD 采样结果寄存器的值,此时的采样值即为电流零点。观察电流零点的稳定性,一般来说,如果电流采样的稳定性较好,AD 结果寄存器中只会有最后一两位在波动。若电流零点波动得较严重,说明采样稳定性很差,此时需要在程序中增加滤波算法。理论值为 2252。(为什么?)3/4096=1.65/x,x=2252.

Image

END

作者:浅谈电机控制
来源:浅谈电机控制

推荐阅读

更多电机控制技术干货请关注电机控制专栏。
迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。

推荐阅读
关注数
2491
内容数
48
专注电机控制,偶尔不务正业
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息