面向物联网的嵌入式系统开发-07-CC2530-ADC模数转换应用开发

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

CC2530和STM32嵌入式接口技术开发3.4CC2530ADC模数转换应用开发EducationSolutions目录ContentsInternet+ADC模数转换简介CC2530与ADC模数转换项目场景说明项目实践17:44/3ADC模数转换概念ADC是Analog-to-DigitalConverter的缩写,指模/数转换器或者模数转换器。是指将连续变化的模拟信号转换为离散的数字信号的器件。3Bit电压转换原理(右图)1/82/83/84/85/86/87/8FSR00101001110010111011100001.5LSB1/2LSB±0.5LSBDNL3-bitADCTransferFunction:Quantization&DNL/INLErrorsAnaloginputvoltage(%FSR)DigitalOutputCode17:44/4ADC信号采样率模拟信号在时域上是连续的,因此可以将它转换为时间上连续的一系列数字信号。这样就要求定义一个参数来表示新的数字信号采样自模拟信号速率。这个速率称为转换器的采样率(samplingrate)或采样频率(samplingfrequency)。17:44/5ADC分辨率ADC的分辨率是指使输出数字量变化一个最小量时模拟信号的变化量。常用二进制的位数表示;例如8位的AD,可以描述255个刻度的精度(2的8次方),在它测量一个5V左右的电压时,它的分辨率是5V除以255,大约改变一个的刻度其改变的最小单位必须是0.02V。17:44/6ADC量化误差概念ADC把模拟量转化为数字量,用数字量近似值标志模拟量,这个过程称之为量化。量化误差是ADC的有限位数对模拟量进行量化而引起的误差。实际上要准确表示模拟量,ADC的位数需要很大甚至无穷大。一个分辨率有限的ADC的阶梯转换特性曲线与具有无限分辨率的ADC转化特性曲线(直线)之间的最大偏差既是量化误差。模拟直线转换曲线(a)量化误差1LSB1/82/83/84/85/86/87/80010100111001011101110000V1/Vref模拟直线理想转换曲线(b)理想转换曲线,量化误差±(1/2)LSB1/82/83/84/85/86/87/80010100111001011101110000V1/Vref17:44/7CC2530的ADC模数转换CC2530的ADC支持多达14位的模拟数字转换,具有多达12位的ENOB(有效数字位)。它包括一个模拟多路转换器,具有多达8个各自可配置的通道;以及一个参考电压发生器。转换结果通过DMA写入存储器。还具有若干运行模式。CC2530的ADC模数转换功能框图:17:44/8ADC模块特征可选取的抽取率,设置分辨率(7~12位)。8个独立的输入通道,可接收单端或差分信号。参考电压可选为内部单端、外部单端、外部差分或AVDD5。单通道转换结束可产生中断请求。序列转换结束可发出DMA触发。可将片内温度传感器作为输入。电池电压测量功能。17:44/9ADC模块的信号输入端口0引脚可以配置为ADC输入端,依次为AIN0~AIN7:可以把输入配置为单端输入或差分输入。差分输入对:AIN0~AIN1、AIN2~AIN3、AIN4~AIN5、AIN6~AIN7。片上温度传感器的输出也可以作为ADC的输入用于测量芯片的温度。可以将一个对应AVDD5/3的电压作为ADC输入,实现电池电压监测。负电压和大于VDD的电压都不能用于这些引脚。单端电压输入AIN0~AIN7,以通道号码0~7表示;四个差分输入对则以通道号码8~11表示;温度传感器的通道号码为14;AVDD5/3电压输入的通道号码为15。17:44/10序列ADC转换:可以按序列进行多通道的ADC转换,并把结果通过DMA传送到存储器,而不需要CPU任何参与。单通道ADC转换:在程序设计中,通过写ADCCON3寄存器触发单通道ADC转换,一旦寄存器被写入,转换立即开始。参考电压:内部生成的电压、AVDD5引脚、适用于AIN7输入引脚的外部电压,或者适用于AIN6~AIN7输入引脚的差分电压。转换结果:数字转换结果以2的补码形式表示。对于单端,结果总是正的。对于差分配置,两个引脚之间的差分被转换,可以是负数。当ADCCON1.EOC设置为1时,数字转换结果可以获得,且结果总是驻留在ADCH和ADCL寄存器组合的MSB段中。中断请求:通过写ADCCON3触发一个单通道转换完成时,将产生一个中断,而完成一个序列转换时,是不产生中断的。当每完成一个序列转换,ADC将产生一个DMA触发。ADC相关的几个概念17:44/11CC2530的ADC寄存器介绍CC2530中与ADC相关的寄存器有6个,这6个寄存器分别是:ADCH(ADC转换结果高位存放寄存器)ADCL(ADC转换结果低位存放寄存器)ADCCON1(ADC通用控制寄存器1)ADCCON2(ADC通用控制寄存器2)ADCCON3(ADC通用控制寄存器3)APCFG(ADC通道配置寄存器)17:44/12项目场景电子秤在我们生活中应用十分的广泛,无论是我们我们称体重,还是在购买商品的时候都会用到。电子秤的工作流程:当物体放在秤盘上时,压力施给传感器,该传感器发生形变,从而使阻抗发生变化,同时使用激励电压发生变化,输出一个变化的模拟信号。该信号经放大电路放大输出到模数转换器(ADC)。转换成便于处理的数字信号输入到单片机。单片机根据键盘命令以及程序将这种结果输出到显示器,显示这种结果。17:44/13任务目标使用CC2530微处理器模拟电子秤采集转换的电压,通过编辑程序使用CC2530微处理器的ADC外设实现对CC2530微处理器底板的电源电压检测,通过使用IARfor8051开发环境的调试窗口查看ADC的电压转换值,并将电压采集值转换为电压物理量。17:44/14项目分析项目中CC2530单片机采集的电压为电池电压,由于电池标准电压为12V远高于CC2530单片机的3.3V工作电压,因此电池电压需要通过相应的硬件电路进行处理,将电池电压等比例缩小到CC2530单片机可接受的工作电压。电池电压分压电路如图:17:44/15程序流程图程序设计思路是首先初始化系统时钟。初始化完成后进入主循环,主循环中先进行ADC的配置,配置完成后启动ADC转化,等待ADC转化结束后,将取得的最终转化结果存入value中。开始初始化系统时钟配置ADC是取得这最终结果存入value否启动ADC转化完成17:44/16项目实现CC2530单片机的ADC模数转换配置程序如下:intadc_test(void){unsignedintvalue;APCFG|=0x10;//模拟I/O使能P0SEL|=0x10;//端口0_4功能选择外设功能P0DIR&=~0x10;//设置输入模式ADCCON3=0xB4;//选择AVDD5为参考电压;12分辨率;P0_4ADCADCCON1|=0x30;//选择ADC的启动模式为手动ADCCON1|=0x40;//启动AD转化while(!(ADCCON1&0x80));//等待ADC转化结束value=ADCL2;value|=(ADCH6)2;//取得最终转化结果,存入value中return((value));}17:44/17项目思考什么是ADC量化误差?CC2530微处理器的ADC配置寄存器?CC2530微处理器的ADC转换精度是如何计算?如何使用CC2530微处理器驱动ADC?

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功