ARM Cortex-M4+Wi-Fi MCU應(yīng)用指南(CC3200 CCS基礎(chǔ)篇)_第1頁
ARM Cortex-M4+Wi-Fi MCU應(yīng)用指南(CC3200 CCS基礎(chǔ)篇)_第2頁
ARM Cortex-M4+Wi-Fi MCU應(yīng)用指南(CC3200 CCS基礎(chǔ)篇)_第3頁
ARM Cortex-M4+Wi-Fi MCU應(yīng)用指南(CC3200 CCS基礎(chǔ)篇)_第4頁
ARM Cortex-M4+Wi-Fi MCU應(yīng)用指南(CC3200 CCS基礎(chǔ)篇)_第5頁
已閱讀5頁,還剩332頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

ARMCortex-M4+Wi-FiMCU應(yīng)用指南CC3200CCS基礎(chǔ)篇目錄\h第1章CC3200簡介\h1.1應(yīng)用MCU\h1.1.1ARMCortex-M4\h1.1.2存儲器\h1.1.3片內(nèi)外設(shè)\h1.2Wi-Fi網(wǎng)絡(luò)處理器(CC3100)\h1.3電源管理\h1.4引腳復(fù)用\h第2章開發(fā)環(huán)境\h2.1軟件開發(fā)環(huán)境\h2.1.1軟件開發(fā)工具包(SDK)\h2.1.2集成開發(fā)環(huán)境(IDE)\h2.1.3實用程序\h2.1.4支持工具\h2.1.5ROM服務(wù)\h2.2硬件開發(fā)環(huán)境\h2.2.1TICC3200LaunchPad開包即用體驗\h2.2.2服務(wù)包更新\h第3章片內(nèi)外設(shè)接口應(yīng)用\h3.1GPIO接口應(yīng)用\h3.1.1GPIO示例程序分析\h3.1.2GPIO使用簡介\h3.1.3按鍵控制LED閃爍時間程序設(shè)計\h3.1.4PinMux使用介紹\h3.2UART接口應(yīng)用\h3.2.1UART簡介\h3.2.2UART示例程序分析\h3.2.3UART使用簡介\h3.2.4UART示例程序小改進(jìn)\h3.3SPI接口應(yīng)用\h3.3.1SPI示例程序分析\h3.3.2SPI使用簡介\h3.4I2C接口應(yīng)用\h3.4.1I2C示例程序分析\h3.4.2I2C使用簡介\h3.4.3溫度測量和加速度測量程序設(shè)計\h第4章片內(nèi)外設(shè)應(yīng)用\h4.1GPT應(yīng)用\h4.1.1定時器示例程序分析\h4.1.2PWM示例程序分析\h4.1.3計數(shù)捕捉示例程序分析\h4.1.4GPT使用簡介\h4.1.5矩形波周期和脈寬測量程序設(shè)計\h4.2ADC應(yīng)用\h4.2.1ADC示例程序分析\h4.2.2ADC使用簡介\h4.3NVIC應(yīng)用\h4.3.1NVIC示例程序分析\h4.3.2NVIC使用簡介\h4.3.3外設(shè)中斷使用小結(jié)\h4.4μDMA應(yīng)用\h4.4.1UARTDMA示例程序分析\h4.4.2μDMA使用簡介\h4.4.3μDMA示例程序分析\h第5章網(wǎng)絡(luò)應(yīng)用入門\h5.1Wlan_station示例程序分析\h5.1.1主函數(shù)main()分析\h5.1.2WlanStationMode()分析\h5.2Wlan_ap示例程序分析\h5.2.1主函數(shù)main()分析\h5.2.2WlanAPMode()分析\h第6章網(wǎng)絡(luò)應(yīng)用基礎(chǔ)\h6.1Tcp_socket示例程序分析\h6.1.1BsdTcpServer()分析\h6.1.2BsdTcpClient()分析\h6.2Udp_socket示例程序分析\h6.2.1BsdUdpServer()分析\h6.2.2BsdUdpClient()分析\h6.3無線UART程序設(shè)計\h6.3.1Wuart_station程序設(shè)計\h6.3.2Wuart_ap程序設(shè)計\h6.3.3將應(yīng)用程序編程到串行閃存\h第7章網(wǎng)絡(luò)應(yīng)用配置\h7.1Provisioning_smartconfig示例程序分析\h7.2Provisioning_wps示例程序分析\h7.2.1WpsConnectPushButton()分析\h7.2.2WpsConnectPinCode()分析\h第8章HTTP服務(wù)器\h8.1HTTP服務(wù)器簡介\h8.1.1HTTPGET處理\h8.1.2HTTPPOST處理\h8.1.3內(nèi)部網(wǎng)頁\h8.2Provisioning_ap示例程序分析\h8.2.1ProvisioningAP()分析\h8.2.2GetScanResult()分析\h8.2.3HTTP服務(wù)器分析\h8.3Out_of_box示例程序分析\h8.3.1HTTP服務(wù)器回調(diào)函數(shù)分析\h8.3.2家庭自動化(HomeAutomation)網(wǎng)頁分析\h8.3.3家用電器(HomeAppliances)網(wǎng)頁分析\h8.3.4安全保障(SafetyandSecurity)網(wǎng)頁分析\h8.3.5智能能源網(wǎng)頁分析\h8.4HTTP服務(wù)器小結(jié)\h第9章電源管理\h9.1Sleep_deepsleep示例程序分析\h9.1.1WDT喚醒睡眠PerformPRCMSleepWDTWakeup()分析\h9.1.2GPT喚醒睡眠PerformPRCMSleepGPTWakeup()分析\h9.2Deepsleep_nw示例程序分析\h9.3Hib示例程序分析\h附錄ACC3200外設(shè)驅(qū)動API\h附錄BCC3200網(wǎng)絡(luò)驅(qū)動API\h附錄CCC3200引腳復(fù)用功能\h附錄DCC3200外設(shè)引腳分配\h附錄ECC3200LaunchPad簡介\h附錄FCC3200異常和中斷\h附錄GCC3200μDMA通道分配\h附錄H實驗指導(dǎo)第1章CC3200簡介CC3200是TI無線連接SimpleLinkWi-Fi和物聯(lián)網(wǎng)(IoT)解決方案最新推出的一款單片無線MCU,是業(yè)界第一個具有內(nèi)置Wi-Fi的MCU,是針對物聯(lián)網(wǎng)應(yīng)用、集成高性能ARMCortex-M4的無線MCU??蛻裟軌蚴褂脝蝹€集成電路開發(fā)整個應(yīng)用,借助片上Wi-Fi、互聯(lián)網(wǎng)和強大的安全協(xié)議,無須Wi-Fi經(jīng)驗即可實現(xiàn)快速的開發(fā)。CC3200是一個完整平臺解決方案,其中包括軟件、示例應(yīng)用、工具、用戶和編程指南、參考設(shè)計及TIE2E支持社區(qū),采用易于布局的四方扁平無引線(QFN)封裝。CC3200硬件概況和嵌入式軟件概況如圖1.1所示。圖1.1CC3200硬件概況和嵌入式軟件概況CC3200包括應(yīng)用MCU、Wi-Fi網(wǎng)絡(luò)處理器(CC3100)和電源管理3大部分。應(yīng)用MCU包含一個運行頻率為80MHz的行業(yè)標(biāo)準(zhǔn)ARMCortex-M4內(nèi)核,包含用于存放代碼和數(shù)據(jù)的內(nèi)部RAM以及存放啟動引導(dǎo)程序和外設(shè)驅(qū)動程序的ROM,還包含GPIO、UART、SPI、I2C、I2S/PCM、SD/MMC、PWM和ADC等多種片內(nèi)外設(shè)。Wi-Fi網(wǎng)絡(luò)處理器(CC3100)包含一個Wi-Fi片上互聯(lián)網(wǎng)和一個可完全免除應(yīng)用MCU處理負(fù)擔(dān)的專用ARMMCU。Wi-Fi片上互聯(lián)網(wǎng)包含Wi-Fi射頻、基帶和具有強大加密引擎的MAC,可以實現(xiàn)支持256位加密的快速安全的互聯(lián)網(wǎng)連接。Wi-Fi片上互聯(lián)網(wǎng)還包括嵌入式TCP/IP和TLS/SSL協(xié)議棧、HTTP服務(wù)和多種應(yīng)用協(xié)議。CC3200支持站點、接入點和Wi-Fi直連三種模式,支持WPA2個人和企業(yè)安全性以及WPS2。電源管理包括支持寬電源電壓范圍的集成直流-直流轉(zhuǎn)換器,可以啟用低功耗模式(包括睡眠、深睡眠、低功耗深睡眠和休眠等),具有RTC的休眠模式所需電流小于4μA。1.1應(yīng)用MCUCC3200應(yīng)用MCU的特性如下。●ARMCortex-M4內(nèi)核,運行頻率80MHz?!駜?nèi)部存儲器。?RAM:存放代碼和數(shù)據(jù),容量多達(dá)256KB。?ROM:存放啟動引導(dǎo)程序和外設(shè)驅(qū)動程序,容量為64KB。●針對高級快速安全性的硬件加密引擎。?AES、DES和3DES。?SHA2和MD5。?CRC和校驗和?!穸噙_(dá)27個獨立可編程、可復(fù)用的通用輸入輸出(GPIO)引腳?!?個通用異步收發(fā)器接口(UART)?!?個串行外設(shè)接口(SPI)。●1個內(nèi)部集成電路總線接口(I2C)。●1個多通道音頻串行接口(McASP),支持2個I2S通道?!?個SD/MMC接口?!?位并行攝像頭接口?!?個通用定時器(GPT),支持16位脈沖寬度調(diào)制(PWM)模式?!?通道12位模/數(shù)轉(zhuǎn)換器(ADC)?!?2通道微型直接存儲器存?。é藾MA)。1.1.1ARMCortex-M4高性能ARMCortex-M4提供低成本的平臺,能夠?qū)崿F(xiàn)最小的內(nèi)存需求,減少引腳數(shù)并降低功耗,同時提供卓越的計算性能和系統(tǒng)中斷響應(yīng)。ARMCortex-M4的特性如下?!褡吭降男阅?。?針對嵌入式應(yīng)用優(yōu)化的Thumb指令集。?處理程序和線程模式。?進(jìn)入和退出中斷處理程序時自動保存和恢復(fù)處理器狀態(tài)。?支持ARMv6非對齊訪問。●嵌套向量中斷控制器(NVIC)與處理器內(nèi)核的緊密結(jié)合實現(xiàn)低延遲中斷處理。?3~8位優(yōu)先級配置。?動態(tài)重新分配中斷優(yōu)先級。?中斷優(yōu)先級分組允許選擇中斷優(yōu)先級分組和中斷子優(yōu)先級的數(shù)量。?支持咬尾和遲到中斷,允許沒有狀態(tài)保存和恢復(fù)開銷的連續(xù)中斷處理。?沒有指令開銷的處理器狀態(tài)自動保存和恢復(fù)。?喚醒中斷控制器(WIC)提供超低功耗睡眠模式支持?!窨偩€接口。?三個先進(jìn)高性能總線(AHB)接口:ICode、DCode和系統(tǒng)總線接口。?存儲器和外設(shè)位帶(Bit-band)支持,包括原子位帶讀寫操作?!竦统杀菊{(diào)試方案。?調(diào)試可以訪問系統(tǒng)中的所有存儲器和寄存器。?支持串行調(diào)試端口(SW-DP)和串行JTAG調(diào)試端口(SWJ-DP)。?閃存補丁和斷點(FPB)單元實現(xiàn)代碼補丁和斷點。1.1.2存儲器CC3200應(yīng)用MCU的存儲器包括外部存儲器和內(nèi)部存儲器。1.外部存儲器CC3200在外部存儲器(串行閃存SFLASH)中保存特有的文件系統(tǒng),包括服務(wù)包文件、系統(tǒng)文件、配置文件、證書文件、網(wǎng)頁文件和用戶文件等。用戶可以使用格式化命令A(yù)PI分配文件系統(tǒng)的總?cè)萘?,文件系統(tǒng)的起始地址固定在SFLASH的開始。應(yīng)用MCU不能直接訪問SFLASH,必須通過文件系統(tǒng)訪問分配給文件系統(tǒng)的SFLASH區(qū)域。文件系統(tǒng)按照下載順序管理存儲文件SFLASH塊的分配,這意味著系統(tǒng)中特定文件的位置不固定。存儲在SFLASH中的文件使用直觀的文件名而不是文件標(biāo)識。文件系統(tǒng)API使用純文本,文件加密和解密用戶不可見,加密文件只能通過文件系統(tǒng)進(jìn)行訪問。文件系統(tǒng)中所有文件類型可以支持多達(dá)128個文件,文件存儲的最小單元是4KB,帶有安全保障和安全選項的加密文件存儲的最小單元是8KB,最大的文件大小是16MB。2.內(nèi)部存儲器內(nèi)部存儲器包括RAM(靜態(tài)存儲器SRAM)和ROM。(1)SRAM。CC3200包含片上SRAM供應(yīng)用程序下載和執(zhí)行,應(yīng)用程序開發(fā)者必須共享SRAM用于代碼和數(shù)據(jù)。微型直接存儲器存?。é藾MA)控制器可以在SRAM和外設(shè)間傳輸數(shù)據(jù)。CC3200ROM中擁有豐富的外設(shè)驅(qū)動程序,可以節(jié)省SRAM空間。CC3200提供多達(dá)256KB零等待狀態(tài)內(nèi)部SRAM,能夠在低功耗深睡眠(LPDS)模式下有選擇地保留,SRAM在存儲器映像中的偏移地址是0x20000000。(2)ROM。CC3200的內(nèi)部零等待狀態(tài)ROM的起始地址是0x00000000,編程有下列組件。●啟動引導(dǎo)程序(Bootloader)。●外設(shè)驅(qū)動程序(DriverLib)。啟動引導(dǎo)程序用于串行閃存為空時的初始引導(dǎo)程序,外設(shè)驅(qū)動程序為片內(nèi)外設(shè)提供啟動引導(dǎo)能力,實現(xiàn)片內(nèi)外設(shè)的初始化和控制功能,支持查詢或中斷操作。ROM中的外設(shè)驅(qū)動API可以被應(yīng)用程序調(diào)用,以減少閃存的需求,多出的閃存可以用于其他目的。(3)存儲器映像。CC3200存儲器映像如表1.1所示,其中包含各種外設(shè)在存儲器的映像地址。表1.1存儲器映像1.1.3片內(nèi)外設(shè)CC3200支持下列片內(nèi)外設(shè)接口和外設(shè)?!裢ㄓ幂斎胼敵鼋涌冢℅PIO)?!翊挟惒绞瞻l(fā)器接口(UART)?!翊型庠O(shè)接口(SPI)?!駜?nèi)部集成電路總線接口(I2C)?!穸嗤ǖ酪纛l串行接口(McASP)?!馭D/MMC接口?!癫⑿袛z像頭接口。●通用定時器(GPT)?!衲?數(shù)轉(zhuǎn)換器(ADC)?!裎⑿椭苯哟鎯ζ鞔嫒。é藾MA)。(1)通用輸入輸出接口(GPIO)。通用輸入輸出接口(GPIO)分為4組,每組8個。根據(jù)外設(shè)用途的不同,GPIO支持27個可編程GPIO引腳,每個GPIO引腳可配置為10μA上拉或下拉,驅(qū)動能力可配置為2mA、4mA或6mA,也可配置為開漏輸出。(2)串行異步收發(fā)器接口(UART)。串行異步收發(fā)器接口(UART)具有可編程波特率發(fā)生器,允許速率高達(dá)3Mbps,標(biāo)準(zhǔn)的異步通信起始位、停止位和奇偶校驗位,使用μDMA可以實現(xiàn)高效傳輸。(3)串行外設(shè)接口(SPI)。串行外設(shè)接口(SPI)可以配置為主設(shè)備或從設(shè)備,主設(shè)備串行時鐘的頻率、極性和相位可編程,片選和外部時鐘的定時控制可編程,第一個發(fā)送字前的延時可編程。(4)內(nèi)部集成電路總線接口(I2C)。內(nèi)部集成電路總線接口(I2C)通過兩根串行線可以在單個接口上連接多種I2C外設(shè),也可以工作在標(biāo)準(zhǔn)模式(100kbps)或者快速模式(400kbps)。(5)多通道音頻串行接口(McASP)。多通道音頻串行接口(McASP)作為通用音頻串行接口,為多通道音頻應(yīng)用優(yōu)化,支持通過兩個數(shù)據(jù)引腳進(jìn)行立體聲傳輸,發(fā)送和接收部分可同步工作。(6)SD/MMC接口。SD/MMC接口用于連接大容量SD卡存儲器,支持1位數(shù)據(jù)模式。(7)并行攝像頭接口。并行攝像頭接口可以連接各種外部圖像傳感器,圖像數(shù)據(jù)存放在FIFO中,可以產(chǎn)生DMA請求,數(shù)據(jù)寬度是8位。(8)通用定時器(GPT)。通用定時器(GPT)可以對輸入引腳上的外部事件進(jìn)行計數(shù)或計時,并可以產(chǎn)生脈沖寬度調(diào)制(PWM)信號從輸出引腳上輸出。(9)模/數(shù)轉(zhuǎn)換器(ADC)。模/數(shù)轉(zhuǎn)換器(ADC)的主要功能是將連續(xù)的模擬信號轉(zhuǎn)化為離散的數(shù)字信號,以便于微控制器進(jìn)行數(shù)據(jù)處理。(10)微型直接存儲器存?。é藾MA)。微型直接存儲器存?。é藾MA)將Cortex-M4從數(shù)據(jù)傳輸任務(wù)中解脫出來,實現(xiàn)外設(shè)和存儲器之間或者存儲器和存儲器之間的批量數(shù)據(jù)傳輸。1.2Wi-Fi網(wǎng)絡(luò)處理器(CC3100)CC3200Wi-Fi網(wǎng)絡(luò)處理器(CC3100)可以提供快速安全的WLAN和因特網(wǎng)連接,支持站點、接入點和Wi-Fi直連三種模式,特性如下?!裉赜蠾i-Fi片上互聯(lián)網(wǎng)(Internet-On-a-Chip)?!駥S肁RMMCU,完全免除應(yīng)用MCU的Wi-Fi和互聯(lián)網(wǎng)協(xié)議處理負(fù)擔(dān)?!馱i-Fi和互聯(lián)網(wǎng)協(xié)議存放在ROM中?!癜?02.11b/g/n射頻、基帶、MAC、Wi-Fi驅(qū)動和Supplicant?!馮CP/IP協(xié)議棧。?行業(yè)標(biāo)準(zhǔn)BSD套接字應(yīng)用編程接口(API)。?同時8個TCP或UDP套接字。?同時2個TLS和SSL套接字?!駨姶蟮募用芤?,可以實現(xiàn)支持256位AES加密的快速安全的互聯(lián)網(wǎng)連接?!裾军c(STA)、接入點(AP)和Wi-Fi直連(P2P)模式?!馱PA2個人和企業(yè)安全性。●用于自主和快速Wi-Fi連接的SimpleLink連接管理器?!裼糜诤唵戊`活Wi-Fi配置的智能配置(SmartConfig)技術(shù)、AP模式和WPS2。●發(fā)射功率。?18.0dBm@1DSSS(直序擴頻)。?14.5dBm@54OFDM(正交頻分復(fù)用)。●接收靈敏度。?-95.7dBm@1DSSS(直序擴頻)。?-74.0dBm@54OFDM(正交頻分復(fù)用)。Wi-Fi網(wǎng)絡(luò)處理器(CC3100)支持的主要特性如表1.2所示。表1.2Wi-Fi網(wǎng)絡(luò)處理器(CC3100)支持的主要特性1.3電源管理CC3200電源管理的特性如下?!窦芍绷?直流轉(zhuǎn)換器,支持寬范圍的電源電壓。?VBAT寬電壓模式:2.1~3.6V。?預(yù)穩(wěn)壓1.85V模式?!窀呒壍凸哪J?。?休眠(Hibernate):4μA。?低功耗深睡眠(LPDS):120μA。?RX(MCU活動):59mA@54OFDM。?TX(MCU活動):229mA@54OFDM,最大功率。?空閑連接(MCU處于LPDS):695μA@DTIM=1。從電源管理的角度看,CC3200的應(yīng)用MCU和Wi-Fi網(wǎng)絡(luò)處理器(CC3100)是獨立的,應(yīng)用MCU運行從外部串行閃存裝入的用戶應(yīng)用程序,Wi-Fi網(wǎng)絡(luò)處理器(CC3100)運行預(yù)編程的TCP/IP和Wi-Fi數(shù)據(jù)鏈路層函數(shù)。用戶程序控制應(yīng)用MCU的電源狀態(tài),可以有下列4種電源模式?!馦CU活動(Active)模式:MCU以80MHz主頻執(zhí)行程序?!馦CU睡眠(Sleep)模式:MCU時鐘被禁止,設(shè)備狀態(tài)被保留。睡眠模式提供即時喚醒功能,可以通過內(nèi)部定時器、GPIO引腳或外設(shè)喚醒?!馦CU低功耗深睡眠(LPDS)模式:狀態(tài)信息丟失,只有某些MCU特定的寄存器配置被保留。MCU可以通過內(nèi)部定時器或GPIO0~6上的外部事件喚醒,喚醒時間小于3ms。存儲器的某些部分可以被保留,保留存儲器的數(shù)量可配置,用戶可以選擇保存代碼或MCU特定的設(shè)置?!馦CU休眠(Hibernate)模式:最低功耗模式,只有一小部分直接由輸入電源供電的邏輯被保留,實時時鐘(RTC)保持運行,MCU可以通過RTC超時或GPIO0~6上的外部事件喚醒,喚醒時間比LPDS模式長15ms加上從串行閃存加載應(yīng)用程序的時間。Wi-Fi網(wǎng)絡(luò)處理器(CC3100)可以按照自己的模式活動或低功耗深睡眠,當(dāng)沒有網(wǎng)絡(luò)活動時,Wi-Fi網(wǎng)絡(luò)處理器(CC3100)大部分時間睡眠,只有接收信標(biāo)時喚醒。Wi-Fi網(wǎng)絡(luò)處理器(CC3100)有以下6種電源模式?!窬W(wǎng)絡(luò)活動模式(處理低3層):發(fā)送或接收IP協(xié)議數(shù)據(jù)包。●網(wǎng)絡(luò)活動模式(處理低2層):發(fā)送或接收MAC管理幀,不需要IP處理?!窬W(wǎng)絡(luò)活動監(jiān)聽模式:特殊的功耗優(yōu)化活動模式,用于接收信標(biāo)幀,不支持其他幀。●網(wǎng)絡(luò)連接空閑模式:實現(xiàn)802.11節(jié)能操作的復(fù)合模式。網(wǎng)絡(luò)處理器(CC3100)在信標(biāo)間自動進(jìn)入LPDS模式,接收信標(biāo)時進(jìn)入活動監(jiān)聽模式,通過信標(biāo)確定接入點是否有數(shù)據(jù)傳送,如果沒有,網(wǎng)絡(luò)處理器(CC3100)返回LPDS模式?!窬W(wǎng)絡(luò)低功耗深睡眠(LPDS)模式:信標(biāo)間的低功耗狀態(tài),狀態(tài)由網(wǎng)絡(luò)處理器(CC3100)保留,允許快速喚醒。●網(wǎng)絡(luò)禁用模式:網(wǎng)絡(luò)處理器(CC3100)不可用。應(yīng)用MCU和網(wǎng)絡(luò)處理器(CC3100)的操作應(yīng)確保設(shè)備大部分時間停留在最低功耗模式,以延長電池壽命。CC3200重要的片級電源模式如表1.3所示。表1.3片級電源模式應(yīng)用程序中電源模式的使用例子如下。(1)設(shè)備一直連接到網(wǎng)絡(luò),但只發(fā)送和接收少量數(shù)據(jù),大部分時間連接空閑:使用模式A(接收信標(biāo)幀)和模式B(等待下一個信標(biāo))。(2)設(shè)備不一直連接到網(wǎng)絡(luò),而是周期喚醒(如間隔10min)發(fā)送數(shù)據(jù),大部分時間在模式D(休眠):短暫跳到模式C傳輸數(shù)據(jù)。1.4引腳復(fù)用CC3200廣泛使用引腳復(fù)用功能,以便在盡可能小的封裝內(nèi)容納大量的外設(shè)。為了實現(xiàn)這種結(jié)構(gòu),引腳復(fù)用使用硬件配置和寄存器控制相結(jié)合的方法進(jìn)行控制。注意:TI強烈建議使用CC3200引腳復(fù)用實用工具PinMux獲得需要的引腳配置,PinMux的使用方法參考3.1.4節(jié)。引腳復(fù)用需要特別注意下列事項。●所有I/O引腳支持2mA、4mA或6mA驅(qū)動能力,每個引腳的驅(qū)動能力獨立配置。●所有I/O引腳支持10μA上拉和下拉,默認(rèn)不激活?!袼蠭/O引腳在設(shè)備處于休眠狀態(tài)時保持浮空?!馰IO和VBAT必須始終接在一起。CC3200引腳復(fù)用功能參見附錄C,外設(shè)引腳分配參見附錄D。第2章開發(fā)環(huán)境CC3200開發(fā)環(huán)境包括軟件開發(fā)環(huán)境和硬件開發(fā)環(huán)境。2.1軟件開發(fā)環(huán)境CC3200軟件開發(fā)環(huán)境包括軟件開發(fā)工具包(SDK)、集成開發(fā)環(huán)境(IDE)、實用程序和支持工具等。2.1.1軟件開發(fā)工具包(SDK)CC3200軟件開發(fā)工具包(SDK)目前有四個版本:用于試制器件的SDKv0.5.1和SDKv0.5.2,以及用于正式器件的SDKv1.0.0和SDKv1.1.0。下面以用于正式器件的SDKv1.1.0為例介紹SDK的安裝和目錄結(jié)構(gòu)。1.SDK安裝CC3200SDKv1.1.0的安裝文件是“CC3200SDK-1.1.0-windows-installer.exe”,該安裝文件支持WindowsXP、Windows7和Windows8,下面以Windows7為例介紹CC3200SDKv1.1.0的安裝步驟。(1)雙擊“CC3200SDK-1.1.0-windows-installer.exe”,顯示圖2.1所示安裝向?qū)АD2.1CC3200SDKv1.1.0安裝向?qū)В?)單擊“Next”(下一步)按鈕,顯示如圖2.2所示的許可協(xié)議。圖2.2CC3200SDKv1.1.0許可協(xié)議(3)閱讀許可協(xié)議,選中“Iaccepttheagreement”(我接受此協(xié)議),單擊“Next”(下一步)按鈕,顯示如圖2.3所示的安裝目錄。(4)接受默認(rèn)安裝目錄或修改安裝目錄,單擊“Next”(下一步)按鈕兩次,開始安裝CC3200SDK。安裝完成后,顯示如圖2.4所示的對話框。圖2.3CC3200SDKv1.1.0安裝目錄圖2.4安裝FTDI驅(qū)動程序問題對話框(5)單擊“是(Y)”按鈕,安裝FTDI驅(qū)動程序。FTDI驅(qū)動程序安裝完成后,顯示如圖2.5所示的界面。圖2.5CC3200SDKv1.1.0安裝完成(6)單擊“Finish”(完成)按鈕完成安裝,顯示ReadmeFile(自述文件)和CC3200WikiPage(維基網(wǎng)頁),維基網(wǎng)頁中有CC3200的詳細(xì)介紹。2.SDK目錄結(jié)構(gòu)CC3200SDK目錄結(jié)構(gòu)及其內(nèi)容說明如表2.1所示。表2.1CC3200SDK目錄結(jié)構(gòu)及其內(nèi)容說明(1)外設(shè)驅(qū)動程序庫。CC3200外設(shè)驅(qū)動程序庫簡要說明如表2.2所示。表2.2外設(shè)驅(qū)動程序庫簡要說明CC3200外設(shè)驅(qū)動API參見附錄A,詳細(xì)信息和使用方法參見文檔“docs\CC3200PeripheralDriverLibraryUser'sGuide.chm”。(2)網(wǎng)絡(luò)驅(qū)動程序庫。TISimpleLink架構(gòu)提供從基本設(shè)備管理到無線網(wǎng)絡(luò)配置和BSD套接字服務(wù)等一系列功能,為了更好地進(jìn)行設(shè)計,這些功能被分離成單獨的模塊,每個模塊代表不同的SimpleLink架構(gòu)功能。SimpleLink架構(gòu)組件如表2.3所示。表2.3SimpleLink架構(gòu)組件CC3200網(wǎng)絡(luò)驅(qū)動API參見附錄B,詳細(xì)信息和使用方法參見網(wǎng)頁“docs\simplelink_api\programmers_guide.html”。(3)電源模式。MCU電源管理架構(gòu)庫允許用戶應(yīng)用程序利用下列電源管理模式?!袼撸⊿leep)?!裆钏撸―eepSleep)。●低功耗深睡眠(LPDS)?!裥菝撸℉ibernate)。Wi-Fi網(wǎng)絡(luò)處理器(CC3100)支持下列低功耗策略?!裾#J(rèn)):數(shù)據(jù)傳送時間和功耗性能的最佳折中。●低功耗:僅用于收發(fā)(Transceiver)模式?!耖L睡眠間隔:在配置睡眠間隔(最長2s)后的下一個DTIM喚醒,僅用于客戶端套接字(ClientSocket)模式。(4)示例程序。CC3200SDK的example目錄中包含62個示例程序目錄,這些示例程序大致分為兩類:22個MCU示例程序和40個網(wǎng)絡(luò)示例程序,兩類示例程序的目錄名及其簡要說明分別如表2.4和表2.5所示。表2.4MCU示例程序簡要說明表2.5網(wǎng)絡(luò)示例程序簡要說明本書將以這些示例程序為核心,在示例程序分析的基礎(chǔ)上,介紹各部分的使用方法,并對部分示例程序進(jìn)行修改和改進(jìn),增強程序功能。2.1.2集成開發(fā)環(huán)境(IDE)CC3200的集成開發(fā)環(huán)境(IDE)可以使用CCS(v6.1.0)、IAR(v7.30)或GCC(Linux環(huán)境),下面以CCS(v6.1.0)為例介紹集成開發(fā)環(huán)境的安裝和使用。1.CCS安裝CCS有在線和離線兩種安裝方法,CCSv6.1.0的離線安裝壓縮文件是“CCS0104_win32.zip”,將壓縮文件解壓縮后得到“CCS0104_win32”目錄,其中包含安裝文件“ccs_setup_0104.exe”,安裝步驟如下。(1)雙擊ccs_setup_0104.exe,顯示如圖2.6所示的許可協(xié)議。圖2.6CCS許可協(xié)議(2)閱讀許可協(xié)議,選中“Iacceptthetermsofthelicenseagreement”(我接受許可協(xié)議中的條款),單擊“Next”(下一步)按鈕,顯示如圖2.7所示的安裝目錄。圖2.7CCS安裝目錄(3)接受默認(rèn)安裝目錄或單擊“Browse”(瀏覽)按鈕修改安裝目錄,單擊“Next”(下一步)按鈕,顯示如圖2.8所示的處理器支持。圖2.8CCS處理器支持(4)選擇“SimpleLinkWirelessMCUs”下的“CC32xxDeviceSupport”和“TIARMCompiler”,單擊“Next”(下一步)按鈕,顯示如圖2.9所示的選擇調(diào)試探頭對話框。圖2.9CCS選擇調(diào)試探頭(5)接受默認(rèn)設(shè)置,單擊“Finish”(完成)按鈕開始安裝,安裝過程大約需要幾分鐘。安裝完成后,顯示如圖2.10所示的安裝成功對話框。(6)單擊“Finish”(完成)按鈕完成安裝,創(chuàng)建快捷方式并執(zhí)行CCS,顯示如圖2.11所示的選擇工作空間對話框。圖2.10CCS安裝成功圖2.11CCS選擇工作空間(7)接受默認(rèn)設(shè)置或修改工作空間目錄,選擇“Usethisasthedefaultanddonotaskagain”,單擊“OK”按鈕,顯示如圖2.12所示的CCS編輯界面。圖2.12CCS編輯界面正常使用時,單擊“File”(文件)→“SwitchWorkspace”(更換工作空間)→“Other…”(其他),可以隨時更換工作空間,更換工作空間后CCS將重新啟動。(8)單擊“GettingStarted”(開始)標(biāo)簽右上角的“AppCenter”(應(yīng)用中心),打開應(yīng)用中心標(biāo)簽,在搜索框中輸入“cc3200”,在搜索框右邊的下拉菜單中選擇“All”,搜索出“CC3200Add-On”和“TI-RTOSforSimpleLink”插件,單擊插件右下角的“Select”選中插件進(jìn)行更新,如圖2.13所示。圖2.13CCS應(yīng)用中心如果插件右下角顯示“UptoDate”(最新),則不需要更新。(9)單擊應(yīng)用中心左上角的“InstallSoftware”(安裝軟件),安裝選擇的插件。安裝過程中顯示許可協(xié)議對話框時,單擊“Iacceptthetermsofthelicenseagreement”(我接受許可協(xié)議中的條款),單擊“OK”按鈕。(10)安裝完成后,顯示“SoftwareUpdates”(軟件更新)對話框,單擊“Yes”(是)按鈕重新啟動CCS,如圖2.14所示。圖2.14CCS軟件更新對話框2.CCS使用CCS使用的主要內(nèi)容是編輯源文件、生成和調(diào)試目標(biāo)文件等,其中最主要的是調(diào)試目標(biāo)文件。下面以導(dǎo)入項目為例,簡單介紹CCS的使用。(1)單擊“Project”(項目)→“ImportCCSProjects…”(導(dǎo)入CCS項目),打開如圖2.15所示的導(dǎo)入CCS項目對話框。(2)單擊“Browse”(瀏覽)按鈕,選擇CC3200SDK安裝目錄,其中的CCS項目顯示在“Discoveredprojects”(發(fā)現(xiàn)項目)下。圖2.15導(dǎo)入CCS項目對話框選擇“blinky”項目,選項“Copyprojectsintoworkspace”(復(fù)制項目到工作空間)自動選中,且變?yōu)榛疑ú辉试S修改)。單擊“Finish”按鈕,CCS在工作空間目錄中創(chuàng)建blinky目錄,并將SDK中的blinky項目文件復(fù)制到blinky目錄,項目出現(xiàn)在CCS的“ProjectExplorer”(項目瀏覽器)視圖中(單擊項目名左邊的三角符號可以展開項目),如圖2.16所示。(3)右擊“ProjectExplorer”(項目瀏覽器)中的“blinky”項目,在彈出菜單中單擊“Properties”(屬性),打開“屬性”對話框,確認(rèn)“Device”(器件)選擇“CC3200”,選擇“Compilerversion”(編譯器版本)為“TIv5.2.2”,如圖2.17所示。圖2.16CCS項目瀏覽器圖2.17CCS項目屬性對話框(4)右擊“ProjectExplorer”(項目瀏覽器)中的“blinky”項目,在彈出菜單中單擊“BuildProject”(生成項目)生成項目目標(biāo)文件“blinky.out”。注意:第一次生成項目時,CCS需要生成編譯庫,因此生成時間大約需要幾分鐘。為了調(diào)試目標(biāo)文件,必須進(jìn)行目標(biāo)配置,步驟如下。(1)單擊“View”(視圖)→“TargetConfiguration”(目標(biāo)配置),打開如圖2.18所示的目標(biāo)配置視圖。(2)右擊“UserDefined”(用戶定義),在彈出菜單中單擊“ImportTargetConfiguration”(導(dǎo)入目標(biāo)配置),選擇“CC3200SDK”安裝目錄“tools\ccs_patch”目錄中的“CC3200.ccxml”文件,在“FileOperation”(文件操作)對話框中單擊“OK”按鈕復(fù)制文件,“CC3200.ccxml”出現(xiàn)在“UserDefined”(用戶定義)下,如圖2.19所示。圖2.18CCS目標(biāo)配置1圖2.19CCS目標(biāo)配置2(3)右擊“CC3200.ccxml”,在彈出菜單中單擊“SetasDefault”(設(shè)為默認(rèn)值),將“CC3200.ccxml”設(shè)為默認(rèn)配置。(4)用USB線將開發(fā)板連接到計算機,單擊“Run”(運行)→“Debug”(調(diào)試)或按“F11”鍵,CCS將目標(biāo)文件“blinky.out”下載到CC3200并進(jìn)入調(diào)試界面,如圖2.20所示。圖2.20CCS調(diào)試界面CCS調(diào)試界面主要包括調(diào)試工具欄、調(diào)試(Debug)視圖、變量(Variables)/表達(dá)式(Expressions)/寄存器(Registers)視圖、主程序(main.c)視圖和控制臺(Console)視圖等,其中調(diào)試工具欄如圖2.21所示。圖2.21CCS調(diào)試工具欄(5)單擊“Run”(運行)→“Resume”(運行)或單擊調(diào)試工具欄中的“Resume”(運行)按鈕或按“F8”鍵,運行程序,開發(fā)板上的3個用戶LED首先全部熄滅,然后紅LED、黃LED和綠LED依次循環(huán)閃爍。(6)單擊調(diào)試工具欄中的“Terminate”(結(jié)束)按鈕,結(jié)束調(diào)試返回編輯界面。CCS調(diào)試界面的具體使用參見后續(xù)章節(jié)的詳細(xì)介紹。3.重建SDK驅(qū)動程序庫為了使CCS能在新的安裝路徑中找到SDK驅(qū)動程序,需要重建SDK驅(qū)動程序庫,包括外設(shè)驅(qū)動程序庫、網(wǎng)絡(luò)驅(qū)動程序庫、操作系統(tǒng)程序庫和TI-RTOS配置等。重建SDK驅(qū)動程序庫的步驟如下。(1)參考圖2.15導(dǎo)入driverlib、oslib、simplelink、ti_rtos_config驅(qū)動程序庫項目。注意:在導(dǎo)入上述項目時,不要選擇“Copyprojectsintoworkspace”(復(fù)制項目到工作空間)選項,否則編譯程序?qū)o法找到新生成的庫文件。(2)右擊“ProjectExplorer”(項目瀏覽器)中的driverlib項目,在彈出菜單中單擊“Properties”(屬性),打開“屬性”對話框,選擇“Compilerversion”(編譯器版本)為TIv5.2.2,如圖2.17所示。(3)右擊“ProjectExplorer”(項目瀏覽器)中的driverlib項目,在彈出菜單中單擊“BuildProject”(生成項目)重建外設(shè)驅(qū)動程序庫。(4)重復(fù)步驟(2)和步驟(3),用相同的方法重建SimpleLink。注意:SimpleLink有4種配置(Configuration):NON_OS、NON_OS_PM、OS和PM_framework,這4種配置需要分別進(jìn)行設(shè)置和重建,參見步驟(6)。(5)重建ti_rtos_config項目時,除在“屬性”對話框“main”標(biāo)簽選擇“Compilerversion”(編譯器版本)為“TIv5.2.2”外,還需要在“RTSC”標(biāo)簽選擇最新XDCtools和TI-RTOS版本,不選擇bios和uia,確認(rèn)“Target”(目標(biāo))是“ti.targets.arm.elf.M4”,選擇“Platform”(平臺)為“ti.platforms.simplelink:CC3200”,如圖2.22所示。(6)重建oslib項目時,需首先在“屬性”對話框中選擇“Configuration”(配置)為ti_rtos,單擊“ManageConfigurations…”(管理配置)按鈕打開管理配置對話框進(jìn)行配置管理,如圖2.23所示,然后在“main”標(biāo)簽選擇“Compilerversion”(編譯器版本)為“TIv5.2.2”。注意:oslib項目使用了ti_rtos_config項目,因此必須先重建ti_rtos_config項目,再重建oslib項目。圖2.22ti_rtos_config項目屬性對話框圖2.23oslib項目管理配置對話框2.1.3實用程序CC3200的實用工具主要有PinMux和UniFlash。1.PinMuxPinMux為通用引腳的個性化選擇提供便利的接口,PinMux根據(jù)選擇信息生成的源文件可直接包含在項目中。PinMuxv3.0的安裝文件是“pinmux-3.0.334-setup.exe”,PinMuxv3.0在Windows7中的安裝步驟如下。(1)雙擊pinmux-3.0.334-setup.exe,顯示如圖2.24所示的安裝向?qū)?。圖2.24PinMux安裝向?qū)В?)單擊“Next”(下一步)按鈕,顯示如圖2.25所示的許可協(xié)議。圖2.25PinMux許可協(xié)議(3)閱讀許可協(xié)議,選中“Iaccepttheagreement”(我接受此協(xié)議),單擊“Next”(下一步)按鈕,顯示如圖2.26所示的安裝目錄。圖2.26PinMux安裝目錄(4)接受默認(rèn)安裝目錄或修改安裝目錄,單擊“Next”(下一步)按鈕兩次,開始安裝。安裝完成后,顯示如圖2.27所示的安裝完成對話框。圖2.27PinMux安裝完成(5)單擊“Finish”(完成)按鈕,創(chuàng)建桌面快捷方式,并執(zhí)行PinMux。PinMux的使用請參考3.1.4節(jié)。2.UniFlashUniFlash用于將固件、應(yīng)用程序和證書等編程到串行閃存。UniFlashv3.2的安裝文件是“uniflash_cc3xxx_setup_0123.exe”,在Windows7中的安裝步驟如下。(1)雙擊uniflash_cc3xxx_setup_0123.exe,顯示如圖2.28所示的安裝向?qū)?。圖2.28UniFlash安裝向?qū)В?)單擊“Next”(下一步)按鈕,顯示如圖2.29所示的許可協(xié)議。圖2.29UniFlash許可協(xié)議(3)閱讀許可協(xié)議,選中“Iaccepttheagreement”(我接受此協(xié)議),單擊“Next”(下一步)按鈕,顯示如圖2.30所示的安裝目錄。(4)接受默認(rèn)安裝目錄或修改安裝目錄,單擊“Next”(下一步)按鈕兩次,開始安裝。安裝完成后,顯示如圖2.31所示的安裝完成對話框。(5)單擊“Finish”(完成),創(chuàng)建快捷方式,并執(zhí)行UniFlash。UniFlash的使用請參考2.2.2節(jié)和8.2節(jié)。圖2.30UniFlash安裝目錄圖2.31UniFlash安裝完成2.1.4支持工具CC3200的支持工具主要有超級終端、Iperf和SmartConfig等。1.超級終端超級終端是一個通用的串行交互軟件,可以通過串口、調(diào)制解調(diào)器或以太網(wǎng)連接到其他計算機、Telnet站點、公告板系統(tǒng)(BBS)、聯(lián)機服務(wù)和主機,以及嵌入式系統(tǒng)等。WindowsXP自帶超級終端,而Windows7中沒有超級終端,可以將WindowsXP自帶的超級終端復(fù)制到Windows7中使用,也可以使用其他的串口通信工具。WindowsXP自帶的超級終端包含“C:\ProgramFiles\WindowsNT\hypertrm.exe”和“C:\WINDOWS\system32\hypertrm.dll”兩個文件。下面以TeraTerm為例,介紹Windows7中超級終端的安裝和設(shè)置。TeraTerm是一款簡單但功能強大的開源終端仿真器,主要特性如下?!裰С諸elnet和SSH2?!駜?nèi)置Web服務(wù)?!馮eraTerm宏語言?!衩赓M。TeraTermv4.85的安裝文件是“teraterm485.exe”,TeraTermv4.85在Windows7中的安裝步驟如下。(1)雙擊teraterm485.exe,顯示如圖2.32所示的安裝向?qū)АD2.32TeraTerm安裝向?qū)В?)單擊“Next”(下一步)按鈕,顯示如圖2.33所示的許可協(xié)議。圖2.33TeraTerm許可協(xié)議(3)閱讀許可協(xié)議,單擊“Iaccepttheagreement”(我接受此協(xié)議),單擊“Next”(下一步)按鈕,顯示如圖2.34所示的安裝目錄。(4)接受默認(rèn)安裝目錄或修改安裝目錄,單擊“Next”(下一步)按鈕,顯示如圖2.35所示的選擇組件對話框。(5)接受默認(rèn)選擇或選擇其他安裝方式,單擊“Next”(下一步)按鈕,顯示如圖2.36所示的選擇語言對話框。圖2.34TeraTerm安裝目錄圖2.35TeraTerm選擇組件圖2.36TeraTerm選擇語言(6)接受默認(rèn)選擇或選擇Chinese(Simplified)(簡體中文),單擊“Next”(下一步)按鈕,顯示如圖2.37所示的選擇開始菜單文件夾對話框。圖2.37TeraTerm選擇開始菜單文件夾(7)單擊“Next”(下一步)按鈕接受默認(rèn)選擇,顯示如圖2.38所示的選擇添加任務(wù)對話框。圖2.38TeraTerm選擇添加任務(wù)(8)單擊“Next”(下一步)按鈕接受默認(rèn)選擇,顯示如圖2.39所示的準(zhǔn)備安裝對話框。圖2.39TeraTerm準(zhǔn)備安裝(9)單擊“Install”(安裝)按鈕,開始安裝TeraTerm,安裝完成后,顯示如圖2.40所示的安裝完成對話框。(10)選擇“LaunchTeraTerm”(執(zhí)行TeraTerm),單擊“Finish”(完成)按鈕,完成安裝并執(zhí)行TeraTerm,顯示如圖2.41所示的新建連接對話框。圖2.40TeraTerm安裝完成圖2.41TeraTerm新建連接(11)單擊“串口”,如果已將CC3200LaunchPad等硬件開發(fā)平臺連接到PC,并且正確安裝了FTDI驅(qū)動程序,則“端口”下拉列表中會出現(xiàn)USB-UART轉(zhuǎn)換后的串行端口(如COM22),選擇該串行端口,單擊“確定”按鈕,顯示TeraTerm窗口。(12)單擊TeraTerm“設(shè)置”菜單下的“窗口”菜單項,打開如圖2.42所示的窗口設(shè)置對話框。圖2.42TeraTerm“窗口設(shè)置”對話框(13)選擇“光標(biāo)形狀”為“橫線”,單擊“翻轉(zhuǎn)”按鈕,將黑底白字翻轉(zhuǎn)為白底黑字,單擊“確定”按鈕關(guān)閉“窗口設(shè)置”對話框。(14)單擊TeraTerm“設(shè)置”菜單下的“字體”菜單項,打開如圖2.43所示的字體對話框。(15)選擇“字體”為Consolas,單擊“確定”按鈕關(guān)閉字體對話框。(16)單擊TeraTerm“設(shè)置”菜單下的“串口”菜單項,打開如圖2.44所示的串口設(shè)置的對話框。圖2.43TeraTerm“字體”對話框圖2.44TeraTerm“串口設(shè)置”對話框(17)選擇“波特率”為115200,單擊“確定”按鈕關(guān)閉串口設(shè)置對話框。(18)單擊TeraTerm“設(shè)置”菜單下的“保存配置”菜單項,打開如圖2.45所示的保存配置對話框。圖2.45TeraTerm“保存配置”對話框(19)單擊“保存”按鈕保存配置,關(guān)閉保存配置對話框,完成TeraTerm設(shè)置。2.IperfIperf是一個網(wǎng)絡(luò)性能測試工具,可以測試最大TCP和UDP帶寬性能。Iperf具有多種參數(shù),可以根據(jù)需要調(diào)整。Iperf可以報告帶寬、延遲抖動和數(shù)據(jù)包丟失等。Iperf有UNIX/Linux版、Windows版和Android版等多種版本。為了測試方便,可在Android手機上安裝Android版,Android版的安裝文件是Iperf.apk,其安裝和一般Android手機軟件的安裝方法相同。3.SmartConfigSmartConfig技術(shù)是TI獨特的一步式Wi-Fi智能配置技術(shù),允許多個CC3200設(shè)備快速高效地連接到Wi-Fi網(wǎng)絡(luò)??紤]到CC3200設(shè)備通常沒有用于輸入Wi-Fi網(wǎng)絡(luò)名稱和密碼的顯示屏或鍵盤,SmartConfig技術(shù)為用戶提供了將基于CC3200的設(shè)備輕松連接到接入點的能力。SmartConfigAndroid版的安裝文件是SmartConfigCC3X.apk,其安裝和一般Android手機軟件的安裝方法相同。2.1.5ROM服務(wù)CC3200ROM中包含啟動引導(dǎo)程序和外設(shè)驅(qū)動庫。啟動引導(dǎo)程序允許用戶更新串行閃存中的應(yīng)用程序映像和其他用戶文件,同時還負(fù)責(zé)將串行閃存中的應(yīng)用程序加載到應(yīng)用MCU的RAM中。在ROM中提供外設(shè)驅(qū)動庫可以減少應(yīng)用程序占用RAM的容量。1.啟動引導(dǎo)程序啟動引導(dǎo)程序駐留在應(yīng)用MCU的ROM中,包括更新/下載和自舉兩項功能。●更新/下載:下載應(yīng)用程序映像到CC3200,下載功能只有在CC3200的UART裝載模式(LDfrUART:SoP[2:0]=100)時才能使用?!褡耘e:負(fù)責(zé)掃描串行閃存中的有效應(yīng)用程序映像,將有效應(yīng)用程序映像加載到應(yīng)用MCU的RAM中,并將運行控制交給應(yīng)用程序。(1)啟動引導(dǎo)模式。CC3200有3個上電感知(SoP)引腳,可以設(shè)置下列三種操作模式。①Fn4WJ(SoP[2:0]=000):4線JTAG功能開發(fā)模式,4個JTAG引腳TDI、TDO、TMS和TCK用于調(diào)試器連接,啟動時將應(yīng)用程序映像從串行閃存加載到RAM中運行。②Fn2WJ(SoP[2:0]=001):2線SWD功能開發(fā)模式,2個SWD引腳TMS和TCK用于調(diào)試器連接,啟動時將應(yīng)用程序映像從串行閃存加載到RAM中運行。③LDfrUART(SoP[2:0]=100):UART下載模式,在開發(fā)和OEM裝配時通過UART將應(yīng)用程序映像下載到串行閃存。與啟動引導(dǎo)相關(guān)的是Fn4WJ(SoP[2:0]=000:4線JTAG功能開發(fā)模式)和LDfrUART(SoP[2:0]=100:UART下載模式)。(2)啟動引導(dǎo)程序和用戶應(yīng)用程序共享MCURAM。在UART下載模式,啟動引導(dǎo)程序需要內(nèi)存資源,這些資源來自MCURAM,啟動引導(dǎo)程序使用的RAM容量是16KB。對于256KB的MCURAM,用戶應(yīng)用程序映像需要限制在240KB,因此開發(fā)者需要關(guān)注以下兩個關(guān)鍵點。①MCURAM的地址范圍0x20000000~0x20003FFF(16KB)被啟動引導(dǎo)程序和用戶應(yīng)用程序共享。當(dāng)啟動引導(dǎo)程序?qū)?yīng)用程序映像從串行閃存加載到RAM時,該區(qū)域被啟動引導(dǎo)程序獨占,一旦啟動引導(dǎo)程序?qū)⑦\行控制交給應(yīng)用程序,該區(qū)域?qū)⒆鳛閼?yīng)用程序的數(shù)據(jù)段使用。②MCURAM的地址范圍0x20004000~0x2003FFFF(240KB)被用戶應(yīng)用程序獨占,用戶應(yīng)用程序映像總是被加載到0x20004000開始的該區(qū)域。2.外設(shè)驅(qū)動庫應(yīng)用MCUROM中的外設(shè)驅(qū)動程序可以被用戶應(yīng)用程序調(diào)用,外設(shè)驅(qū)動程序的源代碼可在SDK中使用,開發(fā)者可以選擇生成從RAM直接使用設(shè)備驅(qū)動程序的應(yīng)用程序。ROMAPI使用“重定向”方法進(jìn)行調(diào)用,以允許未來擴展時ROM中訪問函數(shù)的位置向后兼容,未來版本的API位置可能改變,但API表不會變。ROM中的主子兩級表解決了API的訪問入口問題,主表中每個外設(shè)對應(yīng)一個指向各自子表的指針,子表中每個相關(guān)外設(shè)的API對應(yīng)一個指向各自API的指針。主表存放在ROM的開始地址為0x0000040C,部分內(nèi)容如表2.6所示,其中中斷子表的部分內(nèi)容如表2.7所示。表2.6ROMAPI主表部分內(nèi)容表2.7ROMAPI中斷子表部分內(nèi)容主表和各子表的詳細(xì)內(nèi)容參見“driverlib\rom.h”文件。(1)用ROMAPI替代RAMAPI的步驟如下。①所有使用ROMAPI的.c文件都應(yīng)該包含下列頭文件。②所有項目文件應(yīng)該添加全局預(yù)處理定義“TARGET_IS_CC3200”。③所有API調(diào)用的API名稱前應(yīng)該添加“MAP_”。④重建所有相關(guān)項目。(2)用RAMAPI修補ROMAPI的步驟如下。①在“\driverlib\rom_patch.h”文件中為所有需要修補的API添加定義。②重建所有相關(guān)項目。(3)重新用RAMAPI連接用戶應(yīng)用程序的步驟如下。①從所有使用API的項目文件中刪除全局預(yù)處理定義“TARGET_IS_CC3200”。②重建所有相關(guān)項目。2.2硬件開發(fā)環(huán)境CC3200的硬件開發(fā)環(huán)境可以使用TI的CC3200LaunchPad,也可以使用其他兼容硬件開發(fā)環(huán)境。CC3200LaunchPad是TI開發(fā)的CC3200硬件開發(fā)平臺,使用FTDI器件實現(xiàn)板載調(diào)試和UART-USB轉(zhuǎn)換,并且包含溫度傳感器和加速度傳感器提供開包即用體驗。CC3200LaunchPad具有下列特性?!馛C3200Wi-FiMCU,支持站點和接入點模式,支持SmartConfig和WPS網(wǎng)絡(luò)配置?!癜遢d閃存(1MB)可通過USB在PC上使用UniFlash進(jìn)行更新?!癜遢dFTDI器件可實現(xiàn)JTAG調(diào)試和UART-USB轉(zhuǎn)換?!癜遢d溫度傳感器和加速度傳感器可提供開包即用體驗?!裎⑿蚒SB連接器用于供電、調(diào)試和UART通信?!裰С?線JTAG和2線SWD?!?個20引腳連接器可實現(xiàn)與其他LaunchPad兼容設(shè)備的連接?!?個按鍵和3個LED用于用戶交互?!窨赏ㄟ^修改電容器選擇板載天線和外接天線?!窨捎?節(jié)AA堿性電池供電運行。CC3200LaunchPad的功能框圖、實物圖和連接關(guān)系參見附錄E。2.2.1TICC3200LaunchPad開包即用體驗CC3200LaunchPad預(yù)裝了out_of_box項目,利用板載溫度傳感器和加速度傳感器,以及LED可提供開包即用體驗,體驗步驟如下(out_of_box項目的詳細(xì)分析請參考8.2節(jié))。(1)確認(rèn)CC3200LaunchPad的J2(1-2)、J3(1-2)、J6(2-3)、J7(2-3)、J8(1-2)、J9(1-2)、J10(1-2)、J11(1-2)、J12(1-2)、J13(1-2)和J22.P1(1-2)用短路塊連接,參見圖E.2。警告:用短路塊連接J22.P1(1-2)時要特別注意,不要誤將短路塊連接到J22.P3(1-2)上,否則會造成電源短路(J22.P3.1是5V電源,J22.P3.2是GND)!圖2.46設(shè)備準(zhǔn)備就緒為了防止誤連接,可以將J22.P3.1往外掰彎。將CC3200LaunchPad通過USB線與PC連接,CC3200LaunchPad上的D1(黃LED,復(fù)位指示)、D4(紅LED,電源指示)、D5(綠LED)和D6(黃LED)亮,D7(紅LED)閃爍3次然后熄滅(如果D7不閃爍,嘗試按一下CC3200LaunchPad上的RESET按鍵),CC3200LaunchPad進(jìn)入接入點模式。同時,PC自動加載FTDI驅(qū)動程序,加載完成后在設(shè)備管理器中可以看到圖2.46所示內(nèi)容,從圖中可以看出:FTDI的端口A用于JTAG接口,端口B用于UART接口,UART的接口號是COM22(實際情況可能不同)。注意:記住UART的接口號COM22,UniFlash中要用!(2)在手機(或平板電腦或筆記本電腦)上打開Wi-Fi,連接mysimplelink-054D6C(實際情況可能不同)。(3)在手機(或平板電腦或筆記本電腦)上打開網(wǎng)頁瀏覽器,輸入“”,顯示如圖2.47所示的歡迎界面。(4)單擊“Demos”(演示)標(biāo)簽,顯示如圖2.48所示的演示界面,在演示界面的下方有4個應(yīng)用演示按鈕,分別為家庭自動化、家用電器、安全保障和智能能源。圖2.47歡迎界面圖2.48演示界面(5)單擊演示界面左下角的家庭自動化演示按鈕,顯示如圖2.49所示的家庭自動化界面1。(6)單擊左邊的開關(guān),開關(guān)打開(On),草地左下角的噴頭間歇噴水,如圖2.50所示,同時CC3200LaunchPad上的D7(紅LED)閃爍。圖2.49家庭自動化界面1圖2.50家庭自動化界面2(7)單擊家用電器按鈕,顯示如圖2.51所示的家用電器界面1。(8)用手觸摸CC3200LaunchPad上的溫度傳感器,水溫(WaterTemp)發(fā)生變化;拿起CC3200LaunchPad,烘干機(Dryer)從停止(Stopped)變?yōu)檫\行(Running),如圖2.52所示。圖2.51家用電器界面1圖2.52家用電器界面2(9)單擊安全保障按鈕,顯示如圖2.53所示的安全保障界面1。(10)單擊左邊的開關(guān),開關(guān)打開(On),拿起CC3200LaunchPad,系統(tǒng)報警,如圖2.54所示。圖2.53安全保障界面1圖2.54安全保障界面2(11)單擊智能能源按鈕,顯示如圖2.55所示的智能能源界面。(12)單擊箭頭可以減小或增大所需溫度(DesiredTemperature),用手觸摸CC3200LaunchPad上的溫度傳感器,當(dāng)前溫度(CurrentTemperature)發(fā)生變化。所需溫度低于當(dāng)前溫度時CC3200LaunchPad上的D7(紅LED)閃爍,高于時D7(紅LED)常亮,相等時D7(紅LED)熄滅。圖2.55智能能源界面2.2.2服務(wù)包更新如果CC3200LaunchPad上服務(wù)包是SDKv0.5.1/v0.5.2或v1.0.0,需要用UniFlash更新到SDKv1.1.0,SDKv1.1.0服務(wù)包的安裝文件是“CC31xx_CC32xx_ServicePack-0.0-windows-installer.exe”,執(zhí)行上述文件將服務(wù)包安裝到默認(rèn)目錄,其中包含“servicepack_0.0.bin”服務(wù)包文件。服務(wù)包更新的具體步驟如下。(1)拔掉CC3200LaunchPad上連接J22.P1(1-2)的短路塊,將J15(1-2)用短路塊連接,并確認(rèn)J2(1-2)、J3(1-2)、J6(2-3)、J7(2-3)、J8(1-2)、J9(1-2)、J10(1-2)、J11(1-2)、J12(1-2)和J13(1-2)用短路塊連接。(2)將CC3200LaunchPad通過USB線與PC連接。(3)執(zhí)行CCSUniFlash-CC3xxxEdition3.2.0(D:\TI\uniflash_3.2\eclipse\uniflash.exe),顯示如圖2.56所示的CCSUniFlash窗口。圖2.56CCSUniFlash窗口(4)單擊“File”(文件)菜單下的“NewConfiguratiom”(新建配置)菜單項或單擊“QuickStartGuide”(快速開始指南)下的“NewTargetConfiguratiom”(新建目標(biāo)配置)打開如圖2.57所示的新建配置對話框。圖2.57UniFlash“新建配置”對話框(5)單擊“OK”按鈕接收默認(rèn)目標(biāo)設(shè)置,顯示如圖2.58所示的新建配置窗口。圖2.58UniFlash新建配置窗口(6a)在“COMPort”(COM接口)下輸入圖2.46中顯示的UART接口號“22”,單擊“ServicePackProgramming”(服務(wù)包編程)按鈕打開servicepack_0.0.bin,開始更新服務(wù)包,Console(控制臺)下顯示更新過程。注意:如果編程過程中止,控制臺顯示“pleaserestartthedevice”(請重啟設(shè)備),則需按一下開發(fā)板上的復(fù)位鍵重新啟動設(shè)備。單擊“ServicePackProgramming”(服務(wù)包編程)按鈕右邊的“here”(這里)鏈接可從TI官網(wǎng)上下載最新的服務(wù)包。UniFlash除了可以更新服務(wù)包外,還可以將用戶應(yīng)用程序映像編程到串行閃存中,具體步驟和更新服務(wù)包相似,不同的是:(6b)輸入UART接口號后,單擊左側(cè)“SystemFiles”(系統(tǒng)文件)下的“/sys/mcuimg.bin”,再單擊右側(cè)的“Browse”(瀏覽)按鈕,打開需要編程的應(yīng)用程序映像文件,并選中“Erase”(擦除)和“Update”(更新),如圖2.59所示。(7)單擊左側(cè)的“CC31xFlashSetupandControl”,再單擊右側(cè)的“Program”(編程)按鈕,將應(yīng)用程序二進(jìn)制映像文件編程到串行閃存中。圖2.59UniFlash選擇編程文件(8)編程完成后,拔掉CC3200LaunchPad上連接J15(1-2)的短路塊,按一下“RESET”(復(fù)位)按鍵SW1,開始執(zhí)行用戶程序。和前面的版本相比,UniFlashv0123除了包含“SystemFiles”(系統(tǒng)文件)外,還包含“UserFiles”(用戶文件)和“CC31xx/CC322xxConfigGroups”(CC31xx/CC322xx配置組),特別是CC31xx/CC322xx配置組的設(shè)置,極大地方便了Wi-Fi的配置。CC31xx/CC322xx配置組包含下列內(nèi)容。●DeviceRole:設(shè)備角色,包括站點、接入點和點對點?!馭tation:站點,包括MAC地址、發(fā)射功率、電源策略和網(wǎng)絡(luò)應(yīng)用等?!馎P:接入點,包括MAC地址、名稱、安全類型、密碼和網(wǎng)絡(luò)應(yīng)用等。●P2P:點對點,包括MAC地址、發(fā)射功率、電源策略和網(wǎng)絡(luò)應(yīng)用等?!馪rofiles:配置文件,包括名稱、優(yōu)先級和安全類型等?!馠TTPServer:HTTP服務(wù)器,包括端口號等。●DHCPServer:DHCP服務(wù)器,包括租用時間和起止IP地址。●mDNSClient:mDNS客戶端,包括服務(wù)名稱等?!馭martConfig:智能配置,包括默認(rèn)組密碼等。第3章片內(nèi)外設(shè)接口應(yīng)用CC3200支持下列片內(nèi)外設(shè)接口。●通用輸入輸出接口(GPIO)?!翊挟惒绞瞻l(fā)器接口(UART)?!翊型庠O(shè)接口(SPI)?!駜?nèi)部集成電路總線接口(I2C)。●多通道音頻串行接口(McASP)?!馭D/MMC接口?!癫⑿袛z像頭接口。本章主要在分析片內(nèi)接口示例程序的基礎(chǔ)上,介紹片內(nèi)接口的使用,并對示例程序進(jìn)行修改,完善示例程序的功能。3.1GPIO接口應(yīng)用CC3200的所有數(shù)字引腳和部分模擬引腳可作為通用輸入/輸出(GPIO)使用,GPIO分為4組(GPIOA0~3),每組8個(具體引腳分配參見表D.1)?!馟PIOA0:GPIO_00~GPIO_07,對應(yīng)GPIOA0.0~GPIOA0.7?!馟PIOA1:GPIO_08~GPIO_15,對應(yīng)GPIOA1.0~GPIOA1.7。●GPIOA2:GPIO_16~GPIO_23,對應(yīng)GPIOA2.0~GPIOA2.7?!馟PIOA3:GPIO_24~GPIO_31,對應(yīng)GPIOA3.0~GPIOA3.7。CC3200GPIO具有下列特性?!窀鶕?jù)功能引腳的配置不同,GPIO的數(shù)量多達(dá)27個。●所有GPIO引腳具有中斷能力。?電平有效或邊沿有效。?上升沿或下降沿。?可選擇中斷屏蔽?!窨梢杂糜谟|發(fā)DMA操作。●可選擇作為喚醒源。●可編程引腳配置。?內(nèi)部10μA上拉或下拉。?2mA、4mA、6mA、8mA、10mA、12mA、14mA可配置驅(qū)動能力。?開漏模式?!窨赏ㄟ^高速內(nèi)部總線矩陣進(jìn)行GPIO寄存器讀操作。3.1.1GPIO示例程序分析GPIO示例程序在“example\blinky”目錄中,Blinky項目CC3200LaunchPad電路如圖3.1所示。圖3.1Blinky項目CC3200LaunchPad電路圖兩個用戶按鍵SW2和SW3分別通過GPIO_22(PIN_15)和GPIO_13(PIN_04)與CC3200相連,按鍵未按下時GPIO為低電平,按鍵按下時GPIO為高電平。3個用戶LEDD5~D7分別通過驅(qū)動電路和GPIO_11(PIN_02)、GPIO_10(PIN_01)和GPIO_09(PIN_64)與CC3200相連,GPIO輸出低電平時LED熄滅,GPIO輸出高電平時LED點亮。(1)將CC3200LaunchPad通過USB線與PC連接。(2)參考2.1.2節(jié)中的“CCS使用”,將Blinky項目導(dǎo)入CCS,在“ProjectExplorer”(項目瀏覽器)視圖中可以看出,Blinky項目包含下列4個程序文件?!駇ain.c:主程序文件。●pinmux.c:PinMux應(yīng)用程序生成的GPIO引腳配置程序文件。●gpio_if.c:GPIO接口驅(qū)動程序文件?!駍tartup_ccs.c:CCS啟動程序文件。Blinky項目程序流程圖如圖3.2所示。圖3.2Blinky項目程序流程圖(3)在CCS中單擊“Project”(項目)→“Properties”(屬性)或右擊“ProjectExplorer”(項目瀏覽器)中的Blinky項目,在彈出菜單中單擊“Properties”(屬性),打開“屬性”對話框,確認(rèn)“Device”(器件)選擇CC3200,選擇“Compilerversion”(編譯器版本)為TIv5.2.2,參見圖2.17。(4)單擊“View”(視圖)→“TargetConfiguration”(目標(biāo)配置),打開“目標(biāo)配置”視圖,確認(rèn)默認(rèn)的目標(biāo)配置為CC3200.ccxml,如圖3.3所示。圖3.3Blinky項目“目標(biāo)配置”視圖(5)在CCS中單擊“Run”(運行)→“Debug”(調(diào)試)或按“F11”鍵,CCS首先編譯生成目標(biāo)文件blinky.out,然后將目標(biāo)文件blinky.out下載到CC3200并進(jìn)入調(diào)試界面。(6)單擊“Run”(運行)→“Resume”(運行)或單擊調(diào)試工具欄中的“Resume”(運行)按鈕或按“F8”鍵,運行程序,開發(fā)板上的3個用戶LED首先全部熄滅,然后紅LED、黃LED和綠LED依次循環(huán)閃爍。(7)單擊調(diào)試工具欄中的“Suspend”(暫停)按鈕暫停程序的運行。(8)單擊調(diào)試工具欄中的“Restart”(重新開始)按鈕,程序停在main()函數(shù)的開始處,如圖3.4所示。圖3.4Blinky項目main()函數(shù)注意:在程序的分析過程中,可隨時單擊“Restart”(重新開始)按鈕復(fù)位程序。下面詳細(xì)介紹程序的分析步驟,主要包括下列內(nèi)容。●初始化開發(fā)板:BoardInit()?!褚_復(fù)用配置:PinMuxConfig()?!馤ED操作。1.初始化開發(fā)板BoardInit()單擊調(diào)試工具欄中的“StepInto”(單步進(jìn)入)按鈕兩次,進(jìn)入BoardInit()函數(shù),如圖3.5所示。圖3.5Blinky項目BoardInit()函數(shù)從圖3.5中可以看出,初始化開發(fā)板BoardInit()包括下列內(nèi)容?!裨O(shè)置中斷向量表:IntVTableBaseSet()。●允許處理器中斷:IntMasterEnable()。●允許中斷:IntEnable()?!癯跏蓟疢CU:PRCMCC3200MCUInit()。(1)設(shè)置中斷向量表IntVTableBaseSet()。功能:設(shè)置中斷向量表基地址。參數(shù)說明:ulVtableBase,中斷向量表基地址,中斷向量表在startup_ccs.c中定義。IntVTableBaseSet()的聲明在interrupt.h中,代碼在interrupt.c中。(2)允許處理器中斷IntMasterEnable()。功能:允許處理器中斷。IntMasterEnable()調(diào)用CPUcpsie()實現(xiàn)允許處理器中斷操作,其聲明在interrupt.h中,代碼在interrupt.c中。功能:允許CPU中斷。CPUcpsie()調(diào)用匯編語言程序段實現(xiàn)允許CPU中斷操作,其聲明在cpu.h中,代碼在cpu.c中。(3)允許中斷IntEnable()。功能:允許中斷。參數(shù)說明:ulInterrupt,中斷號,F(xiàn)AULT_SYSTICK是SysTick的中斷號常量,中斷號是15,在hw_ints.h中定義。IntEnable()的聲明在interrupt.h中,代碼在interrupt.c中。(4)初始化MCUPRCMCC3200MCUInit()。功能:初始化MCU。加電啟動或從低功耗休眠模式退出時,應(yīng)用程序應(yīng)該通過調(diào)用PRCMCC3200MCUInit()配置MCU參數(shù)。PRCMCC3200MCUInit()的聲明在prcm.h中,代碼在prcm.c中。單擊調(diào)試工具欄中的“StepReturn”(單步返回)按鈕,運行上述函數(shù),然后退出BoardInit()函數(shù),回到main()函數(shù)的PinMuxConfig()語句。2.引腳復(fù)用配置PinMuxConfig()引腳復(fù)用配置程序由PinMux應(yīng)用程序根據(jù)設(shè)計須自動生成,程序代碼在pinmux.c或rom_pin_mux_config.c中,其中調(diào)用了相應(yīng)的PRCM、PIN和GPIOAPI函數(shù)。單擊調(diào)試工具欄中的“StepInto”(單步進(jìn)入)按鈕,進(jìn)入PinMuxConfig()函數(shù),如圖3.6所示。圖3.6Blinky項目PinMuxConfig()函數(shù)從圖中可以看出:GPIO引腳復(fù)用配置包括下列內(nèi)容?!裨试SGPIO時鐘:PRCMPeripheralClkEnable()?!衽渲肎PIO引腳:PinTypeGPIO()?!衽渲肎PIO方向:GPIODirModeSet()。(1)允許GPIO時鐘PRCMPeripheralClkEnable()。①單擊調(diào)試工具欄中的“StepInto”(單步進(jìn)入)按鈕兩次,進(jìn)入PRCMPeripheralClkEnable()函數(shù),如圖3.7所示。圖3.7Blinky項目PRCMPeripheralClkEnable()函數(shù)從圖3.7中可以看出,PRCMPeripheralClkEnable()等API函數(shù)通過硬件寄存器操作HWREG()實現(xiàn)相應(yīng)的功能。功能:允許外設(shè)時鐘。參數(shù)說明:●ulPeripheral:外設(shè)號,GPIOA0~3的外設(shè)號是6~9,在prcm.h中定義?!駏lClkFlags:時鐘標(biāo)志,設(shè)置值是PRCM_RUN_MODE_CLK(運行模式時鐘)。ulClkFlags包括下列值。?PRCM_RUN_MODE_CLK:運行模式時鐘,0x00000001。?PRCM_SLP_MODE_CLK:睡眠模式時鐘,0x00000100。?PRCM_DSLP_MODE_CLK:深睡眠模式時鐘,0x00010000。PRCMPeripheralClkEnable()的聲明在prcm.h中,代碼在prcm.c中。②單擊調(diào)試工具欄中的“StepReturn”(單步返回)按鈕,運行上述函數(shù),然后退出函數(shù),返回到PinMux

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論