欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 飛思卡爾KL25中文數(shù)據(jù)手冊(cè)下載(共577頁pdf) [打印本頁]

作者: 商霖戀夏    時(shí)間: 2018-9-28 16:14
標(biāo)題: 飛思卡爾KL25中文數(shù)據(jù)手冊(cè)下載(共577頁pdf)
KL25 Reference Manual_Rev分享給大家學(xué)習(xí)

1.1.1 目的
本文檔表述了飛思卡爾KL25 微控制器的特性、框架及程序模板。
1.1.2 適用讀者
本文檔適用于正在使用或即將使用KL25 微控制器的系統(tǒng)架構(gòu)師和軟件應(yīng)用開發(fā)員。  
1.2 約定
1.2.1 數(shù)字系統(tǒng)
下列后綴表示了不同的數(shù)字系統(tǒng):
后綴  表示
b  二進(jìn)制符號(hào)。例如,數(shù)字5的二進(jìn)制表示為101b。二進(jìn)制數(shù)字還可以用0b作為前綴表示。
d  十進(jìn)制符號(hào)。十進(jìn)制數(shù)字只有在出現(xiàn)混淆的情況下才使用該后綴。通常,十進(jìn)制表示無需后綴。  
h  十六進(jìn)制符號(hào)。例如,數(shù)字60的十六進(jìn)制表示為3Ch。十六進(jìn)制數(shù)字還可以用0x作為前綴表示。  

第2章 引言
2.1 概述
本章是 ARM® Cortex™-M0+的 Kinetis L系列 MCU及KL25 系列產(chǎn)品的概述。這也表示了本文涵蓋的芯片可用模塊是較為準(zhǔn)確的描述。

2.2 Kinetis L系列
業(yè)內(nèi)ARM Cortex-M0+內(nèi)核的 MCU 具有低功耗及混合信號(hào)的處理能力,Kinetis L系列則是其中最具可擴(kuò)展性的系列。KL系列因存儲(chǔ)器容量、接口數(shù)量、封裝形式等不同,有 5 個(gè)子系列。Kinetis L系列共用公共外設(shè)和引腳,提高了可移植性。允許可擴(kuò)展性允許開發(fā)者標(biāo)準(zhǔn)化他們的最終產(chǎn)品、最大化可重用硬件和軟件以及縮短進(jìn)軍市場(chǎng)的時(shí)間。
Kinetis L系列的共性如下:
具有 48MHz ARM Cortex-M0+內(nèi)核頻率
具有高速 12/16位模數(shù)轉(zhuǎn)換器
除 KLx4/KLx2系列外,均具有12 位數(shù)模轉(zhuǎn)換器
具有高速模擬比較器
除 KLx4 系列外,均具有觸摸喚醒的低功耗觸摸傳感器
具有強(qiáng)大的定時(shí)器,包括電機(jī)控制等大多數(shù)應(yīng)用
通信接口低功耗,如UART、SPI、I2C 等
電壓供應(yīng)范圍:1.71V~3.6V,多功能低功耗模式支持獨(dú)立操作
運(yùn)行溫度范圍:-40~105 °C(CSP 包除外)
Kinetis L系列微控制器融合了最新的低功耗革新技術(shù),具有高精度混合信號(hào)處理能力、寬廣的互聯(lián)性和人機(jī)接口。Freescale與 ARM的合作伙伴為每個(gè)MCU 系列提供良好的支持。KL0x 系列是 Kinetis  L 系列中最初的產(chǎn)品,其引腳與 8 位 S08PT 系列兼容。
KL1x/2x/3x/4x各系列之間相互兼容,而且與基于ARM Cortex-M4 內(nèi)核的 K系列兼容。


所有的 Kinetis  L 系列包括強(qiáng)大的模擬、通信、實(shí)時(shí)性和控制外設(shè),集成級(jí)別隨著閃存容量和輸入/輸出引腳數(shù)量增加而提高。Kinetis L系列特性如下:
1、內(nèi)核和框架:
(1)ARM Cortex-M0+內(nèi)核性能可達(dá)48 MHz,同時(shí)可在內(nèi)存中執(zhí)行零等待狀態(tài)。
1)單周期訪問 I/O:比標(biāo)準(zhǔn)I/O 最大提高 50%,允許位觸發(fā)、軟件仿真協(xié)議響應(yīng)外部事件。
2)雙通道:減少指令周期數(shù),更快的跳轉(zhuǎn)指令、 執(zhí)行 ISR 中斷服務(wù)例程和減少功耗。
3)相對(duì)8位和16 位微控制器,減少了閃存、系統(tǒng)消耗和耗電量,使代碼密度更為精簡(jiǎn)。
4)優(yōu)化內(nèi)存訪問:訪問可選周期,以降低耗電量。
5)完全兼容ARM Cortex-M0系列,與ARM Cortex-M3/M4 指令集子集兼容:允許重新利用現(xiàn)有的編譯和調(diào)試工具
6)更精簡(jiǎn)的指令系統(tǒng):56種指令、17個(gè)寄存器能夠?qū)崿F(xiàn)輕松編程,而且能夠有效處理內(nèi)存中8/16/32位數(shù)據(jù)。
7)線性的4GB地址空間去除分頁,減輕程序復(fù)雜度。
8)有ARM 第三方系統(tǒng)支持:軟件和工具幫助減少開發(fā)時(shí)間和開銷。
(2)微型跟蹤緩沖區(qū):輕量跟蹤方法允許快速錯(cuò)誤識(shí)別和糾正。
(3)BME:對(duì)外圍寄存器的操作,位操作技術(shù)與傳統(tǒng)的讀、修改、寫技術(shù)相比,減輕代碼量和周期數(shù)
(4)多達(dá)4通道的DMA服務(wù),可用于外設(shè)和內(nèi)存服務(wù)并減少CPU干預(yù)。
2、超低功耗:
(1)極端動(dòng)態(tài)效率:性能是最接近的 8 位或 16 位競(jìng)爭(zhēng)產(chǎn)品 CoreMark/mA 的 2 倍,32 位ARM Cortex-M0+內(nèi)核采用飛思卡爾90nm薄膜存儲(chǔ)器閃存技術(shù)。
(2)靈活多樣的低功耗模式,包括新的門控時(shí)鐘,該模式在要求最低功耗時(shí)通過關(guān)閉總線、系統(tǒng)時(shí)鐘減少動(dòng)態(tài)功耗
(3)在未喚醒內(nèi)核下,UART、SPI、I2C、ADC、DAC、TPM、LPT 和 DMA 支持低功耗模式。
3、內(nèi)存:
(1)內(nèi)存空間可擴(kuò)展,從8KB 閃存/1KB SRAM到256KB 閃存/32KB SRAM。
(2)為優(yōu)化總線帶寬和閃存執(zhí)行操作內(nèi)嵌了64B的緩存空間(KL02 系列只有32B)。
4、混合信號(hào)模擬:
(1)快速、高精度的 16/12 位模數(shù)轉(zhuǎn)換器、12 位數(shù)模轉(zhuǎn)換器和高速比較器。提供強(qiáng)大信號(hào)調(diào)節(jié)、轉(zhuǎn)換和分析性能的同時(shí)降低了系統(tǒng)成本。KL02 系列沒有 12 位數(shù)模轉(zhuǎn)換器)
5、人機(jī)接口:
(1)可選的電容式觸摸傳感接口工作于所有低功耗模式下。
•  Optional capacitive Touch Sensing Interface with  full low-power support and minimal current adder when enabled
(2)段式 LCD
6、通信:
(1)所有UART 支持DAM傳輸,總線檢測(cè)到數(shù)據(jù)也能觸發(fā)傳輸,UART0 支持 4-32倍的采樣速率。在STOP/VLPS 模式,也能運(yùn)行異步傳輸和接收操作。
(2)最大支持兩路SPI
(3)最大支持兩路I2C
(4)支持全速USB OTG片上傳輸控制設(shè)備(帶有片上收發(fā)器的全速USB OTG控制器)
(5)USB支持片上調(diào)節(jié)3.3V 到5V
(6)支持一路 I2S
7、可靠性和安全性
內(nèi)部看門狗監(jiān)控
8、定時(shí)控制器:
(1)強(qiáng)大的定時(shí)模塊支持通用/PWM/電機(jī)控制功能
(2)可用于RTOS任務(wù)調(diào)度時(shí)基、ADC轉(zhuǎn)換或定時(shí)的周期中斷定時(shí)器
9、系統(tǒng)特性:
(1)GPIO支持引腳中斷
(2)寬泛的工作電壓:1.71V~ 3.6V,F(xiàn)lash 編程電壓、模擬外設(shè)電壓低至1.71V
(3)運(yùn)行溫度范圍:–40℃~ 105℃

2.3 KL25 子系列簡(jiǎn)介
該芯片是增強(qiáng)版 Cortex-M0+ (CM0+)內(nèi)核的高集成、超低功耗 32 位微控制器。子系列特性如下:
內(nèi)核時(shí)鐘高達(dá)48MHz,總線時(shí)鐘高達(dá)24MHz
內(nèi)存空間具有高達(dá)128KB 的閃存和 16KB 的 RAM
寬泛的工作電壓:1.71V~ 3.6V,可對(duì) Flash進(jìn)行編程/擦除/讀取操作32到 80 引腳的多種封裝模式
運(yùn)行溫度范圍:–40℃~ 105℃
該系列控制器更低功耗、更經(jīng)濟(jì)有效的特性為開發(fā)者提供了一個(gè)入門級(jí) 32 位芯片解決方案。該系列對(duì)于低成本、低功耗、高性能芯片應(yīng)用提出了下一代MCU解決方案,該方案對(duì)那些成本敏感、待機(jī)時(shí)間長的便攜式芯片是十分有價(jià)值的。



2.4.1 ARM Cortex™-M0+ 內(nèi)核模塊
表2-2描述了本芯片的可用內(nèi)核模塊。


2.4.2 系統(tǒng)模塊
表2-3描述了本芯片的系統(tǒng)模塊。
表2-3 系統(tǒng)模塊




3.4.10.1 COP時(shí)鐘
COP 的兩個(gè)時(shí)鐘輸入是  1 kHz 時(shí)鐘和總線時(shí)鐘。
3.4.10.2 COP看門狗操作
當(dāng)應(yīng)用程序沒有按照預(yù)期執(zhí)行時(shí),COP 看門狗會(huì)強(qiáng)制系統(tǒng)復(fù)位。應(yīng)用軟件必須定期
清零COP 計(jì)數(shù)器,  去防止系統(tǒng)被 COP 計(jì)數(shù)器復(fù)位 (當(dāng)使能COP 計(jì)時(shí)器時(shí))。如果應(yīng)用程
序跑飛,未能在 COP 計(jì)數(shù)器超時(shí)之前復(fù)位,則將產(chǎn)生系統(tǒng)復(fù)位強(qiáng)制信號(hào)將系統(tǒng)恢復(fù)到應(yīng)
用程序中的一個(gè)已知起點(diǎn)。
任何復(fù)位后,COP 看門狗都將被使能。如果應(yīng)用程序不使用COP 看門狗,它可以通
過清除在SIM卡中的COPCTRL [ COPT ]  來禁用。
COP 計(jì)數(shù)器通過選定的超時(shí)期間向  SIM  的服務(wù)COP  (SRVCOP) 寄存器的地址寫入
0x55 和  0xAA (按此順序)來復(fù)位。寫不影響在 SRVCOP 寄存器中數(shù)據(jù)。一旦寫序列
完成后,  COP 超時(shí)周期將重新啟動(dòng)。如果程序無法在超時(shí)時(shí)間內(nèi)執(zhí)行此重新啟動(dòng),則微
控制器將復(fù)位。此外,如果任何0x55 或0xAA 以外的值寫入SRVCOP 寄存器,則微控制
器立即復(fù)位。
在SIM的COPCTRL COPCLKS ]字段中,選擇用于COP 定時(shí)器的時(shí)鐘源。時(shí)鐘源選
項(xiàng)是總線時(shí)鐘或內(nèi)部的1 kHz時(shí)鐘源。每個(gè)時(shí)鐘源,有三個(gè)COPCTRL [ COPT ]控制的相
關(guān)的超時(shí)。表 3-23 總結(jié)了COPCLKS 和COPT位的控制功能。COP 看門狗默認(rèn)操作是在
1 kHz時(shí)鐘源和最長的超時(shí)作為該時(shí)鐘源(2的10次方個(gè)循環(huán)) 。

總線時(shí)鐘源選擇后,通過設(shè)置在SIM的  COPCTRL [ COPW ]位來使窗口COP 操作可
用。在這種模式下,寫入SRVCOP 寄存器以清除COP 定時(shí)器必須發(fā)生在選定的超時(shí)時(shí)間
的最后 25%。過早地寫將立即復(fù)位芯片。當(dāng) 1 kHz 時(shí)鐘源選擇,窗口COP 操作不可用。  
的第一次寫入到 SIM 的 COPCTRL 寄存器和任何系統(tǒng)復(fù)位后,COP 計(jì)數(shù)器都將被初

始化。后續(xù)寫入到 SIM 的 COPCTRL 寄存器將不影響 COP 的操作。即使應(yīng)用程序使用
COPT、  COPCLKS、  以及  COPW  位的默認(rèn)設(shè)置來復(fù)位,用戶也應(yīng)在復(fù)位初始化鎖定的
設(shè)置過程中去寫write-once COPCTRL  寄存器。這種方法可以防止如果應(yīng)用程序帶來丟失
的意外更改。
寫到 SRVCOP 寄存器的服務(wù)(清除)   COP 計(jì)數(shù)器不應(yīng)該被放置在中斷服務(wù)例程(ISR)
中,因?yàn)镮SR即使主應(yīng)用程序失敗也可以繼續(xù)定期執(zhí)行。
如果選擇總線時(shí)鐘源時(shí),當(dāng)微控制器在調(diào)試模式下或系統(tǒng)在停止模式(包括VLPS或
LLS )下時(shí),COP 計(jì)數(shù)器不會(huì)遞增。微控制器退出調(diào)試模式或停止模式后,COP計(jì)數(shù)器
恢復(fù)。
如果選擇 1 kHz時(shí)鐘源時(shí), 在調(diào)試模式及停止模式(包括VLPS 或 LLS) 任一模式下,
COP 計(jì)數(shù)器都將被重新初始化為零。退出調(diào)試模式或停止模式后, 計(jì)數(shù)器從零開始計(jì)時(shí)。
無論選擇的哪種時(shí)鐘, 只要當(dāng)芯片進(jìn)入一個(gè)VLLSx 模式COP 都將被禁止。從VLLSx
模式喚醒芯片復(fù)位后,  COP 將重新初始化并作為任何復(fù)位使能。
3.4.10.3 時(shí)鐘門
該系列器件包含每個(gè)外設(shè)的時(shí)鐘門控,也就是說,時(shí)鐘的每個(gè)外設(shè)都可以明確地選通
或關(guān)閉,使用的時(shí)鐘門控位在SIM模塊內(nèi)。


3.5.2.1 MCG和RTC中的OSC的操作模式
控制OSC塊的最通常的方法是通過MCG的時(shí)鐘源選擇MCG_C1[CLKS]  和MCG_C2
的寄存器位來配置振蕩器的頻率范圍、增益模式以及晶體或外部的時(shí)鐘操作。OSC_CR也
控制著 OSC 的啟動(dòng)以及 EXTAL 和 XTAL 兩個(gè)引腳的內(nèi)部負(fù)載電容的配置。詳細(xì)內(nèi)容參
考 OSC 和 MCG 章節(jié)。
RTC_CR[OSCE]位對(duì) MCG 和 OSC_CR 的啟動(dòng)功能有著重要的控制。當(dāng)
RTC_CR[OSCE]設(shè)定好后,給 OSC 配置低頻率、低功率,RTC_CR[SCxP]位撤銷
OSC_CR[SCxP]位來控制內(nèi)部電容配置。詳細(xì)內(nèi)容參考RTC章節(jié)。


3.6.1.4 Flash  模式
“Flash存儲(chǔ)器章節(jié)”定義了兩種操作模式—正常NVM模式和專用NVM模式。在這
個(gè)芯片中,flash 存儲(chǔ)器只運(yùn)行 NVM 的正常模式。所有 nvm專用模式的參考都可以被忽
略。
3.6.1.5 擦除所有的flash內(nèi)容
除了軟件,整個(gè)flash存儲(chǔ)器可以通過SW-DP的調(diào)試端口設(shè)置MDM-AP CONTROL[0]
從flash存儲(chǔ)器的外部進(jìn)行擦除。設(shè)置MDM-AP CONTROL[0]指示批量擦除的命令被接收,
當(dāng)批量擦除的命令完成時(shí)清除MDM-AP CONTROL[0]。
3.6.1.6 FTFA_FOPT寄存器
Flash 存儲(chǔ)器的 FTFA_FOPT 寄存器允許用戶在計(jì)算機(jī)啟動(dòng)的時(shí)候適配 MCU 的操作。
它的定義細(xì)節(jié)參見FOPT啟動(dòng)選擇。
3.6.2 Flash存儲(chǔ)器的控制器結(jié)構(gòu)
該部分總結(jié)了芯片中的該模塊是如何配置的。關(guān)于模塊本身的全面描述,請(qǐng)參考它們
專門的章節(jié)。FMC 重新設(shè)定的配置細(xì)節(jié)參見MCM_PLACR寄存器的描述。


3.7.1.2  ADC上的DMA支持
應(yīng)用中可能需要ADC 的連續(xù)采樣,這會(huì)給CPU帶來相當(dāng)大的負(fù)荷。當(dāng)ADC 以高速
進(jìn)行采樣時(shí),為了得到更高的性能,ADC 支持 DMA 的請(qǐng)求功能。在轉(zhuǎn)換完成后,ADC
能觸發(fā) DMA(通過DMA請(qǐng)求)。
3.7.1.3 ADC0連接/通道分配
注意
如下面的部分所示,每個(gè) ADCx_DPx 輸入和特定的 ADCx_DMx 輸入可作為單向模
式的單向ADC通道。

3.7.2.1 CMP 實(shí)例化信息
該芯片包含一個(gè)高速比較器和 2 個(gè)可反相、正相 8 路輸入多工器比較器。每個(gè) CMP
輸入通道都連接至多路復(fù)用器。其中兩個(gè)通道連接至內(nèi)部源,其他源支持多達(dá)6 個(gè)輸入引
腳。該芯片的CMP 輸入連接總結(jié)參見通道分配表。
CMP 也包含一個(gè) 64-電阻階梯網(wǎng)絡(luò)的 6 位 DAC,該電阻階梯網(wǎng)絡(luò)可為通過內(nèi)部連接
到CMP 且需要參考電壓的應(yīng)用提供一個(gè)可選參考電壓。
CMP 除在VLLS0模式,均可任意工作。
利于ADC的觸發(fā),CMP已經(jīng)有幾個(gè)模塊至模塊的內(nèi)部連線,TMP 觸發(fā)和UART IR
接口。CMP 模塊內(nèi)部連線詳細(xì)信息請(qǐng)參閱  模塊-模塊章節(jié)。
CMP 不支持窗口比較功能且CMP_CR1[WE]必須清零。連接至模塊的SAMPLE 輸入
端為無效輸入時(shí),采樣功能弱化。采樣操作受限于總線時(shí)鐘的分頻(CMP_CR1[SE]=0)。  
由于引腳數(shù)的限制,此芯片不支持CMP的pass through模式,故CMPx_MUXCR[PSTM]
必須清零。

3.7.2.4 CMP 觸發(fā)模式
當(dāng)CMP_CR1[TRIGM]置位,CMP 和6 位 DAC 子模塊支持觸發(fā)模式的操作。當(dāng)使能
觸發(fā)模式,觸發(fā)事件將會(huì)初始化比較次序,該次序必須在執(zhí)行CMP 操作和捕捉輸出前使
能 CMP 和 DAC。在該芯片中,由 LPTMR 控制這兩個(gè)階段的次序。當(dāng) LPTMR 使能時(shí),
LPTMR觸發(fā)輸出總是使能。第一個(gè)信號(hào)提供使能CMP 和DAC,同時(shí)置位TCF標(biāo)志。根
據(jù) LPTMR 配置,延時(shí)的第二個(gè)信號(hào)觸發(fā) CMP 捕捉比較的結(jié)果。在預(yù)分頻的定時(shí)器模式
下,延遲等于1/2的預(yù)分頻輸出周期。旁路預(yù)分頻時(shí),延遲等于1/2的預(yù)分頻時(shí)鐘周期。
來自LPTMR的兩個(gè)信號(hào)間的延時(shí)必須大于在數(shù)據(jù)手冊(cè)中已定義的模擬比較器初始化
的延時(shí)。

6.2.2.1.1復(fù)位引腳過濾
引腳在 1kHz LPO 時(shí)鐘和總線時(shí)鐘中都可以使用該過濾。RPFC[RSTFLTSS],
RPFC[RSTFLTSRW], 和  RPFW[RSTFLTSEL]在 RCM 寄存器中設(shè)置控制;見 RCM 相關(guān)
章節(jié)。過濾器芯片上電復(fù)位以后與復(fù)位異步。上電復(fù)位時(shí)默認(rèn)設(shè)置 RESET 引腳無濾波設(shè)
置。
對(duì)于所有的(如Stop,VLPS,LLS,VLLS3,和 VLLS1)LPO時(shí)鐘仍然保持使能的stop
模式,LPO 基于數(shù)字過濾是唯一的可選時(shí)鐘。過濾邏輯可以是開關(guān)到旁路操作或者繼續(xù)
過濾操作,這些都取決于過濾器模式的選擇。當(dāng)進(jìn)入VLLS0 模式,復(fù)位引腳過濾器是無效
的并且是被忽略的。
LPO 過濾器的過濾值計(jì)數(shù)固定是3。輸入數(shù)據(jù)有一個(gè)2個(gè)周期的同步信號(hào)。這樣,從
高到低或從低到高的轉(zhuǎn)換需要5個(gè)周期。
6.2.2.2  低電平檢測(cè)(LVD)
當(dāng)給芯片提供多變的電壓,芯片的低電平檢測(cè)系統(tǒng)可以保護(hù)內(nèi)存內(nèi)容和控制MCU 系
統(tǒng)狀態(tài)。系統(tǒng)由上電復(fù)位電路(POR)和低電壓檢測(cè)(LVD)電路組成。對(duì)于低電壓檢測(cè)
(LVD)電路,用戶可選選擇電壓(高電壓(VLVDH)或低電壓(VLVDL))。 在正 常運(yùn)
行、等待和停止模式下,低電壓檢測(cè)系統(tǒng)在正常運(yùn)行、等待和停止模式下總是保持使能。
LVD 系統(tǒng)在VLPx、LLSx和 VLLSx 模式下總是保持禁止。
通過設(shè)置 PCM 的 LVDSC1[LVDRE]位為 1,LVD 可以在檢測(cè)到低電壓條件時(shí)產(chǎn)生復(fù)

位。當(dāng)產(chǎn)生 LVD復(fù)位時(shí),LVD 系統(tǒng)使MCU處于復(fù)位狀態(tài)直到供應(yīng)的電壓大于LVD 低電
壓閾值。LVD復(fù)位或POR時(shí) SRSL[LVD]位被置位。
6.2.2.3 COP看門狗復(fù)位
看門狗定時(shí)器通過軟件周期性的通信操作監(jiān)視系統(tǒng)的操作。該通信通常稱為服務(wù)性看
門狗。如果沒有定時(shí)進(jìn)行喂狗,看門狗將產(chǎn)生系統(tǒng)復(fù)位。COP 復(fù)位導(dǎo)致 SRS0[WDOG]位
被置位。
6.2.2.4  低漏喚醒(LLWU)復(fù)位
LLWU 模塊為用戶提供了用外部引腳和內(nèi)部外設(shè)將MCU 從低漏模式下喚醒。LLWU
模塊只有在低漏功耗模式下使用。在VLLSx 模式下,所有使能的輸入LLWU 都可以產(chǎn)生
系統(tǒng)復(fù)位。
系統(tǒng)復(fù)位后,LLWU 會(huì)保持標(biāo)識(shí)上一次的喚醒源的標(biāo)志直到用戶清該標(biāo)志位。
注意:
LLWU 復(fù)位中外設(shè)模塊的一些條件標(biāo)志位會(huì)自動(dòng)被清除。詳見各個(gè)外設(shè)模塊說明。
6.2.2.5  多功能時(shí)鐘發(fā)生器時(shí)鐘丟失(LOC)復(fù)位
MCG 模塊支持一個(gè)外部的參考時(shí)鐘。
如果MCG中的C6[CME]為1,時(shí)鐘監(jiān)視器使能。當(dāng)外部參考?jí)航档陀趂loc_low or floc_high,
(由 MCG 中的C2[RANGE]位控制),MCU 復(fù)位。RCM的 SRS0[LOC]位為1代表該復(fù)位
源。


注意:
為了防止不可預(yù)測(cè)丟失時(shí)鐘的復(fù)位事件,所有的時(shí)鐘監(jiān)視器在進(jìn)入低功耗模式下(包
括 VLPR和 VLPW)之前必須禁用。
6.2.2.6 MCG  –丟失鎖定LOL復(fù)位
MCG 有一個(gè)PLL丟失鎖定探測(cè)器。當(dāng)MCG 配置為PEE或者鎖定使能,該探測(cè)器使
能。如果 MCG_C8[LOLRE]位被置位并且 PLL 鎖的狀態(tài)位(MCG_S[LOLS0])變成 1,
MCU 復(fù)位。RCM_SRS0[LOL]位標(biāo)志該復(fù)位源。
注意:如果芯片在任何停止模式下,該復(fù)位源不會(huì)產(chǎn)生任何復(fù)位。
6.2.2.7  停止模式的應(yīng)答錯(cuò)誤(SACKERR)
如果內(nèi)核試圖進(jìn)入 stop 模式或者計(jì)算操作,該復(fù)位產(chǎn)生,但是不是所有模塊的 stop
模式在 1kHzLPO 時(shí)鐘的1025 個(gè)周期內(nèi)。
如果一個(gè)錯(cuò)誤產(chǎn)生,該模塊可能并不應(yīng)答進(jìn)入 stop 模式。該錯(cuò)誤也可能由外部時(shí)鐘
輸入一個(gè)模塊中產(chǎn)生。
6.2.2.8  軟件復(fù)位(SW)
NVIC 應(yīng)用中斷和復(fù)位控制寄存器的 SYSRESETREQ 位置位時(shí)會(huì)產(chǎn)生一個(gè)軟件復(fù)位。
(參見 ARM 的  NVIC 文檔寄存器詳細(xì)說明,尤其 VECTKEY 位域要求說明)。置位

SYSRESETREQ可產(chǎn)生軟件復(fù)位請(qǐng)求。除了調(diào)試模塊,軟件復(fù)位能重設(shè)系統(tǒng)大多數(shù)模塊。
軟件復(fù)位時(shí)RCM的 SRS1[SW]位被置位。
6.2.2.9  鎖定復(fù)位(LOCKUP)
LOCKUP 會(huì)立即表明嚴(yán)重錯(cuò)誤的內(nèi)核軟件產(chǎn)生的錯(cuò)誤。在內(nèi)核中系統(tǒng)硬件保護(hù)激活
時(shí),一個(gè)不可恢復(fù)異常導(dǎo)致內(nèi)核被鎖。
LOCKUP 導(dǎo)致系統(tǒng)復(fù)位,亦使RCM的SRS1[LOCKUP]位被置位。
6.2.2.10 MDM-AP系統(tǒng)復(fù)位請(qǐng)求
通過設(shè)置 MDM-AP 控制寄存器中的系統(tǒng)復(fù)位請(qǐng)求位可以產(chǎn)生系統(tǒng)復(fù)位。通過 SWD
接口,此復(fù)位方式是的主要復(fù)位方法。直到該位被清,系統(tǒng)復(fù)位才停止。
當(dāng)芯片從系統(tǒng)復(fù)位中喚醒,通過設(shè)置MDM-AP 控制寄存器中的內(nèi)核保持復(fù)位位可以
控制正在復(fù)位的內(nèi)核。

6.2.3 MCU復(fù)位
MCU 不同模塊產(chǎn)生各種不同的復(fù)位。
6.2.3.1  POR上電復(fù)位
只有在上電復(fù)位的時(shí)候上電復(fù)位激發(fā)。將PMC 和RTC復(fù)位,也同樣觸發(fā)其他復(fù)位。  
6.2.3.2  芯片非VLLS上電復(fù)位
非VLLS 芯片上電復(fù)位來自上電復(fù)位和LVD復(fù)位。復(fù)位部分SMC  和 SIM。同時(shí) 復(fù)
位了LPTMR。
在非VLLS 芯片上電復(fù)位同樣引起以下復(fù)位:芯片上電復(fù)位,芯片非VLLS 復(fù)位,和
芯片復(fù)位(包括早期的芯片復(fù)位)
6.2.3.3  芯片上電復(fù)位
芯片上電復(fù)位斷言芯片POR,LVD和 VLLS 喚醒復(fù)位源。它重設(shè)了復(fù)位引腳過濾寄存
器和SIM和MCG 的部分寄存器。芯片POR 同樣產(chǎn)生芯片復(fù)位(包括早期的芯片復(fù)位)。  
6.2.3.4  芯片非VLLS復(fù)位
通過復(fù)位引腳,芯片非VLLS 復(fù)位在除了 VLLS 喚醒源,其他復(fù)位都可以產(chǎn)生。它復(fù)
位了SMC,LLWU 和其他模塊(該模塊在VLLS 模式下保持上電)。
芯片非 VLLS 復(fù)位同樣引起芯片復(fù)位(包括早期芯片復(fù)位)觸發(fā)。
6.2.3.5  早期芯片復(fù)位
早期芯片斷言所有的復(fù)位源。它復(fù)位了flash內(nèi)存模塊。它在 flash內(nèi)存初始化開始之
前無效(“早于”芯片復(fù)位無效)。

6.2.3.6  芯片復(fù)位
芯片復(fù)位同樣來自所有復(fù)位源,并且只有在flash初始化完成之后無效并且 引腳同樣
禁止。該復(fù)位重置了現(xiàn)存的模塊(該模塊沒有被其他復(fù)位所重置)。
6.2.4 復(fù)位引腳
對(duì)于所有的復(fù)位源(除了VLLS 喚醒),其他都通過復(fù)位引腳發(fā)生,復(fù)位引腳被MCU
拉低至少 128 總線時(shí)鐘周期,直到flash初始化完成。
在 flash 初始化完成之后,復(fù)位引腳釋放,并且內(nèi)部芯片復(fù)位在復(fù)位引腳上拉之后失
效。一直按住外部復(fù)位引腳會(huì)延遲了內(nèi)部芯片復(fù)位。
復(fù)位引腳通過置 RESET_PIN_CFG 選項(xiàng)位為 0,可以禁用。當(dāng)該選項(xiàng)選中,在芯片上
電復(fù)位上升沿時(shí),會(huì)有一個(gè)短暫的沖突區(qū),在建立該選項(xiàng)的設(shè)置和在引腳處釋放復(fù)位功能
之前設(shè)備驅(qū)動(dòng)引腳輸出低電平。
6.2.5 調(diào)試復(fù)位
以下部分詳細(xì)描述了調(diào)試復(fù)位。
6.2.5.1  復(fù)位調(diào)試子系統(tǒng)
使用DP CTRL/STAT  寄存器的CDBGRSTREQ 位復(fù)位調(diào)試模塊。但是,如下所述,
使用CDBGRSTREQ 位并沒有復(fù)位所有調(diào)試相關(guān)的寄存器。

6.3.3 啟動(dòng)順序
在上電時(shí),片上穩(wěn)壓器會(huì)保持芯片處于POR 狀態(tài)直到輸入電壓高于POR閾值。系統(tǒng)
會(huì)持續(xù)這個(gè)靜止?fàn)顟B(tài)直到內(nèi)部調(diào)節(jié)電壓達(dá)到 LVD 標(biāo)定的安全操作電壓。復(fù)位控制邏輯器
控制一系列退出復(fù)位。
1. 系統(tǒng)復(fù)位保持在內(nèi)部邏輯,復(fù)位引腳驅(qū)動(dòng)為低電平, MCG 在使能默認(rèn)的時(shí)鐘模式。  
2. 時(shí)鐘使能(系統(tǒng)時(shí)鐘,flash 時(shí)鐘和任何沒有時(shí)鐘門控制的總線時(shí)鐘復(fù)位后禁用)。  
3. 內(nèi)部系統(tǒng)復(fù)位邏輯持續(xù)保持拉高,但是flash 控制器停止復(fù)位并且在復(fù)位控制邏輯
持續(xù)將復(fù)位引腳拉低時(shí),開始初始化操作。
4. 先將 NVM 選項(xiàng)中的復(fù)位序列字節(jié)讀取并且存到 FTFA_FOPT 寄存器中。如果與
LPBOOT 相應(yīng)的位,為備用時(shí)鐘分頻器復(fù)位值編程時(shí),系統(tǒng)/內(nèi)核時(shí)鐘切換到較慢的時(shí)鐘
速度。如果清FAST_INT位,flash初始化切換到慢速時(shí)鐘會(huì)導(dǎo)致更長的恢復(fù)時(shí)間.
5. 當(dāng) flash初始化完成,復(fù)位引腳將被釋放。如果復(fù)位引腳持續(xù)觸發(fā)(如復(fù)位引腳一
個(gè)緩慢上升沿或者外部使能拉低),系統(tǒng)持續(xù)保持復(fù)位狀態(tài)。一旦檢測(cè)復(fù)位引腳的電平為
高,內(nèi)核時(shí)鐘使能,系統(tǒng)將退出復(fù)位狀態(tài)。
6. 當(dāng)系統(tǒng)退出復(fù)位時(shí),處理器初始化堆棧,程序計(jì)數(shù)器(PC)和連接寄存器(LR)。
處理器從中斷向量表 0 偏移處讀取 SP(SP_main)。內(nèi)核從中斷向量表偏移 4 處讀取 PC。
LR 設(shè)置為 0xFFFF_FFFF。CPU開始轉(zhuǎn)到PC位置執(zhí)行。
子系統(tǒng)復(fù)位遵從同樣的復(fù)位順序。


第7章 電源管理模塊
7.1 簡(jiǎn)介
本章主要描述各種芯片電源模塊,以及在這些模式下各個(gè)不同模塊的功能。
7.2 時(shí)鐘模塊
該部分描述了該設(shè)備支持的多種時(shí)鐘模塊。
7.2.1 局部停止
局部停止是一種可替代 stop 模式的時(shí)鐘選項(xiàng),在 SMC 停止控制寄存器
(SMC_STOPCTRL)進(jìn)行配置。STOP 模式只是一部分進(jìn)入,在高能耗的情況下保留了
一些額外的功能使能。局部stop 模式能夠從Run 模式或者VLP Run 模式進(jìn)入。
當(dāng)配置為 PSTOP2 模式,只有內(nèi)核和系統(tǒng)時(shí)鐘不可以用,總線時(shí)鐘仍然使能。進(jìn)入
Stop 模式后總線主機(jī)和總線從機(jī)由系統(tǒng)時(shí)鐘起振,但是在RUN(或者VLP Run)模式下
總線從機(jī)由總線時(shí)鐘起振。在 RUN(或者 VLP  Run)模式下,MCG 時(shí)鐘產(chǎn)生器和 PMC
片上穩(wěn)壓器仍然運(yùn)行。退出PSTOP2,一個(gè)異步的來自總線主機(jī)或者總線從機(jī)(由系統(tǒng)時(shí)
鐘驅(qū)動(dòng))的中斷,或者一個(gè)同步的來自總線從機(jī)(由總線時(shí)鐘驅(qū)動(dòng))的中斷可以通過復(fù)位
初始化。一旦這樣配置,DMA 請(qǐng)求(采用異步的 DMA 喚醒)能同樣用于退出局部 Stop
模式(在DMA持續(xù)時(shí)間,在設(shè)備轉(zhuǎn)回PSTOP2模式之前)。
當(dāng)配置為PSTOP1,系統(tǒng)時(shí)鐘和總線時(shí)鐘都被禁止。所有的總線主機(jī)和總線從機(jī)進(jìn)入
stop模式,但是MCG的時(shí)鐘發(fā)生器和PMC的片上穩(wěn)壓器保持運(yùn)行  (或者VLP Run)模式。
從PSTOP1 模式離開,一個(gè)來自總線主機(jī)或者從機(jī)的異步中斷被復(fù)位初始化。一旦該配置,
在設(shè)備傳送回PSTOP1之前在DMA傳送周期內(nèi),一個(gè)異步DMA請(qǐng)求可以用來退出局部
Stop。

PSTOP1模式類似于STOP模式,但是耗能更高,喚醒速度更快。還可以保持所有的
MCG 時(shí)鐘使能,這可以用于使一些異步外設(shè)可以在stop 模式下使能工作。
7.2.2 DMA喚醒
不管什么Stop模式下的DMA請(qǐng)求都可以用來喚醒設(shè)備。在計(jì)算操作, PSTOP, STOP
和VLPS 低功耗模式下,每個(gè)DMA通道都可以喚醒。
當(dāng)在PSTOP,STOP 或者VLPS,檢測(cè)到DMA 喚醒,設(shè)備將退出低功耗模式。它包括
儲(chǔ)存片上穩(wěn)壓器和內(nèi)部電源開關(guān),使能MCG 中的時(shí)鐘發(fā)生器,使能系統(tǒng)和總線時(shí)鐘(不
是內(nèi)核時(shí)鐘)和阻塞發(fā)給總線主機(jī)和總線從機(jī)的 STOP 信號(hào)。唯一的不同是可以在 CPU
時(shí)鐘失效時(shí),CPU 將保持在低功耗模式下運(yùn)行。
在計(jì)算操作中,DMA 喚醒將導(dǎo)致退出計(jì)算操作。這個(gè)包括使能時(shí)鐘和阻塞發(fā)給總線
主機(jī)和總線從機(jī)的STOP模式信號(hào)。內(nèi)核時(shí)鐘仍然在計(jì)算操作中保持使能。
由于 DMA 喚醒將使能時(shí)鐘和阻塞發(fā)給總線主機(jī)和停止總線從機(jī)的 STOP 模式信號(hào),
軟件方需要首先確保總線主機(jī)和從機(jī)并沒有包含進(jìn)DMA喚醒和發(fā)送器保持它在一個(gè)已知
的狀態(tài)。在所選的模塊中,可通過在進(jìn)入低功耗模式之前或者通過設(shè)置 DOZE 使能位,
達(dá)到以上的目的。
一旦DMA請(qǐng)求將設(shè)備喚醒并且DMA 完成當(dāng)前的傳輸,設(shè)備將回到原始的低功耗模
式。這包括請(qǐng)求所有非 CPU 總線主機(jī)進(jìn)入 Stop 模式并且請(qǐng)求總線從機(jī)進(jìn)入 Stop 模式。
在 STOP 和VLPS模式 MCG和PMC 將同樣進(jìn)入對(duì)應(yīng)的模式。
注意:
如果被請(qǐng)求的DMA發(fā)送器不能產(chǎn)生DMA 請(qǐng)求,導(dǎo)致設(shè)備將保持在高功耗的狀態(tài)直
到低功耗模式完全退出。
使能的 DMA 喚醒將停止進(jìn)入低功耗模式,如果DMA 請(qǐng)求在stop 模式進(jìn)入隊(duì)列中聲
明(或者如果請(qǐng)求在DMA 喚醒時(shí)再次進(jìn)入)并且能引起SMC 設(shè)置Stop Abort標(biāo)志位。
一旦DMA喚醒完成,進(jìn)入低功耗模式將重新開始。
在 DMA 喚醒的中斷將立即退出低功耗模式(對(duì)于計(jì)算操作時(shí)可選的)。
DMA喚醒可以由同步的DMA請(qǐng)求產(chǎn)生或者異步的DMA請(qǐng)求產(chǎn)生。在stop模式中,
并不是所有的外設(shè)能夠產(chǎn)生異步DMA 請(qǐng)求,如果該外設(shè)能夠產(chǎn)生同步的DMA請(qǐng)求并且
在 stop 模式下也支持異步中斷,那么該外設(shè)可以產(chǎn)生一個(gè)異步的DMA請(qǐng)求。
7.2.3 計(jì)算操作
計(jì)算操作:是一種使 CPU 一直訪問 SRAM 和 FLASH 讀取端口,但將所有其他總線
主機(jī)和總線從機(jī)進(jìn)入Stop模式的執(zhí)行或者純計(jì)算模式的操作。計(jì)算操作在RUN 模式或者
VLP RUN模式下都可以使能。

注意:
如果不先退出計(jì)算操作,無法進(jìn)入任何stop模式。
因?yàn)橛?jì)算操作重復(fù)使用 stop 模式邏輯(包括在總線從機(jī)之前禁用總線主機(jī)的進(jìn)入),
任何總線主機(jī)或者總線從機(jī)可以在 stop 模式下保持使能,也能在計(jì)算操作下保持使能,
包括異步中斷的產(chǎn)生和DMA請(qǐng)求。當(dāng)在 run模式下使能計(jì)算操作,模塊對(duì)總線主機(jī)和總
線從機(jī)的作用等同于stop模式。當(dāng)在VLP RUN 模式下使能計(jì)算操作,模塊對(duì)總線主機(jī)和
總線從機(jī)的作用等同于VLPS模式。盡管FLASH 寄存器接口禁用,MCG,PMC,SRAM和
flash 讀取端口都不受計(jì)算操作的影響。
在計(jì)算操作時(shí),AIPS 外設(shè)空間不可訪問并且訪問會(huì)產(chǎn)生總線錯(cuò)誤。在計(jì)算操作時(shí),
私有的外設(shè)空間仍然可以訪問,包括 MCM,NVIC,IOPORT  和系統(tǒng)滴答。盡管可以通過
IOPORT訪問GPIO寄存器,但GPIO 端口數(shù)據(jù)輸入寄存器不能返回有效的數(shù)據(jù),因?yàn)闀r(shí)鐘
對(duì)于端口控制和中斷模塊無效。通過寫入GPIO端口數(shù)據(jù)輸出寄存器,可以控制GPIO端
口配置為輸出引腳。
計(jì)算操作由 MCM 中的 CPO 寄存器控制,只可以 CPU 訪問。設(shè)置或清 MCM 的
CPOREQ 位會(huì)進(jìn)入或者退出計(jì)算操作。計(jì)算操作在探測(cè)到一個(gè)中斷(該中斷是用來服務(wù)
大部分中斷的)可以配置為自動(dòng)退出。只有內(nèi)核系統(tǒng)中斷(異常,包括NMI和系統(tǒng)滴答)
并且在不退出計(jì)算操作的情況下,任何邊沿檢測(cè)中斷仍有效。
當(dāng)進(jìn)入計(jì)算操作, CPOACK狀態(tài)位標(biāo)志進(jìn)入已完成。當(dāng)在run模式下退出計(jì)算操作,
CPOACK 狀態(tài)位立刻取反。當(dāng)在 VLPRUN 模式下退出計(jì)算操作,退出將延時(shí)直到 PMC
控制電源消耗。這個(gè)延時(shí)通過檢測(cè) CPOACK 位來確定什么時(shí)候 AIPS 外設(shè)空間能夠訪問
并且不產(chǎn)生總線錯(cuò)誤。
DMA喚醒在計(jì)算操作中可以使用并且DMA喚醒還會(huì)引起CPOACK狀態(tài)位清零并且
AIPS外設(shè)空間在DMA 喚醒周期可以訪問。在DMA喚醒完成后,設(shè)備恢復(fù)為計(jì)算操作模
式。

7.2.4 外設(shè)休眠
一些外設(shè)支持休眠模式,在低功耗模式下可以使用寄存器的某一位禁用外設(shè)。Flash
在外設(shè)休眠模式下通過SIM中的寄存器,同樣可以進(jìn)入低功耗的狀態(tài)。
外設(shè)休眠是指在如下的操作中:
   CPU 在等待模式
   CPU在stop模式,包括進(jìn)入序列 ①
7.2.5 時(shí)鐘門
和在DMA喚醒階段
   CPU 在計(jì)算操作,包括進(jìn)入序列和在DMA 喚醒階段。
在 WAIT 或者 VLPW 模式下,外設(shè)休眠模式因此能用來禁用所選的總線主機(jī)或者從
機(jī)。在進(jìn)入任何 stop 模式(或者計(jì)算操作)同樣可以用于禁用總線從機(jī),以此來代替等
待總線主機(jī)應(yīng)答作為進(jìn)入 stop 模式的順序的一部分。最后,可以用來禁用選中的總線主
機(jī)或從機(jī)(該總線從機(jī)或主機(jī)在DMA 喚醒狀態(tài)應(yīng)該保持未激活狀態(tài))。
如果flash在WAIT 和 STOP 模式下不能訪問,那Fash  休眠模式可用降低功耗,當(dāng)執(zhí)
行 flash 中的向量和代碼將消耗稍長時(shí)間喚醒。在計(jì)算操作下執(zhí)行代碼或者SRAM中的向
量,同樣可以用來減少電源消耗。
為了節(jié)省功耗,大部分模塊的時(shí)鐘可以通過設(shè)置SIM模塊的 SCGCx 寄存器關(guān)閉。這
些寄存器比特位在復(fù)位之后清零;同時(shí)也會(huì)禁用相應(yīng)模塊的時(shí)鐘。初始化一個(gè)模塊之前,
需要先設(shè)置SCGCx寄存器的相應(yīng)位來使能該模塊的時(shí)鐘。在關(guān)閉時(shí)鐘之前,必須確保已
經(jīng)禁用了模塊。有關(guān)此部分的詳細(xì)的資料請(qǐng)參見“SIM”的時(shí)鐘分配章節(jié)。

7.3 電源模塊
電源管理控制器(PMC)提供多種可選電源,用戶可以根據(jù)不同的功能需求來選擇
不同的模式以優(yōu)化電源功耗。
根據(jù)用戶對(duì)停止模式的需求,提供了多種模式,如:提供狀態(tài)駐留,邏輯單元和存儲(chǔ)
單元的部分掉電,或者完全斷電;或關(guān)閉某些邏輯單元和存儲(chǔ)單元電源;或關(guān)閉所有邏輯
單元和存儲(chǔ)單元電源。 I/O 狀態(tài)在所有模式操作中都會(huì)置高。下表比較可使用的電源模式。
每個(gè)運(yùn)行模式都有對(duì)應(yīng)的等待和停止的模式。等待模式和ARM的睡眠模式類似。停
止模式(VLPS,STOP)和 ARM 深度睡眠模式類似。當(dāng)最大總線頻率不是必須需要的時(shí)候,
極低功耗運(yùn)行操作模式可以大大減少電源消耗。
CPU 有三種基本模式:運(yùn)行、等待和停止。WFI 指令包含芯片等待和停止模式。芯
片通過運(yùn)行、等待和停止三種模式的不同排列來實(shí)現(xiàn)低功耗。基本模式根據(jù)需要又細(xì)劃分
了一些低功耗模式。



7.4 進(jìn)入及退出電源模式
WFI指令激活等待和停止模式。處理器需要通過一個(gè)中斷退出低功耗模式。對(duì)于LLS
和VLLS 模式下,只有 LLWU 產(chǎn)生的喚醒,NMI引腳或者RESET引腳可以作為喚醒源。
當(dāng)NMI或者RESET引腳通過設(shè)置相應(yīng)的FOPT位被禁止,那么這些引腳不可作為喚醒源。
通過復(fù)位來自VLLSx的喚醒流總是有效。
注意:   WFE 指令對(duì)于進(jìn)入低功耗模式有一定作用,但是這不是這個(gè)指令的真正用途。
可以參考ARM文檔來獲取更多的關(guān)于WFE 的指令信息。
在 VLLS 恢復(fù),在代碼執(zhí)行開始后,I/O 引腳持續(xù)保持在靜止?fàn)顟B(tài),在未鎖定 I/O 之
前,軟件可以重新配置系統(tǒng)。RAM只有在VLLS3模式下受限。
7.5 低功耗下的模塊操作
下表說明了芯片處于各種低功耗模式下每個(gè)模塊的功能。但有一些例外的標(biāo)準(zhǔn)行為,
如計(jì)算機(jī)操作(CPO)和部分停止模式2(調(diào)試模塊被分開討論了,詳細(xì)信息見低功耗下
的調(diào)試)。數(shù)據(jù)速率(例如 2MHz 和 1Mbps)代表最高頻率或者最大數(shù)據(jù)傳輸率。另外,
以下是縮寫的解釋:
FF=所有功能,在VLPR 和 VLPW 模式,頻率是有限制的,如果模塊沒有頻率限制,
那么它的值是FF。
Async operation=交替時(shí)鐘源完全功能,提供可選時(shí)鐘保持使能。
static=模塊寄存器狀態(tài)以及相關(guān)聯(lián)的內(nèi)存會(huì)受限制;
powered=存儲(chǔ)器電源被保留。
low power=內(nèi)存在低功耗狀態(tài)下強(qiáng)制保存內(nèi)容。
OFF=模塊斷電;模塊在復(fù)位狀態(tài)下喚醒,對(duì)于時(shí)鐘,OFF意味著禁用。
wakeup=模塊可以作為芯片的喚醒源。

第8章  安全性
8.1 介紹
該設(shè)備基于 flash 模塊選擇的模式實(shí)現(xiàn)的。下面對(duì) flash 安全和在非 flash 模塊進(jìn)行全
局的概述。
8.2 Flash 安全性
Flash模塊基于 FSEC[SEC]位保存的狀態(tài)提供了對(duì)MCU 的安全性信息。反過來, MCU
驗(yàn)證請(qǐng)求的安全性和對(duì) FLASH 進(jìn)行限制訪問。在復(fù)位期間,flash 模塊通過從 flash 配置
域的安全位讀出的數(shù)據(jù),初始化FSEC 寄存器。
注意:
安全性特征僅僅應(yīng)用于外部訪問:調(diào)試。CPU 訪問 flash 是不會(huì)受 FSEC 的狀態(tài)的影
響。
在非安全模式下,不管調(diào)試端口(SWD)還是執(zhí)行用戶代碼,所有的 flash命令在可
編程的接口都是可以用的。當(dāng)flash 處于加密狀態(tài)下(FSEC[SEC]位置 00,01或者 11),只有
編程接口允許執(zhí)行全部擦除操作。另外,在該模式下,調(diào)試端口不可訪問內(nèi)存地址。
8.3其他模塊的安全性交互
Flash 安全性可以設(shè)置哪些資源可以訪問。下面的章節(jié)描述了模塊和flash 安全性設(shè)置
之間的交互和flash安全性對(duì)非 flash模塊上的影響。
8.3.1安全性和調(diào)試的交互
當(dāng)flash 加密時(shí),SWD接口是不能訪問MCU 的內(nèi)存資源的。
盡管大部分調(diào)試功能被禁止,但是調(diào)試器還是可以通過寫 FLASH 全部擦除位命令。
當(dāng)內(nèi)存保護(hù)時(shí),仍然可以通過調(diào)試器全部擦除。
當(dāng)全部擦除無效,通過調(diào)試器全部擦除是不可行的。


第9章 調(diào)試
9.1 介紹
該調(diào)試系統(tǒng)是基于ARM CorSight
TM1
9.2 調(diào)試端口引腳
  結(jié)構(gòu),由于引腳的約束和其他可用的資源,該調(diào)
試系統(tǒng)可以配置為具有很高的靈活性的系統(tǒng)。
該系統(tǒng)提供從外部調(diào)試接口訪問內(nèi)存和寄存器,和基本的運(yùn)行/停止控制以及 2 個(gè)斷
點(diǎn)和 2個(gè)監(jiān)視點(diǎn)。
只支持一種調(diào)試接口:
Serial Wire Debug(SWD)
在上電復(fù)位之后調(diào)試引腳默認(rèn)使能為SWD功能。
9.3 SWD狀態(tài)和控制寄存器
通過ARM調(diào)試訪問接口(DAP),調(diào)試器可以訪問狀態(tài)和控制單元,在DAP總線上
的寄存器的作用如下圖。在低功耗模式下恢復(fù)和經(jīng)典的運(yùn)行控制模式下,這些寄存器提供
了額外的控制和狀態(tài)。這些狀態(tài)寄存器位為調(diào)試器提供了一種更新內(nèi)核的狀態(tài)方法,該方
法不用初始化總線交叉開關(guān),使得在調(diào)試階段降低干擾。
這些 DAP 控制和狀態(tài)寄存器是比較重要的,這些寄存器不在系統(tǒng)內(nèi)存映射,它們只
能用 SWD 通過調(diào)試訪問接口(DAP)訪問。通過下表中列出的可用寄存器,MDM-AP
和調(diào)試端口1(DAP1)都可訪問。

9.5  微型追蹤緩沖區(qū)(MTB)
MTB 為 Cortex-M0+內(nèi)核,提供簡(jiǎn)單的執(zhí)行跟蹤能力。當(dāng) MTB 使能,通過執(zhí)行跟蹤
接口,進(jìn)入SRAM的可配置區(qū)域,   Cortex-M0+處理器記錄的編程流可以改變MTB記錄。
隨后,芯外調(diào)試器可以提取這些跟蹤信息,這將允許重建的指令流跟蹤。MTB 不包括任
何加載/儲(chǔ)存數(shù)據(jù)跟蹤能力和跟蹤信息能力。
MTB同樣類似一個(gè)簡(jiǎn)單的AHB-Lite SRAM控制器,另外提供了跟蹤能力。系統(tǒng)總線
主機(jī),包括處理器,可以通過 AHB-Lite  接口讀取/寫入訪問所有的 SRAM,允許內(nèi)存存
儲(chǔ)程序和數(shù)據(jù)信息。 MTB同時(shí)將跟蹤信息存儲(chǔ)到SRAM并且允許總線主機(jī)訪問存儲(chǔ)內(nèi)存。
MTB確保跟蹤信息可以先于訪問AHB-Lite接口寫入 SRAM。
MTB包括跟蹤控制寄存器為了配置和激發(fā)MTB功能。MTB支持通過MTB DWT 模
塊的TSTART和 TSTOP 控制功能觸發(fā)。
9.6 在低功耗模式下的調(diào)試
在低功耗模式下,調(diào)試模塊保持靜止或者斷電。在低功耗模式期間,調(diào)試器不能獲取
任何調(diào)試數(shù)據(jù)信息。所以調(diào)試模式保持靜止,系統(tǒng)一旦退出低功耗模式,調(diào)試端口會(huì)恢復(fù)
功能。因此調(diào)試器邏輯是斷電的,調(diào)試器在恢復(fù)的過程中會(huì)復(fù)位,而且一旦低功耗模式,
需要重新配置調(diào)試器。
9.7 調(diào)試&安全
當(dāng) flash 加密時(shí), 為了防止取得加密的數(shù)據(jù),調(diào)試端口功能被限制使用。在安全狀態(tài)
下調(diào)試器仍可以訪問狀態(tài)寄存器而且可以設(shè)定設(shè)備的當(dāng)前安全狀態(tài)。對(duì)于一個(gè)加密的設(shè)備,
調(diào)試器只可以執(zhí)行完全擦除操作。

39.3.2 發(fā)送器功能描述
本節(jié)介紹UART發(fā)送器的總體框圖,以及專門用于發(fā)送中止和空閑字符的功能。
發(fā)送器輸出(UART_TX)空閑狀態(tài)默認(rèn)為邏輯高電平,復(fù)位之后,緊跟著C3[TXINV]
被清除。發(fā)送器的輸出通過設(shè)置 C3[TXINV]倒轉(zhuǎn)。發(fā)送器通過設(shè)置 C2[TE]位啟用。發(fā)送
器發(fā)出一個(gè)前導(dǎo)符,是一個(gè)完整的字符幀的空閑狀態(tài)。之后發(fā)送器保持空閑狀態(tài),直到數(shù)
據(jù)在發(fā)送數(shù)據(jù)緩沖區(qū)中。通過寫入到 UART 數(shù)據(jù)寄存器,程序?qū)?shù)據(jù)存儲(chǔ)到發(fā)送數(shù)據(jù)緩
沖區(qū)中。
UART 發(fā)送器的核心元素是,根據(jù)在 C1[M]、C2[M10]和 BDH[SBNS]控制位的設(shè)置
的 10位到13 位長發(fā)送移位寄存器。本節(jié)的其余部分,假設(shè)C1[M], C2[M10]和BDH[SBNS
被清除,選擇正常的8 位數(shù)據(jù)模式。在8 位數(shù)據(jù)模式下,移位寄存器持有起始位,8個(gè)數(shù)
據(jù)位,一個(gè)停止位。當(dāng)發(fā)送移位寄存器對(duì)一個(gè)新的 UART 字符有效時(shí),等待在發(fā)送數(shù)據(jù)
寄存器的值被轉(zhuǎn)移到移位寄存器,同時(shí)波特率時(shí)鐘同步,并發(fā)送數(shù)據(jù)寄存器空(S1[TDRE)
狀態(tài)標(biāo)志設(shè)置,以指示可能會(huì)被寫入發(fā)送數(shù)據(jù)緩沖區(qū)UART_D 另一個(gè)字符。
當(dāng)一個(gè)停止位被移出UART_TX引腳后,如果發(fā)送數(shù)據(jù)緩沖區(qū)中沒有新的字符,發(fā)送
器設(shè)置傳輸完成標(biāo)志位并且進(jìn)入U(xiǎn)ART_TX高的空閑模式,等待傳輸字符。
寫 0 到 C2[TE]中不會(huì)立即關(guān)閉發(fā)送器。必須首先完成當(dāng)前正在發(fā)送的活動(dòng)。這包括
正在發(fā)送中的數(shù)據(jù)字符,等待空閑字符和等待中止符。
39.3.2.1 發(fā)送中止與等待空閑
UART_C2[SBK]位發(fā)送中止符,原本是用來獲得舊的打字接收器的信息。中止符是一
個(gè)完整的邏輯 0,10 位到 12 位包含開始和停止位的位時(shí)間的字符。13 個(gè)位時(shí)間的中斷,
可以通過設(shè)置UART_S2[BRK13]啟用。通常情況下,程序會(huì)等待UART_S1[TDRE]被設(shè)置
以顯示消息的最后一個(gè)字符被移到發(fā)送移位寄存器中,寫1,然后 寫0到UART_C2[SBK]
位來發(fā)送中止字符。只要移位寄存器可用,就會(huì)將一個(gè)中止符排進(jìn)要發(fā)送的隊(duì)列。如果
UART_C2[SBK]保持為 1 時(shí),當(dāng)隊(duì)列中的中止數(shù)據(jù)進(jìn)入移位寄存器時(shí),同步波特率時(shí)鐘,
同時(shí)一個(gè)額外的中止字符被排隊(duì)。如果接收設(shè)備是另一個(gè)飛思卡爾半導(dǎo)體UART,在所 有
數(shù)據(jù)位和幀錯(cuò)誤(UART_S1[FE]= 1)出現(xiàn)時(shí),中止符被接收為0。

當(dāng)使用空閑線喚醒時(shí),在兩個(gè)信息之間喚醒任何休眠的接收器,一個(gè)完整的空閑(邏
輯 1)字符時(shí)間是需要。通常情況下,程序會(huì)等待 UART_S1[TDRE]設(shè)置為顯示消息的最
后一個(gè)字符移到發(fā)送移位寄存器,然后寫 0,然后寫 1 到 UART_C2[TE]位。只要移位寄
存器可用,這個(gè)動(dòng)作隊(duì)列發(fā)送一個(gè)空閑字符。只要在移位寄存器中的字符沒有完成而
UART_C2[TE]被清除,UART 發(fā)送器就不會(huì)釋放UART_TX引腳的控制。
間隔字符的長度會(huì)受到 UART_S2[BRK13],UART_C1[M]和 UART_C4[M10]位的影
響,如下表所示。

39.3.3 接收器功能描述
在本節(jié)中,接收器的框圖是對(duì)整體接收器的功能描述的一個(gè)引導(dǎo)。接著,用于重建接
收器的數(shù)據(jù)的數(shù)據(jù)采樣技術(shù)被更詳細(xì)地描述。最后,對(duì)接收器兩個(gè)變化的喚醒功能做出解
釋。
設(shè)置UART_S2[RXINV],接收器的輸入被倒轉(zhuǎn)。設(shè)置UART_C2[RE]位接收器被啟用。
字符幀由一個(gè)起始位(邏輯0),8到 10 個(gè)數(shù)據(jù)位(MSB或LSB在前),一個(gè)或兩個(gè)停止位
(邏輯1)組 成。9位或 10位數(shù)據(jù)模式的信息,請(qǐng)參閱為“8位, 9 位和 10 位數(shù)據(jù)模式” ①
當(dāng)程序檢測(cè)到接收數(shù)據(jù)寄存器滿時(shí)(UART_S1[RDRF= 1),它通過閱讀UART_D寄存
器,來從接收數(shù)據(jù)寄存器中得到數(shù)據(jù)。對(duì)于標(biāo)志清空的詳細(xì)信息請(qǐng)參閱“中斷和狀態(tài)標(biāo)

在以后的討論中,我們都假設(shè)UART配置成普通的8位數(shù)據(jù)模式。
當(dāng)移位寄存器接收到停止位后,如果接收數(shù)據(jù)寄存器未滿,數(shù)據(jù)字符被傳輸?shù)浇邮諗?shù)
據(jù)寄存器,且接收數(shù)據(jù)寄存器滿(UART_S1 RDRF)狀態(tài)標(biāo)志設(shè)置。如果UART_S1[RDRF]
已經(jīng)置位表明接收數(shù)據(jù)寄存器(緩沖區(qū))已經(jīng)滿了,則溢出(OR)狀態(tài)標(biāo)志被置位,且
新的數(shù)據(jù)丟失。由于UART 接收器有雙緩沖區(qū),在UART_S1[RDRF]被設(shè)置后,程序有一
個(gè)完整字符的時(shí)間,將接收數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)讀出,以避免接收器溢出數(shù)據(jù)丟失。

39.3.3.1 數(shù)據(jù)采樣技術(shù)
UART 接收器,支持 4 倍和 32 倍的波特率時(shí)鐘之間的過采樣率。當(dāng) UART_RX 的串
行數(shù)據(jù)輸入引腳上檢測(cè)到下降沿,接收器根據(jù)過采樣率開始采樣邏輯電平。在3 個(gè)邏輯1
的樣本后,下降沿被定義為邏輯 0 采樣。過采樣波特率時(shí)鐘把位時(shí)間從 1 到 OSR(OSR
配置的過采樣率)分為4至32段。當(dāng)一個(gè)下降沿被定位,分別在(OSR/ 2),(OSR/ 2)
+1,(OSR/ 2) +2上采集樣本,共采集3個(gè)樣本以保證這是一個(gè)真正的開始位而不是噪音。
如果這三個(gè)樣本中的至少兩個(gè)是0,則接收器假定它是同步到接收的字符。在接收器被認(rèn)
為是同步前,如果另一個(gè)下降沿被檢測(cè)到,則接收機(jī)從第一分部重新啟動(dòng)采樣。
然后接收器采樣每個(gè)位時(shí)間,包括的起始位和停止位,在(OSR/ 2),(OSR/ 2)+1,
和(OSR/ 2)+2,以確定該位的邏輯電平。邏輯電平被解釋為大多數(shù)位時(shí)間期間采取的樣
本。當(dāng)接收到的字符被傳輸?shù)浇邮諗?shù)據(jù)緩沖區(qū)時(shí),如果樣本在任何位時(shí)間,包括起始位和
停止位,字符幀的位與該位的邏輯電平不匹配時(shí),噪聲標(biāo)志(UART_S1[NF])被設(shè)置。
當(dāng) UART 接收器被配置為波特率時(shí)鐘的沿跳變采樣時(shí),在每個(gè)接收到的比特的數(shù)目
被變?yōu)殡p倍(從 1到OSR* 2)。然后采樣開始數(shù)據(jù)位從OSR, OSR1和OSC2 中采樣得到。
沿跳變的采樣時(shí)鐘為4 倍到 7 倍過采樣率并且對(duì)較高的過采樣率來說是可選的。
下降沿檢測(cè)邏輯持續(xù)的檢測(cè)下降沿。如果檢測(cè)到一個(gè)下降邊緣,采樣時(shí)鐘同步到位時(shí)
間(除非重新同步已被禁用)。這提高了在存在噪聲或不匹配的波特率情況下的接收機(jī)的
可靠性。它并不能提高最壞的情況下分析,因?yàn)樵谧址麕械娜魏蔚胤剑幸恍┳址痪?br /> 有任何額外的下降沿。
在一個(gè)幀錯(cuò)誤的情況下,假設(shè)接收的字符不是中止符,一個(gè)下降沿的采樣邏輯被填充
3個(gè)邏輯 1,則之后幾乎可以立即檢測(cè)到新的起始位。
39.3.3.2 接收器喚醒操作
接收器喚醒是一種硬件機(jī)制,它允許 UART 接收器可以忽略用于不同的 UART 接收
器的消息字符。在這樣的系統(tǒng)中,所有的接收器判斷每個(gè)消息的第一個(gè)字符,并且它們盡
快確定該消息是不是為不同的接收器,并寫邏輯1 到接收器喚醒控制位UART_C2[RWU]。
當(dāng) RWU 位被置位且 UART_S2[RWUID]位被置位時(shí),與接收器相關(guān)聯(lián)的狀態(tài)標(biāo)志(除空
閑位 IDLE 外)被禁止,從而消除了軟件處理不重要的消息字符的開銷。在一個(gè)消息的結(jié)
尾,或在下一個(gè)消息開始處,所有的接收器自動(dòng)地將 UART_C2[RWU]置為 0,從而所有

39.3.3.2.1 空閑線喚醒
當(dāng)喚醒被清除時(shí),接收器被設(shè)置為空閑線喚醒。在這種模式下,當(dāng)接收器檢測(cè)到空閑
線的一個(gè)滿字符時(shí)間,UART_C2[RWU]自動(dòng)清零。UART_C1[M]和 UART_C4[M10]控制
位選擇 8 位到 10 位數(shù)據(jù)模式并且 UART_BDH[SBNS]位選擇 1 位或 2 位停止位數(shù)字,以
此來確定需要多少空閑位時(shí)間來構(gòu)成一個(gè)完整的字符時(shí)間。因?yàn)榘_始位和停止位,所
以共需要 10至13 位的時(shí)間。
當(dāng) UART_C2[RWU]為 1, ART_S2[RWUID]為 0時(shí),不設(shè)置的UART_S1[IDLE]標(biāo)志,
但空閑狀態(tài)能喚醒接收器。當(dāng)UART_S1[RDRF]標(biāo)志被設(shè)置并產(chǎn)生一個(gè)中斷(如果中斷被
啟用),接收器喚醒并等待下一個(gè)消息的第一個(gè)數(shù)據(jù)字符。當(dāng) UART_S2[RWUID]為 1 時(shí),
無論UART_C2[RWU]為0或1,任何空閑的條件設(shè)置UART_S1[IDLE]標(biāo)志并產(chǎn)生中斷(如
果中斷被啟用)。
空閑線類型(UART_C1[ILT)控制位,它選擇兩種方式中的一種來檢測(cè)空閑線。當(dāng)
UART_C1[ILT]被清零,空閑位在起始位或停止位或字符結(jié)束時(shí)的邏輯 1 位之后開始,一
直計(jì)數(shù)到一個(gè)完整的空閑字符時(shí)間結(jié)束。當(dāng)UART_C1[ILT]被置位,空閑位計(jì)數(shù)器在停止
位時(shí)間后才啟動(dòng),所以空閑檢測(cè)不受到前一消息的最后一個(gè)字符中的數(shù)據(jù)的影響。
39.3.3.2.2 地址標(biāo)志喚醒
當(dāng)設(shè)置喚醒時(shí),接收器被設(shè)置為地址標(biāo)志喚醒。在此模式下,當(dāng)接收器檢測(cè)到一個(gè)接
收字符的 MSB為邏輯“1”時(shí),UART_C2[RWU]自動(dòng)清零。
地址標(biāo)志喚醒允許信息包含空閑字符,但需要將最高有效位保留為地址幀使用。在接
收到停止位之前,地址幀中的 MSB為邏輯“1”時(shí),將清除UART_C2[RWU]位,并設(shè)置
UART_S1[RDRF]標(biāo)志。在這種情況下,即使接收器在大多數(shù)字符時(shí)間里處于休眠狀態(tài),
MSB集的字符仍可以被接受。

39.3.3.2.3 匹配地址操作
當(dāng) UART_C4[MAEN1]或 UART_C4[MAEN2]位被置位時(shí),匹配地址操作被使能。在
這個(gè)功能中,通過UART_RX 引腳接收的幀與邏輯緊接停止位之前的邏輯1 的位置被認(rèn)為
是一個(gè)地址,并且與相關(guān)聯(lián)的 MA1 或 MA2 寄存器進(jìn)行比較。如果比較匹配,幀只傳輸
到接收緩沖區(qū),并且UART_S1[RDRF]被置位。
隨后接收到的所有的數(shù)據(jù)幀中停止位之前的邏輯0的位置,被認(rèn)為是與該地址相關(guān)聯(lián)
的數(shù)據(jù),并轉(zhuǎn)移到接收數(shù)據(jù)緩沖器。如果沒有明顯的地址匹配時(shí),則沒有傳輸?shù)浇邮諗?shù)據(jù)
緩沖,邏輯零位的位置和之后的所有幀緊接停止位也被丟棄。如果UART_C4[MAEN1]和
UART_C4[MAEN2]位都無效①,接收機(jī)正常工作和接收的所有數(shù)據(jù)被傳輸?shù)浇邮諗?shù)據(jù)緩沖
器。
MA1和 MA2寄存器中的匹配地址的操作與以上功能相同。
•如果只有一個(gè)UART_C4[MAEN1]和UART_C4[MAEN2]有效 ②,標(biāo)記的地址僅與相
關(guān)聯(lián)的匹配寄存器進(jìn)行比較,并且只有當(dāng)匹配時(shí),數(shù)據(jù)才傳送到接收數(shù)據(jù)緩沖區(qū)。
•如果UART_C4[MAEN1]和UART_C4[MAEN2]都有效,標(biāo)記的地址和兩個(gè)匹配寄存
器進(jìn)行比較,并且只有當(dāng)都匹配時(shí),數(shù)據(jù)才被傳送。

39.3.4 額外的UART功能
以下部分展示了UART 的額外功能。
39.3.4.1 8位、9位和10位數(shù)據(jù)模式
UART系統(tǒng),發(fā)送器和接收器,可以通過設(shè)置UART_C1[M]成為9位數(shù)據(jù)模式,或通
過配置 UART_C4[M10]成為 10 位數(shù)據(jù)操作模式。在 9位數(shù)據(jù)模式中,UART 數(shù)據(jù)寄存器
的最高有效位的左側(cè)是第9 位,在 10 位模式,是第10 個(gè)數(shù)據(jù)位。對(duì)于發(fā)送數(shù)據(jù)緩沖器,
這些位被存儲(chǔ)在 UART_C3 的 T8 和 T9 中。對(duì)于接收器,這些位存放在 UART_C3[R8]和
UART_C3[R9]中。
為了能夠一致的寫發(fā)送數(shù)據(jù)緩沖區(qū),在寫 UART_C3[T8]、UART_C3[T9]之前先寫
UART_D。
如果要被發(fā)送的新的比特字符的第九和第十位與前一個(gè)字符是相同,就沒有必要再次
寫T8 和T9。當(dāng)數(shù)據(jù)被從發(fā)送數(shù)據(jù)緩沖器傳送到發(fā)送移位寄存器,T8和 T9中的值是在同
時(shí)從UART_D復(fù)制到移位寄存器。
9位數(shù)據(jù)模式通常用于奇偶校驗(yàn),可以允許8位的數(shù)據(jù)加上第九位的奇偶校驗(yàn),或用
于地址標(biāo)志喚醒,所以第九位也可以作為喚醒位。10 位數(shù)據(jù)模式通常用于奇偶校驗(yàn)和地
址標(biāo)志喚醒,從而第九位可以作為喚醒位,第 10 位作為奇偶校驗(yàn)位。在自定義的協(xié)議,
第九和/或第十位,也可以作為軟件控制標(biāo)記。
39.3.4.2 循環(huán)模式
當(dāng) UART_C1[LOOPS]被置位時(shí),在同一個(gè)寄存器的 UART_C1[RSRC]位選可以擇循
環(huán)模式(UART_C1[RSRC]= 0)或單線模式(UART_C1[RSRC]=1)。循環(huán)模式獨(dú)立于在外
部系統(tǒng)中的連接,有時(shí)用于檢測(cè)軟件,幫助隔離系統(tǒng)問題。在此模式下,發(fā)射機(jī)的輸出在
內(nèi)部連接到接收器輸入并且UART 不可使用UART_RX 引腳。
39.3.4.3 單線操作
當(dāng) UART_C1[LOOPS]被設(shè)置,在同一個(gè)寄存器的 RSRC 位可以選擇循環(huán)模式
(UART_C1[RSRC]=0)或單線模式(UART_C1[RSRC]=1)。單線模式實(shí)現(xiàn)半雙工串行連
接。接收器在內(nèi)部連接到發(fā)射器的輸出UART_TX引腳(UART_RX引腳不使用)。

在單線模式中,UART_C3[TXDIR]位控制著 UART_TX 引腳的串行數(shù)據(jù)的方向。當(dāng)
UART_C3[TXDIR]被清零,UART_TX 引腳作為 UART 接收器和發(fā)射器的輸入暫時(shí)從
UART_TX 引腳斷開,從而一個(gè)外部設(shè)備可以發(fā)送串行數(shù)據(jù)到接收器。當(dāng)
UART_C3[TUXDIR]被置位時(shí),UART_TXD 引腳被發(fā)射器作為輸出腳,內(nèi)部環(huán)回連接被
禁用。因此導(dǎo)致接收器不能接收由發(fā)射機(jī)發(fā)送出去的字符。
39.3.5 中斷和狀態(tài)標(biāo)志
UART系統(tǒng)產(chǎn)生三個(gè)獨(dú)立的中斷,從而減少需要用軟件來隔離的中斷的數(shù)量。一個(gè)中
斷與發(fā)射器的TDRE 與TC 事件對(duì)應(yīng)。另一種中斷與接收器的RDRF,IDLE,RXEDGIF,
和 LBKDIF事件對(duì)應(yīng)。第三個(gè)中斷用于OR,NF,F(xiàn)E,和PF事件發(fā)生錯(cuò)誤的狀況。每10
個(gè)這樣的中斷源可以被本地中斷使能掩碼單獨(dú)屏蔽。當(dāng)本地掩碼被清除,以禁止產(chǎn)生中斷
請(qǐng)求時(shí),該標(biāo)志可以通過軟件查詢。
UART發(fā)送器有兩個(gè)狀態(tài)標(biāo)志,這兩個(gè)狀態(tài)標(biāo)志可以選擇性的產(chǎn)生硬件中斷請(qǐng)求。發(fā)
送數(shù)據(jù)寄存器狀態(tài)為空(UART_S1[TDRE])表示在發(fā)送數(shù)據(jù)緩沖區(qū)有空間可以寫另一個(gè)
發(fā)送字符到UART_D。如果發(fā)送中斷使能(UART_C2[TIE])位被置位,當(dāng)UART_S1[THERE]
被置位,就會(huì)請(qǐng)求一個(gè)硬件中斷。發(fā)送完成(UART_S1[TC]=1)表明傳輸器完成了對(duì)所
有數(shù)據(jù)、前導(dǎo)符、間隔字符的發(fā)送,并且伴隨著UART_TX,處于無效電平。此標(biāo)志常常
使用在有調(diào)制解調(diào)器的系統(tǒng)中,以用來確定當(dāng)前關(guān)閉調(diào)制解調(diào)器是否安全。如果發(fā)送完成,
中斷使能(UART_C2[TCIE])位被置位,當(dāng)UART_S1[TC]被設(shè)置,一個(gè)硬件中斷被請(qǐng)求。
不同于硬件中斷的是,如果相應(yīng)的 UART_C2[TIE]或 UART_C2[TCIE]本地中斷屏蔽被清
除,軟件輪詢可以用來監(jiān)測(cè)UART_S1[TDRE]和UART_S1[TC]狀態(tài)標(biāo)志,。
當(dāng)程序檢測(cè)到接收數(shù)據(jù)寄存器滿時(shí)(UART_S1[RDRF]=1),它通過讀取 UART_D,
從接收數(shù)據(jù)寄存器得到的數(shù)據(jù)。通過讀UART_D,UART_S1[RDRF]標(biāo)志被清除。
IDLE 狀態(tài)標(biāo)志包含邏輯,以防止當(dāng)在較長的一段時(shí)間內(nèi)UART_RX 接收線保持空閑
狀態(tài)時(shí)重復(fù)置位。寫 1 到的 UART_S1[IDLE]標(biāo)志,可清除 IDLE。當(dāng) UART_S1[IDLE]已
被清除后,只有在接收器接收到至少一個(gè)新的字符,并且已經(jīng)設(shè)置 UART_S1[RDRF]時(shí),
UART_S1[IDLE]才能被重新設(shè)置。
如果接收到的字符里檢測(cè)到相關(guān)的錯(cuò)誤,會(huì)導(dǎo)致UART_S1 [RDRF]被設(shè)置,同時(shí),錯(cuò)
誤標(biāo)志、噪音標(biāo)志(UART_S1[NF])、幀錯(cuò)誤(UART_S1[FE])和奇偶校驗(yàn)錯(cuò)誤標(biāo)志
(UART_S1[PF]),都在同一時(shí)間被置位。在溢出情況時(shí),這些標(biāo)志都不被設(shè)置。
當(dāng)一個(gè)新的字符準(zhǔn)備從接收移位寄存器傳輸?shù)浇邮諗?shù)據(jù)緩沖區(qū)時(shí),如果
UART_S1[RDRF]已經(jīng)被設(shè)置,則溢出標(biāo)志(UART_S1[OR])被置位來代替數(shù)據(jù),且連同
與數(shù)據(jù)相關(guān)的NF,F(xiàn)E 或 PF條件丟失。
在任何時(shí)候, UART_RX 的串行數(shù)據(jù)輸入引腳上活躍的 邊緣,會(huì)使
UART_S2[RXEDGIF]標(biāo)志置位。通過寫1 到UART_S2[RXEDGIF]標(biāo)志,它被清除。此功
能依賴于接收器被使能(UART_C2[RE]=1)。



D7(TDRE)—發(fā)送數(shù)據(jù)寄存器空標(biāo)志。當(dāng)發(fā)送數(shù)據(jù)從發(fā)送數(shù)據(jù)緩沖區(qū)轉(zhuǎn)移到發(fā)送移
位寄存器時(shí),TDRE被復(fù)位,為緩沖區(qū)的新數(shù)據(jù)騰出空間。要清除TDRE:在 TDRE置位
情況下,讀UART_S1,之后寫UART數(shù)據(jù)寄存器(UART_D)。TDRE=0,發(fā)送數(shù)據(jù)寄存
器(緩沖區(qū))滿;TDRE=1,發(fā)送數(shù)據(jù)寄存器(緩沖區(qū))空。
D6(TC)—發(fā)送完成標(biāo)志。該位與 UART0 中大部分一樣。不一樣的部分:UART1
與UART2模塊下, TC自動(dòng)除之前還需要滿足一些條件,需要在TC被置位下,讀UART_S1。
之后的清除操作與UART0模塊下的一樣。
D5(RDRF)—接收數(shù)據(jù)寄存器滿標(biāo)志。當(dāng)數(shù)據(jù)從接收移位寄存器轉(zhuǎn)移到接收數(shù)據(jù)寄
存器(UART_D)中時(shí),RDRF 被置位。在 RDRF 被置位情況下,讀 UART_S1,之后再
讀數(shù)據(jù)寄存器(UART_D)可以清除RDRF。RDRF=0,接收數(shù)據(jù)寄存器空;RDRF=1,接
收數(shù)據(jù)寄存器滿。
D4(IDLE)—空閑線標(biāo)志。當(dāng) UART 接收線路空閑時(shí),IDLE 被置位。當(dāng) ILT 被清
除,在開始位之后接收器開始計(jì)數(shù)空閑位的時(shí)間。如果接收字符全1,這些位的時(shí)間和停
止位的時(shí)間達(dá)到完整的字符的邏輯高,10或 11 位(根據(jù) M控制位決定)的時(shí)間,需要的
接收器檢測(cè)到空閑線。當(dāng)ILT 被置位,在停止位之后接收器才開始計(jì)空閑線時(shí)間。接收器
檢測(cè)空閑線時(shí),在結(jié)束的前一個(gè)字符的停止位和邏輯高位時(shí)間不計(jì)入完整的字符的邏輯高
接收器所需的時(shí)間。
若要清除 IDLE,可以在 IDLE 置位的情況下讀UART_S1,然后讀 UART數(shù)據(jù)寄存器
(UART_D),則 IDLE 被清除。 IDLE 清除之后,只有當(dāng)接收器收到一個(gè)新的字符且RDRF
被置位后,IDLE 才可以被重置。IDLE 只被設(shè)置 1 次,即使接收線保持長時(shí)間的空閑。
IDLE=0,無空閑線被檢測(cè);IDLE=1,有空閑線被檢測(cè)。
D3(OR)—接收溢出標(biāo)志。大部分與UART0相同。不同的是:如果要清OR,則在
OR 被置位的情況下,讀UART_S1,并且之后讀UART 數(shù)據(jù)寄存器(UART_D)。OR=0,
無溢出;OR=1,接收溢出(新的數(shù)據(jù)丟失)。
D2(NF)—噪音標(biāo)志。接收器使用的先進(jìn)的采樣技術(shù),該技術(shù)需要獲取接收的 7 個(gè)
開始位中的樣本和3個(gè)數(shù)據(jù)位與停止位中的樣本。如果數(shù)據(jù)幀中的任意該樣本與其他樣本
不相符合,則 NF 與 RDRF 一同被置位。如果要清 NF,則在 NF 被置位的情況下,讀

UART_S1,并且之后讀UART數(shù)據(jù)寄存器(UART_D)。NF=0,無噪聲被檢測(cè)到;NF=1,
UART_D接收到的字符數(shù)據(jù)中檢測(cè)到噪聲。
D1(FE)—幀錯(cuò)誤標(biāo)志。大部分與UART0 相同。不同的是:如果要清FE,則在 FE
被置位的情況下,讀UART_S1,并且之后讀UART數(shù)據(jù)寄存器(UART_D)。
D0(PF)—奇偶校驗(yàn)錯(cuò)誤標(biāo)志。大部分與 UART0 相同。不同的是:如果要清 PF,
則在PF被置位的情況下,讀UART_S1,并且之后讀UART 數(shù)據(jù)寄存器(UART_D)。
40.2.6 UART狀態(tài)寄存器2(UARTx_S2)
該寄存器包含一個(gè)只讀狀態(tài)標(biāo)志。
該寄存器介紹大部分與 UART0 一致。不同的是:當(dāng) LBKDE 位被置位,幀錯(cuò)誤被抑
制,中止檢測(cè)的閾值由 10位變?yōu)?11位,防止作為 LIN 中止符號(hào)的0x00 數(shù)據(jù)字符的誤檢
測(cè)。

D7(TDMAS)—發(fā)送器DMA選擇。如果TIE①被置位,TDMAS將配置發(fā)送數(shù)據(jù)寄存
器空標(biāo)志位(TDRE②
40.3 功能描述
),來形成中斷或者DMA請(qǐng)求。說明:如果UART_C2[TIE]被清零,
那TDRE DMA和TDRE中斷信號(hào)在TDRE標(biāo)志置位時(shí)無效,并且無視TDMAS的狀態(tài)。如果
TIE和TDMAS同時(shí)被置位,然后UART_C2[TCIE]必須被清零。并且UART_D在服務(wù)一個(gè)
DMA請(qǐng)求時(shí)不能被寫入。TDMAS=0,如果TIE和TDRE標(biāo)志位被置位,TDRE中斷信號(hào)觸
發(fā)中斷服務(wù)例程;TDMAS=1,如果TIE被置位而且TDRE標(biāo)志位被置位,TDRE DMA請(qǐng)求
信號(hào)將會(huì)請(qǐng)求一個(gè)DMA傳輸器。
D6,保留位,只讀。值恒為0。
D5(RDMAS)—接收完成 DMA 選擇。如果 RIE 被置位,RDMAS 將配置接受數(shù)據(jù)
寄存器滿標(biāo)志位(RDRF),來形成中斷或者DMA 請(qǐng)求。說明:如果RIE 被清零,那RDRF
DMA和RDRF中斷信號(hào)在RDRF標(biāo)志置位時(shí)無效,并且無視RDMAS的狀態(tài)。 RDMAS=0,
如果RIE 和RDRF標(biāo)志位被置位,RDRF中斷請(qǐng)求將觸發(fā)中斷服務(wù)例程。RDMAS=1,如
果 RIE 被置位而且RDRF標(biāo)志位被置位,RDRF請(qǐng)求信號(hào)將觸發(fā)一個(gè)DMA傳輸器。
D4~D0,只讀,值恒為0。
UART 在 MCU 和遠(yuǎn)程設(shè)備之間(包括其他 MCU)支持全雙工,異步,NRZ 串行通
信和波特率發(fā)生器,發(fā)送器和接收器模塊。UART包括波特率發(fā)生器,發(fā)送器,接收器模
塊。UART 發(fā)送器和接收器獨(dú)立地操作,盡管他們使用相同的波特率發(fā)生器。MCU 監(jiān)控
UART的狀態(tài),傳送寫的數(shù)據(jù),處理收到的數(shù)據(jù)。下面描述UART的每個(gè)模塊。

UART通信需要發(fā)送器和接收器,這兩個(gè)模塊都需要從獨(dú)立的時(shí)鐘源獲取波特率,使
得他們的波特率相同 ①
40.3.2 發(fā)送器功能描述
。所允許的波特率偏差取決于接收器對(duì)于起始位邊沿的同步和位采
樣是如何進(jìn)行的。
MCU 在下降沿,再次同步到位邊界。最壞的情況下,每幀的 10 或者 11、12 位不傳
輸,以至于在波特率中不匹配的誤差被累積起來,從而對(duì)整個(gè)字符時(shí)間造成影響。在整個(gè)
總線時(shí)鐘被晶振驅(qū)動(dòng)的FreescaleUART系統(tǒng),對(duì)于 8位數(shù)據(jù)格式被允許的波特率不匹配要
控制在±4.5%,對(duì) 9 位數(shù)據(jù)格式被允許的為±4%。盡管波特率分頻因子的設(shè)置不能產(chǎn)生
一直匹配的標(biāo)準(zhǔn)波特率,它常常允許有一點(diǎn)偏差,不妨礙通信。
該節(jié)大部分與UART0相同。
與 UART0 不同的是:UART1、UART2 發(fā)送器的核心元素是,根據(jù)在 UART_C1[M]
與 UART_BDH[SBNS]控制位的設(shè)置的 10、11 或 12 位長的發(fā)送移位寄存器。UART1、
UART2選擇正常的8位數(shù)據(jù)模式,是通過清除UART_C1[M],UART_BDH[SBNS]。
與 UART0不同的是: UART1、 UART2中寫0到UART_C2[TE]是將引腳變?yōu)橥ㄓ肐/O
引腳,而不是UART0中的關(guān)閉發(fā)送器。
40.3.2.1 發(fā)送中止與等待空閑
該節(jié)大部分與UART0相同。
與 UART0 不同的是:UART1、UART2 的中止符是一個(gè)完整的邏輯 0,10 位包含開
始和停止位的位時(shí)間的字符。
比 UART0 多的功能描述是:有一種可能就是移位寄存器完成當(dāng)前工作,如果當(dāng)

40.3.3 接收器功能描述
該節(jié)大部分與UART0相同。
與 UART0 不同的是:字符幀由一個(gè)起始位(邏輯 0),8 個(gè)數(shù)據(jù)位(LSB 在前),一
個(gè)或兩個(gè)停止位(邏輯1)組成。
與 UART0不同的是:UART1、UART2中無 10位數(shù)據(jù)模式,只有8、9位數(shù)據(jù)模式。
40.3.3.1 數(shù)據(jù)采樣技術(shù)
該節(jié)大部分與UART1相同;
與UART0不同的是:UART1、UART2接收器的采樣頻率采用16x的波特率時(shí)鐘。
與UART0不同的是:UART1、UART2的 16x 波特率時(shí)鐘把位時(shí)間分為16 段,分別
標(biāo)記為 UART_D[RT1]~UART_D[16]。
與 UART0 不同的是:UART1、UART2 對(duì)于開始位的判斷,采樣的樣本位為
UART_D[RT3],UART_D[RT5],UART_D[RT7]上采集樣本;對(duì)于邏輯電平的判斷采樣的
是 UART_D[RT8],UART_D[RT9],UART_[RT10];而 UART0 中對(duì)起始位和邏輯電平的
判斷都是用的(OSR/ 2),(OSR/ 2)+1,和(OSR/ 2)+2。
與 UART0 不同的是:UART1、UART2 接收器中無“在接收器被認(rèn)為是同步前,如
果另一個(gè)下降沿被檢測(cè)到,則接收機(jī)從第一分部重新啟動(dòng)采樣”此概念。
與 UART0不同的是:UART1、UART2中增加了以下概念。“對(duì)于起始位來講,如果
UART_D[RT3],UART_D[RT5],UART_D[RT7]上采集樣本為 0,那么即使_D[RT8],
UART_D[RT9],UART_[RT10]上采集的是1,起始位也被認(rèn)為是1。”
與 UART0 不同的是:UART1、UART2 無“接收器被配置為波特率時(shí)鐘的沿跳變采
樣”的概念。
與 UART0不同的是:UART1、UART2 中增加了以下概念“在一個(gè)幀錯(cuò)誤的情況下,
直道幀錯(cuò)誤標(biāo)志 UART_S1[FE]被清之前,接收器都被禁止接收任何新的字符。接收移位
寄存器仍然工作,但當(dāng) UART_S1[FE]保持置位時(shí),一個(gè)完整的字符無法轉(zhuǎn)移到接收數(shù)據(jù)
緩沖區(qū)。”
40.3.3.2 接收器喚醒操作
對(duì)UART1、UART2 接收器喚醒的邏輯概念描述與UART0相同,不做解釋。
40.3.3.2.1 空閑線喚醒
大部分與UART0相同。
與 UART0 不同的是:UART1、UART2 是通過 UART_C1[M]來控制 8 位或 9 位數(shù)據(jù)
模式。而UART0中是通過UART_C1[M]和UART_C4[M10]來控制8位或10位數(shù)據(jù)模式。
所以UART1、UART2中一個(gè)完整的字符時(shí)間要10或11或12 位時(shí)間(包括起始位),而
UART0中要 10到 13位時(shí)間(包括起始位)。
40.3.3.2.2 地址標(biāo)志喚醒
大部分與UART0相同。
與 UART0不同的是:UART1、UART2清除UART_C2[RWU]位的條件是接收器檢測(cè)
到 1 個(gè)或兩個(gè)接收到的字符中,UART_DBH[SBNS]=1,MSB 位為邏輯 1 時(shí),
UART_C2[RWU]自動(dòng)清除。而在 UART0中,只要檢測(cè)到一個(gè)接收到的字符的MSB 位為
邏輯 1時(shí)UART_C2[RWU]即自動(dòng)清除。
40.3.4 中斷和狀態(tài)標(biāo)志
大部分邏輯概念描述與UART0 相同。
與 UART0不同的是:UART_S1[RDRF]標(biāo)志位的清除方法不同。UART1、UART2 中
清 UART_S1[RDRF]是通過在 UART_[RDRF]置位的情況下讀 UARTxS1,之后再讀
UART_D來清除 RDRF。
與 UART0不同的是:IDLE 標(biāo)志位的清除方法不同。UART1、UART2 中清 IDLE 是
通過在UART_S1[IDLE]被置位的情況下,讀UARTxS1,之后再讀UART_D來清除IDLE。
與UART0不同的是:UART1、UART2中增加了以下概念:“當(dāng)使用輪詢時(shí),該序列
很自然的滿足了正常過程中的用戶程序。如果硬件中斷被使用,UARTxS1 必須在中斷服
務(wù)例程(ISR)中被讀取。通常情況下,這是在ISR中完成從而來檢測(cè)接收是否錯(cuò)誤,所
以順序可以自動(dòng)滿足”。
40.3.5 DMA操作
在發(fā)送器中,TDRE 標(biāo)志和 TC 可以配置為維護(hù)一個(gè) DMA 傳輸請(qǐng)求。在接收端,標(biāo)
志 RDRF、IDLE、LBKDIF可以配置為維護(hù)一個(gè)DMA 傳輸請(qǐng)求。下面的表顯示了配置位
的設(shè)置,要求要配置每個(gè)標(biāo)記為DMA 操作。

當(dāng)一個(gè)標(biāo)志配置為一個(gè)DMA請(qǐng)求,它相關(guān)的DMA請(qǐng)求斷言,當(dāng)標(biāo)志被設(shè)置。當(dāng)RDRF
或空閑標(biāo)志 IDLE 被配置為一個(gè) DMA 請(qǐng)求,清除機(jī)制對(duì)于先讀取 UART_S1 隨后讀
UART_D,并不會(huì)清除相關(guān)的標(biāo)記。DMA 請(qǐng)求依然會(huì)有效,直到收到一個(gè) DMA 操作完
成的指示。當(dāng)收到這個(gè)指示,該標(biāo)記位和相關(guān)的 DMA 請(qǐng)求標(biāo)志位會(huì)被清除。如果 DMA
操作未能消除情況,必會(huì)造成DMA請(qǐng)求產(chǎn)生另一個(gè)請(qǐng)求。
40.3.6 額外的UART功能
40.3.6.1 8位、9位數(shù)據(jù)模式
邏輯原理與UART0 大致相同。
與 UART0 不同的是:UART1、2 無 10 位數(shù)據(jù)模式,且是通過設(shè)置 UART_C1[M]來
配置為 9 位數(shù)據(jù)模式的。對(duì)于發(fā)送數(shù)據(jù)緩沖器,這些位被存儲(chǔ)在 UART_C3[T8](UART0
存放在T8,T9中) 。對(duì)于接收器,這些位存放在UART_C3[R8](UART0存放在R8,R9
中) 。
40.3.6.2 停止模式操作
在處于所有的停止模式下,UART模塊的時(shí)鐘都將停止。在stop3④模式下,沒有UART
模塊寄存器會(huì)受到影響。因?yàn)闀r(shí)鐘停止了,只有在停止和VLPS⑤
40.3.6.3 循環(huán)模式
模式下,只要一退出停止
模式,UART模塊就會(huì)立即恢復(fù)。當(dāng)有字符正在發(fā)送或接收時(shí),軟件必須確保UART不會(huì)
進(jìn)入停止模式。
完全與 UART0 相同,此外,在此模式下,UART1、UART2 中的接收引腳恢復(fù)到普
通 I/O 口引腳。
40.3.6.4 單線操作
完全與 UART0 相同,此外,在此模式下,UART1、UART2 中的接收引腳恢復(fù)到普
I/O  

42.4.3 使能TSI模塊
TSI 模塊可以再運(yùn)行時(shí)實(shí)現(xiàn)全部的功能,等待和低功耗模式。TSI_GENCS[TSIEN]必
須被置位來使能在運(yùn)行和等待模式下的 TSI 模塊。當(dāng) TSI_GENCS[STPE]位被置位,這便
允許TSI模塊在低功耗模式下工作。
42.4.4 軟件和硬件觸發(fā)模式
TSI 模塊允許軟件或硬件觸發(fā)來開始一次掃描。當(dāng)一個(gè)軟件觸發(fā)被使能
(TSI_GENCS[STM]位被清零),TSI_GENCS[SWTS]位必須置 1 從而開始掃描電極通道,
該通道由 TSI_DADT[TSICH]決定。當(dāng)一個(gè)硬件觸發(fā)被使能(TSI_GENCS[STM]位被置 1),
TSI_GENCS[SWTS]位清零,TSI將不會(huì)開始掃描直到硬件觸發(fā)達(dá)到時(shí)。硬件觸發(fā)因MCU
配置的而形式多樣,總的說來,RTC 溢出也可以作為一個(gè)事件。詳細(xì)的內(nèi)容請(qǐng)參考芯片
配置章節(jié)。
42.4.5 掃描次數(shù)
TSI提供多重掃描功能。掃描的次數(shù)是由TSI_GENCS[NSCN]位來表示。掃描次數(shù)可
以是 1 到 32.之間任意的數(shù)。TSI_GENCS[NSCN]位被置零,則采用單獨(dú)掃描模式。16 位
計(jì)數(shù)器累加所有掃描值直到 NSCN 時(shí)間掃描完成并且使用者可以通過讀
TSI_DATA[TSICNT]來取得該累加值。當(dāng) DMA 傳送被使能,計(jì)數(shù)器值可以被 DMA 引擎
讀取出來。
42.4.5 時(shí)鐘設(shè)置
TSI模塊有著雙重晶振架構(gòu)。在普通的應(yīng)用中,參考晶振時(shí)鐘是TSI模塊唯一的時(shí)鐘
源。通過使用一個(gè) 16 位的計(jì)數(shù)器,參考時(shí)鐘是用來測(cè)量電極晶振的。參考晶振的頻率是
由當(dāng)前電流源所決定的。具體情況可以參考電源流的章節(jié)。
輸出的電極晶振頻率實(shí)現(xiàn)由TSI_GENCS[PS]位進(jìn)行分頻,分頻值可變,最大值是128
分之一。
42.4.7 參考電壓
論是電極晶振和參考晶振,TSI模塊提供了一個(gè)內(nèi)部參考電壓。內(nèi)部參考電壓可以工
作在低功耗模式下,甚至當(dāng)MCU校準(zhǔn)器部分?jǐn)嚯姡鳛榈凸挠|摸感應(yīng)很理想。
充放電不同的電壓是可配置的,通過設(shè)置 TSI_GENCS[DVOLT]位。下表展示了所有
的電壓差配置。請(qǐng)注意該表格不適用于噪聲模式,詳見噪聲模式章節(jié)。

42.4.8 電流源
TSI 模塊支持八種不同的電流源從 500nA 到 64μA。TSI_GENCS[EXTCHRG]位決定
了電極晶振的電流,以便對(duì)外部電極充放電。TSIGENCS[REFCHRG]位決定了參考晶振的
電流,而且取決于適用哪個(gè)內(nèi)部參考時(shí)鐘。小電流源將會(huì)用更多的時(shí)間充放電,更適合探
測(cè)高精度的變化。大電流源花費(fèi)更少的時(shí)間,被用來給大電極充電而且耗電更少。
TSI_GENCS[CURSW]位允許電流源交換,以便參考晶振和電極晶振使用相反的電流
源。當(dāng) TSI_GENCS[CURSW]被設(shè)置并且當(dāng)前的電流源交換的TSI_GENCS[EXTCHRG]位
和 TSI_GENCS[REFCHRG]位仍然控制著相應(yīng)的電流源,即是,TSI_GENCS[EXTCHRG]控
制當(dāng)前參考晶振并且TSI_GENCS[REFCHRG]控制電極晶振電流。
42.4.9 掃描結(jié)束
作為一個(gè)掃描開始,[SCNIP]位設(shè)置表示掃描正在進(jìn)行。當(dāng)掃描完成后,[EOSF]位置位。
在[EOSF]被清零之前,  TSI_DATA[TSICN]中的值必須被讀出。如果 TSI_GENCS[TSIIEN]
位被置位而 TSI_GENCS[DMAEN]沒有被置位,一個(gè)中斷是提交給CPU 運(yùn)行后處理立即。
如果它是運(yùn)行在低功耗模式下,中斷也可以是可選的喚醒單片機(jī)執(zhí)行ISR。當(dāng)DMA功能是
通過設(shè)置 TSI_GENCS[TSIIEN]和 TSI_GENCS[ESOR]而被使能,只要掃描完成后,一個(gè)

DMA 傳輸請(qǐng)求會(huì)對(duì)DMA 控制器的數(shù)據(jù)移動(dòng),一般來說,DMA 引擎將獲取 TSI 轉(zhuǎn)換結(jié)果從
TSI_DATA寄存器、存儲(chǔ)到其他內(nèi)存空間,然后刷新TSI掃描通道指數(shù)(TSI_DATA[TSICH])
為下一個(gè)循環(huán)做準(zhǔn)備。當(dāng)DMA 傳輸完成之后,TSI_GENCS[EOSF]會(huì)被自動(dòng)清除。
42.4.10 超出范圍中斷
如果被使能,當(dāng)觸發(fā)條件到達(dá)時(shí),TSI 會(huì)立即掃描 TSI_DATA[TSICH]中的電極,在
GENCS[TSIIE]位置位并且GENCS[ESOR]位清除時(shí),GENCS[OUTRGF]標(biāo)志產(chǎn)生一個(gè)TSI
中斷請(qǐng)求。 根據(jù)這個(gè)配置,在掃描結(jié)束之后, TSI會(huì)把掃描結(jié)果存放在TSI_DATA[TSICHT],
如果GENCS[OUTRGF]被設(shè)置了,并且TSI_DATA[TSICHT]值超出 TSI_THRESHLD 寄存
器的值就會(huì)發(fā)出一個(gè)中斷請(qǐng)求。例如,如果在低功耗模式下,電極電容值不改變,那么將
不會(huì)引起中斷。不過,這種中斷模式并不支持噪聲的模式,
42.4.11 從低功耗模式中喚醒MCU
在低功耗模式,一旦通過TSI_GENCS[STPE]和TSI_GENCS [TSIIE],TSI可以通過單片
機(jī)的低功耗模式(停止、VLPS、VLLS 等)的上下限范圍內(nèi)的掃描完成或中斷來喚醒 CPU,
也就是說,如果 TSI_GENCS[ESOR]被置位,最后的掃描完成喚醒 CPU,反之,溢出中斷喚醒
CPU。
42.4.12  DMA功能支持
只有當(dāng)TSI_DATA[DMAEN]被置位時(shí), DMA傳輸使能。一個(gè)DMA傳輸請(qǐng)求被允許,
當(dāng)TSI_GENCS[EOSF]、TSI_GENCS[ESOR]和TSI_GENCS[TSIIE]被置位。然后芯片內(nèi)直
接存儲(chǔ)器存取控制器檢測(cè)這個(gè)請(qǐng)求和之間傳輸數(shù)據(jù)的內(nèi)存空間和TSI寄存器空間。在數(shù)據(jù)
轉(zhuǎn)移時(shí),DMA  DONE 被允許用來自動(dòng)清除 TSI_GENCS[EOSF]位。這個(gè)函數(shù)通常是使用
DMA 控制器在一個(gè)掃描結(jié)束事件中從 TSI_DATA[TSICNT]得到轉(zhuǎn)換結(jié)果,然后刷新通道
指數(shù)(TSI_DATA[TSICH])觸發(fā)器為下一個(gè)尋壞做準(zhǔn)備。DMA 功能不可用于單片機(jī)在停止
模式。

42.4.13 噪聲檢測(cè)模式
噪聲檢測(cè)模式下的電路配置如下圖。這個(gè)模式可以檢測(cè)接觸時(shí)產(chǎn)生的較大的EMC噪
聲。我們通過MODE[3:0]來設(shè)置這個(gè)檢測(cè)模式。
在噪聲檢測(cè)模式,參考晶振的變化只有它的輸出將傳入計(jì)數(shù)器2,并且該計(jì)數(shù)器將通
過設(shè)置NSCN.2 ^(PS)得到最大值。 這樣說明晶振可以決定噪聲檢測(cè)模式的持續(xù)時(shí)間。
這個(gè)模塊的外部晶振也是可以改變的,而不是靠一個(gè)晶振電路實(shí)現(xiàn)射頻振幅檢測(cè)。這
個(gè)幅度檢測(cè)的閾值由DVOLT 位來設(shè)置。
下圖的Vmid電壓值是受一系列串聯(lián)電阻來調(diào)控的,其值等于V (mid) = (V(vp)+V(vm))

用一下的算法來確定噪聲水平:
(1)初始化 Rs = maxrs;Dvolt = minDv(設(shè)置其他配置)
(2)執(zhí)行一個(gè)噪聲循環(huán)。
(3)如果TSIcounter < 3,請(qǐng)轉(zhuǎn)到第8 步
(4)如果Rs = minrs,轉(zhuǎn)到步驟 6。
(5)減少價(jià)值的rs轉(zhuǎn)到步驟2
(6)如果Dvolt = maxDv,去結(jié)束
(7)Dvolt增加價(jià)值。設(shè)置Rs = maxrs。  轉(zhuǎn)到步驟2
(8)如果 minrs Rs >,(減少值Rs、去結(jié)束)
(9)Rs = maxrs,減少Dvolt的值。
(10)  最終得到的值和Dvolt。
噪聲檢測(cè)模式的一個(gè)例子如下圖所示。如圖 TSI 是在電容模式下工作直到 30μs 的時(shí)
候,我們把他改變成噪聲檢測(cè)模式。在此模式下,觸摸電容板塊的偏差在 0.815  V 之內(nèi),
并且此觸摸電容板內(nèi)的所有交流波形是由一個(gè)噪聲源外部集成電路觸發(fā)形成的。
規(guī)律如下圖所示,在噪聲檢測(cè)模式下,clkref 輸出的峰值,檢測(cè)到的峰值數(shù)量都可以被計(jì)
數(shù)統(tǒng)計(jì)或者直接數(shù)字模塊使用。clkext的輸出有著內(nèi)部晶振輸出,這些輸出值可用于設(shè)置
最大噪聲檢測(cè)的時(shí)間窗口。

以下的波形圖展示了在噪聲檢測(cè)模式下的兩個(gè)操作:
•V(vp)和V(vm)閾值發(fā)生了 34.4μs的改變。
•由于這種這些串聯(lián)電阻改變了,所以振幅的噪聲波形也發(fā)生變化,其電阻值范圍是
184 kΩ(iext < 2:0 > = 011)和 32kΩ(iext < 2:0 > = 101)。

42.4.13.1 自動(dòng)噪聲模式
該模式通過對(duì) MODE[3:2]=11(噪聲模式 3)來設(shè)置。在這種模式下閾值遞增時(shí),內(nèi)部
IP 即使達(dá)到極點(diǎn),也不會(huì)有影響噪聲電壓閾值。
如下圖所示,閾值比較輸出計(jì)數(shù)器和 DVOLT 控制位的值都增加了的話,DVOLT 閾
值也會(huì)相應(yīng)的增加。該寄存器的四位設(shè)置為1111(= 15),計(jì)數(shù)器將會(huì)停止在這個(gè)最大值上。


完整的pdf格式文檔51黑下載地址(共577頁):
KL25 Reference Manual_Rev[3](中文譯本).pdf (13.61 MB, 下載次數(shù): 59)




作者: tseming    時(shí)間: 2020-5-16 16:13
Thanks for your sharing




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1