深入剖析ST10R167 16位無ROM微控制器:高性能與多功能的完美融合
在電子設計的廣闊領域中,微控制器(MCU)一直是各類應用的核心。今天,我們要深入探討的是意法半導體(STMicroelectronics)ST10系列中的一顆璀璨之星——ST10R167 16位無ROM微控制器。它結合了高性能CPU、豐富的外設功能和強大的I/O能力,為眾多應用場景提供了理想的解決方案。
文件下載:ST10R167-Q3/TR.pdf
一、ST10R167概述
ST10R167是ST10系列的一員,具備高達每秒1250萬條指令的CPU性能,同時擁有豐富的外設功能和強大I/O能力。通過片內(nèi)PLL實現(xiàn)高速RAM和時鐘生成。這種高性能與多功能的結合,使其在工業(yè)控制、汽車電子、消費電子等領域都有廣泛的應用前景。
二、芯片架構與特性
(一)高性能CPU
該CPU采用4級指令流水線、16位算術邏輯單元(ALU)和專用特殊功能寄存器(SFR)。此外,還配備了獨立的乘除單元、位掩碼生成器和桶形移位器。在25MHz的CPU時鐘下,大多數(shù)指令的執(zhí)行周期僅需80ns。以移位和旋轉指令為例,無論要移位的位數(shù)是多少,都能在一個指令周期內(nèi)完成。多周期指令也經(jīng)過了優(yōu)化,如分支操作只需2個周期,16x16位乘法需5個周期,32/16位除法需10個周期。跳轉緩存機制還能將循環(huán)中重復執(zhí)行的跳轉指令的執(zhí)行時間從2個周期縮短至1個周期。這使得ST10R167在處理復雜任務時能夠高效運行。
(二)內(nèi)存組織
ST10R167采用馮·諾依曼架構,代碼內(nèi)存、數(shù)據(jù)內(nèi)存、寄存器和I/O端口都組織在同一個16M字節(jié)的線性地址空間中。片內(nèi)提供32K字節(jié)的ROM、2K字節(jié)的內(nèi)部RAM(雙端口)和2K字節(jié)的擴展RAM(單端口XRAM)。內(nèi)部RAM可作為數(shù)據(jù)存儲、系統(tǒng)堆棧、通用寄存器組和代碼存儲的空間,寄存器組最多可包含16個字寬(R0 - R15)和/或字節(jié)寬(RL0, RH0, …, RL7, RH7)的通用寄存器。XRAM的地址范圍為00’E000h - 00’E7FFh,在啟用(SYSCON寄存器的XPEN位2)時,可像訪問外部內(nèi)存一樣以16位解復用總線模式進行訪問,且無等待狀態(tài)或讀寫延遲(在25MHz CPU時鐘下訪問時間為80ns),支持字節(jié)和字訪問。但需注意,XRAM不能用于系統(tǒng)堆?;蚣拇嫫鹘M,也不支持單比特存儲,因此不具有位尋址功能。特殊功能寄存器(SFR/ESFR)占用1024字節(jié)(2 * 512字節(jié))的地址空間,用于控制和監(jiān)控片內(nèi)各單元的功能。CAN模塊的地址范圍為00’EF00h - 00’EFFFh,啟用時需設置SYSCON寄存器的XPEN位2,訪問時使用解復用地址和16位數(shù)據(jù)總線(支持字節(jié)訪問),在25MHz CPU時鐘下,需兩個等待狀態(tài),訪問時間為160ns。如果使用CAN模塊,Port 4只能輸出4條段地址線,這會將外部內(nèi)存空間減少到5M字節(jié)(每個CS線對應1M字節(jié))。為滿足設計中對更多內(nèi)存的需求,該微控制器最多可連接16M字節(jié)的外部RAM和/或ROM。
(三)外部總線控制器
外部總線控制器(EBC)可實現(xiàn)所有外部內(nèi)存的訪問操作。它可以設置為單芯片模式(無需外部內(nèi)存時)或四種不同的外部內(nèi)存訪問模式,包括16/18/20/24位地址和16位數(shù)據(jù)的解復用和復用模式,以及16/18/20/24位地址和8位數(shù)據(jù)的解復用和復用模式。在解復用總線模式下,地址通過Port1輸出,數(shù)據(jù)通過Port0或P0L輸入/輸出;在復用總線模式下,地址和數(shù)據(jù)都通過Port0輸入/輸出。外部總線接口的時序特性(如內(nèi)存周期時間、內(nèi)存三態(tài)時間、ALE長度和讀寫延遲)可進行編程設置,以適應不同的存儲器和外部外設。通過寄存器對ADDRSELx / BUSCONx最多可定義4個獨立的地址窗口,用于訪問不同的資源,并設置不同的總線特性。這些地址窗口采用分層結構,BUSCON4優(yōu)先級高于BUSCON3,BUSCON2優(yōu)先級高于BUSCON1,未被這4個地址窗口覆蓋的所有訪問都由BUSCON0控制。最多可生成5個外部CS信號(4個窗口加默認信號),以節(jié)省外部膠合邏輯。通過“Ready”功能支持對非常慢速的存儲器的訪問,還提供HOLD/HLDA協(xié)議用于總線仲裁,與其他總線主設備共享外部資源??偩€仲裁通過設置SYSCON寄存器的HLDEN位來啟用,啟用后,引腳P6.7...P6.5(BREQ, HLDA, HOLD)由EBC自動控制。在主模式(復位后默認)下,HLDA引腳為輸出;通過將DP6.7位設置為’1’可選擇從模式,此時HLDA引腳切換為輸入,直接連接從控制器和另一個主控制器,無需膠合邏輯。對于需要較少外部內(nèi)存空間的應用,地址空間可限制為1M字節(jié)、256K字節(jié)或64K字節(jié)。使用16M字節(jié)的地址空間時,Port 4輸出所有8條地址線;否則,輸出4條、2條或不輸出地址線。片選信號的時序也可進行編程設置,復位后,CSx線在ALE上升沿后半個CPU時鐘周期改變;將SYSCON寄存器的CSCFG位置1后,CSx線在ALE上升沿改變。READY引腳的有效電平可通過BUSCONx寄存器的RDYPOL位設置。當為特定地址窗口啟用READY功能時,該窗口內(nèi)的每個總線周期都必須以關聯(lián)BUSCON寄存器中RDYPOL位定義的有效電平結束。
(四)中斷系統(tǒng)
ST10R167的中斷響應時間為200ns至480ns,其架構支持多種機制,可快速靈活地響應來自微控制器內(nèi)部或外部的各種服務請求。這些中斷請求可由中斷控制器或外設事件控制器(PEC)處理。與標準的中斷服務不同,PEC服務只需從當前CPU活動中“竊取”一個周期,就能在任意兩個內(nèi)存位置之間進行單字節(jié)或字數(shù)據(jù)傳輸,并對PEC源或目標指針進行增量操作。除了連續(xù)傳輸模式外,每次PEC服務都會隱式遞減一個單獨的PEC傳輸計數(shù)器。當計數(shù)器達到零時,會執(zhí)行標準中斷,跳轉到相應源相關的向量位置。PEC服務非常適合支持數(shù)據(jù)塊的傳輸或接收,ST10R167擁有8個PEC通道,每個通道都具備這種快速中斷驅(qū)動的數(shù)據(jù)傳輸能力。每個中斷源都有一個專用的中斷控制寄存器,包含中斷請求標志、中斷使能標志和中斷優(yōu)先級位字段。通過該寄存器,每個源可被編程為16個中斷優(yōu)先級之一。一旦CPU開始處理一個中斷服務,只有更高優(yōu)先級的服務請求才能中斷它。對于標準中斷處理,每個可能的中斷源都有一個專用的向量位置。此外,還提供了快速外部中斷輸入,用于處理對精度要求較高的外部中斷,這些輸入具有可編程的邊沿檢測功能(上升沿、下降沿或雙邊沿)。軟件中斷通過“TRAP”指令結合單獨的陷阱(中斷)編號來支持。
(五)捕獲/比較(CAPCOM)單元
ST10R167有兩個16通道的CAPCOM單元,可支持在最多32個通道上生成和控制時序序列,在25MHz CPU時鐘下,最大分辨率可達320ns。這些單元通常用于處理高速I/O任務,如脈沖和波形生成、脈沖寬度調(diào)制(PMW)、數(shù)模(D/A)轉換、軟件定時或相對于外部事件的時間記錄。四個16位定時器(T0/T1, T7/T8)及其重載寄存器為捕獲/比較寄存器陣列提供了兩個獨立的時間基準。定時器的輸入時鐘可編程為內(nèi)部系統(tǒng)時鐘的多個預分頻值,也可從GPT2模塊中定時器T6的溢出/下溢信號導出。此外,CAPCOM定時器T0和T7的外部計數(shù)輸入允許相對于外部事件對捕獲/比較寄存器進行事件調(diào)度。每個捕獲/比較寄存器陣列包含16個雙用途捕獲/比較寄存器,每個寄存器可單獨分配給CAPCOM定時器T0或T1(分別對應T7或T8),并可編程為捕獲或比較功能。每個寄存器都有一個關聯(lián)的端口引腳,用于觸發(fā)捕獲功能的輸入引腳,或用于指示比較事件發(fā)生的輸出引腳(CC24...CC27除外)。當捕獲/比較寄存器被選擇為捕獲模式時,分配定時器的當前內(nèi)容將在與該寄存器關聯(lián)的端口引腳發(fā)生外部事件時被鎖存(捕獲)到該寄存器中。此外,還會為該捕獲/比較寄存器生成一個特定的中斷請求??蛇x擇引腳的正、負或正負外部信號轉換作為觸發(fā)事件。所有被選擇為五種比較模式之一的寄存器的內(nèi)容會不斷與分配定時器的內(nèi)容進行比較。當定時器值與捕獲/比較寄存器中的值匹配時,將根據(jù)所選的比較模式采取特定的操作。
(六)通用定時器單元
通用定時器單元(GPT)是一個靈活的多功能定時器/計數(shù)器結構,用于與時間相關的任務,如事件定時和計數(shù)、脈沖寬度和占空比測量、脈沖生成或脈沖倍頻。GPT單元包含五個16位定時器,分為兩個獨立的模塊GPT1和GPT2。每個模塊中的每個定時器可獨立工作于多種不同模式,也可與同一模塊中的另一個定時器級聯(lián)。
- GPT1:GPT1模塊的三個定時器T2、T3、T4可分別配置為四種基本操作模式之一:定時器模式、門控定時器模式、計數(shù)器模式和增量接口模式。在定時器模式下,定時器的輸入時鐘由CPU時鐘除以可編程預分頻器得到;在計數(shù)器模式下,定時器由外部事件時鐘驅(qū)動;門控定時器模式支持脈沖寬度或占空比測量,定時器的操作由外部輸入引腳上的“門”電平控制。每個定時器都有一個關聯(lián)的端口引腳(TxIN),作為門或時鐘輸入。定時器的計數(shù)方向(向上/向下)可通過軟件編程,也可通過端口引腳上的外部信號動態(tài)改變。在增量接口模式下,GPT1定時器(T2, T3, T4)可通過其各自的輸入TxIN和TxEUD直接連接到增量位置傳感器信號A和B。方向和計數(shù)信號從這兩個輸入信號中內(nèi)部導出,使相應定時器Tx的內(nèi)容對應于傳感器位置。第三個位置傳感器信號TOP0可連接到中斷輸入。定時器T3具有輸出翻轉鎖存器(TxOTL),在每次定時器溢出/下溢時改變狀態(tài)。該鎖存器的狀態(tài)可通過端口引腳(TxOUT)輸出,用于監(jiān)控外部硬件組件的超時,也可用于內(nèi)部為定時器T2和T4提供時鐘,以實現(xiàn)長時間周期的高分辨率測量。除了基本操作模式外,定時器T2和T4還可配置為定時器T3的重載或捕獲寄存器。當用作捕獲或重載寄存器時,定時器T2和T4停止工作。定時器T3的內(nèi)容在其關聯(lián)輸入引腳(TxIN)接收到信號時被捕獲到T2或T4中。定時器T3可由外部信號或其翻轉鎖存器T3OTL的可選狀態(tài)轉換觸發(fā),重新加載T2或T4的內(nèi)容。當T2和T4配置為在T3OTL的相反狀態(tài)轉換時交替重載T3時,可在無需軟件干預的情況下持續(xù)生成PWM信號。
- GPT2:GPT2模塊用于精確的事件控制和時間測量,包括兩個定時器(T5, T6)和一個捕獲/重載寄存器(CAPREL)。兩個定時器的輸入時鐘可由CPU時鐘通過可編程預分頻器得到,也可使用外部信號。定時器的計數(shù)方向(向上/向下)可通過軟件編程,也可通過端口引腳上的外部信號動態(tài)改變。定時器可通過定時器T6的輸出翻轉鎖存器(T6OTL)級聯(lián),該鎖存器在每次定時器溢出/下溢時改變狀態(tài)。該鎖存器的狀態(tài)可用于為定時器T5提供時鐘,也可通過端口引腳(T6OUT)輸出。定時器T6的溢出/下溢信號還可用于為CAPCOM定時器T0或T1提供時鐘,并觸發(fā)從CAPREL寄存器的重載操作。CAPREL寄存器可根據(jù)相應端口引腳(CAPIN)上的外部信號轉換捕獲定時器T5的內(nèi)容,捕獲過程完成后,可選擇清除定時器T5。這允許在無需軟件開銷的情況下測量絕對時間差或執(zhí)行脈沖倍頻。捕獲觸發(fā)(定時器T5到CAPREL)也可在GPT1定時器T3的輸入T3IN和/或T3EUD發(fā)生轉換時生成,這在T3工作于增量接口模式時非常有用。
(七)PWM模塊
脈沖寬度調(diào)制(PWM)模塊可使用邊沿對齊或中心對齊的PWM生成多達四個PWM輸出信號,還可生成PWM突發(fā)信號和單觸發(fā)輸出。輸出信號的電平可選擇,并且PWM模塊可以生成中斷請求。該模塊在不同分辨率下的PWM頻率如下表所示:
| 模式0 | 分辨率 | 8位 | 10位 | 12位 | 14位 | 16位 |
|---|---|---|---|---|---|---|
| CPU時鐘/1 | 40ns | 97.66KHz | 24.41KHz | 6.104KHz | 1.526KHz | 0.381KHz |
| CPU時鐘/64 | 2.56ns | 1.526KHz | 381.5Hz | 95.37Hz | 23.84Hz | 5.96Hz |
| 模式1 | 分辨率 | 8位 | 10位 | 12位 | 14位 | 16位 |
|---|---|---|---|---|---|---|
| CPU時鐘/1 | 40ns | 48.82KHz | 12.20KHz | 3.05KHz | 762.9Hz | 190.7Hz |
| CPU時鐘/64 | 2.56ns | 762.9Hz | 190.7Hz | 47.68Hz | 11.92Hz | 2.98Hz |
(八)并行端口
ST10R167提供多達111個I/O線,分為八個輸入/輸出端口和一個輸入端口。所有端口線都可進行位尋址,所有輸入/輸出線都可通過方向寄存器單獨(逐位)編程為輸入或輸出。當配置為輸入時,I/O端口會切換到高阻抗狀態(tài)。五個I/O端口的輸出驅(qū)動器可通過控制寄存器逐引腳配置為推挽或開漏操作。在內(nèi)部復位期間,所有端口引腳都配置為輸入。Port 2、Port 3、Port 7和Port 8的輸入閾值可選擇(TTL或類CMOS),類CMOS輸入閾值通過輸入滯后特性降低了噪聲敏感性。輸入閾值通過PICON寄存器中專門用于8個輸入引腳塊的位進行選擇(Port2用2位,Port3用2位,Port7用1位,Port8用1位)。所有I/O端口的引腳還支持可選的可編程功能:Port0和Port1可在訪問外部內(nèi)存時用作地址和數(shù)據(jù)線;Port 2、Port 7和Port 8與CAPCOM單元的捕獲輸入或比較輸出和/或PWM模塊的輸出相關聯(lián);Port 3包含定時器、串行接口、可選總線控制信號BHE和系統(tǒng)時鐘輸出(CLKOUT)的備用功能;Port 4在啟用分段訪問超過64K字節(jié)內(nèi)存的系統(tǒng)中輸出額外的段地址位A16到A23;Port 5用作A/D轉換器的模擬輸入通道或定時器控制信號;Port 6提供可選的總線仲裁信號(BREQ, HLDA, HOLD)和片選信號。所有未用于備用功能的端口線都可用作通用I/O線。
(九)A/D轉換器
片上集成了一個10位A/D轉換器,具有16個多路復用輸入通道和一個采樣保持電路。采樣時間(用于加載電容器)和轉換時間可進行編程設置,以適應外部電路。過沖錯誤檢測/保護由ADDAT寄存器控制。當在下次轉換完成時,前一次轉換的結果尚未從結果寄存器中讀取時,可選擇生成中斷請求,或暫停下次轉換,直到前一次結果被讀取。對于需要少于16個模擬輸入通道的應用,剩余的通道輸入可作為數(shù)字輸入端口引腳使用。該AD轉換器支持以下不同的轉換模式:
- 單通道單次轉換:對所選通道的模擬電平進行一次采樣并轉換,轉換結果存儲在ADDAT寄存器中。
- 單通道連續(xù)轉換:對所選通道的模擬電平進行重復采樣和轉換,轉換結果存儲在ADDAT寄存器中。
- 自動掃描單次轉換:對所選通道的模擬電平進行一次采樣和轉換,每次轉換后,結果存儲在ADDAT寄存器中。數(shù)據(jù)可通過中斷軟件管理或強大的外設事件控制器數(shù)據(jù)傳輸功能傳輸?shù)絉AM中。
- 自動掃描連續(xù)轉換:對所選通道的模擬電平進行重復采樣和轉換,轉換結果存儲在ADDAT寄存器中。數(shù)據(jù)可通過中斷軟件管理或強大的外設事件控制器數(shù)據(jù)傳輸功能傳輸?shù)絉AM中。
- 等待ADDAT讀取模式:在使用連續(xù)模式時,為避免當前轉換結果被下一次轉換覆蓋,必須激活ADCON控制寄存器的ADWR
-
微控制器
+關注
關注
49文章
8812瀏覽量
165557 -
芯片架構
+關注
關注
1文章
33瀏覽量
14902
發(fā)布評論請先 登錄
深入剖析ST10R167 16位無ROM微控制器:高性能與多功能的完美融合
評論