恩智浦半導體LPC4350是在單芯片上首次實現(xiàn)32位ARM?Cortex?-M0/M4。 M4可以專注于高速數(shù)據(jù)平面處理,而M0可以處理低速控制任務。通過適當?shù)貏澐謶密浖?,設計人員可以利用芯片的異構多核架構來創(chuàng)建能夠以節(jié)能方式同時處理多個任務的應用程序。目標應用包括電機控制,工業(yè)自動化,白色家電,嵌入式音頻,RFID閱讀器和電源管理。
本文介紹了LPC4350的特性和功能,并包含對LPC4300評估套件的實際操作,介紹如何編寫,下載和調(diào)試程序。它還突出了該器件獨特的狀態(tài)可配置定時器(SCT)和串行GPIO(SGPIO)接口。
在ARM中運行ARM
雙核LPC4350加入了兩個代碼和工具兼容的ARM處理器,它們共享相同的總線并可以緊密協(xié)作。 32位ARM Cortex-M4包含一個帶有獨立本地指令和數(shù)據(jù)總線的三級流水線,以及一個用于外設的第三條總線。它還包括一個支持推測分支的內(nèi)部預取單元。 M4內(nèi)核支持單周期DSP和SIMD指令,并包含一個集成的硬件浮點處理器。在任何給定的應用中,M4核心都可以進行高速重載。
另一方面,低功耗Cortex-M0內(nèi)核通常處理非時間關鍵的監(jiān)督工作;它被設計為現(xiàn)有8/16位微控制器的低成本32位替代產(chǎn)品。與其兄弟M4一樣,M0處理器提供高達204 MHz的性能,但具有簡單的指令集和減小的代碼尺寸。
圖1顯示了LPC4350的基本架構。 ARM Cortex-M4包括三條AHB-Lite總線,系統(tǒng)總線,I代碼總線和D代碼總線。 I代碼和D代碼核心總線允許來自不同從端口的并發(fā)代碼和數(shù)據(jù)訪問。多層AHB矩陣將ARM Cortex-M4總線和其他總線主控器連接到外設,使得不同總線主控器可以同時訪問矩陣的不同從端口上的外設。這允許在應用程序處理中具有很大的靈活性。
圖1:LPC4350框圖(由恩智浦提供)。
由于大多數(shù)外設中斷都連接到兩個處理器,因此Cortex-M0內(nèi)核可以平滑地從M4內(nèi)核卸載工作。 GPIO寄存器位于共享AHB總線上,以最大限度地減少延遲。這兩個內(nèi)核通過使用共享SRAM作為郵箱相互通信,一個處理器在另一個處理器的嵌套矢量中斷控制器(NVIC)中引發(fā)中斷,以指示它已發(fā)送消息。另一個處理器返回優(yōu)惠以確認收到。
LPC4350的一個獨特功能是16個串行GPIO,提供標準的GPIO功能,增強了加速串行流處理的功能。每個SGPIO I/O Slice都可以執(zhí)行串行到并行或并行到串行的數(shù)據(jù)轉換。此外,這些片是雙緩沖的,包含一個32位FIFO,可以在每個時鐘周期將輸入值從引腳或輸出值移位到引腳。
另一個獨特的功能是狀態(tài)可配置定時器(SCT),它可以觸發(fā)計數(shù)器或根據(jù)狀態(tài)變量設置定時器,如限制,暫停或停止條件。 SCT可配置為兩個16位計數(shù)器或一個32位計數(shù)器。您可以使用SCT來更改CPU的時鐘速度,以響應核心溫度的變化或在一定數(shù)量的外部事件之后。 (有關SCT的更多信息,請參閱TechZone文章“控制:恩智浦專利權SCT如何改進電機控制”。)
SPI閃存接口(SPIFI)讓Cortex-M4能夠以低成本連接,串行閃存與較高引腳數(shù)的并行接口相比,性能損失很小。使用SPIFI,M4內(nèi)核可以通過處理器或DMA通道以高達40 MB/s的日期速率處理整個閃存范圍。
評估板功能
LPC4300評估板(圖2)圍繞LPC4350FET256,551構建,具有65 MB SDRAM,32 MB并行閃存,512 kB SRAM和串行EEPROM。該板包括各種I/O接口,包括CAN,UART,USART,以太網(wǎng),USB(主機,設備和OTG),HDMI和音頻輸入和輸出。 JTAG還有額外的連接器,外部電源,SIM卡,功率MOSFET和串行端口。如果你想要更多,有擴展頭和小面包板區(qū)域的焊接空間,更不用說無數(shù)的跳線,讓你可以控制電路板的眾多配置。
圖2:LPC4300評估板(由恩智浦提供)。
板上附帶的軟件分發(fā)包含許多在LPC4350開發(fā)系統(tǒng)上運行的示例。此外,它還包含一個ARM CMSIS DSP軟件庫,可讓您運用Cortex-M4的浮點DSP功能。
電路板上的一個接頭與運行KielμVISION4IDE的Keil ULINK2調(diào)試器接口,并且板上附帶了限制版本的ARM Keil MDK工具包。我用它來編譯,下載和運行50多個示例程序。
開始使用這種復雜性的套件并不簡單,但它很簡單。首先,下載并解壓縮示例文件和閃存驅動程序,然后將它們移動到適當?shù)哪夸浿?。如果您使用的是Keil MDK,則驅動程序庫二進制文件具有多種內(nèi)置配置,包括構建內(nèi)部SRAM(最快),SPIFI和Hitex Flash(Hitex板上的外部并行閃存)。按照“入門指南”中的說明設置跳線,連接ULINK2調(diào)試器,使用USB電纜連接到PC,即可開始使用。
有史以來設計的每個評估套件似乎都包含一個“眨眼”程序,這一個也不例外。實際上它有兩個,一個在RTOS下運行而另一個沒有。更有趣的是雙核MBX(郵箱)示例,它展示了如何獨立控制Cortex-M4和M0內(nèi)核。
在本例中,Cortex-M4是主設備,Cortex-M0是從設備,每個核心運行一個單獨的μVision實例。首先,我雙擊項目文件(M_Mo_ipc.uvmpw),它啟動了μVision。我選擇M0作為活動項目(圖3),LPC43xx_M0_FLASH作為目標,并重建項目。然后我為M4做了同樣的事情。
圖3:構建M4和M0項目。
配置ULINK2和flash編程實用程序后,我能夠下載并運行該程序?;旧线@是另一個“眨眼”程序,雖然是一個復雜的程序,M4控制一個LED而M0控制另一個。我能夠逐步完成代碼,設置和刪除斷點,并研究兩個核心之間的交互。該練習提供了豐富的信息,代碼是更復雜程序的有用框架,其中任何一個程序都將受益于其他一些示例程序,特別是外圍驅動程序。
-
電源
+關注
關注
184文章
17484瀏覽量
249155 -
處理器
+關注
關注
68文章
19100瀏覽量
228814 -
ARM
+關注
關注
134文章
9027瀏覽量
366484 -
恩智浦
+關注
關注
14文章
5817瀏覽量
106328
發(fā)布評論請先 登錄
相關推薦
評論