




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
項目十一
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 水壩涵管施工方案
- 重點部位體格檢查規范操作專業知識講座培訓課件
- 七年級信息技術 《3.3文字編輯:復制和移動、查找替換》教學設計
- 麗水2024年浙江麗水云和縣人武部招聘民兵專職教練員筆試歷年參考題庫附帶答案詳解
- 旅游資源開發戰略合作框架協議書二零二五年
- 二零二五離婚協議書精神損失費
- 廣州公積金貸款指南
- 來料加工協議書二零二五年
- 去哪里變更離婚協議
- 借款合同書抵押擔保條款
- 創傷現場急救課件
- 2025年云南德宏州宏康投資開發有限公司招聘筆試參考題庫含答案解析
- 勞動與烹飪課件
- 高血壓、2型糖尿病、高脂血癥、肥胖癥膳食運動指導要點基層醫務人員應用實操手冊
- 2025屆河北省邢臺市名校協作高三下學期一模英語試題(含答案)
- 2024內蒙古能源集團校園招聘394人筆試參考題庫附帶答案詳解
- 交通設計(Traffic Design)知到智慧樹章節測試課后答案2024年秋同濟大學
- 網絡安全和保密意識教育
- 2024年畢節市金沙縣全縣考調機關單位事業單位人員考試真題
- 水利系統職稱考試水利專業技術人員職稱考試題(附答案)
- 《橋梁健康監測》課件
評論
0/150
提交評論