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