【轮式平衡机器人】——TMS320F28069片内外设之ADC

一、ADC概述

这一部分不是我们的重点,原理分类啥的这里简要说明!

步骤:采样、保持、量化、编码

将采样电平(模拟值)转换为数字值的方法:直接比较型(并行ADC、逐次逼近型ADC);间接比较型(双积分型ADC)

关键技术指标:分辨率、转换速率、量化误差、偏移误差、满刻度误差、线性度。

其他技术指标:绝对精度、相对精度、微分非线性、单调性和无错码、总谐波失真和积分非线性。

TMS320F2806x系列的ADC模块的主要参数:

  • 12位模数转换
  • 2个采样保持器(S/H)
  • 同步采样或顺序采样
  • 模拟电压输入范围0~3.3V
  • 16通道模拟输入
  • 16个结果模拟输入
  • 16个结果寄存器存放ADC转换的结果
  • 多个触发源:S/W。软件立即启动;ePWM1~ePWM8;外部中断2脚;定时器0、1、2;A/D中断1、2。

二、基于Simulink平台的ADC实验

1、ADC_NORMAL模式

ADC_NORMAL模式配置先从配置时钟开始,ADC模块是挂在高速外设时钟线上的外设,Clocking配置为系统90MHz时钟2分频。

在ADC配置中,使用默认的分频系数ADCLK=2,得到ADC模块时钟为45MHz,其他使用默认配置。

【轮式平衡机器人】——TMS320F28069片内外设之ADC_第1张图片

在simulink中搜索“ADC c2802x”模块,采样模式为单个采样模式,SOC触发数为SOC0,采样窗口7,SOCx触发源为软件触发,输出数据类型为uint16,输入通道配置为A0,此模块数据基本为默认

【轮式平衡机器人】——TMS320F28069片内外设之ADC_第2张图片

配置完成后,对ADC采样的值进行转换。由于ADC转换结果寄存器是16位的,且数值是左对齐的12位数据,所以要进行左移4位操作,官方支持包考虑到了这一点,只需直接对输出的结果进行转换就可以得到实际的采样值。

下面的模型采集的是外部电位器的0~3.3V电压,所以直接进行转换(12位的ADC满量程为4096,即4096对应实际参考电压3.3V)。这里加入了LED灯,当采集到的模拟量少于2048时,LED2灯闪烁,否则LED1闪烁。其中“Rate Transition”模块为高采样速率向低采样速率转换

【轮式平衡机器人】——TMS320F28069片内外设之ADC_第3张图片

搭建完成后将模型编译下载到主控板(小编由于成本也是先纸上谈兵了,重在熟悉步骤)。将电位器中间引脚接在主控板的AD0引脚上,其他两个引脚分别接在主控板的3.3V和GND引脚,顺时针和逆时针调节电位器,两个LED灯都发生了变化。

2、ADC_EXTERNAL模式

按照GPIO_EXTERNAL外部模式的配置方法将模型配置为外部模式,见上期博客:

上期博客外部模式配置icon-default.png?t=N7T8http://t.csdnimg.cn/qV7bF

在Simulink中搭建模型,首先将ADC输出值通过一个增益模块赋给PWM的占空比输入,并显示在scope模块上。Gain的输出数据为uint16,ePWM模块选择ePWM1,这里WA相当于占空比的大小,相关配置详细见后续ePWM期博客。

【轮式平衡机器人】——TMS320F28069片内外设之ADC_第4张图片

完成上述配置后,用USB转TTL线,分别将USB的RX、TX接在F28069主控板的TXA、RXA引脚上。启动仿真,调节电位器便可观察到scope示波器的变化。

往期精彩

STM32专栏(付费9.9)icon-default.png?t=N4N7http://t.csdnimg.cn/E2F88

OpenCV-Python专栏(付费9.9)icon-default.png?t=N4N7http://t.csdnimg.cn/zK1jV

AI底层逻辑专栏(付费9.9)icon-default.png?t=N4N7http://t.csdnimg.cn/zic0f

机器学习专栏(免费)icon-default.png?t=N4N7http://t.csdnimg.cn/FaXzAFreeRTOS专栏(免费)icon-default.png?t=N4N7http://t.csdnimg.cn/SjIqU电机控制专栏(免费)icon-default.png?t=N4N7http://t.csdnimg.cn/FNWM7

 【轮式平衡机器人】——TMS320F28069片内外设之ADC_第5张图片

你可能感兴趣的:(轮式平衡机器人,机器人,单片机,嵌入式硬件)