《超低壓SoC處理器C8051F9xx應用解析》介紹新型超低壓、超低功耗SoC處理器C8051F9xx,共分為17章,具體內容包括: C8051F9xx內核與功能總匯,可編程輸入/輸出端口與外設資源匹配,片上可編程基準電路與比較器,10位低功耗突發(fā)模式自動平均累加A/D轉換器,片上DC/DC轉換器與高效率穩(wěn)壓器,具有加密功能的數據程序Flash存儲器,增強型循環(huán)冗余檢查單元(CRC0),多模式外設總線擴展和片上XRAM的訪問,系統(tǒng)復位源,多模式時鐘發(fā)生源,smaRTClock時鐘單元,SMBus總線,異步串口 UART0,增強型全雙工同步串行外設接口SPI0/SPI1,定時器,可編程計數器陣列,綜合實例應用。綜合實例應用中的例子均在C8051F930平臺上調試通過,具有較強的針對性,讀者可放心使用!冻蛪篠oC處理器C8051F9xx應用解析》所有的程序均采用C語言編程,有較強的可讀性和移植性! 冻蛪篠oC處理器C8051F9xx應用解析》可作為工程技術人員進行C8051F系列單片機開發(fā)時的硬件和軟件設計參考書,對其他類型單片機的開發(fā)也具有一定的參考借鑒價值。
微處理器技術應用越來越普及,幾乎滲透到了各行各業(yè)。隨著技術的進步與市場的劃分,處理器大致可分為4位、8位、16位、32位幾大類! 32位系列是最近幾年才發(fā)展起來的新系列,應用領域在迅速擴大,尤其是在一些信息量較大基于操作系統(tǒng)以及文件系統(tǒng)的應用場合,如掌上設備,便攜媒體工具;其典型芯片有各公司生產的基于ARM內核的產品。16位產品種類較少,MCS96系列產品注定只能充當過渡角色,現(xiàn)在已很少見了,影響較大的如MSP430,走著低功耗手持應用的道路。16位機不能成為主流的原因有兩個:一是在運算量小控制要求不是很復雜的中低端場合,4位或8位機更具性價比優(yōu)勢;二是中高端應用場合,其性能又無法和32位機相比,其價格優(yōu)勢也并不明顯! 8位機是低端控制領域的主力軍,這種趨勢短時期不會改變。它所具有的結構簡單、應用靈活方便、性價比高的特點使其很好地適應了中低端市場,并具有旺盛的生命力。在我國,普及程度最高的8位機非MCS51莫屬,其實51系列相對于其他種類的8位機并沒有絕對技術優(yōu)勢,甚至還有先天劣勢,但認同就是硬道理。幾十年的應用與普及,使其影響巨大,因此,各家公司開發(fā)的產品,許多都是基于51內核的,F(xiàn)在基于MCS51內核的系列單片機都進行了技術層面的發(fā)展與進步,性能提高與功能多樣是改造的方向,新產品一般都比傳統(tǒng)產品性能高出許多,同時片內集成了多種常用外設。處理器技術的革新使得單片機在CPU結構、外圍模塊及總線和集成開發(fā)環(huán)境等各個方面,都發(fā)生了巨大變化。單片機的設計也已經從積木擴展模式跨入了集成度、可靠性、性價比更高的片上系統(tǒng)SoC時代。 繼承與創(chuàng)新是相輔相成的,二者不可偏廢。絕大多數新型51系列產品都是在原有地址空間上增加外設及相應的控制寄存器,內核一般都繼承了原有的指令,指令的執(zhí)行效率因此大大提高。C8051F系列SoC單片機就是這樣的改造路線。它最大程度地兼容了傳統(tǒng)的MCS51,保留了所有MCS51的指令與8052的所有資源,同時盡可能地提升性能。該系列單片機把原51內核改造為功能更強大的CIP51內核,廢除了原51單片機中的機器周期,由原來12個時鐘執(zhí)行1條指令改進為1個時鐘執(zhí)行1條單周期指令。大多數指令執(zhí)行所需的時鐘周期數與指令的字節(jié)數相同,運行速度和性能大大提高,平均性能約為同頻MCS51的10倍。除此之外,還改變了原51系統(tǒng)外圍模塊單一、復雜系統(tǒng)必須擴展的缺陷,在片內擴展了豐富的外設,如Flash、XRAM、A/D轉換器、D/A轉換器、時鐘源、基準源、PCA單元以及溫度傳感器,有的還擴展了smaRTClock、CRC引擎、觸感輸入等,使用戶設計時不需要考慮太多的擴展,甚至可以單片完成設計任務。編譯環(huán)境得到了KEIL C支持,而開發(fā)過程并沒有改變,很好地適應了過去51開發(fā)的方法和習慣。C8051F系列Soc單片機采用強大的非侵入式JTAG/C2在系統(tǒng)調試手段,非傳統(tǒng)仿真器調試模式所能比擬;內核和全部資源完全透明化和可操作化,可以方便地完成下載、硬件仿真,并且還不占用片內資源;C2接口更是通過共享技術實現(xiàn)I/O口0占用;支持多種總線模式,除了SMBus/I2C、SPI、UART這些必備的接口外,有的產品線還支持CAN、USB、LIN等;晶振和片上溫度傳感器等外設集成一體,除大幅減小PCB的占用面積外,還帶來了可靠性的提高。交叉開關可靈活地將片內資源分配到I/O端口,使開發(fā)人員可以根據需要分配外設,對系統(tǒng)的總體規(guī)劃非常有益。系統(tǒng)可以根據需要工作在多種電源模式下,使系統(tǒng)功耗進一步降低! 8051F系列產品劃分為許多類,如通用型C8051F02x、數據采集型C8051F06x、USB型C8051F32x/F34x等。不同系列有一個最佳應用方向,此舉滿足了產品設計科學化、個性化的需求。本書所論述的C8051F9xx是一個嶄新的系列,它是面向超低壓超低功耗場合設計的,這些場合一般使用電池供電,系統(tǒng)大多數時間處于低功耗的休眠態(tài),僅在必要時內核處在活動態(tài)。這些特點使其對電池壽命有了苛刻的要求,電池的典型預期壽命會超過3年,有的場合甚至長達15年。為了提高電池使用效率以及能源管理的方便,在芯片內集成了DC/DC,使電源電壓降至 0.9 V仍能保證系統(tǒng)正常工作。其供電范圍為0.9~3.6 V,包含了大部分電池的正常工作電壓! ≡撔酒脑O計思想就是低功耗,在內核與外設的應用細節(jié)處理上無不貫穿這一主線。片內多種基準源、多種振蕩時鐘源及多種喚醒源,盡可能地降低了模擬外設的工作電壓,同樣也是這一思想的體現(xiàn)。低功耗并不意味著低性能,它最大程度地兼容了C8051F系列的通用外設,前面所述的外設均集成在片內。除此之外,還擴展了外設的功能,比如增加了CRC單元、smaRTClock單元、A/D數據硬件累加功能,擴展了比較器的觸感輸入功能,擴展了定時器與PCA功能! 榱烁鼫蚀_地掌握芯片的使用,作者在編寫本書時,參閱了英文原版資料,盡量使用第一手資料;各外設的應用代碼,均經過在系統(tǒng)調試通過,所得到的數據也來源于實測。本書提供所有程序代碼,需要的讀者請到北航出版社網站的“下載中心”中單擊“超低壓SoC處理器C8051F9xx應用解析”鏈接下載即可。 本書在編輯過程中得到了新華龍電子有限公司的大力支持,特別感謝門鐸工程師,他為本書的編寫給予了大力支持。參與本書編寫工作的還有韓素英、包明洲、武麗敏、包初勝等,對他們的辛勤勞動表示衷心的感謝! 〈筮B理工大學數字化研究所的各位同仁在本書的編寫過程中給予了大力協(xié)助,他們是高媛、馬雅麗、朱林劍、孫守林、毛范海、董慧敏、梁豐、陳慶紅、楊光輝、錢峰、姜立學、陳觀慈等。特別感謝所長王德倫教授的大力支持! ×硗,韓素英、包明周、武麗敏、包初勝、尹云、王皓、劉建偉完成了資料收集與文字校對工作,在此一并感謝。
第1章 C8051F9xx內核與功能總匯11.1 內核的兼容性與差異性21.2 功能的改進與擴展31.3 存儲空間的映射41.4 擴展的中斷系統(tǒng)51.4.1 中斷源和中斷向量61.4.2 中斷的優(yōu)先級與響應時間71.4.3 外部中斷源81.4.4 中斷控制寄存器的使用與說明81.5 內核指令集說明131.6 C8051F9xx的工作狀態(tài)131.6.1 內核的幾種工作模式131.6.2 各工作狀態(tài)的設置與功耗特點141.6.3 工作狀態(tài)喚醒源的配置與識別161.6.4 與工作方式相關的配置寄存器181.7 特殊功能寄存器191.7.1 寄存器的分頁191.7.2 特殊功能寄存器的分布191.7.3 特殊功能寄存器的定義211.8 芯片的仿真與調試和C2端口共享211.8.1 內置的C2仿真接口211.8.2 C2引腳共享231.9 芯片引腳定義及電氣參數241.10 應用實例25中斷設置與應用25第2章 可編程輸入/輸出端口與外設資源匹配292.1 I/O口優(yōu)先權交叉開關譯碼器原理302.2 外設資源初始化與配置322.2.1 端口引腳分配模擬功能332.2.2 端口引腳分配數字功能332.2.3 端口引腳分配外部數字及數字捕捉功能332.3 交叉開關譯碼功能寄存器的配置342.4 通用端口I/O功能配置362.4.1 端口匹配功能的設置362.4.2 端口I/O配置的特殊功能寄存器372.5 端口I/O的電氣參數432.6 I/O匹配應用實例43第3章 片上可編程基準電路與比較器483.1 片上基準源483.1.1 基準原理概述483.1.2 程控電流基準(IREF0)493.1.3 程控電壓基準(REF0)與模擬地參考基準(GND)503.2 比較器533.2.1 比較器基本的輸入輸出特性533.2.2 比較器輸入輸出設置553.2.3 比較器容性觸感模擬多路分配器583.2.4 容性觸感模擬多路分配器設置593.2.5 比較器電氣參數613.3 應用實例62可編程電流基準測試62第4章 10位低功耗突發(fā)模式自動平均累加A/D轉換器684.1 A/D轉換器結構和功能框圖684.2 片內10位A/D轉換器的主要特性694.3 ADC0的基本操作與配置694.4 A/D轉換器輸入端選擇714.5 A/D轉換的啟動源選擇734.6 單次及累加模式下輸出碼格式選擇734.7 A/D輸入信號的跟蹤方式754.8 低功耗突發(fā)工作方式764.9 采樣時間與增益控制774.10 可編程窗口檢測784.11 片內溫度傳感器804.11.1 溫度傳感器的校準814.11.2 溫度傳感器校準所使用的寄存器824.12 A/D轉換應用實例824.12.1 立即更新824.12.2 時控觸發(fā)源方式854.12.3 硬件累加器應用894.12.4 中斷采樣處理944.12.5 外部CNVSTR采樣應用984.12.6 硬件門限比較1034.12.7 片內溫度傳感器1094.12.8 ADC0的突發(fā)工作方式113第5章 片上DC/DC轉換器與高效率穩(wěn)壓器1185.1 片上DC/DC的工作原理1185.2 DC/DC的外部電路連接1205.3 DC/DC寄存器定義與說明1215.4 片上穩(wěn)壓器設置1225.5 電氣參數124第6章 具有加密功能的數據程序Flash存儲器1256.1 Flash存儲器編程操作1256.1.1 Flash編程鎖定和關鍵字設置1256.1.2 Flash擦寫的操作1266.2 Flash數據的安全保護1286.3 Flash可靠寫和擦除的幾點要求1296.3.1 電源和電源監(jiān)視器的要求1296.3.2 寫允許操作位PSWE的操作1306.3.3 系統(tǒng)時鐘穩(wěn)定性1306.4 Flash讀定時設置與電氣特性1316.5 Flash存儲器的電氣特性1316.6 Flash存儲器應用設計1316.6.1 Flash非易失臨時存儲頁應用1316.6.2 Flash非易失數據全地址隨機讀寫137第7章 增強型循環(huán)冗余檢查單元1437.1 循環(huán)冗余檢查單元原理圖1437.2 片內CRC單元計算過程及輸出示例1437.3 CRC單元的配置1447.4 CRC功能寄存器說明與應用1457.5 CRC的位反轉功能1477.6 CRC數據檢驗功能演示1477.6.1 16位CRC數據校驗功能示例1477.6.2 位序反轉及軟件CRC功能示例151第8章 多模式外設總線擴展和片上XRAM的訪問1578.1 片外可尋址XRAM空間的配置1578.2 外部存儲器總線的擴展1588.3 XRAM地址空間的訪問模式1598.3.1 僅訪問片上XRAM1598.3.2 以不分頁的方式訪問地址空間重疊的片內外XRAM1608.3.3 以分頁的方式訪問片內外地址空間重疊的片內外XRAM1608.3.4 僅訪問片外XRAM1608.4 外部XRAM擴展的時序1608.5 總線匹配寄存器的定義與設置1638.6 應用實例165片上4KB環(huán)形RAM的應用165第9章 系統(tǒng)復位源1699.1 系統(tǒng)復位概述1699.2 C8051F9xx的復位源1719.2.1 上電復位1719.2.2 掉電復位和VDD/DC+監(jiān)視器1719.2.3 外部復位1739.2.4 時鐘丟失檢測器復位1749.2.5 比較器0復位1749.2.6 PCA看門狗定時器復位1759.2.7 Flash錯誤復位1759.2.8 smaRTClock(實時時鐘)復位1759.2.9 軟件復位1759.3 復位源的設置與使用1769.3.1 軟件復位實例1769.3.2 看門狗復位應用178第10章 多模式時鐘發(fā)生源18310.1 片內振蕩器的設置18410.1.1 可編程內部精密振蕩器18410.1.2 低功耗內部振蕩器18510.2 外部振蕩器的配置與使用18510.2.1 外部晶體模式18510.2.2 外部RC模式18610.2.3 外部電容模式18710.2.4 外部CMOS時鐘方式18710.3 時鐘源配置功能寄存器說明18710.4 時鐘源配置與使用18910.4.1 片外電容振蕩器模式18910.4.2 片內低功耗振蕩器模式19110.4.3 片內精密振蕩器模式19310.4.4 片內精密振蕩器頻率調整19510.4.5 使用smaRTClock振蕩器作為系統(tǒng)振蕩器200第11章 smaRTClock時鐘單元20311.1 smaRTClock時鐘結構和功能概述20311.2 smaRTClock全局寄存器20411.2.1 smaRTClock全局寄存器功能解析20411.2.2 smaRTClock鎖定與解鎖20511.2.3 smaRTClock全局寄存器訪問方式示例20611.3 smaRTClock的時鐘源定義與設置20711.3.1 標準晶振模式20711.3.2 片內自激振蕩模式20811.3.3 可編程容性匹配負載設置20811.3.4 時鐘故障檢測和保護20911.4 smaRTClock定時和報警功能20911.4.1 定時功能的設置與使用21011.4.2 報警功能的設置與使用21011.4.3 smaRTClock報警的雙模式選擇21011.5 smaRTClock內部寄存器定義21111.6 smaRTClock功能應用213smaRTClock喚醒源在低功耗系統(tǒng)中的應用213第12章 SMBus總線21912.1 SMBus配置與外設擴展21912.2 SMBus的通信概述22112.2.1 總線的仲裁22112.2.2 總線的時序22112.2.3 總線的狀態(tài)22112.3 SMBus寄存器的定義與配置22212.3.1 SMBus初始配置寄存器22312.3.2 SMBus狀態(tài)控制寄存器22512.3.3 硬件從地址識別22712.3.4 SMBus數據收發(fā)寄存器22812.4 SMBus工作方式選擇22912.4.1 主發(fā)送方式22912.4.2 主接收方式22912.4.3 從接收方式23012.4.4 從發(fā)送方式23112.5 SMBus狀態(tài)譯碼23212.6 SMBus總線擴展應用實例23564KB非易失鐵電存儲器FM24C512應用235第13章 異步串口UART024513.1 增強的波特率發(fā)生器24513.2 串行通信工作方式選擇24713.2.1 8位通信模式24813.2.2 9位通信模式24813.3 多機通信24913.4 串行通信相關寄存器說明25013.5 串口UART0實例251串口自環(huán)調試實例251第14章 增強型全雙工同步串行外設接口SPI0/SPI125614.1 SPI0的信號定義25614.2 SPI0/SPI1主工作方式25814.3 SPI0/SPI1從工作方式25914.4 SPI0/SPI1中斷源說明26014.5 串行時鐘相位與極性26014.6 SPI特殊功能寄存器26214.7 SPI主工作方式下擴展實例267第15章 定時器26815.1 定時器0和定時器126815.1.1 定時器0/定時器1的方式0——13位計數器/定時器26915.1.2 定時器0/定時器1的方式1和方式227015.1.3 定時器0的方式327115.1.4 定時器0/定時器1的相關寄存器27115.2 定時器227515.2.1 定時器2的16位自動重裝載方式27515.2.2 定時器2的8位自動重裝載定時器方式27615.2.3 比較器0/smaRTClock捕捉方式27715.2.4 定時器2的相關寄存器27815.3 定時器328015.3.1 定時器3的16位自動重裝載方式28015.3.2 定時器3的8位自動重裝載定時器方式28015.3.3 比較器1/外部振蕩器捕捉方式28115.3.4 定時器3的相關寄存器28315.4 定時器應用實例28515.4.1 利用定時器測試比較器的輸出28515.4.2 利用定時器實現(xiàn)節(jié)拍時控系統(tǒng)289第16章 可編程計數器陣列29416.1 PCA計數器/定時器與中斷源29516.2 PCA的捕捉/比較模塊29716.2.1 PCA邊沿觸發(fā)的捕捉方式29716.2.2 PCA軟件定時器方式29816.2.3 PCA高速輸出方式29816.2.4 PCA頻率輸出方式29916.2.5 8、9、10、11位脈寬調制器方式30016.2.6 16位脈寬調制器方式30116.3 看門狗定時器方式30316.3.1 看門狗定時器操作30316.3.2 看門狗定時器的配置與使用30416.4 PCA寄存器說明30416.5 PCA應用實例30916.5.1 8位PWM發(fā)生程序30916.5.2 16位PWM發(fā)生程序31216.5.3 11位PWM波輸出31616.5.4 方波發(fā)生輸出32016.5.5 頻率捕捉功能應用32216.5.6 軟件定時器功能應用326第17章 綜合實例應用33017.1 USB接口的擴展33017.1.1 UART串口應用實際33017.1.2 UART轉USB功能實現(xiàn)33117.2 基于等效面積法的SPWM波發(fā)生34117.2.1 SPWM技術基本原理34117.2.2 SPWM波發(fā)生算法與方式34217.2.3 SPWM波在C8051F9xx上的實現(xiàn)34317.2.4 互補SPWM波的發(fā)生程序34317.3 利用PWM實現(xiàn)D/A輸出34817.3.1 PWM轉D/A的技術特點分析34817.3.2 簡易PWM轉D/A的方案34917.3.3 高分辨率D/A轉換設計35117.3.4 PWM轉D/A程序設計35317.4 大容量串行DataFlash存儲器擴展35717.4.1 NORFlash和NANDFlash技術與性能比較35717.4.2 串行DataFlash35817.4.3 AT45DB161B芯片引腳和功能簡介35817.4.4 存儲器與單片機接口實例36317.5 溫濕度數字傳感器應用37617.5.1 單片數字溫度、濕度傳感器SHT1x/SHT7x37617.5.2 數字傳感器SHT1x相關內容37717.5.3 數字溫濕傳感器擴展應用38217.6 電容式觸摸按鍵擴展39117.6.1 概述39117.6.2 電容式觸摸按鍵的原理39217.6.3 電容式觸摸按鍵的影響因素39517.6.4 觸摸開關的校準39817.6.5 觸摸按鍵的軟件設計思路39917.6.6 觸摸按鍵軟硬件設計實例399附錄A CIP51指令集413附錄B 特殊功能寄存器417附錄C C8051F9xx引腳定義及說明421
C8051Fxxx單片機是混合信號系統(tǒng)級芯片,具有與8051兼容的微控制器內核,并且該內核有與傳統(tǒng)MCS51兼容的指令集。它除了具有標準8052的數字外設部件之外,片內還集成了數據采集和控制系統(tǒng)中常用的模擬部件和其他數字外設及功能部件! Cu中的外設或功能部件包括模擬多路選擇器、可編程增益放大器、A/D轉換器(ADC)、D/A轉換器(DAC)、電壓比較器、電壓基準、溫度傳感器、SMBus/IC、UART、SPI、可編程計數器/定時器陣列(PCA)、定時器、數字I/0端口、電源監(jiān)視器、看門狗定時器(WDT)和時鐘振蕩器等。所有器件都有內置的Flash程序存儲器和256字節(jié)的內部RAM,有些器件內部還有位于外部數據存儲器空間的RAM,即XRAM! 8051Fxxx單片機采用流水線結構,機器周期由標準的12個系統(tǒng)時鐘周期降為1個系統(tǒng)時鐘周期,處理能力大大提高,峰值性能可達25MIPS! 8051Fxxx單片機是真正能獨立工作的片上系統(tǒng)(SoC)。每個MCU都能有效地管理模擬和數字外設,可以關閉單個或全部外設以節(jié)省功耗。Flash存儲器還具有在系統(tǒng)重新編程能力,可用于非易失性數據存儲,并允許現(xiàn)場更新8051固件! 贸绦蚩梢允褂肕OVC和MOVX指令對Flash進行讀或改寫,每次讀或寫一個字節(jié)。 這一特性允許將程序存儲器用于非易失性數據存儲以及在軟件控制下更新程序代碼! ∑瑑燃闪苏{試支持功能,允許使用安裝在最終應用系統(tǒng)上的產品MCU進行非侵入式(不占用片內資源)、全速、在系統(tǒng)調試。該調試系統(tǒng)支持觀察和修改存儲器和寄存器,支持斷點、單步、運行和停機命令。在使用JTAG調試時,所有的模擬和數字外設都可全功能運行! 〔煌盗械膯纹瑱C,其擴展的中斷系統(tǒng)的中斷源不同系列最多達到22個,而標準8051只有7個中斷源,允許大量的模擬和數字外設中斷微控制器。一個中斷驅動的系統(tǒng)需要較少的MCU干預,卻有更高的執(zhí)行效率。在設計一個多任務實時系統(tǒng)時,這些增加的中斷源是非常有用的! iliconLabs根據市場的需要開發(fā)了小體積、低功耗、高性能、低價格的新產品! 8051F9xx系列也符合這樣的思想,但它與其他小體積的產品又有著不同的市場定位。該產品的主要應用目標是使用可換電池的系統(tǒng)。這些裝置往往并不希望經常更換電池,有時可能不方便更換,可能期望電池的壽命超過3年,有些場合可能要長達15年! 楸WC有效工作時間,對功耗的要求是非常嚴格的,通常這類系統(tǒng)主要的時間都是花費在超低電流睡眠狀態(tài),必要時或周期性地喚醒執(zhí)行測量任務,然后再迅速地返回到它們的低功耗睡眠模式。