版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目十一
ADC采集芯片内温度目录项目导入项目目标项目分析知识储备01030204项目实施拓展训练0506项目导入01项目导入项目导入在某次食品安全检查中,检查人员中使用一个温度计检测餐厅每一样菜肴样品的温度,以确保其在安全温度范围内,目的是防止食品中毒和细菌感染的风险。项目导入
如果发现食品的温度不在安全范围内,则可以采取必要的措施来恢复温度或丢弃不安全的食品。在这种情况下,温度自检可以帮助确保食品的质量和安全性。工业设计里面也有同样的温度检查操作,并且往往是设备以定期自检的形式,检查设备、板卡或芯片的内部温度是否超出了范围。一旦检测到器件或设备的温度出现异常,则产生报警信息并执行处理措施。CC2530在实际应用中,芯片的温度值可以用来监控芯片的工作状态和环境温度,以及进行温度补偿等操作。它是一款带有内置温度传感器的芯片,可通过ADC采集芯片内部的温度值。CC2530的温度测量范围为-40°C到125°C,精度为±3.5°C。用户可以通过读取ADC寄存器的值来获取芯片温度的数据,并进行相应的处理和控制。本项目通过CC2530的ADC模块采集芯片的内部温度,模拟工业器件的自检场景。项目导入项目分析02将时间和幅值连续的模拟量转化为时间和幅值离散的数字量,这一过程叫A/D转换,A/D转换一般要经过采样、保持、量化、编码4个过程。实现A/D转换功能的是单片机或其它器件里面的数模转换器,简称为ADC。CC2530的ADC支持14位的模拟数字转换,其中12位为有效数字位;它包括一个模拟多路转换器,8个各自可配置的ADC通道以及一个参考电压发生器。将片上温度传感器的输出选择作为ADC的输入,即可用于CC2530的片内温度测量。项目分析项目要求:
AD采集CC2530的片内温度并通过串口发送到PC的串口助手显示出来。1.利用ADC来采集温度传感器(片内),并将温度值发给电脑显示2.了解CC2530的片内ADC的功能3.学会使用CC2530片内温度传感器项目分析项目目标
03掌握CC2530的ADC控制寄存器的配置学会使用CC2530的ADC进行片内温度采样知识储备04本来项目的设计有两个关键点,一是获得CC2530片内温度的AD值,二是把AD值转成温度值。项目中,AD值获取设置为12位。值得注意的是,ADCL和ADCH寄存器是用MSB取值,即有效的12位数值在ADCL和ADCH寄存器中均靠左放置。要将这两个8位寄存器的数值联结得到一个16位的AD数据,需要在程序中将ADCL的数值右移4位后,再跟ADCH的8位数值强制转换为16位后左移4位的值做并运算。但CC2530的原厂例程中是:ADCL>>2,ADCH<<6,这点已证实错误。ADC的值如何转为温度值?CC2530的芯片手册给出了25°C时,对应的12位ADC值为1480。手册给出了温度系数,数值为4.5/10°C。手册中温度系数中10°C该处也证实手册有误,正确应为1°C,并且根据传感器中温度系数的定义,手册中完整的温度系数应更正为:4.5ppm/1°C,即25°C时,ADC值为1480,温度每上升1°C,AD值增加4.5%。这也是ADC值转化为温度值的依据。知识储备
知识储备一、CC2530内置ADC的特点二、ADC输入端与采样率设置三、ADC运行模式四、ADC转换结果知识储备CC2530内置的模数转换器(ADC)主要有以下特点:1.可选的采样率(7到12位)。2.8个独立的输入通道,单端或差分。3.参考电压可选为内部、外部单端、外部差分或AVDD5(CC2530的模拟量电压输入引脚)。4.可产生中断请求。5.可测量电池电压。6.可测量芯片内部温度。一、CC2530内置ADC的特点二、ADC输入端与采样率设置
P0端口引脚上的信号可以用作ADC输入。在后面的描述中这些端口引脚将被称为AIN0—AIN7引脚。输入引脚AIN0—AIN7连接到ADC。
可以把输入配置为单端或差分输入。差分输入是指4对输入引脚(AIN0—AIN1、AIN2—AIN3、AIN4—AIN5、AIN6—AIN7)间的电势差。请注意,这些引脚不能使用负电源,或者大于VDD的电源。
除了输入引脚AIN0—AIN7,片上温度传感器的输出也可以选择作为用于温度测量的ADC输入。
还可以选择一个对应AVDD5/3的电压作为ADC输入。这个输入允许实现例如要求电池监测功能的应用。注意,这种情况下的参考电压不能由电池电压决定,例如,AVDD5电压不能作为参考电压。ADCCON2(0xB5)–ADC控制2和ADCCON3(0xB6)–ADC控制3的控制寄存器如表11-1所示。表11-1ADCCON2(0xB5)–ADC控制2和ADCCON3(0xB6)–ADC控制3位名称复位R/W描述7:6SREF[1:0]00R/W参考电压选择00:内部参考电压01:AIN7引脚上的外部参考电压10:AVDD5引脚11:AIN6-AIN7差分输入外部参考电压5:4SDIV[1:0]01R/W采样率设置00:64采样率(7位)01:128采样率(9位)10:256采样率(10位)11:512采样率(12位)3:0SCH[3:0]0000R/W通道选择。0000:AIN00001:AIN10010:AIN20011:AIN30100:AIN40101:AIN50110:AIN60111:AIN71000:AIN0-AIN11001:AIN2-AIN31010:AIN4-AIN51011:AIN6-AIN71100:GND1101:正电压参考1110:温度传感器1111:VDD/3
ADCCON2.SDIV设置采样率,ADCCON2.SCH设置模拟量的输入通道,AIN0-AIN7对应P0_0-P0_7。ADCCON3寄存器参数与ADCCON2完全相同,不同之处在于ADCCON2用于不断重复采集,ADCCON3用于单次采集,如表11-2~11-3所示。表11-2TR0(0x624B)–测试寄存器0位名称复位R/W描述7:1-0000000R0保留。写作0。0ACTM0R/W设置为1来连接温度传感器到SOC_ADC。表11-3ATEST(0x61BD)–模拟测试控制位号码名称复位R/W描述7:6-00R0保留。读作05:0ATEST_CTRL[5:0]000000R/W控制模拟测试模式:000001:使能温度传感器三、ADC运行模式ADC具有三个控制寄存器:ADCCON1、ADCCON2和ADCCON3,如表11-4所示。位名称复位R/W描述7EOC0R/H0转换结束标志位0:转换没有完成1:转换完成6ST0
开始转换。0:没有转换正在进行1:如果ADCCON1.STSEL=11并且没有序列正在运行就启动一个转换序列。5:4STSEL[1:0]11R/W1启动方式选择。00:P2.0引脚的外部触发。01:立即开始转换。10:定时器1通道0比较事件11:ADCCON1.ST=13:2RCTRL[1:0]00R/W16位随机数发生器控制00:正常运行。(13X型展开)01:LFSR的时钟一次(没有展开)10:保留11:关闭随机数发生器ADCCON1.EOC位是一个状态位,当一个转换结束时该位置1,当读取ADCH时,清除该位。ADCCON1.ST位用于启动一个转换序列。当该位置1,ADCCON1.STSEL位为11,且当前没有正在进行的转换时,将启动一个序列。当这个序列转换完成,该位就自动清除。ADCCON1.STSEL位选择哪个事件将启动一个新的转换序列。可以被选择的事件选项有:外部引脚P2.0上的上升沿,前一个序列的结束,定时器1通道0比较事件或ADCCON1.ST置1。表11-4ADCCON1(0xB4)–ADC控制四、ADC转换结果数字转换结果放置在ADCH、ADCL寄存器中,以2的补码形式表示。对于单端配置,结果总是为正。当ADCCON1.EOC置1时,表示转换完成,此时可以读出ADCH和ADCL里的数据,如表11-5~11-6所示。位名称复位R/W描述7:2ADC[5:0]000000RADC转换结果的低位部分1:0-00R0没有使用表11-6ADCH(0xBB)–ADC数据高位位名称复位R/W描述7:0ADC[13:6]0x00RADC转换结果的高位部分ADCH的最高位是符号位,对于单个测量,结果总是正,
所以符号位总是0。
所以用到bit6--bit0,
计7位。ADCL的低2位(bit0,bit1)系统保留,bit2不用,所以用到bit7--bit3,计5位。所以共12位。当然其他抓取率时,有效分辨率如下:00:64decimationrate(7bitsENOB)--ADCH低7位01:128decimationrate(9bitsENOB)--ADCH低7位+ADCH高2位10:256decimationrate(10bitsENOB)--ADCH低7位+ADCH高3位11:512decimationrate(12bitsENOB)--ADCH低7位+ADCL高5位表11-5ADCL(0xBA)–ADC数据低位项目实施05项目实施一、准备设备和资源项目实施前必须先准备好相应的设备和资源,见表11-7。序号设备/资源名称数量单位是否准备到位(√)1CC2530模块1个
2CCDebugger仿真器(带下载线)1个
3MiniUSB供电线或5号电池1根/个
表11-7设备和资源清单
本实验使用CC2530的片内ADC外设采集芯片的内部温度,片内ADC的内部硬件信号连接如图11-1所示。
图11-1CC2530片内ADC硬件连接图二、查阅实验模块原理图1.连接设备
将CCDebugger仿真器的接口与CC2530实验模块(实验模块使用“求助按钮V1.0”)相连,仿真器另一端用USB数据线连接到PC上,如图11-2所示。
图11-2实验接线图
三、实施过程2.程序设计1)创建工程。打开IAR新建一个CProject工程(具体步骤请参照项目二)2)本实验的软件流程图。下面图11-3是本实验的流程图,大家可以结合这个图来学习编写程序。
图11-3程序流程图3)编写代码。完整的程序源代码,见课程资源。主要功能代码如下:(1)引用相应头文件#include<ioCC2530.h>#include<stdio.h>#include<string.h>(2)对IO口进行初始化:/*****************************************************函数名称:IO_Init功能:完成IO口初始化voidIO_Init(void){P1DIR|=0x04;//P1_2端口定义为输出,对应蜂鸣器Beeper=0;//关闭蜂鸣器}(3)对串口进行初始化:/*****************************************************函数名称:InitUART功能:完成串口初始化voidInitUART(void){
PERCFG=0x00;//位置1P0口
P0SEL=0x0C;//P0用作串口
P2DIR&=~0xC0;//P0优先作为UART0
U0CSR|=0x80;//串口设置为UART方式U0GCR|=11;
U0BAUD|=216;//波特率设为115200
UTX0IF=1;//UART0TX中断标志初始置位1
U0CSR|=0x40;//允许接收
IEN0|=0x84;//开总中断,接收中断}(4)串口发送函数:/*****************************************************函数名称:UartSendString功能:将特定长度的字符串发送出去voidUartSendString(char*Data,intlen){uinti;for(i=0;i<len;i++){U0DBUF=*Data++;while(UTX0IF==0);UTX0IF=0;}
U0DBUF=0x0A;//输出换行while(UTX0IF==0);UTX0IF=0;}(5)对温度传感器进行初始化:/*****************************************************函数名称:InitTempSensor功能:完成芯片内部自带温度传感器的初始化voidInitTempSensor(void){IEN0=IEN1=IEN2=0X00;//关闭所有中断TR0=0x01;//设置为1来连接温度传感器到SOC_ADCATEST=0x01;//使能温度传感}(6)获取温度传感器的温度值:/*****************************************************函数名称:GetTemperature功能:完成对温度传感器的AD采样,并转换为实际温度值floatGetTemperature(void){uintvalue=0;ADCCON3=(0x3E);//选12位采样率;对片内温度传感器采样ADCCON1|=0x30;//选择ADC的启动模式为手动ADCCON1|=0x40;//启动AD转化while(!(ADCCON1&0x80));//等待AD转换完成value=ADCL>>4;//ADCL寄存器低2位无效,由于只有12位有效,ADCL寄存器低4位无效。value|=(((uint)ADCH)<<4);;return(value*0.015)+2.778;//根据芯片手册的温度系数得到AD值转温度值的转换公式}(7)主函数循环采样温度数据,串口发送到PC:/*****************************************************函数名称:main功能:调用AD采样函数获得温度值,将温度数据作加权平均后通过串口发送voidmain(void){CLKCONCMD&=~0x40;//设置系统时钟源为32MHZ晶振while(CLKCONSTA&0x40);//等待晶振稳定CLKCONCMD&=~0x47;//设置系统主时钟频率为32MHZchari;floatAvgTemp;charstrTemp[6];IO_Init();InitUART();//初始化串口InitTempSensor();//初始化ADCwhile(1){AvgTemp=GetTemperature();for(i=0;i<63;i++){AvgTemp+=GetTemperature();AvgTemp=AvgTemp/2;//加权计算温度可以减少误
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Nexans耐克森综合布线系统在华著名工程案例
- 公园建设项目可研报告
- 陕西省西安市西北大学附中2025届高考仿真卷英语试题含解析
- 2025届北京市通州区高考考前模拟英语试题含解析
- 《数字系统设计例子》课件
- 湖北省华中师大一附中2025届高三第四次模拟考试语文试卷含解析
- 2025届四川省内江市重点中学高考数学全真模拟密押卷含解析
- 现代学徒制课题:中国特色学徒制国际比较研究(附:研究思路模板、可修改技术路线图)
- 安徽省黄山市2025届高三下第一次测试语文试题含解析
- 北京市西城区第一五六中学2025届高考冲刺语文模拟试题含解析
- 253种中药材粉末显微鉴别主要特征
- 论辛弃疾词作的愁情主题及其审美价值
- 新形势下我国保险市场营销的现状、问题及对策
- LTE无线网络优化PPT课件
- 动态血压监测在社区高血压患者管理的意义
- 管道中英文对照表
- 240灯控台_说明书
- 新形势下加强市场监管局档案管理工作的策略
- 例行检查和确认检验程序
- 上海旅游资源基本类型及其旅游区布局特点(共5页)
- 六一汤_医方类聚卷一○二引_御医撮要_减法方剂树
评论
0/150
提交评论