2LPC800哪吒的誕生
能否象8位單片機一樣啟動?
GPIO操作能否更加迅速?
外設能否更加小巧、靈活?
封裝要小;
PCB布線要簡單;
要滿足中國客戶希望串口多的需求;
。。。
針對不同應用可以有不同類型的Timer。為此,設計了SCT和MRT;
支持8位單片機小封裝。LPC800支持TSSOP20/16小封裝,甚至還為“發燒友”準備了DIP8封裝;
特別地,LPC800提供了獨一無二的開關矩陣(SWM)模塊,能夠將數字外設功能映射到任意一個GPIO引腳上,從而大大簡化了PCB設計,成了硬件工程師的最愛;
另外,內部Flash改至32位寬,工藝從0.18um改至0.14um,減少芯片面積的同時也極大地改善了芯片的功耗;
一開始選擇了Cortex-M0內核,后來切換到Cortex-M0+。
隨著芯片規劃的不斷完善,對IP和芯片的設計提出了各種新的要求。寶劍鋒從磨礪出,從“哪吒”項目提出到第一顆LPC800問世,花了整整三年。想起神話故事中的哪吒三太子,其母懷胎三年方才生產,不生則已,一生驚人。LPC中國團隊給項目取名“哪吒”,寓意LPC800也像哪吒一樣,經歷了出生的磨難,卻變得更加驍勇善戰,在32位替代8位的戰場上,方興未艾。LPC800能夠象哪吒一樣大鬧中國MCU之海。
接著,設計的任務交給了當時由我領導的LPC中國設計團隊。在2009年的某一天,當我踏入時任LPC MCU產品線總經理的Geoff Lees(沒錯,就是現在NXP MICR業務部的老大)的辦公室時,就被墻上的白板吸引住了--上面寫滿了LPC800的規劃思路。Geoff告訴我,LPC800必須按照中國市場的需求來定義和設計,這令我激動萬分。
后來,每次去美國,LPC團隊都會在那塊白板上不斷改進我們的設計。在之后的一年多里,那面白板就沒有被擦掉過。
3LPC800的發展歷程
LPC800系列的發展經歷了三個階段:
2012年11月,NXP發布了業界第一顆基于Cortex-M0+的LPC81x,支持16K Flash,并于次年7月正式量產;
2014年10月,LPC82x正式量產,支持32K Flash;
2016年8月,推出了經過簡化的LPC83x;
2016年12月,與Freescale合并后的NXP正式宣布了新的LPC800路線圖,計劃于2017年相繼推出支持64K Flash的LPC84x和精簡設計的LPC80x。
如上所述,新的LPC800路線圖預示著這個精悍的產品線,將會迎來一個爆發式的成長,為了更好地推廣這一既是新產品又是傳統產品系列,2017年領導布置了一個任務,讓我來寫一個“LPC800Cookbook”。
領到這個任務之后,就開始琢磨這是個什么樣的“文檔”呢。首先,從字面上講Cookbook就是食譜、菜譜,查下字典Cookbook還有烹飪手冊的意思。真正翻看一份(本)食譜可以看到,內容是從食材、配料、刀工、廚具、火候等,一步步引領著如何做出一道菜來。
此時聯想起在這么多年的實際工作中,處理和解答過的很多問題,除一部分是因為沒有好好看文檔之外,很大部分是因為更深層次的問題,不少人把在MCU上寫程序作為一個單純的軟件問題,而沒有詳細了解在程序代碼背后,硬件是如何工作的,軟件和硬件是如何相互配合一起工作的。
4內容介紹
基于這樣一個思考,我決定從MCU及其各基礎模塊出發,從解析各部分的內部構造和配置原理出發,再結合具體的代碼演示例程,展示LPC800各部分的用法。這實際上也是我多年工作中,在理解使用一款新產品時所用的基本思路,因此希望能把這種思維方式提供給讀者,引領讀者不但知其一而且知其二,能夠把每一行代碼與底層的硬件配置結合在一起考慮,做到舉一反三,這樣以后可以用同樣的方法,在用到其它陌生的MCU時,能夠快速地熟悉上手,迅速地掌握其精髓。
對于例程代碼,嘗試突破傳統的行注釋,使用了PPT中對話氣泡的方式更加方便靈活地注解代碼,展現行與行和程序塊之間的邏輯關系。對于一些不易理解的模塊,例如SWM、DMA、SCT等,都配有模擬的內部構造圖,再結合對應的寄存器位,讓讀者可以更深入系統地理解這些模塊的功能和用法,當理解了這些原理之后,即使以后忘記了它們的用法,只需回頭看看這些構造圖就可以很快地找到原來的感覺。
思路理清了,內容的呈現方式也就清晰了。首先這篇“文章”會是一本書的方式,就是您現在看到的這本書:
在書里面會先從介紹LPC800各個系列的基本概況入手(第1章),比較子系列間的區別,并特意抽出一些特色功能進行說明。然后將逐一展示各子系列的基本系統框圖(第2章),從這里可以解讀出很多有用甚至關鍵的信息;很多有經驗的工程師可以從一款產品的系統框圖,很快建立起一些關于這款產品的定位、性能級別、操作靈活性等基本概念,并對是否適合自己需求的一個基本判斷。
第3章介紹了Arm為Cortex-M處理器配套的嵌套式中斷控制器(NVIC), 這里解答了常見的中斷優先級和中斷嵌套的概念,并設計了一個演示例程以進一步體會優先級與嵌套的流程;這章里還以示意圖的形式,直觀地講解了NVIC的幾個特色的功能,讓讀者可以深入體會它的優勢。當然第3章還介紹了NVIC的使用方法和可以調用的函數。
第4章是本書所有例程和配套項目文件的基本介紹,并給出了書中所有例程與項目文件的對照關系,讀者在動手實驗時,可以隨時翻看這里,找到對應的項目代碼并運行體會。
第5-8章是關于LPC800的一些核心的基礎部件,包括負責時鐘配置、外設模塊復位、低功耗配置及外部引腳中斷等部分的系統配置模塊(SYSCON),負責把內部功能信號與外部引腳對接的開關矩陣(SWM),設置外部引腳特性的輸入輸出引腳配置(IOCON),以及最基本的輸入輸出控制器(GPIO)等。所有使用LPC800的用戶都要首先接觸到這些模塊,所有的開發項目都會用到這些模塊。
第9-13章涉及引腳中斷和引腳組合邏輯、直接存儲器訪問(DMA)、UART、SPI和I2C,這部分都是絕大部分MCU都會有模塊和基本的通信接口。特色的引腳組合邏輯或稱模式匹配引擎,能夠根據多個引腳的組合邏輯運算結果,產生相應的中斷,與傳統的一個信號觸發中斷的方式相比,可以顯著優化對于復雜外部邏輯的相應速度。
第14-17章分別介紹了一些基本的定時器,包括狀態可編程定時器(SCT)、窗口型看門狗定時器(WWDT)、多速率定時器(MRT)和系統嘀嗒時鐘(SysTick)。尤其是對SCT的介紹,試圖從基礎原理上,全面地分析了SCT的用法,并通過多個例程展示了SCT編程及其強大的能力。
最后第18章介紹了12位ADC(模擬數字轉換器)及其使用,通過例程不但展示了ADC的基本用法,還展示了實際項目中經常會用到與DMA配合使用的方法。
5參考資料
均可在nxp.com/lpc800下載:
有興趣的讀者也可以登錄www.nxpic.org論壇,與廣大工程師們進行技術交流,分享相關的知識和經驗,以求共同提高。也可以從NXP公司網站http://www.nxp.com/lpc800上獲得更多資料。
6致謝
前后大約花了兩年時間才斷斷續續地寫完了所有內容,在本書的寫作和校驗過程中得到了很多同事的幫助,尤其要感謝周榮正、王朋朋、蔣文衛的大力支持,還有張揚、張啟鵬、謝愉、牛曉東、武元偉等同事為保證內容的準確性,在百忙之中進行了試讀和實驗驗證,在此表示衷心的感謝,你們的幫助讓我對整體內容的正確性有了更多的信心。
接下來的數周里,我將按內容概況逐步更新,由于本人的經驗和水平有限,書中的錯誤和不妥之處在所難免,懇請廣大讀者批評指正。
END
更多恩智浦AI-IoT市場和產品信息,邀您同時關注“NXP客棧”微信公眾號
NXP客棧
恩智浦致力于打造安全的連接和基礎設施解決方案,為智慧生活保駕護航。
長按二維碼,關注我們
恩智浦MCU加油站
長按二維碼,關注我們
原文標題:LPC800的前世今生大揭秘
文章出處:【微信公眾號:恩智浦MCU加油站】歡迎添加關注!文章轉載請注明出處。
-
mcu
+關注
關注
146文章
16984瀏覽量
350294 -
恩智浦
+關注
關注
14文章
5825瀏覽量
106676
原文標題:LPC800的前世今生大揭秘
文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論