版本2.2.3
技術說明 K1948VK018、K1948VK015
RISC-V 微控制器 MIK32 AMUR
目錄 1 用途 ................................................................................................................ 3 2 技術特性 ................................................................................................... 4 3 MIK32 的組成 ................................................................................................................ 5
開關矩陣 AHB ................................................................................................ 11
記憶卡................................................................................................................ 11
載入順序................................................................................................................... 13
DMA 控制器................................................................................................ 14
測試控制單元 (TCB) ................................................................................................ 29
USART 模組 ................................................................................................................ 34
I2C 模組................................................................................................................ 53
32位元定時器模組(TIMER32)................................................................................ 106
16 位元定時器模組 (TIMER16) ................................................................................... 117
實時時鐘 (RTC) ................................................................................................ 143
可程式中斷控制器 (EPIC) ................................................................... 152
校驗與計算區塊(CRC32)................................................................ 156
SPI 模組................................................................................................................ 160
通用輸入/輸出 (GPIO) 模組 ................................................................... 181
外部記憶體控制器(SPIFI)................................................................................ 189
對稱加密加速器 (CRYPTO) ................................................................... 220
一次性可程式 (OTP) 單元控制器 .................................................................. 224
EEPROM 控制器................................................................................................ 236
看門狗定時器(WDT)模組................................................................................ 249
匯流排看門狗定時器(WDT BUS) ................................................................................ 251
溫度感測器(TSENS)................................................................................................ 254
數位類比轉換器 (DAC) ................................................................................... 259
類比數位轉換器(ADC)................................................................ 264
啟動模式控制單元 (BOOT MANAGER) .................................................................. 271 4 時鐘子系統 ................................................................................................ 273
內建 32 MHz 和 32 kHz 振盪器................................................................ 281
用於連線頻率高達 32 MHz 的外部石英諧振器的引腳 ........ 282
用於連線外部石英諧振器的輸出 32 kHz .................................. 283
系統域頻率監控................................................................................................ 283 5 電源子系統 ................................................................................................................ 288
第293回:
喚醒區塊 .................................................................................................................. 300
功率監視器................................................................................................................ 303
第307章 產生POR和BOR訊號的方案..................................................................
電源追蹤與開關電路................................................................ 310
線性電池域電源電壓調節器................................................ 312
基本線性穩壓器................................................................................ 314
校準參考電壓................................................................................ 315
校準參考電流源................................................................................ 316
重設訊號產生電路................................................................................................ 316 6 引腳分配 ..................................................................................................
1 目的
32位元微控制器晶片(以下簡稱MIK32晶片,
晶片、微控制器)旨在控制
高效能、多功能電子裝置
針對物聯網,有周邊和硬體密碼的開發
支援國內資訊安全領域GOST的區塊。
MIK32晶片產品的特色(獨特性):
- 使用硬體加密區塊來保護
資料符合國內GOST;
- 大多數物聯網裝置僅使用軟體
基於普遍接受的安全演演算法的加密工具
存在許多缺陷的資訊;
- 使用硬體加密單元來保護訊息
根據俄羅斯 GOST – 降低成功的可能性
資訊攻擊,增加了駭客裝置和系統的難度
一般來說。因此,組織駭客攻擊網路裝置的成本
事情顯著增加。
好處:
- 採用開放式RISC-V架構;
- 高生產力;
- 最廣泛的功能和能力;
- 元件和模組的高度整合;
- 高工作頻率;
- 大量內建記憶體;
- 國內開發和生產。
2 技術規格
MIK32晶片具有以下特點:
- 最大工作頻率32 MHz;
- 內建RAM記憶體容量16 KiB;
- 內建EEPROM記憶體容量8 KiB;
- 內建OTP記憶體容量256位元;
- 四個時鐘源;
- 兩個電源域:
1) 主域電源電壓2.97 V至3.63 V;
2)電池域供電電壓2.5V至3.63V;
3) 類比域模組的電源電壓為 3.15 V 至 3.45 V;
4)主域動態消耗電流不大於50mA;
5)電池域動態消耗電流不大於2mA;
- 工作溫度範圍為-45℃至+85℃;
- 最高環境溫度增加 150°C;
- 最大環境溫度降低-60℃;
- 晶體接觸墊數量 - 72;
- 外殼引腳數量 – 64。
3 MIK32的組成
MIK32 微電路(K1948VK018、K1948VK015)包含以下內容
塊:
– Syntacore 的 SCR1 核心是基於開放 RISC-V 架構。
實現了以下配置:
1) RV32I——基本整數指令集(最小
所需的指令集,32 位元位址空間,32
32位元通用暫存器,所有指令32位元寬
位);
2) 擴充套件“M” - 標準可選擴充套件
整數乘法和除法運算;
3) 擴充套件“C” - 標準可選擴充套件
縮短的指令,額外的寬度指令集
16 位元;
4) 內建整合式可程式控制器
中斷禁用;
5) 支援透過 JTAG 介面進行除錯 IEEE Std 1149.1-2013
(與 RISC-V 外部除錯支援規範版本 0.13.2 相容),
支援標準除錯功能:重置、停止/恢復/單步、
訪問 GPR、CSR、MEM、硬體斷點/觀察點;
- 三級輸送機;
- 下載管理員提供對所選來源的控制
下載(SPI FLASH、RAM、EEPROM);
- OSC32K – 具有用於連線外部時脈的輸出的產生器
石英諧振器;
- OSC32M – 產生器,帶有用於連線外部石英的輸出
用於以 1 至 32 MHz 頻率為系統提供時脈的諧振器;
- 具備日曆功能的即時時鐘,可調整
閏年和可程式鬧鐘的能力
中斷生成,以及用於儲存的 16x32 位元暫存器檔案
電池域的使用者資料;
– LDO_BU – 低壓差電池域電壓調節器
電壓(輸入電壓 2.5 - 3.6 V,額定輸出
電壓 1.8 V,允許負載高達 5 mA);
– LDO_SYS – 具有低壓差的主電壓調節器
(輸入電壓 3.0 - 3.6 V,額定輸出電壓 1.8 V,
允許負載高達 60 mA);
– POR 和 Bor(上電重設和欠壓)-重設訊號驅動器
上電和衰退控制時的電池域
電源電壓低於規定值;
喚醒 - 提供電源管理和網域 0 重置;
– HSI32M – 頻率為 32 MHz 的內建振盪器,具有
頻率調整;
- LSI32K內建振盪器,頻率為32 kHz,具有
頻率調整;
- 中斷控制器提供對32個可遮蔽的支援
來自周邊裝置的中斷;
- 電源和時序控制單元提供控制
電源和時脈訊號的控制(設定係數
匯流排分頻器,禁用單一裝置的時脈);
– 匯流排看門狗定時器,監控從裝置的反應時間
AHB匯流排(EEPROM控制器、CRC32、對稱加速器
密碼學);
– 三個Timer32模組,每個模組代表
可自訂的 32 位元計數器,帶有可程式設計分頻器和
三種計數模式(直接、反向和雙向)。定時器32_1,
Timer32_2 另外還有四個獨立通道,能夠
工作在捕捉、比較或PWM模式;
- 兩個具有可程式設計閾值的電源電壓監視器
驅動、控制電壓:AVCC 和 VBAT;
- 輸出控制器,提供功能控制
多路復用輸出;
- 系統TAP控制器,提供除錯測試的訪問
介面,提供微電路接腳的邊界掃描;
- 測試控制單元,旨在控制
測試記憶體和模擬塊,也提供對
無需核心參與的外圍模組和儲存單元的暫存器;
- DMA控制器,實現從裝置之間的資料傳輸
在沒有核心參與的開關矩陣上,有四個獨立的
頻道,提供記憶體-記憶體、外設-的操作
週邊裝置、可程式優先權的記憶體週邊
處理請求;
- 一塊256位元的一次性可程式記憶體,具有以下能力:
軟體資料讀取,專為儲存校正資料而設計
產品的係數和序號;
– 電可擦除可程式唯讀記憶體 (EEPROM) 單元
尺寸 2048x38,附 AHB 介面控制器,附校正電路
錯誤(記憶體組織32加6)和執行能力
節目;
- SPIFI控制器,提供與外部快閃記憶體的介面
支援兩種工作模式:週邊模式和
與記憶一起工作。控制器確保指令的執行
外部記憶體,並具有尺寸為 256x32 的快取記憶體。控制器
支援常規序列操作以及:2 位和 4 位
並行模式並提供執行程式的能力;
- 4096x32 RAM,支援位元組存取;
– CRC32 – 設計用於計算校驗和 (CRC) 的模組
不使用中央運算資源的資料陣列
基於任意 32 位元多項式的處理器;
對稱密碼加速器,實現了三個專門的
轉換:
1) AES128、FIPS 197 128位元分組密碼,具有128位元金鑰;
2) “Magma”,GOST 12/34/2015 64 位元分組密碼;
3) “Grasshopper”,GOST 12/34–2015 128 位元分組密碼;
4)支援區塊耦合模式(ECB、CBC、CTR);
- 類比模組的數位部分,提供從核心到
ADC、DAC、溫度和電壓監視器;
- 三個“Timer16”,每個都是可自訂的16-
Ti 位元計數器,附可程式分頻器(1、2、4、8、16、32、64、
128) 具有 PWM 模式支援和可設定數位輸入
過濾器;
– 兩個 SPI 模組,用於與各種週邊互動
儲存晶片、溫度感測器等裝置,
壓力感測器、類比轉換器、即時時鐘、
顯示器和任何支援序列模式的 SD 卡
交換。控制器支援主從模式運作;
– 兩個 I2C 模組提供串列介面
根據 Philips/NXP 的 I2C 匯流排規範。
I2C 控制器是一個雙向、八位
用於與各種週邊互動的收發器
裝置;
- 兩個 USART 模組 - 同步非同步接收器-傳送器,
支援多種位元率和格式
以程式設計方式指定的資料,能夠自動
產生奇偶校驗位並具有錯誤檢測能力;
- 2個16位元和1個8位元通用I/O埠
(GPIO);
- 12位元ADC,設計用於轉換輸入
將類比訊號轉換為 12 位元數位程式碼。通道數 8,
轉換頻率0.8 MHz;
- 12位元DAC,設計用於將輸入轉換為12位
位元數字程式碼轉換為類比訊號。通道數2,
轉換頻率 1 MHz;
- 具有可程式設計響應閾值的溫度監視器;
- 頻率監視器,旨在監視來源的狀態
微控制器運作期間的時鐘;
看門狗定時器 - 系統掛起的控制電路。提供
如果軟體未執行,則產生中斷並重位
計數器重設;
- AHB矩陣,提供所有帶有介面裝置的切換
AHB 和 APB。
K1948VK018和K1948VK015版本之間的差異:
- 版本 A – 不使用 ADC 單元;
- 版本 B – 不使用 DAC 單元;
– 版本 B – 不使用 OTP 區塊。
框圖如圖 1 所示。
10
圖 1 – MIK32 微電路框圖
主持人
域0和電池域
記憶體(EEPROM/RAM/SPIFI)
週邊裝置
核心(指令)
–
+
–
核心(資料)
+
+
+
DMA
–
+
+
測試介面
+
+
+
注意——沒有換向“-”,有換向“+”。
偏移量
裝置
0x00000000
引導區 (16 KiB)
0x00040000
DMA 控制器 (DMA_CONFIG)
0x00050000
APB_M 匯流排上的裝置
+0x0000
電源和時序管理單元 (PM)
11
開關矩陣AHB
本裝置設計用於切換四主三從
具有 AHB Lite 介面的裝置,並為主機提供對裝置的存取
匯流排 APB_M 和 APB_P 透過對應的橋接。開關矩陣
提供多個主裝置同時存取不同的
奴隸。多主對一從的仲裁是基於
使用迴圈演演算法的優先權。提供組織
每個從裝置都有獨立的位址空間。當
存取無效位址(不包含在主機位址空間)
產生帶有 ERROR 符號的響應。可能的主從切換
裝置列於表中。
表1 – 主從裝置的切換
記憶卡
外圍裝置之間的位址空間分配
記憶體模組如表 2 所示。
表 2 – 位址空間分佈
偏移量
裝置
+0x0400
中斷控制器 (EPIC)
+0x0800
32位元定時器0(TIMER32_0)
+0x0C00
引腳控制器(PAD_CONFIG)
+0x1000
匯流排看門狗定時器(WDT_BUS)
+0x1400
一次性可程式設計 (OTP) 記憶體控制器
+0x1800
VCC 電壓監視器 (PVD_CONTROL)
0x00060000
電池領域裝置
+0x000
喚醒 (WU)
+0x400
實時時鐘 (RTC)
+0x800
啟動模式控制塊(BOOT_MANAGER)
0x00070000
記憶體子系統裝置
+0x000
外部記憶體控制器(SPIFI_CONFIG)
+0x400
EEPROM 控制器 (EEPROM_REGS)
0x00080000
AHB_P 匯流排上的裝置
+0x000
對稱加密加速器 (CRYPTO)
+0x400
用於計算 CRC32 校驗和 (CRC) 的區塊
0x00081000
APB_P 匯流排上的裝置
+0x0000
看門狗定時器(WDT)
+0x0400
USART_0
+0x0800
USART_1
+0x0C00
16 位元定時器 0 (TIMER16_0)
+0x1000
16 位元定時器 1 (TIMER16_1)
+0x1400
16 位元定時器 2 (TIMER16_2)
+0x1800
32 位元定時器 1 (TIMER32_1)
+0x1С00
32 位元定時器 2 (TIMER32_2)
+0x2000
SPI_0
+0x2400
SPI_1
+0x2800
I2C_0
+0x2C00
I2C_1
+0x3000
GPIO_0
+0x3400
GPIO_1
12
偏移量
裝置
+0x3800
GPIO_2
+0x3С00
GPIO中斷產生模組(GPIO_IRQ)
+0x4000
模擬子系統控制塊 (ANALOG_REG)
0x00490000
64 位元內核定時器 (SCR1_TIMER)
0x01000000
內 EEPROM (8 KiB)
0x02000000
內部 SRAM (16 KiB)
0x80000000
外部記憶體(直接存取高達 2 GiB)
引導0
引導1
模式
0
0
從內建EEPROM記憶體啟動
0
1
使用 SPIFI 控制器從外部記憶體啟動
1
0
從系統 RAM 啟動
1
1
保留
13
裝載順序
MIK32晶片有三種不同的啟動選項,由
Boot0 和 Boot1 腳的狀態符合表 3。
表 3 – 啟動選項
Boot0和Boot1腳的值在上電時固定,當
外部重設(RST# 引腳)。可以透過程式設計方式更改引導方法
將所需配置寫入模式控制模組的BOOT暫存器
啟動(BOOT_MANAGER)。更新後的啟動模式值將是
用於以下活動(需獲得相應機構的許可)
WAKEUP 區塊的 SYS_MASK 暫存器中的事件):
- 鬧鐘響起時退出待機模式;
- 當外部輸出電平EXT_WU有效時退出待機模式;
– 當電源降低時重設系統域(LDO_SYS 指示);
當電源降低時重置系統域(電路指示)
跟蹤);
– 當 BOR 訊號出現時,形成系統域重設。
14
根據所選的啟動模式,會發生以下變化:
在控制器位址空間中:
從 EEPROM 啟動:EEPROM 記憶體 (8 KiB) 對應到啟動
區域(0x00000000),但仍可在
0x01000000;
從外部記憶體啟動:SPIFI 控制器對應到啟動記憶體
區域(0x00000000),但仍可在
0x80000000;
從系統 RAM 啟動:一塊 RAM 被對映到啟動區域
(0x00000000),但仍可在
0x0200_0000。
DMA控制器
專門的直接記憶體存取 (DMA) 控制器實現
交換結構上從裝置之間的資料傳輸,無需
微控制器參與,支援網域的硬體定址
MIK32參與資料交換。
DMA 控制器有 4 個獨立通道,提供以下操作:
記憶體-記憶體、週邊-週邊、記憶體-週邊模式。
每個 DMA 通道都有一個可程式設計優先權
處理使用者指定的請求。
當與外設一起工作時,DDP控制器會監視內部的狀態
具有自動處理轉換和訊號功能的外圍裝置緩衝區
確認。 DDP 控制器的框圖如圖 2 所示。
通道控制 通道 先進先出 通道[0]
15
CSR_暫存器
AHB_slaveAHB_master
仲裁控制
……
……
……
請求[0]請求[1]
請求[R-1]
確認[0]
確認[1]
確認[R-1]
通道控制
通道先進先出
頻道[1]
通道控制
通道先進先出
頻道[N-1]
圖 2 – DMA 控制器框圖
巴士交通
匯流排管理控制器(AHB_master),如果通道中有資料
DDP,實現對匯流排的連續存取。軟體設定支援
確認訊號控制(並非所有外圍單元都需要)時間
匯流排上的事務處理位置各不相同。
資料傳輸會話從讀取所需的來源資料開始,
將通道緩衝區填入指定級別,將資料寫入目標位址,
如此迴圈下去,直到完成所需的資料傳輸。
資料傳輸的開始根據每個的請求訊號發生
通道,包括讀取和寫入請求。在記憶體事務期間,內部
請求訊號始終有效。
僅當存在時才處理寫入請求訊號
資料。如果在產生內部請求訊號時發生衝突
在通道有限狀態機一側,請求按照以下方式處理
每個通道已建立的優先權。如果等級匹配
16
軟體優先順序,依照等級處理請求
靜態優先權等於通道號碼(最低通道具有最高優先權)
優先)。
匯流排存取的範例如圖 3、4 中的時序圖所示 –
兩個通道的匯流排存取持續時間時序圖(duration
匯流排存取通常以 3 個週期表示)。
圖 3 – 一個通道的匯流排存取持續時間的時間圖
圖 4 – 兩個通道的匯流排存取持續時間的時間圖
仲裁
通道選擇仲裁發生在兩個請求線保持週期。如果
多個DDP請求同時到達,則仲裁方案選擇
根據軟體設定的最高優先權請求線
每個通道都支援四個優先權:
- 優先順序(非常高);
- 高的;
- 平均的;
- 低的。
17 號
如果一個通道處於活動狀態,則無法立即處理請求:
處理請求完成後,增加一個時脈週期來關閉通道(或
確認訊號處理)和用於處理新請求的兩個時脈週期。
當多個通道執行時,可以並行處理請求,
在這種情況下,來自當前工作通道的請求在仲裁期間被封鎖
正確關閉通道(或傳送確認訊號)。
操作時序圖如圖 5 所示。
圖 5 - 多通道時序圖
通道時鐘
每個頻道都有自動時鐘重疊
基於通道許可訊號。
作業完成或偵測到錯誤後,
自動通道復位,通道控制器狀態機轉換為
空閒狀態。
在這種情況下,每個通道都會儲存其所在暫存器的狀態
他的工作已經完成。
關閉頻道
當關閉命令傳送到通道時,時鐘重疊
通道,之後通道被完全重置。
如果在事務期間傳送關閉命令,則主介面
控制器按照設定完成開始的資料塊傳輸
通道,關閉後傳輸的資料無效。
時序圖如圖6所示。
18
圖 6 – 期間傳送關閉指令的時序圖
交易、控制器主介面
區塊交易
DDP控制器提供傳輸區塊交易的能力,
支援混合資料傳輸。例如,讀取位元組緩衝區並
記錄單字。
在這種情況下,輸入的資料傳輸值必須嚴格遵守
與輸入傳輸長度值和讀取時的區塊劃分有關
和記錄。組織區塊交易的範例顯示在臨時中
如下圖(圖 7-9):
- 讀取位元組,寫入半字。傳輸長度:4位元組,區塊大小
讀:1位元組,寫塊大小2位元組;
- 讀取位元組,寫入半字。傳輸長度:4位元組,區塊大小
讀:1位元組,寫塊大小4位元組;
- 讀取位元組,寫入半字。傳輸長度:4位元組,區塊大小
讀:2位元組,寫塊大小4位元組。
圖 7 – 組織區塊交易的時間圖 1
圖 8 – 組織區塊交易的時間圖 2
19
圖 9 – 組織區塊交易的時間圖 3
如果您輸入的值不符合區塊劃分或輸入
超過通道緩衝區大小的值可能會導致意外行為
控制器。
產生中斷
DMA 控制器支援三種型別的可遮蔽中斷:
- 任務完成的通道中斷;
- 關於所有任務完成的全域中斷;
– 錯誤中斷。
許可權設定為時會產生通道中斷
預設情況下,中斷是禁用的。
當控制器執行所有命令時會產生全域中斷
分配的任務,預設為啟用。
DMA 控制器根據來自 DMA 的錯誤回應產生錯誤
輪胎。遇到錯誤的通道完成其任務。其他管道可能會
繼續你的工作。
外設模式傳輸。
在與週邊裝置的傳輸模式下,
請求讀取或寫入事務。控制器允許您匹配任何通道
與外圍裝置。 配置通道和線路匹配
使用週邊裝置欄位 READ_REQUEST、WRITE_REQUEST
暫存器CHx_CFG。這些欄位的值與外圍線的對應關係
如表 4 所示。
裝置
READ_REQUET / WRITE_REQUEST 值
USART_0
0
USART_1
1
加密貨幣
2
SPI_0
3
SPI_1
4
I2C_0
5
I2C_1
6
SPIFI
7
定時器32_1
8
定時器32_2
9
數位類比轉換器0
10
數位類比轉換器1
11
定時器32_0
12
20
表 4 – 來自 DMA 控制器週邊裝置的請求線
當使用來自 32 位元計時器的請求時,您必須
透過確認設定操作模式(CHx_CFG.READ_ACK_EN = 1 或
CHx_CFG.WRITE_ACK_EN = 1)。在此模式下,定時器產生短
當達到溢位條件時發出脈衝,從而重置請求訊號
從定時器。 DMA 輸入請求將會保留,直到目前請求被處理為止。
包裹。也就是說,定時器的一個脈衝對應於一個資料包的處理。
下面顯示了使用確認的傳輸範例。
外圍裝置收到後必須清除傳輸請求
來自 DMA 的確認。
名稱
偏移量
初始值
目的
訪問
CH1_夏令時
0x00
0x0
頻道目標位址暫存器 1
RW
CH1_SRC
0x04
0x0
頻道 1 來源位址暫存器
RW
CH1_LEN
0x08
0x0
通道1傳送資料大小暫存器
RW
CH1_CFG
0x0C
0x0
通道 1 控制和配置暫存器
RW
CH2_DST
0x10
0x0
頻道 2 目標位址暫存器
RW
CH2_SRC
0x14
0x0
頻道 2 來源位址暫存器
RW
CH2_LEN
0x18
0x0
通道2傳送資料大小暫存器
RW
CH2_CFG
0x1C
0x0
通道 2 控制和配置暫存器
RW
CH3_DST
0x20
0x0
頻道 3 目標位址暫存器
RW
CH3_SRC
0x24
0x0
頻道 3 來源位址暫存器
RW
21
圖 10 – 一個通道的匯流排存取持續時間的時間圖
形成取消請求的訊號
DMA 控制器暫存器
控制器暫存器包括引數設定暫存器和控制暫存器
每個通道以及一個全域狀態和中斷暫存器。控制器暫存器
表 5 中列出。暫存器只能以 32 個字存取
蝙蝠。
表 5 – DMA 控制器的暫存器
名稱
偏移量
初始值
目的
訪問
CH3_LEN
0x28
0x0
頻道 3 傳送資料大小暫存器
RW
CH3_CFG
0x2C
0x0
通道 3 控制和配置暫存器
RW
CH4_DST
0x30
0x0
頻道 4 目標位址暫存器
RW
CH4_SRC
0x34
0x0
頻道 4 來源位址暫存器
RW
CH4_LEN
0x38
0x0
通道 4 傳送資料大小暫存器
RW
CH4_CFG
0x3C
0x0
通道 4 控制和配置暫存器
RW
配置狀態
0x40
0x0
中斷暫存器和控制器設定
RW
附註 – 執行讀取和寫入操作時,CONFIG_STATUS 暫存器的各個欄位的功能有所不同。
22
讀取通道狀態
對於每個通道,都支援讀取當前值的能力
count(目前讀取/寫入位址、傳輸的字數)和值
設定通道時設定(初始化讀取/寫入位址,
要傳達的字數)。
通道狀態可在通道配置暫存器的位址處取得
讀取訪問時的 CHx_DST。在這種情況下,每個位址傳回一個值
根據INITIAL_VALUE暫存器的設定值
配置狀態。
如果設定了 INITIAL_VALUE 位,則傳回的值將為
設定通道時會設定,否則返回值
經常帳戶。
CHx_DST 暫存器
CHx_DST 暫存器 (CH1...CH4) – 32 位元資料目標位址暫存器
渠道(表 6)。
名稱
排名
初始值
目的
訪問
夏令時
31:0
0x0
目標位址 在讀取初始設定(INITIAL_VALUE = 1)模式下,傳回設定任務時的目標位址。 在目前狀態讀取模式(INITIAL_VALUE = 0)下,傳回最後傳輸的通道控制器子任務。 如果發生寫入錯誤,包含指向主介面目前位址的指標
RW
名稱
排名
初始值
目的
訪問
斯瑞克
31:0
0x0
來源位址 在讀取初始設定的模式下(INITIAL_VALUE = 1),傳回設定任務時的來源位址。 在目前狀態讀取模式下(INITIAL_VALUE = 0)傳回目前頻道控制器子任務。指向正在處理的區塊位址的指標計算如下: Current_ch_read_task - 2READ_BURST_SIZE 如果發生寫入錯誤,則包含指向傳回 HRESP=1 的主介面目前位址的指標
RW
23
表 6 – 資料目標暫存器的名稱、欄位和描述
CHx_SRC暫存器
CHx_SRC 暫存器 (CH1...CH4) – 32 位元資料來源位址暫存器
渠道(表 7)。
表 7 – 資料來源暫存器的名稱、欄位和描述
名稱
排名
初始值
目的
訪問
倫
31:0
0x0
傳送的位元組數計算為LEN+1。 在強制停止期間或發生資料傳輸錯誤時,LEN 欄位可用於估計傳輸的資料量。當寫入任務開始時,在實際執行之前,計數器會被更新。 在目前狀態的讀取模式下(INITIAL_VALUE = 0) 如果在讀取操作期間發生通道停止(STATE = 0b01),則: - 寫入的位元組數等於 LEN; - 讀取的位元組數大於或等於LEN且小於或等於LEN+2WRITE_BURST_SIZE。 如果在寫入作業期間發生通道停止(STATE = 0b10),則: - 讀取的位元組數等於 LEN; - 寫入的位元組數大於或等於LEN且小於或等於LEN+2WRITE_BURST_SIZE。 當 INITIAL_VALUE = 0 時,通道控制器狀態會透過讀取 CHx_CFG 暫存器的 STATE 欄位來決定。
RW
24
CHx_LEN 暫存器
暫存器 CHx_LEN (CH1...CH4) – 傳輸位元組數的 32 位元暫存器
(表 8)。傳送的資料量定義為 LEN + 1。
表 8 – 傳輸位元組計數暫存器的名稱、欄位和描述
名稱
排名
初始值
目的
訪問
IRQ_EN
27
0x0
頻道完成後啟用中斷產生: 0 – 不產生中斷; 1 – 產生中斷
RW
WRITE_ACK_EN
26
0x0
允許邏輯對目標接收者的回應進行操作:0 – 停用; 1 – 允許
RW
READ_ACK_EN
25
0x0
允許邏輯透過來源目的地的回應進行操作:0 – 停用; 1 – 允許
RW
寫請求
24:21
0x0
選擇外圍線路目的地
RW
讀請求
20:17
0x0
源週邊線路選擇
RW
WRITE_BURST_SIZE
16:14
0x0
封包中的位元組數 定義為 2WRITE_BURST_SIZE * 必須是 WRITE_SIZE 的倍數
RW
READ_BURST_SIZE
13:11
0x0
封包中的位元組數 定義為 2READ_BURST_SIZE * 必須是 READ_SIZE 的倍數
RW
25
CHx_CFG暫存器
CHx_CFG 暫存器(CH1...CH4)用於控制和取得狀態
渠道。暫存器的名稱、欄位和描述如表 9 所示。
注意:寫入 CHx_CFG 暫存器會停止頻道。
表 9 – 使用 INITIAL_VALUE = 1 進行寫入和讀取時通道控制暫存器的名稱、欄位和說明
名稱
排名
初始值
目的
訪問
寫大小
10:9
0x0
目標位址大小:0b00 – 位元組; 0b01——半字; 0b10——單字; 0b11 - 保留 * 必須是 LEN 的倍數
RW
讀取大小
8:7
0x0
來源位址大小:「0b00」-位元組; “0b01”-半字; “0b10”-單字; "0b11" - 保留 * 必須是 LEN 的倍數
RW
寫增量
6
0x0
目的位址增量:0——不增量;1 – 有增量
RW
讀增量
5
0x0
來源位址增量:0——不增量;1 – 有增量
RW
寫入模式
4
0x0
目的位址模式:0——外圍;1 – 記憶體
RW
讀取模式
3
0x0
來源位址模式:0——週邊; 1 – 記憶體
RW
之前
2:1
0x0
通道優先權:0b00 – 低;0b01—平均;0b10—高; 0b11 – 優先權(非常高)
RW
啟用
0
0x0
通道操作許可權:1——通道操作初始化;0——強制停止
RW
注意 – 寫入 CHx_CFG 暫存器會停止頻道。
26
當讀取 CURRENT_VALUE = 0 的 CHx_CFG 時,將獲得目前狀態
頻道。
名稱
排名
初始值
目的
訪問
狀態
3:2
0x0
頻道控制器狀態 status 0b01 – 頻道處於讀取狀態; 0b10 – 頻道處於錄音狀態。
R.O.
匯流排錯誤寫入
1
0x0
讀取時的錯誤狀態 0 – 沒有錯誤; 1 – 記錄期間偵測到匯流排錯誤
R.O.
匯流排錯誤讀取
0
0x0
寫入 0 時的錯誤狀態-沒有錯誤;1 – 讀取時偵測到匯流排錯誤
R.O.
註 – 當 CURRENT_VALUE = 0 時寫入暫存器是根據表 9 的位元欄位執行的。
名稱
排名
初始值
目的
訪問
初始值
8
0x0
設定通道時讀取值的許可權:0 – 停用(通道的目前狀態); 1 – 允許(設定期間的值)
沃
錯誤_IRQ_ENA
7
0x0
發生錯誤時啟用中斷產生: 1 – 啟用;0 – 禁止。
沃
27
表 10 – 使用 INITIAL_VALUE = 0 讀取時通道控制暫存器的名稱、欄位和描述
CONFIG_STATUS暫存器
CONFIG_STATUS 暫存器提供通道中斷和
控制器作為一個整體。執行操作時各個欄位的功能有所不同
註冊閱讀和寫作。 記錄時暫存器的名稱、欄位和描述
當閱讀表 12 的內容時,會看到表 11 的內容。
表 11 – 寫入時 CONFIG_STATUS 暫存器的名稱、欄位和描述
名稱
排名
初始值
目的
訪問
全域_IRQ_ENA
6
0x0
啟用全域中斷產生:1 – 啟用; 0 – 禁止。
沃
清除錯誤中斷
5
0x0
清除錯誤中斷: 1 – 清除中斷要求。
沃
清除全域中斷
4
0x0
清除全域中斷: 1 – 清除中斷請求。
沃
CLEAR_LOCAL_IRQ
3:0
0x0
清除本地中斷: 1 – 清除中斷要求。 位元編號對應於頻道編號。
沃
注意 – 只有當沒有清除中斷線請求的設定時,才可以存取設定中斷啟用暫存器。
名稱
排名
初始值
目的
訪問
通道匯流排錯誤
11:8
0x0
匯流排上出現錯誤時的通道狀態狀態: 1 - 有錯誤; 0 - 沒有錯誤。 位元 8 – 通道 0; 位元 9 – 通道 1; 位元 10 – 通道 2; 位元 11 – 通道 3。
R.O.
通道中斷請求
7:4
0x0
中斷狀態:1——有中斷;0 - 沒有中斷。
R.O.
頻道就緒
3:0
0x0
通道狀態status:1——準備運作;0——忙。 位元編號對應於頻道編號。
R.O.
注意 – 當新任務傳送到頻道時,CHANNEL_BUS_ERROR 的值將重設為 0。
28
表 12 – 讀取時 CONFIG_STATUS 暫存器的名稱、欄位和描述
29
測試控制單元 (TCB)
測試控制區塊 (TCB)
確保透過 JTAG 介面接收命令並將其轉換為事務
用於微控制器測試元件的系統匯流排和控制命令。
整體結構
TCB 區塊由兩個模組組成:
- TAP 控制器介面 (TAP2FSM);
– 系統匯流排除錯介面(AHB_FSM)。
TCB 區塊的框圖如圖 11 所示。
AHB_FSM
TAP2FSM
432432
selectshift_drupdate_drcapture_dr
TDITDO
NR
statusirq_ldebug_irqdebug_rst
AHB_master
圖 11 – TCB 區塊的框圖
與 TAP 控制器的介面
此介面將串列命令轉換為格式
系統匯流排除錯介面說明。
此介面是基於移位暫存器實現的。資料更新後
移位暫存器中的介面傳輸到系統匯流排32-的除錯介面
帶標題的 x 位元資料字(可執行指令)。基於資料
標頭,發生所需的資料處理。
更新暫存器值並初始化除錯命令
系統匯流排介面透過 update_dr 訊號發生。
capture_dr 訊號導致暫存器更新資料和狀態。
之前執行的操作。在這種情況下,根據shift_dr訊號,暫存器返回
TAP 控制器收到資料。
命令格式
團隊
描述
注意事項
0bхх00
0b0000
寫入一個位元組
寫入命令需要預設位址
0b0100
半字錄音
0b1000
寫一個字
0b1100
保留
0bхх01
0b0001
讀取位元組
讀取命令將資料傳回 data_field 的位址
0b0101
讀半個字
0b1001
讀這個詞
0b1101
保留
0bхх10
0b0010
設定地址,然後遞增
地址設定命令
0b0110
設定地址而不遞增
30
系統匯流排除錯介面
除錯介面執行從接收到的指令
TAP2FSM 並將指令傳送到 AHB 匯流排。
支援以下指令集:
- 設定有或沒有後續增量的位址;
- 在指定地址記錄資料;
- 讀取傳送的地址;
- 反轉控制線;
- 讀取被測系統的狀態行。
指令格式
指令格式由 36 位元組成,如圖 12 所示。
圖 12 – 指令結構
寫入暫存器時指令的控制/狀態列位的格式如下所示
表 13.
表 13 – 寫入暫存器時控制/狀態列位的格式
命令格式
團隊
描述
注意事項
0b1010
保留
0b1110
保留
0bхх11
0b0011
保留
管理團隊
0b0111
反相控制線
0b1011
系統重設控制器
0b1111
空命令(NOP)
狀態格式
團隊
描述
意義
0bxxx0
0bхх10
匯流排錯誤回應 (HRESP)
上一次操作失敗
0bх1х0
等待有關準備情況的答覆
0b1хх0
保留
0bххx1
0bхх11
輸入狀態線
上一個操作已完成
0b0101
保留
0b1101
保留
31
讀取暫存器時指令的控制/狀態列位的格式如下所示
表 14.
表 14 – 讀取暫存器時控制/狀態列位的格式
地址設定命令
執行set address指令時,除錯介面
設定data_field對應的位址值。後續
寫入命令資料將根據先前設定的地址寫入
輪班。
如果位址設定為增量,則每次輸入後位址將被
增加與正在寫入的字的位元深度相對應的值
(位元組 – 1,半字 – 2,字 – 4)。
資料寫入命令
當執行資料寫入命令時,除錯介面傳送到
匯流排命令將資料寫入先前設定的位址。同時,傳送
控制線索引
目的
2:0
記憶體自檢模組控制(演演算法選擇)
3
管理記憶體自檢模組(開始測試)
4
記憶體自我檢測模組的管理(SPIFI控制器記憶體快取的解析度測試)
5
記憶體自檢模組控制(RAM測試許可權)
6
重設 RAM、EEPROM 控制器、SPIFI 控制器(有效電平 0)
7
外設域重設(有效等級0)
8
保留
9
DMA 控制器重設(有效電平 0)
10
重設CPU cpu_rst_n(活動等級0)
11
處理器重設 rst_n(有效等級 0)
32
移位暫存器中的資料必須左對齊。 對準
到匯流排的資料傳輸會自動發生在設定的位址處。
讀取資料命令
當執行讀取資料命令時,除錯介面傳送到
data_field位址處的匯流排讀取指令,除錯介面總是回傳32-
x 位元值從匯流排端接收,並設定到匯流排
指令傳遞的偏移值。
管理團隊
控制線根據data_field欄位的值進行反轉。
最初,控制線處於高狀態。
微控制器使用TCB模組側的12條控制線
(表 15)。
表 15 – TCB 模組的控制線分配
系統重置命令將除錯介面置於 IDLE 狀態,
當來自匯流排側的就緒回應訊號被卡住時使用。
33
錯誤回應
當從匯流排側接收 HRESP 訊號時,會產生錯誤回應,
在這種情況下,當向除錯介面傳送新命令時,響應狀態標誌
已重置。
凍結反應
如果沒有從匯流排端收到就緒訊號,則除錯
介面產生關於未就緒的回應,直到就緒訊號到達
從匯流排端來看,控制器不會改變其狀態。重置狀態
使用系統重設指令。
命令執行順序
執行一系列命令時,讀取並分析狀態
上一個命令。根據現狀分析,
團隊。如果狀態不正確,則回到前一個狀態。
團隊。在這種情況下,第一個命令被傳送為空指令(NOP)。
寫入四個字並傳回錯誤狀態的條件範例
如圖 13 所示。
圖 13 – 寫入四個單字並傳回錯誤單字的條件範例
狀態
34
讀取四個字並傳回錯誤狀態的條件範例
如圖 14 所示。
圖 14 – 讀取四個單字並傳回錯誤單字的條件範例
狀態
USART模組
通用同步非同步接收器-傳送器 (USART)
支援與外部裝置的全雙工資料交換,並且還
以同步單向和半雙工單線模式執行
通訊。它還支援數據機操作。
主要特點:
- 可程式資料字長(7、8或9位元);
- 具有第一移位MSB或LSB的可程式資料順序;
- 可自訂的停止位(1或2個停止位);
- 同步模式和時鐘輸出用於同步通訊;
- 能夠在單線半雙工通訊模式下運作;
- 使用直接記憶體存取進行連續通訊;
- 傳送器和接收器的單獨許可位;
- 單獨控制傳送和接收的訊號極性;
- 能夠改變 Tx/Rx 接點;
- 使用CTS和RTS訊號的硬體流控制;
- 存在調變解調器訊號;
35
- 奇偶校驗會傳送奇偶校驗位元並檢查接收的奇偶校驗
位元組資料。
USART 收發器的通用框圖如圖所示
圖 15.
圖 15 – 通用 USART 框圖
M位
PCE位
USART 幀
00
0
SB|資料8位元|STB
00
1
SB|資料7位元|PB|STB
01
0
SB|資料9位元|STB
01
1
SB|資料8位元|PB|STB
10
0
SB|資料7位元|STB
10
1
SB|資料6位元|PB|STB
36
功能說明
串列資料透過 TX 和 RX 引腳傳送和接收
正常 USART 模式。
框架包括:
- 起始位元;
- 資料位(7、8 或 9);
- 奇偶校驗位,如果設定了對應的控制位;
- 1 或 2 個停止位指示幀已完成。
圖 16 顯示了一個範例框架。
圖 16 – 幀格式
幀長度取決於資料位數和奇偶校驗位的存在。同時
奇偶校驗位的傳輸順序不受MSBFIRST欄位的影響,它總是被傳輸
在停止位之前。表 16 顯示了所有可能的框架選項。
表 16 – 可能的框架選項
同步模式
CK輸出用於同步模式下的資料傳輸。 CK –
輸出訊號,它輸出傳送器資料時脈以進行同步
與 SPI 主模式相對應的傳輸(無啟動和時脈)
停止位,以及一個軟體選項來傳送時脈到最後
資料位)。並行時,可以在 RX 上同步接收資料。它可能
37
用於控制週邊裝置
移位暫存器。時脈訊號的相位和極性由軟體設定。
具有不同時脈訊號引數和不同時脈訊號的區塊操作圖
位元組內的位元順序如圖 17 所示。
圖 17 – 不同條件下同步模式的操作圖
配置
資料流控制
流量控制模式需要以下引腳:
– CTS:清除傳送阻止目前傳輸結束時的資料傳輸
(當電平高時);
– RTS:Request To Send 表示 USART 已準備好接收資料(當
低階)。
RTS訊號是輸出訊號,它的形成與接收端的狀態有關
註冊。復位後狀態為0。如果有未讀則訊號變為1
接收暫存器中的資料。
38
CTS訊號是輸入訊號並控制發射機。值 1 禁用
資料傳輸。如果在資料包傳輸過程中該訊號轉變為 1,則該資料包
才會被傳送,然後 TX 線路才會被設定為待機。如何
一旦訊號設定為0,資料傳輸就會恢復。條件
CTS 訊號可供處理器讀取。 CTS訊號操作範例
如圖 18 和 19 所示。
在環回模式下,RTS 與區塊內的 CTS 關閉,繞過
微控制器的相應引腳。
圖 18 – 觸發禁止傳輸訊號的範例(CTS=1)
圖 19 – 禁止傳輸訊號轉變為非活動狀態的範例
狀態(CTS=0)
斷線模式
此功能適用於傳送和接收。功能控制時
傳輸是透過 SBKRQ 位元進行的。該位的有效狀態為 1。如果此時
向 SBKRQ 位元寫 1,資料已傳送,則資料包將被傳送,
只有這樣 TX 線才會被設定為中斷模式 (TX = 0)。工作範例
傳送器中的中斷模式如圖 20 所示。
圖 20 – 中斷模式操作範例
名稱
偏移量
初始值
目的
訪問
控制1
0x00
0x0
控制暫存器1
RW
控制2
0x04
0x0
控制暫存器2
RW
控制3
0x08
0x0
控制暫存器3
RW
分音器
0x0C
0x0
分頻器設定暫存器
RW
標誌
0x1C
0x0
中斷暫存器
RW
接收資料
0x24
0x0
接收資料暫存器
RW
傳送資料
0x28
0x0
傳輸資料暫存器
RW
資料機
0x2C
0x0
資料機控制暫存器
RW
39
接收期間,Break 狀態偵測如下:
方式。如果在 RX 線路上偵測到包裹(起始位加位
資料加奇偶校驗位(如果設定)加停止位)填入零,然後
此零字元被寫入接收暫存器並設定偵測標誌
打破。此標誌可由處理器讀取。在接待處登記
僅在 RX 線上偵測到兩個停止位後才恢復。
圖 21 顯示了偵測接收器中中斷模式的範例。
圖 21 – 中斷模式偵測範例
網址圖
USART 收發器暫存器如表 17 所示。
表 17 – USART 收發器暫存器
暫存器的名稱、數字、初始值、用途和存取許可權
控制 1 如表 18 所示。
名稱
排名
初始值
目的
訪問
保留
31:29
保留
M1
28
0x0
與位元 12 (M0) 一起控制幀長度:M[1:0] = 0b00:8 個資料位元; M[1:0] = 0b01:9個資料位元;M[1:0] = 0b10:7 個資料位元。 此位元只能在操作停止時變更(UE=0)
RW
保留
27:13
保留
莫0
12
0x0
與位元 28 (M1) 一起控制幀長度:M[1:0] = 0b00:8 個資料位元; M[1:0] = 0b01:9個資料位元;M[1:0] = 0b10:7 個資料位元。 此位元只能在操作停止時變更(UE=0)
RW
保留
11
保留
P.C.E.
10
0x0
奇偶校驗: -停用奇偶校驗;1 – 奇偶校驗已啟用。 此位元只能在操作停止時變更(UE=0)
RW
40
表 18 – 控制暫存器 1 CONTROL1
名稱
排名
初始值
目的
訪問
聚苯乙烯
9
0x0
選擇奇偶校驗位的產生方式: 0 – 奇偶校驗位; 1 – 奇校驗位。 此位元只能在操作停止時變更(UE=0)
RW
聚醚醚酮
8
0x0
控制接收奇偶校驗位中的錯誤中斷: 0 – 禁止奇偶校驗位中的錯誤中斷; 1 – 奇偶校驗位錯誤中斷啟用
RW
TXEIE
7
0x0
寫入資料時資料傳輸期間到移位暫存器的中斷控制: 0 – 禁止中斷; 1 – 中斷啟用
RW
TCIE
6
0x0
成功資料傳輸的中斷控制: 0 – 禁止資料傳輸中斷; 1 – 資料傳輸中斷啟用
RW
RXNEIE
5
0x0
成功接收資料或覆蓋已接收資料的中斷控制: 0 – 中斷停用; 1 – 中斷啟用
RW
空閒IE
4
0x0
沒有輸入事務時的中斷控制: 0 – 中斷停用; 1 – 中斷啟用
RW
T.E.
3
0x0
發射機控制:0—發射機關閉;1 – 發射器開啟
RW
41
名稱
排名
初始值
目的
訪問
稀土
2
0x0
接收器控制:0—接收器關閉;1 – 接收器開啟
RW
保留
1
保留
UE
0
0x0
重置 USART。取消所有目前操作。不清除配置暫存器,但重置標誌 0 – USART 停用 1 – USART 啟用
RW
名稱
排名
初始值
目的
訪問
保留
31:20
保留
MSB優先
19
0x0
控制資料接收和傳送的順序:0——從bit 0開始;1 – 從 9、8 或 7 開始,取決於地塊長度設定。 此位不影響奇偶校驗位的傳送和接收。 此位元只能在操作停止時變更(UE=0)
RW
42
暫存器的名稱、數字、初始值、用途和存取許可權
控制 2 如表 19 所示。
表 19 – 控制暫存器 2 CONTROL2
名稱
排名
初始值
目的
訪問
資料輸入法
18
0x0
接收和傳送資料的極性控制:0——正常極性;1 – 反極性(1=L,0=H)。 改變極性也會影響奇偶校驗位。 此位元只能在操作停止時變更(UE=0)
RW
TXINV
17 號
0x0
TX 輸出極性控制。暫存器不僅影響資料,還影響停止位元、起始位元等。 0——正常極性;1 – 反極性(1=L,0=H)。 此位元只能在操作停止時變更(UE=0)
RW
RXINV
16
0x0
RX 輸入極性控制。暫存器不僅影響資料,還影響停止位元、起始位元等。 0——正常極性;1 – 反極性(1=L,0=H)。 此位元只能在操作停止時變更(UE=0)
RW
互換
15
0x0
此暫存器負責交換TX輸出和 RX輸入的功能: 0——正常工作;1 – 功能交換(TX = RX 且 RX = TX)。 此位元只能在操作停止時變更(UE=0)
RW
43
名稱
排名
初始值
目的
訪問
LBM
14
0x0
內部環回模式暫存器:0-正常操作;1 – TX 和 RTS 訊號在模組內部提供,繞過 RX 和 CTS 輸入。 在這種情況下,TX = 1且RTS = 1,RX和CTS輸入不活動。 此位元只能在操作停止時變更(UE=0)
RW
停止_1
13
0x0
接收器和傳送器的停止位數量:0 – 1 個停止位; 1 – 2 個停止位。 此位元只能在操作停止時變更(UE=0)
RW
保留
12
保留
時脈訊號
11
0x0
同步模式控制: 0——同步模式停用;1 – 同步模式已啟用。 此位元只能在操作停止時變更(UE=0)
RW
CPOL
10
0x0
輸出時脈訊號CK極性的控制:0——事務外邏輯「0」;1 – 事務外的邏輯「1」。 此位元只能在操作停止時變更(UE=0)
RW
44
名稱
排名
初始值
目的
訪問
CPHA
9
0x0
輸出時脈訊號CK的相位控制:0——時脈訊號第一次變化-邊緣;1 – 時脈訊號的第一次變化 – 切斷(反向沿)。 此位元只能在操作停止時變更(UE=0)
RW
LBCL
8
0x0
最後一個時脈的控制: 0——最後一個時脈遺失;1 – 最後一個時脈存在。 此位元只能在操作停止時變更(UE=0)
RW
保留
7
保留
LBDI
6
0x0
在 RX 線上偵測到中斷狀態時的中斷控制: 0 – 中斷停用; 1 – 中斷啟用
RW
保留
5:0
保留
45
暫存器的名稱、數字、初始值、用途和存取許可權
表 20 列出了控制措施 3。
名稱
排名
初始值
目的
訪問
保留
31:13
保留
奧維迪斯
12
0x0
溢位反應選擇: 0-溢位發生時,錯誤標誌(ORE)置位,不寫入新資料;1 – 未設定溢位標誌,資料被覆蓋。 此位元只能在操作停止時變更(UE=0)
RW
保留
11
保留
中國交通運輸協會
10
0x0
偵測到 CTS 變更時的中斷控制: 0 – 中斷停用; 1 – 中斷啟用
RW
CTSE
9
0x0
選擇對 CTS 輸入訊號的反應: 0 – 訊號被忽略; 1 – 此訊號控制傳送器的資料傳輸。 (CTS = 0) 時允許傳輸。 此位元只能在操作停止時變更(UE=0)
RW
即時SE
8
0x0
RTS輸出訊號的控制: 0-訊號始終處於啟用狀態(RTS=0);1 – 只有當接收器準備好接收資料時,訊號才會處於啟用狀態(RTS = 0)。 此位元只能在操作停止時變更(UE=0)
RW
46
表 20 – 控制暫存器 3 CONTROL3
名稱
排名
初始值
目的
訪問
DMA技術
7
0x0
控制 dma_trq 訊號的操作: 0 – 訊號已停用; 1 – 訊號開啟
RW
DMAR
6
0x0
控制 dma_rrq訊號的操作:0——訊號關閉;1 – 訊號開啟
RW
保留
5:4
保留
高畫質選擇性雷射
3
0x0
在半雙工和全雙工操作模式之間進行選擇。在半雙工模式下,不使用RX,所有資料都透過TX傳送和接收。如果有資料要傳輸,則傳送資料,其餘時間接收:0——雙工工作模式;1 – 半雙工工作模式。 此位元只能在操作停止時變更(UE=0)
RW
SBKRQ
2
0x0
傳送器轉換到中斷狀態: 0 – 正常工作模式; 1 – TX 線上的中斷狀態
RW
保留
1
保留
歐洲工業協會
0
0x0
偵測到資料接收錯誤時的中斷控制(FE、ORE、NF): 0 – 中斷停用; 1 – 中斷啟用
RW
47
暫存器的名稱、數字、初始值、用途和存取許可權
除數如表 21 所示。
名稱
排名
初始值
目的
訪問
保留
31:16
保留
BRR
15:0
0x0
輸入時脈訊號分頻器 (clk_in) 的值 當 BRR < 16 USART 不活動。波特率的計算公式如下: BR = F/BRR BR-波特率; F - 輸入時脈訊號的頻率值 此位元只能在操作停止時變更(UE=0)
RW
名稱
排名
初始值
目的
訪問
保留
31:23
保留
重新確認
22
0x0
重設移除後接收器準備好運作的標誌(UE 和 RE): 0 – 重設處於活動狀態; 1 – 重設已刪除
R.O.
泰克
21
0x0
重設移除後,發射機準備就緒標誌(UE 和 TE): 0 – 重設處於活動狀態; 1 – 重設已刪除
R.O.
保留
20:17
保留
忙
16
0x0
RX 線上的活動標誌: 0 – RX 線上沒有活動; 1 – 資料正在傳輸或中斷狀態
R.O.
48
表 21 – DIVIDER 暫存器
暫存器的名稱、數字、初始值、用途和存取許可權
標誌和中斷如表 22 所示。
表 22 – 標誌和中斷暫存器 FLAGS
名稱
排名
初始值
目的
訪問
保留
15:11
保留
CTS
10
0x0
此標誌顯示 CTS 訊號的目前值:0 – CTS = 0; 1 – CTS = 1
R.O.
中國交通運輸協會
9
0x0
當 CTS 訊號值發生變化時,該標誌將被啟動。透過寫入 1 來重設此標誌: 0 – 自從該標誌重設以來,CTS 狀態沒有改變; 1 – 自標誌重設後 CTS 狀態已更改
RW1C
LBDF
8
0x0
RX 線上的中斷狀態偵測標誌。透過寫入 1 來重設標誌: 0 – 自標誌重設以來尚未偵測到中斷狀態; 1 – 自標誌重設後偵測到中斷狀態
RW1C
TXE
7
0x0
在將資料寫入移位暫存器的同時傳輸資料時,此標誌被設定。 透過寫入 TXDATA 暫存器以寫入資料或寫入 1:0 來重設此標誌-自此標誌重設以來,資料尚未寫入移位暫存器;1 – 資料寫入移位暫存器
RW1C
TC
6
0x0
當傳送最後一個停止位元時傳送資料時,該標誌被設定。透過寫入 1 來重置該標誌: 0 – 自該標誌重置以來沒有傳送任何資料; 1 – 資料從標誌重置那一刻起傳送
RW1C
49
名稱
排名
初始值
目的
訪問
RXNE
5
0x0
當接收到的資料從移位暫存器寫入 RXDATA 暫存器時,此標誌被設定。透過寫入 1 或讀取 RXDATA 暫存器來重設此標誌: 0 – 重設該標誌後未接收到資料;1 – 標誌重設後接收到資料
RW1C
空閒
4
0x0
當 RXNE 標誌置位時,如果 RX 線上在 8 位元週期內沒有活動,則該標誌被置位。寫入1 重設標誌:0-標誌重設後未偵測到空閒狀態;1 – 標誌重設後偵測到空閒狀態
RW1C
礦石
3
0x0
當嘗試覆蓋 RXDATA 時,該標誌被設定。透過寫入 1 來重設此標誌:0 – 自該標誌重設以來未偵測到覆蓋嘗試; 1 – 自標誌重設後偵測到覆蓋嘗試
RW1C
核因子
2
0x0
RX 線上的誤開關偵測標誌。 透過寫入 1 來重設標誌: 0 – 自標誌重設以來未偵測到幹擾; 1 – 自標誌重設後偵測到幹擾
RW1C
F.E.
1
0x0
當在一個或多個停止位中偵測到錯誤時,將引發該標誌。透過寫入 1 來重設此標誌: 0 – 自該標誌重設以來未偵測到接收錯誤; 1 – 自標誌重設後偵測到接收錯誤
RW1C
50
名稱
排名
初始值
目的
訪問
體育運動
0
0x0
奇偶校驗位錯誤偵測標誌。 透過寫入 1 來重設此標誌:0 – 自此標誌重設以來,奇偶校驗位未偵測到錯誤;1 – 自標誌重設後偵測到奇偶校驗位錯誤
RW1C
名稱
排名
初始值
目的
訪問
保留
31:9
保留
RDR
8:0
0x0
–
R.O.
名稱
排名
初始值
目的
訪問
保留
31:9
保留
時域反射率
8:0
0x0
–
RW
51
暫存器的名稱、數字、初始值、用途和存取許可權
收到的資料列於表 23 中。
表 23 – 接收資料暫存器 RXDATA
暫存器的名稱、數字、初始值、用途和存取許可權
傳輸的資料如表 24 所示。
表 24 – 傳送資料暫存器 TXDATA
暫存器的名稱、數字、初始值、用途和存取許可權
資料機訊號如表 25 所示。
名稱
排名
初始值
目的
訪問
保留
31:9
保留
數位TR
8
0x0
DTR訊號控制暫存器:0—無就緒訊號;1 – 準備接收資料
RW
二氯二苯醚
7
0x0
此暫存器包含 DCD 訊號的目前值: 0 – 沒有載波; 1 – 載體偵測
R.O.
R.I.
6
0x0
此暫存器包含 RI 訊號的目前值: 0 – 無通話; 1 – 透過電話線撥打(call)
R.O.
數位SR
5
0x0
此暫存器包含 DSR 訊號的目前值: 0 – 資料來源未準備好; 1 – 資料來源準備就緒
R.O.
保留
4
保留
DCDIF
3
0x0
當 DCD 輸入訊號改變時,此標誌會被啟動。透過寫入 1 來重設標誌: 0 – 自標誌重設以來未偵測到訊號變化; 1 – 自標誌重設後訊號發生變化
RW1C
RIIF
2
0x0
當輸入訊號 RI 從 0 變成 1 時,此標誌會被置位。透過寫入 1 來重設此標誌: 0 – 自此標誌重設以來,未偵測到從 0 到 1 的訊號變化; 1 – 自標誌重設後訊號發生變化
RW1C
52
表 25 – 資料機訊號暫存器 MODEM
名稱
排名
初始值
目的
訪問
數位SRIF
1
0x0
當 DSR 輸入訊號改變時,此標誌會被啟動。透過寫入 1 來重設標誌: 0 – 自標誌重設以來未偵測到訊號變化; 1 – 自標誌重設後訊號發生變化
RW1C
保留
0
保留
53
I2C模組
此模組提供控制器和序列通訊的介面
I2C 匯流排。允許您在多主、多從配置中工作;管理
I2C匯流排的所有狀態、傳輸協定、符合時序
限制。支援標準 (Sm)、快速 (Fm)、快速加 (Fm+) 模式。
可以使用 DMA 來減少 CPU 負載。
特點
I2C模組特點:
- 符合 I2C 匯流排規範 rev03:
1)主從模式;
2)匯流排上有多個master;
3) 標準模式(高達100 kHz);
4) 快速模式(高達400 kHz);
5) Fast Plus 模式(高達 1 MHz);
6) 定址7和10位;
7)兩個從機位址:
a) 7 或 10 位;
b) 帶有自訂遮罩的 7 位元;
8) 所有7位位址的握手;
9) 全體召集;
10) 可程式預設和保持時間;
11)簡單的事件管理;
K
暫存器 資料管理 數位雜訊濾波器 移位暫存器 時脈訊號控制 由主機進行 TC 整形 從機進行 TC 拉伸 數位雜訊濾波器
數位雜訊濾波器
類比噪音濾波器
54
12)可以延長匯流排時脈訊號;
13)軟復位;
- 資料緩衝區 1 個位元組,能夠透過 DMA 運作;
- 可程式類比和數位雜訊濾波器;
- 獨立於系統時脈訊號(PCLK);
- 軟體中斷遮蔽。
I2C模組組成
I2C模組的結構如圖22所示。
通用輸入輸出介面
替代。
過濾器
噪音
建業巴士
I2C_SDA
I2C_SCL
I2C時鐘
時鐘
通用輸入輸出介面
替代。
圖 22 – I2C 模組圖
55
時鐘要求
此模組的核心以外設匯流排的頻率 (fI2CCLK = fPCLK) 提供時脈。
tPCLK – 週邊匯流排時脈訊號 PCLK 的週期和 tI2CCLK – 週期
I2C模組的時脈訊號必須滿足公式(1):
tPCLK < (tLOW - tfilters)/4,
tPCLK < 4/3tSCL,
tI2CCLK < t高電位。 (1)
其中 tLOW 是低 SCL 電平的持續時間,tHIGH 是高 SCL 電平的持續時間
SCL等級;
tfilters – 啟用的類比和數位濾波器的總延遲。
數位濾波器延遲等於 DNF 位元值和 tI2CCLK 的乘積。
tSCL – SCL 週期。
模式選擇
此介面可以在四種模式下運作:
- 從發射機;
- 從屬接收器;
- 主發射機;
- 領先的接收器。
預設情況下,選擇“從機”模式。自動介面
當它產生時從“從”模式切換到“主”模式
匯流排上的 START 和從「主」模式到「從」模式的組合,
仲裁失敗或在匯流排上產生 STOP 組合。
在主模式下,介面啟動資料傳輸並生成
時脈訊號。傳輸以 START 組合開始並結束
組合停止。產生「主」模式下的兩種組合
程式。
在從模式下,介面識別自己的位址(7 或 10 位元)並
通用呼叫地址。所有呼叫位址識別可能已停用
程式。
資料和位址依照 8 位元最高有效位元優先 (MSB) 進行傳輸。第一個
START 組合後面的位元組包含位址(7 位元中的一個位元組
模式,兩個 - 10 位元)。此位址僅在“主”模式下由介面傳輸。
56
在八個資料時鐘週期後的第九個時鐘週期內,接收器必須
向傳送器傳送確認 (ACK),如圖 23 所示。
圖 23 – 幀格式
確認可能會被程式阻止。介面位址
由程式選擇。
初始化和軟復位
圖 24 顯示了 I2C 初始化演演算法。
此介面由 CR1 暫存器中的 PE 位元啟用。
透過清除 CR1 暫存器中的 PE 位元來執行軟重設。同時
SCL和SDA線被釋放,內部狀態和控制位
連線後,狀態將重設為初始狀態。
重設清單:
暫存器CR2:START、STOP、NACK;
– ISR暫存器:BUSY、TXE、TXIS、RXNE、ADDR、NACKF、TCR、TC、STOPF、
貝爾、阿洛、OVR。
PE 位元必須處於「0」狀態至少三個 APB 時鐘才能
執行重置。
噪音過濾器
如果需要使用雜訊濾波器,必須在使用前進行配置
啟用該介面。
如果類比濾波器應用於 SDA 和 SCL 輸入,那麼它們的狀態
您可以控制 CR1 暫存器中的 ANFOFF 位元。
57
當數位濾波器開啟時,SDA和SCL線的內部狀態
只有當它們在超過 DNF 週期內保持穩定時才會發生變化
I2CCLK。
圖 24 – I2C 初始化
名稱
引數
標準模式(Sm)
快速模式 (Fm)
增強型快速模式 (Fm+)
單位變更
分鐘。
最大限度。
分鐘。
最大限度。
分鐘。
最大限度。
tHD;DAT
資料保持時間
0
–
0
–
0
–
米克斯
電視大學;資料
有效資料持續時間
–
3.45
–
0.9
–
0.45
米克斯
tSU;資料
資料預設時長
250
–
100
–
50
–
奈秒
t
訊號SDA、SCL的上升時間
–
1000
–
300
–
120
奈秒
tf
SDA、SCL 訊號的衰減持續時間
–
300
–
300
–
120
奈秒
58
時間限制
表 26 所給的時間限制值必須
配置為保證模式下的預設和資料保留
領導者和追隨者。它們由 PRESC[3:0]、SCLDEL[3:0] 和
Timingr 暫存器中的 SDADEL[3:0]。時序限制如圖 25 所示。
註:在偵測到 SCL 下降沿後的每個時脈週期,前導和
從機保持 SCL 低電平至少 [(SDADEL +
SCLDEL + 1) x (PRESC + 1) + 1] x tI2CCLK(傳送和接收模式下)。處於模式中
傳送,如果計數結束時資料沒有寫入TXDR暫存器
SDADEL,介面保持SCL,直到資料寫入暫存器。發出後
最高有效位元連線到 SDA 線,SCL 保持低電平直到計數結束
SCLDEL。
如果在從模式下 NOSTRETCH=1,則不保持 SCL。
因此,必須對 SDADEL 進行程式設計以確保
資料預設時間。
當介面啟用時,不允許更改延遲設定。
在啟用介面之前也必須配置 NOSTRETCH 模式。
當介面啟用時,不允許更改 NOSTRETCH。
表 2 6 - I2C 匯流排時序規範
59
圖 25 – 時間限制
資料保持時間
當在 SCL 線上偵測到下降時,SDA 上的資料從
延遲根據公式(2):
tSDADEL = SDADEL x tPRESC + tI2CCLK,(2)
60
其中 tPRESC = (PRESC+1) x tI2CCLK。
tSDADEL 影響保留時間 tHD;DAT。
SDA線上的總延遲值由公式(3)決定:
tSYNC1 + {[SDADEL x (PRESC+1) + 1] x tI2CCLK} (3)
tSYNC1 的持續時間取決於引數:
- SCL下降斜率;
- 模擬雜訊濾波器的延遲(如果啟用)(tAF(min) < tAF <
tAF(最大)奈秒);
– 數位雜訊濾波器的延遲(如果啟用)(tDNF = DNF x
tI2CCLK);
- I2CCLK 域中 SCL 同步的延遲(2 – 3 個 I2CCLK 週期)。
必須定義 SDADEL 的值,以便滿足
式(4)和(5)。
{tf(最大)+ tHD;DAT(最小值)– tAF(最小值)–[(DNF + 3) x tI2CCLK]} / {(PRESC + 1) x
tI2CCLK} ≤ SDADEL
(4)
SDADEL ≤ {tHD;DAT(最大)– tAF(最大)– [(DNF + 4) x tI2CCLK]} /
/{(PRESC + 1) x tI2CCLK }
(5)
如果使用類比濾波器,則套用 tAF(最大值)和 tAF(最小值)。
如果裝置未延長 SCL 時脈訊號,則適用。
否則,必須在裝置釋放 SCL 之前預設資料。
註 – 當 NOSTRETCH = 0 時,可能會違反該條件,因為
此元件延長了低 SCL 電平以確保時間合規性
預設值SCLDEL。
資料預設時長
延遲 tSDADEL 或傳送資料後,以防從站必須
由於 TXDR 暫存器、SCL 線中遺失資料而導致拉伸時脈訊號
在預設時間(tSU;DAT)期間保持低電平,根據
式(6):
tSCLDEL = (SCLDEL+1) x tPRESC (6)
其中 tPRESC = (PRESC+1) x tI2CCLK;
tSCLDEL 影響預設時間 tSU;DAT。
SCLDEL 必須根據公式 (7) 進行程式設計:
61
{[tr(最大值)+ tSU;DAT(最小值)] / [(PRESC + 1) x tI2CCLK]} – 1 ≤ SCLDEL (7)
「主」模式下 SCL 的形成
此外,在「主」模式下,SCL 階段的持續時間必須為
透過 TIMINGR 暫存器中的 PRESC[3:0]、SCLH[7:0] 和 SCLL[7:0] 位元進行設定:
- 偵測到 SCL 下降後,在釋放 SCL 輸出之前,插入
根據式(8)延遲:
tSCLL = (SCLL+1) x tPRESC (8)
其中 tPRESC = (PRESC+1) x tI2CCLK;
tSCLL 影響 tLOW。
- 偵測到 SCL 邊緣後,將 SCL 輸出拉至
低電位時,按式(9)插入延時:
tSCLH = (SCLH+1) x tPRESC (9)
其中 tPRESC = (PRESC+1) x tI2CCLK;
tSCLH 影響 tHIGH。
資料傳輸
傳輸是透過傳送和接收緩衝暫存器進行的
移位暫存器
接待處
移位暫存器充滿來自 SDA 輸入的資料。第八次衝動之後
在 SCL 上,如果移位暫存器的內容被寫入 RXDR 暫存器
空閒(位 RXNE=0)。如果RXNE=1,即先前接收到的資料不是
減去後,SCL 線保持低電平,直到讀取 RXDR。
保持在第八個和第九個脈衝之間進行,如圖所示
圖 26.
62
圖 26 – 接收資料
派遣
如果 TXDR 暫存器已滿(TXE=0 位元),則其內容被寫入
SCL 線上的第九個脈衝(ACK 確認週期)後移位暫存器。
然後移位暫存器的內容被推送到 SDA 線上。如果TXE位=1,則
沒有資料寫入 TXDR 暫存器,則 SCL 線保持低電平,
直到資料寫入 TXDR 暫存器。保留是在之後進行的
SCL 上的第九個脈衝,如圖 27 所示。
圖 27 – 傳送資料
63
硬體傳輸控制
此介面有一個位元組計數器來組織資料傳輸和關閉
連線方式有以下幾種:
- 在「主」模式下發出 NACK、STOP 和 ReSTART 組合;
- 在「從」模式下的 ACK 控制。
位元組計數器始終在主模式下使用。預設情況下它
鎖定在從模式下,但可以透過將該位元設為 1 來解鎖
SBC 位於暫存器 CR2 中。
要傳輸的位元組數在位元 NBYTES[7:0] 中程式設計
註冊CR2。如果位元組數大於 255 或接收方想要
監視接收到的資料位元組的確認位元(ACK)的值,然後
過載模式必須由 CR2 暫存器中的 RELOAD 位元啟動。在這個
模式下,TCR 標誌被置位並且如果 TCIE 位元被置位則產生中斷,
當 NBYTES 中程式設計的位元組數已傳送時。 TCR標誌
當非零值寫入 NBYTES 時,由程式重設。
當最後一個位元組數寫入 NBYTES 時,RELOAD 標誌
必須重置。
如果 RELOAD = 0,則計數器可用於兩種模式:
– 自動結束(暫存器 CR2 中的 AUTOEND = 1) – 主控
當所有傳輸完成時自動傳送停止狀態
NBYTES 中指定的資料;
– 軟體結束(暫存器 CR2 中的 AUTOEND = 0) – 完成時
傳輸 NBYTES 中指定的所有資料,TC 標誌被設定並且
如果 TCIE 位元被置位並且需要回應,則會產生中斷
程式。當 START 或 STOP 位元被清除時,TC 標誌會被程式清除。
CR2暫存器中的值被設定為「1」。應該使用這個模式
當主機想要傳送 RESTART 組合。
如果 RELOAD 位元被置位,則 AUTOEND 位元無效。表27
介紹了 SBC、RELOAD 和 AUTOEND 位元傳輸的硬體控制。
模式
單板計算機位
重新載入位
自動結束位
主 Tx/Rx NBYTES + STOP
x
0
1
主 Tx/Rx + NBYTES + 重啟
x
0
0
從機 Tx/Rx 所有接收到的位元組均已確認
0
x
x
帶確認控制的 Rx 從機
1
1
x
64
表 27 – 硬體傳輸控制
I2C從機模式
從機初始化
為了使介面工作在「從」模式下,您至少需要啟用
一個從機地址。兩個暫存器OAR1和OAR2可用於程式設計
從機自己的地址OA1和OA2。
- OA1 可配置為 7 位元模式(預設)或 10 位元模式
位,必須設定 OAR1 暫存器中的 OA1MODE 位元。
如果暫存器中的 OA1EN 位元被置位,則可以使用 OA1
OAR1。
- 如果需要,可以設定額外的 OA2 從機位址。
OA2 低 7 位元的遮蔽可以透過 OA2MSK[2:0] 位元進行配置
在暫存器 OAR2 中。因此,當 OA2MSK 值從 1 到 6 時,僅
OA2[7:2]、OA2[7:3]、OA2[7:4]、OA2[7:5]、OA2[7:6] 或 OA2[7] 與
收到的地址。如果 OA2MSK 不等於“0”,則 OA2 不與
保留地址(0b0000XXX 和 0b1111XXX),它們不是
被確認(ACK)。如果 OA2MSK=7,則所有 7 位元位址
已確認(保留的除外)。 OA2 位址始終為 7-
一點。
- 若特殊允許,則確認保留位址
位元並與 OAR1 暫存器或 OAR2 暫存器一起程式設計
位元 OA2MSK=0。
- 如果暫存器中的 OA2EN 位元被置位,則允許使用 OA2
OAR2。
- 透過設定 CR1 暫存器中的 GCEN 位元來啟用廣播呼叫位址。
65
如果介面被這些允許的位址之一選擇,則設定該標誌
ADDR 狀態並在 ADDRIE 位置位元時產生中斷。
預設情況下,從機在啟動時使用 SCL 保持低電平
程式必須能夠完成必要的操作。如果領導
不支援SCL保持,介面必須配置
暫存器 CR1 中的 NOSTRETCH=1。
收到ADDR中斷後,如果啟用多個位址,
使用者必須減去 ISR 暫存器中的 ADDCODE[6:0] 位元才能找到
呼叫哪個地址。還必須分析 DIR 標誌以找出
傳輸方向。
SCL 由從機保持 (NOSTRETCH=0)
預設情況下,從機在以下情況下保持 SCL:
當 ADDR 標誌置位時:接收到的位址對應於下列之一
允許的從機位址。該保持由程式終止
ADDR標誌重設後,ADDRCF位置1;
在傳送過程中,如果先前的資料傳送完成並且有新的資料
資料未寫入 TXDR 暫存器或資料的第一個位元組未寫入時
ADDR 標誌被清除(TXE=1)。此保留在錄音後結束
資料到TXDR暫存器;
- 接收期間,如果 RXDR 暫存器尚未被讀出並接收新的
資料完成。從暫存器讀取後此保持結束
RXDR;
– 在 SBC 模式或重設模式下,當 TCR 位元=1 時(SBC=1 且
RELOAD=1),即最後一個位元組的資料已傳輸完畢。這是一個持有
透過向位元寫入非零值來清除 TCR 位元後終止
NBYTES[7:0];
- 偵測到 SCL 下降後,介面將保持 SCL 線
[(SDADEL+SCLDEL+1) x (PRESC+1) + 1] x tI2CCLK。
沒有 SCL 保持的從站 (NOSTRETCH=1)
當暫存器 CR1 中的 NOSTRETCH=1 時,介面不會將 SCL 保持為低電平
等級:
66
- 當 ADDR 標誌置位時,SCL 不保持;
- 傳送期間,資料必須在第一個脈衝之前寫入TXDR
SCL對應他們的提交。否則就會出現資料缺失、
ISR 暫存器中的 OVR 標誌會被置位,並且如果滿足以下條件則產生中斷:
暫存器 CR1 中的 ERRIE 位元被置位。當以下情況時,OVR 標誌也會升起:
資料的第一位傳輸開始,並且 STOPF 標誌仍然置位(以
仍未重置);
- 接收期間,必須從 RXDR 暫存器中減去資料至第九位
下一個資料位元組的 SCL 脈衝(ACK 位元)。否則會發生
資料溢位並且 ISR 暫存器中的 OVR 標誌被置位並產生
如果 CR1 暫存器中的 ERRIE 位元被置位,則中斷。
從站通訊控制 (SBC)
為了允許從機在接收期間控制ACK位,它必須是
透過設定 CR1 暫存器中的 SBC 位元來啟用資料傳輸控制模式。
若要在從機接收模式下啟用 ACK 監控,必須選擇
重新啟動模式(RELOAD = 1)。控制每個位元組,NBYTES位
應在 ADDR 中斷處理程式中初始化為 0x1,且
收到每個位元組後用 0x1 重寫它們。當接收到位元組時,
TCR 標誌已啟用,SCL 保持在第八個和第九個脈衝之間。
使用者可以將RXDR暫存器中的資料減去然後決定是否確認
是否可以透過配置 CR2 暫存器中的 ACK 位元來實現。 SCL 保持結束
透過向 NBYTES 寫入一個非零值,傳送一個確認位元並
可以接收下一個位元組。
在這種情況下,可以將大於 0x1 的值載入到 NBYTES 中
接收過程持續進行,直到接收到 NBYTES 位元組的資料。
當介面被鎖定或
從機未定址,或當 ADDR = 1 時。
當 ADDR = 1 或 TCR = 1 時,可以變更 RELOAD 位元。
SBC 模式與 NOSTRETCH 模式不相容。
「從機」模式下的 I2C 初始化演演算法如圖 28 所示。
67
圖 28 - 初始化「從機」模式
從機模式傳輸
TXDR 暫存器釋放後,TXIS 中斷狀態標誌位元被置位。
如果透過 CR1 暫存器中的 TXIE 位元啟用,則會產生中斷。旗幟
將要傳送的資料寫入 TXDR 暫存器後,TXIS 重設。
68
如果沒有收到資料確認(NACK),則 NACKF 標誌
ISR 狀態暫存器,如果由 NACKIE 位元啟用則產生中斷
在暫存器CR1中。從機自動釋放 SDA 和 SCL 線以允許
演示者傳送“停止”或“重新啟動”組合的能力。 TXIS 標誌不是
收到 NACK 後就武裝起來。
如果接收到 STOP 組合並且 CR1 暫存器中的 STOPIE 位元被置位,則
ISR 暫存器中的 STOPF 標誌被置位,並產生中斷(圖 31)。
在大多數應用程式中,SBC 位元設定為“0”。在這種情況下,
如果接收從機位址(ADDR=1)時TXE標誌=0,使用者可以
決定將 TXDR 暫存器的內容作為資料的第一個位元組傳送,或者
透過向 TXE 位元寫入「1」來重置其內容以啟動該過程
寫入一個位元組的資料。
從機傳輸控制模式(SBC=1)下,位元組數為
透過匹配從機位址在中斷處理程式中對傳輸進行程式設計
(地址=1)。在這種情況下,TXIS中斷觸發的次數對應於
以 NBYTES 寫入的值。
當 NOSTRETCH=1 時,在 ADDR 標誌置位時不保持 SCL,且
使用者無法在中斷處理程式中重設 TXDR 暫存器的內容
透過匹配從機位址來寫入資料的第一個位元組。第一個位元組
要傳送的資料必須提前記錄:
– 當處理最後一個 TXIS 中斷時,可以寫入該位元組
前一個傳輸週期;
- 如果不打算傳送該資料,則可以將 TXDR 暫存器設定為
透過寫入 TXE 位元來清零以啟動寫入新的資料位元組。
STOPF 標誌必須在指定的操作之後才清除,以便
在開始傳輸第一個資料之前保證它們的實現,如下
用於地址確認(ACK);
- 如果在資料傳輸開始時 STOPF 標誌仍然置位,
由於程式未完全完成而發生錯誤(標誌被設定)
OVR);
- 如果需要 TXIS 事件(導致傳輸中斷或
透過 DMA 的資料請求),使用者可以設定 TXIS 位元
除了 TXE 位元之外,還可以產生 TXIS 事件。
69
圖 29、30 顯示了「從」模式下的傳輸演演算法,其中
NOSTRETCH 位元的不同值。
圖 29 - “從”模式下的傳輸演演算法,其中 NOSTRETCH = 0
70
圖 30 - 在「從機」模式下的傳輸演演算法,當
鼻拉伸 = 1
71
圖 31 – 資料傳輸期間的 I2C 匯流排狀態圖和事件
從機模式
72
「從」模式下的接收
圖 32、33 顯示了「從」模式下的接收演演算法,其中
NOSTRETCH 位元的不同值。
圖 32 - “從”模式下的接收演演算法,其中
鼻拉伸 = 0
73
圖 33 - “從”模式下的接收演演算法,其中
鼻拉伸 = 1
當 RXDR 緩衝區已滿時,ISR 暫存器中的 RXNE 標誌被置位,並且
如果透過 CR1 暫存器中的 RXIE 位元使能,則會產生中斷。重置
標誌在讀取 RXDR 暫存器後發生。
如果接收到 STOP 組合並且 CR1 暫存器中的 STOPIE 位元被置位,則
ISR 暫存器中的 STOPF 標誌被置位,並產生中斷(圖 34)。
74
圖 34 – 接收資料時的 I2C 匯流排狀態圖和事件
從機模式
75
I2C主模式
主控初始化
在啟用介面之前,必須配置SCL位元時鐘
TIMINGR 暫存器中的 SCLH 和 SCLL。
支援多主匯流排拓撲和時脈保持
signal(以下簡稱TS),從機實現TS同步機制:
- TC 低電平的持續時間由 SCLL 計數器計數,從
內部低SCL偵測時刻;
- 高TC電平的持續時間由SCLH計數器計數,從
內部偵測到高 SCL 電平的時刻。
此介面偵測到低 SCL 電平,tSYNC1 延遲取決於
SCL 衰減的持續時間、噪音濾波器的特性和設定(類似於
260 ns 和數字 – DNF x tI2CCLK),以及 I2CCLK 域中的 SCL 同步(2-3 個週期
I2CCLK)。當 SCLL 計數器達到時,介面將 SCL 釋放為高電平
TIMENGR 暫存器中 SCLL[7:0] 位元指定的值。
此介面偵測到高 SCL 電平,tSYNC2 延遲取決於
SCL 上升時間、雜訊濾波器的特性和設定(數位 - DNF
x tI2CCLK),以及 I2CCLK 域中的 SCL 同步(2-3 個 I2CCLK 週期)。介面
當 SCLH 計數器達到設定值時將 SCL 拉低
位於 TIMINGR 暫存器的 SCLH[7:0] 位元中(圖 35)。
因此,SCL週期由公式(10)決定:
tSCL = tSYNC1 + tSYNC2 + {[(SCLH+1) + (SCLL+1)] x (PRESC+1) x tI2CCLK} (10)
名稱
引數
標準模式(Sm)
快速模式 (Fm)
增強型快速模式 (Fm+)
單位變更
分鐘。
最大限度。
分鐘。
最大限度。
分鐘。
最大限度。
sCL
SCL頻率
–
100
–
400
–
1000
千赫茲
tHD;STA
保持(重複)START狀態的持續時間
4.0
–
0.6
–
0.26
–
mks。
tSU;STA
預設狀態 START 的持續時間
4.7
–
0.6
–
0.26
–
mks。
76
圖 35 – “主”模式下 SCL 時脈訊號的形成
表 28 - I2C 匯流排時序規範
名稱
引數
標準模式(Sm)
快速模式 (Fm)
增強型快速模式 (Fm+)
單位變更
分鐘。
最大限度。
分鐘。
最大限度。
分鐘。
最大限度。
tSU;STO
STOP狀態預設持續時間
4.0
–
0.6
–
0.26
–
mks。
緩衝緩衝區
停止和啟動狀態之間的時間
4.7
–
1.3
–
0.5
–
mks。
低
暫停持續時間 SCL
4.7
–
1.3
–
0.5
–
mks。
高
脈衝持續時間SCL
4.0
–
0.6
–
0.26
–
mks。
t
訊號SDA、SCL的上升時間
–
1000
–
300
–
120
ns。
tf
SDA、SCL 訊號的衰減持續時間
–
300
–
300
–
120
ns。
77
SCLL 值也用於產生 tBUF 和 tSU:STA 延遲。
tBUF – 停止和啟動之間的時間。
SCLH 值也用於產生延遲 tHD:STA 和 tSU:STO。
由主機進行連線初始化(位址階段)
在連線之前,必須配置暫存器CR2:
- 定址模式(7 或 10 位元)ADD10;
- 從機位址SADD[9:0];
- 傳輸方向RD_WRN;
- 如果從具有 10 位元位址的從機讀取,則為 HEAD10R 位元。少量
HEAD10R 導致整個位址或僅在以下情況下傳送標頭
改變方向;
- 傳送 NBYTES[7:0] 的位元組數。如果位元組數是
或大於255,NBYTES[7:0]必須先寫入0xFF。
然後使用者設定暫存器 CR2 中的 START 位元。之後
不允許更改上述位元。
然後,在偵測到閒置匯流排(BUSY=0)並延遲 tBUF 後,主機
自動傳送 START 組合,後面跟著從機地址。
78
如果仲裁失敗,演示者會自動切換到
如果它被定址為從機,則可以確認其位址。
註 – START 位元在遺失時由硬體重設
仲裁或從機位址傳送後,無論該位的值為何
確認(ACK/NACK)。
在 10 位元位址模式下,如果從機位址的前 7 位元不是
被從機確認(NACK),主機自動重新傳送位址,
直到收到 ACK。在這種情況下,如果收到 NACK,則必須有
ADDRCF 標誌設定為停止傳送從機位址。
如果在 START 位元為 1 時介面被定址為從機 (ADDR = 1),則它
切換到從機模式,設定標誌後,START 位元被重置
地址CF。
相同的過程適用於 RESTART 組合。在這個
情況 BUSY=1。
「主」模式下的 I2C 初始化演演算法如圖 36 所示。
圖 36 – 主模式下的初始化
79
主站接收初始化,從站定址,10 位元:
- 如果從機位址是10位,那麼使用者可以傳送完整的
透過清除暫存器 CR2 中的 HEAD10R 位元來讀取序列。安裝後
START 位,主機將自動傳送序列:(Re)Start +
帶寫入的 10 位元從機位址標頭 + 從機位址的第二個位元組 +
重新啟動 + 10 位元從機位址標頭並進行讀取(圖 37);
- 如果主機使用 10 位元位址對從機進行定址,則向其傳送
資料,然後從同一個從機讀取資料,然後程式完成後
傳送時,重新啟動過程以 HEAD10R=1 位元開始。在這個
在這種情況下,傳送的序列將是:ReStart +
具有讀取功能的標頭 10 位元從機位址(圖 38)。
圖 37 - 使用 HEAD10R = 0 定址從機 10 位元位址
圖 38 - 使用 HEAD10R = 1 定址從機 10 位元位址
主模式傳輸
傳送資料時,TXIS 標誌會在每個位元組傳送完成後置位。
如果收到確認 (ACK),則在九個 SCL 脈衝之後。中斷
如果 CR1 暫存器中的 TXIE 位元被置位,則產生該訊號。該標誌在之後重置
將下一個位元組的資料寫入 TXDR 暫存器。
TXIS 事件的數量對應於記錄的數量
NBYTES[7:0]。如果需要傳送超過255個位元組,則必須設定該位
重新載入暫存器 CR2。在這種情況下,傳送NBYTES資料後,
80
TCR 標誌和 SCL 線保持低電平,直到 NBYTES[7:0]
寫入非零值。
圖 39、40 顯示了「主」模式下的傳輸演演算法,其中
傳輸的位元組數不同。
除非收到確認 (NACK),否則不會設定 TXIS 標誌。
如果 RELOAD = 0,則傳輸資料:
- 自動完成 (AUTOEND = 1),傳送 STOP 組合
自動;
- 程式完成(AUTOEND = 0),TC 標誌被置位,並且 SCL 線
為程式執行以下操作而保留:
可以透過設定該位元來請求 RESTART 組合
在暫存器 CR2 中啟動並正確設定從機位址和位元組數
用於轉移。設定 START 位元會重設 TC 標誌,且 START 組合
透過匯流排傳輸;
可以透過設定 STOP 位元來請求 STOP 組合
註冊CR2。設定 STOP 位元會重置 TC 標誌,並且 STOP 組合
透過公共汽車傳送。
如果未收到確認 (NACK):TXIE 標誌未設定且組合
收到 NACK 後自動傳送 STOP。 NACKF 標誌在
如果 NACKIE 位置 1,則暫存器 ISR 會產生中斷(圖 41)。
81
圖 39 – N≤255 位元組的主模式傳輸
82
圖 40 - N>255 位元組的主模式傳輸
83
圖 41 – 到主站的資料傳輸
在「主」模式下的接收
在資料接收的情況下,RXNE 標誌在接收到每個位元組後都會設定
第八個脈衝 SCL。事件 RXNE 如果設定則產生中斷
暫存器 CR1 中的 RXIE 位元。從 RXDR 暫存器讀取後,該標誌會被清除。
如果要接收的總位元組數大於 255,則設定該位
重新載入暫存器 CR2。在這種情況下,傳輸完所有NBYTES資料後,
84
設定 TCR 標誌並保持 SCL 線,直到寫入 NBYTES[7:0]
非零值。
如果 RELOAD = 0 且傳送 NBYTES[7:0] 資料位元組:
- 具有自動完成(AUTOEND = 1)、NACK 和 STOP 組合
收到最後一個位元組後自動傳送;
- 程式終止(AUTOEND = 0)時,傳送 NACK
收到最後一個位元組後,TC 標誌和 SCL 線自動設定
供程式執行以下操作(圖 44):
可以透過設定該位元來請求 RESTART 組合
在暫存器 CR2 中啟動並正確設定從機位址和位元組數
用於轉移。設定 START 位元會重設 TC 標誌,且 START 和 的組合
從機地址透過匯流排傳輸;
可以透過設定 STOP 位元來請求 STOP 組合
註冊CR2。設定 STOP 位元會重置 TC 標誌,並且 STOP 組合
透過匯流排傳輸。
圖 42、43 顯示了「主」模式下的接收演演算法,其中
傳輸的位元組數不同。
85
圖 42 - “主”模式下 N≤255 位元組的接收
86
圖 43 - “主”模式下的接收,N>255 位元組
87
圖 44 – 主站接收資料
錯誤
匯流排錯誤(BERR)
匯流排上出現 START 或 STOP 組合後,
九個 SCL 週期後匯流排上沒有發生任何變化,定義為錯誤
88
輪胎。 START 或 STOP 組合改變 SDA 電平,而 SCL
處於高水準狀態。
僅當介面啟用傳輸時,才會設定匯流排錯誤標誌。
作為主機或定址從機(例如不在定址階段
從機模式)。
如果在 START 或 RESTART 匯流排上出現錯誤識別
從裝置,介面進入確定位址的階段,如正確的情況
開始事件。
當匯流排錯誤發生時,ISR 暫存器中的 BERR 標誌會被置位,
如果 CR1 暫存器中的 ERRIE 位元被置位,則會產生中斷。
仲裁損失 (ARLO)
當 SDA 線設定為
高電平,低電平記錄在 SCL 邊緣:
- 在「主」模式下,仲裁失敗在地址階段確定,在階段
資料和資料確認階段。在這種情況下,SDA 和 SCL 線
被釋放,START 位元被硬體重位,主元件切換到
「從」模式;
- 在「從」模式下,仲裁遺失在資料階段確定,並且
資料確認。在這種情況下,傳輸停止,SDA 和 SCL 線
被釋放。
如果仲裁失敗,則在 ISR 暫存器中設定 ARLO 標誌
如果 CR1 暫存器中的 ERRIE 位元被置位,則產生中斷。
過載/欠載錯誤 (OVR)
當 NOSTRETCH=1 且滿足下列條件時,在從模式下偵測到 OVR 錯誤:
- 接收期間,接收到新位元組,但 RXDR 仍未讀取。新
接收到的位元組將被忽略,並且 NACK 將自動傳送為
回答它;
- 出貨期間:
當 STOPF = 1 且必須傳送資料的第一個位元組。
如果 TXE = 0,則傳送 TXDR 暫存器的內容,否則為 0xFF;
必須傳送一個新位元組,而 TXDR 暫存器仍未傳送
寫入,傳送0xFF。
89
如果發生 OVR 錯誤,則會在 ISR 暫存器中設定並產生 OVR 標誌。
如果 CR1 暫存器中的 ERRIE 位元被置位,則中斷。
DMA 請求
使用 DMA 傳輸
要使用 DMA(直接記憶體存取)傳輸資料,您需要
設定 CR1 暫存器中的 TXDMAEN 位元。來自配置為的記憶體區域的資料
由 DMA 控制器使用,每次都會載入到 TXDR 暫存器中
TXIS 標誌已設定。
使用 DMA,僅傳輸資料:
在「主機」模式下,初始化、設定從機位址、
傳輸方向、位元組數和起始位元由程式記錄。乙
如果所有資料都使用DMA傳輸,則必須在之前進行配置
設定起始位元。傳輸結束由NBYTES計數器決定;
- 在「從」模式下:
如果 NOSTRETCH=0 且所有資料都使用傳輸
DMA,必須配置它直到匯流排上的位址與
內部位址或 ADDR 中斷處理程式中,直到 ADDR 標誌重設;
如果 NOSTRETCH=1,則必須配置 DMA,直到
匯流排上的位址與內部位址相符。
注意:當使用DMA進行資料傳輸時,不需要
透過 TXIE 位元使能中斷。
使用 DMA 接收
要使用 DMA(直接記憶體存取)接收資料,您需要
設定 CR1 暫存器中的 RXDMAEN 位元。 來自 RXDR 暫存器的資料被載入到
配置為供週邊使用 DMA 的記憶體區域
RXNE 標誌豎起。
使用 DMA,僅傳輸資料:
在「主機」模式下,初始化、設定從機位址、
傳輸方向、位元組數和起始位元由程式記錄。乙
如果所有資料都使用DMA傳輸,則必須在之前進行配置
設定起始位元。傳輸結束由NBYTES計數器決定;
模式
描述
夢想
無效果 I2C 中斷將裝置從睡眠狀態喚醒
停止
I2C 暫存器中的資料被保留
等待
I2C 週邊已停用,退出模式後必須重新初始化
中斷事件
事件標誌
清洗方法
檢查位
接收緩衝區已滿
RXNE
讀取 RXDR 暫存器
接收IE
傳輸緩衝區狀態
TXIS
寫TXDR暫存器
TXIE
線上停止檢測
停止法
記錄STOPCF=1
停止派
傳輸結束 RELOAD=1
TCR
寫入 CR2 且 NBYTES[7:0]≠0
TCIE
傳輸結束
TC
寫入 START=1 或 STOP=1
接收到的地址與OA1、OA2自身地址一致
地址
寫入ADDRCF=1
地址
未收到確認 (NACK)
NACKF
記錄NACKCF=1
納奇
90
- 在從機模式下,如果 NOSTRETCH=0 且所有資料均從
使用DMA,必須配置直到位址匹配
具有內部位址的匯流排或在 ADDR 中斷處理程式中,直到標誌重設
地址。
注意 – 當使用 DMA 接收資料時,不需要
透過 RXIE 位元使能中斷。
I2C 低功耗模式
I2C 低功耗模式如表 29 所示。
表 29 – I2C 低功耗模式
I2C 中斷
I2C 中斷如表 30 所示。
表 30 – I2C 中斷
中斷事件
事件標誌
清洗方法
檢查位
匯流排錯誤
誤位元速率
記錄BERRCF=1
艾莉
仲裁損失
阿羅
寫入ARLOCF=1
上/下
開放式VR
寫入 OVRCF=1
91
要啟用 I2C 中斷,您需要:
- 配置並啟動NVIC中的I2C通道;
- 配置 I2C 以產生中斷。
圖 45 顯示了 I2C 中斷產生電路。
圖 45 – 中斷產生電路
I2C暫存器
I2C 模組暫存器如表 31 所示。
名稱
偏移量
初始值
註冊
訪問
CR1
0x00
0x0
控制暫存器1
RW
CR2
0x04
0x0
控制暫存器2
RW
奧氏體1
0x08
0x0
地址暫存器1
RW
奧阿2
0x0C
0x0
地址暫存器2
RW
計時
0x10
0x0
時序限制設定暫存器
RW
保留
0x14
0x0
保留
R.O.
情報監視與偵察
0x18
0x0
中斷標誌暫存器
RW
ICR
0x1C
0x0
中斷標誌重設暫存器
RW
接收資料暫存器
0x20
0x0
接收資料暫存器
RW
TXDR
0x24
0x0
傳輸資料暫存器
RW
名稱
排名
初始值
目的
訪問
保留
31:20
保留
GCEN
19
0x0
通用呼叫位址解析:0——位址0b00000000被禁止,產生NACK;1 – 允許位址 0b00000000,產生 ACK
RW
保留
18
保留
92
表 31 – I2C 模組暫存器
暫存器以字(32 位元)形式存取。暫存器欄位
列於表 32 – 40 中。
控制暫存器 1 (CR1)
表 32 顯示了 CR1 控制暫存器的欄位。
表 32 – 控制暫存器 1 (CR1)
名稱
排名
初始值
目的
訪問
鼻拉伸
17 號
0x0
在「從」模式下停用時脈訊號拉伸: 0 – 拉伸處於活動狀態; 1 – 拉伸被停用 僅當模組關閉 (PE = 0) 時才允許更改值。在“主”模式下,該位元必須設定為“0”
RW
小型計算機公司
16
0x0
「從」模式下資料傳輸的硬體控制方式: 0——控制停用;1 – 控制啟用
RW
接收DMAEN
15
0x0
接收資料時的 DMA 支援模式: 0 – DMA 支援停用 1 – DMA 支援啟用
RW
TXDMAEN
14
0x0
資料傳輸的 DMA 支援模式: 0 – 停用 DMA 支援 1 – 啟用 DMA 支援
RW
保留
13
保留
安福夫
12
0x0
類比噪音濾波器控制:0 – 濾波器開啟 1 – 濾波器關閉
RW
地下城與勇士
11:8
0x0
數位雜訊濾波器控制:0b0000 – 數位濾波器停用; 0b0001 – 數位濾波器控制:0b0000 – 數位濾波器停用; 0b0001 – 數位濾波器控制:0b0000 – 數位濾波器停用;0b0001 – 數位濾波器設定為 1 個時脈 I2CCLK;0b0010 – 數位濾波器設定為 2 個時脈 I2CCLK; … 0b11111 – 數位濾波器設定為 2 個時脈 I2CCLK; … 0b1111 – 數位濾波器設定為 15 個時脈。
RW
93
名稱
排名
初始值
目的
訪問
艾莉
7
0x0
啟用錯誤中斷 觸發中斷的事件:仲裁遺失(ARLO); 匯流排錯誤(BERR);過載/欠載(OVR)。 0——中斷禁用;1 – 中斷使能
RW
TCIE
6
0x0
啟用傳輸結束中斷 造成中斷的事件:傳輸結束(TC); RELOAD=1 (TCR) 時傳輸結束。 0——中斷禁用;1 – 中斷使能
RW
停止派
5
0x0
線上啟用 STOP 偵測中斷:0 – 中斷停用;1 – 中斷啟用
RW
納奇
4
0x0
啟用中斷接收NACK:0——中斷禁止;1 – 中斷啟用
RW
地址
3
0x0
在「從」模式下啟用位址匹配中斷: 0 – 中斷停用;1 – 中斷啟用
RW
接收IE
2
0x0
接收中斷使能:0——中斷禁止;1 – 中斷啟用
RW
TXIE
1
0x0
使能傳輸中斷:0——中斷禁止;1 – 中斷啟用
RW
94
名稱
排名
初始值
目的
訪問
體育運動
0
0x0
介面控制:0——介面已停用;1 – 介面啟用 清除後,此位元必須在 APB 時脈訊號的至少三個週期內保持為“0”
RW
名稱
排名
初始值
目的
訪問
保留
31:26
保留
自動結束
25
0x0
「主」模式下自動終止模式的控制: 0 – 自動終止模式停用;1 – 自動終止模式已啟用。該位由程式設定和清除。 當設定 RELOAD 位元並且處於從機模式時並不重要
RW
重新載入
24
0x0
控制 NBYTES 重寫模式: 0 – 傳輸 NBYTES 資料位元組後交易完成(匯流排上預計有 STOP 或 RESTART);1 – 傳送 NBYTES 資料位元組後交易未完成(NBYTES 值將被覆寫) 此位元由程式設定和清除。
RW
NBYTES
23:16
0x0
用於接收/傳送的位元組數 當 SBC = 0 時,在「從」模式下無關緊要 當 START 位元被置位時不允許更改
RW
95
控制暫存器 2 (CR2)
表 33 顯示了 CR2 控制暫存器的欄位。
表 33 – 控制暫存器 2 (CR2)
名稱
排名
初始值
目的
訪問
不確認
15
0x0
在“從”模式下形成NACK。軟體置位,硬體重設:傳送NACK後; 透過公車上的 STOP 事件; 收到您的從屬位址後; PE = 0。 0——接收到目前位元組後傳送ACK;1 – 收到目前位元組後傳送 NACK
RW1S
停止
14
0x0
在“主”模式下形成STOP。由軟體置位,在匯流排上發生 STOP 事件或 PE = 0 時由硬體重設: 0 – 不產生 STOP; 1 – 當前位元組傳輸後形成 STOP。 向該位寫入“0”無效。
RW1S
開始
13
0x0
START 的形成。 由軟體置位,傳送位址後由硬體重位,仲裁失敗或PE=0:0——不產生START; 1 – 啟用 START 產生 向該位元寫入「0」無效。 在主機模式下,當收到 NACK 時,會重複傳送 10 位元位址的第一部分,直到收到 ACK 或透過寫入 ADDRCF 位元來清除 START 位
RW1S
96
名稱
排名
初始值
目的
訪問
頭10R
12
0x0
支援主機模式下的 10 位元位址,讀取: 0 – 主機傳送 10 位元位址的完整讀取序列:Start + 2 位元組位址(寫入) + ReStart + 10 位元位址頭(讀取);1 – 主機僅傳送 10 位元位址標頭(讀取)。 當 START=1 時不允許更改該位元。
RW
新增10
11
0x0
10 位元位址模式(「主機」模式): 0 – 主機工作在 7 位元位址模式; 1 – 主機工作在 10 位元位址模式。 當 START = 1 時不允許更改該位元。
RW
RD_WRN
10
0x0
傳輸方向(主模式):0 – 主裝置請求寫事務; 1 – 主裝置請求讀取事務。當 START = 1 時不允許更改該位元。
RW
薩德
9:8
0x0
從機位址(主機模式):在 7 位元位址模式(ADD10 = 0)下,這些位元的內容無關。 在 10 位元位址模式(ADD10 = 1)下,這些位元必須寫入從機位址的位元 9:8。 當 START = 1 時不允許更改這些位元。
RW
97
名稱
排名
初始值
目的
訪問
薩德
7:1
0x0
從機位址(主機模式):在 7 位元位址模式(ADD10 = 0)下,必須將從機位址的 7 位元寫入這些位元。 在 10 位元位址模式(ADD10 = 1)下,這些位元必須寫入從位址的位元 7:1。 當 START = 1 時不允許更改這些位元。
RW
薩德
0
0x0
從機位址(主機模式):在7位元位址模式(ADD10=0)下,該位元的內容無關緊要。 在 10 位元位址模式(ADD10=1)下,從機位址的位元 0 必須寫入該位元。 當 START=1 時不允許更改該位元。
RW
名稱
排名
初始值
目的
訪問
保留
31:16
保留
OA1EN
15
0x0
使用自己的OA1位址: 0 – 收到OA1位址時,產生NACK;1 – 收到 OA1 位址時,產生 ACK
RW
保留
14:11
保留
OA1模式
10
0x0
OA1 10位址模式:0 – OA1 – 7位元位址; 1 – OA1 – 10 位元位址 OA1EN=0 時允許位元更改
RW
98
自有位址暫存器 1 (OAR1)
表 34 顯示了 OAR1 暫存器的欄位。
表 34 – 自有位址暫存器 1 (OAR1)
名稱
排名
初始值
目的
訪問
OA1
9:8
0x0
自有位址1 7位址模式:不相關。 10 位元位址模式:位址位元 9:8。 OA1EN=0 時允許位元改變
RW
OA1
7:1
0x0
自身位址1 7位元位址模式:7位元位址。 10 位元位址模式:位址位元 7:1。 OA1EN=0 時允許位元改變
RW
OA1
0
0x0
自己的位址1 7位元位址模式:無所謂。 10 位元位址模式:位址位元 0。 OA1EN=0 時允許位元更改
RW
名稱
排名
初始值
目的
訪問
保留
31:16
保留
OA2EN
15
0x0
使用自己的 OA2 位址: 0 – 收到 OA2 位址時,產生 NACK; 1 – 收到 OA2 位址時,產生 ACK
RW
保留
14:11
保留
99
自有位址暫存器 2 (OAR2)
表 35 顯示了 OAR2 暫存器的欄位。
表 35 – 自有位址暫存器 2 (OAR2)
名稱
排名
初始值
目的
訪問
OA2MSK
10:8
0x0
OA2 位址遮罩: 0b000 – 無遮罩 0b001 – 僅比較 OA2[7:2];0b010 – 僅比較 OA2[7:3]; 0b011 – 僅比較 OA2[7:4]; 0b100 – 僅比較 OA2[7:4]; 0b110 – 僅比較 OA2[7]; 0b111 – OA2[7:1] 遮罩,確認所有 7 位元位址(保留位址除外) 如果 OA2MSK ≠ 0,則保留的 I2C 位址(0b0000xxx、0b11111xxx)不會被確認,即使位址符合位址。 當 OA2EN=0 時允許位元更改
RW
OA2
7:1
0x0
自己的 7 位元位址 2 位元在 OA2EN=0 時允許更改
RW
保留
0
保留
100
時間限制暫存器(TIMINGR)
表 36 顯示了 TIMINGR 暫存器的欄位。
必須在介面禁用(PE = 0)時配置此暫存器。
名稱
排名
初始值
目的
訪問
預科科學中心
31:28
0x0
頻率預分頻器 I2CCLK。用於計算預設、保持、低和高計數器使用的 tPRESC 值。 tPRESC = (PRESC+1) x tI2CCLK
RW
保留
27:24
保留
SCLDEL
23:20
0x0
資料預設持續時間 tSU;DAT。 SDA 變化和 SCL 邊緣之間的延遲。 tSCLDEL = (SCLDEL+1) x tPRESC 用於產生延遲 tSU:DAT
RW
史達德爾
19:16
0x0
資料預設持續時間tHD;DAT。 主從模式下,NOSTRETCH = 0 時,SCL 下降沿和 SDA 變化之間的延遲 tSCADEL = (SCADEL+1) x tPRESC 用於產生延遲 tHD:DAT
RW
SCLH
15:8
0x0
主模式下將 SCL 保持在邏輯「1」狀態的持續時間 tSCLH = (SCLH+1) x tPRESC 也用於產生延遲 tHD:STA 和 tSU:STO
RW
小細胞肺癌
7:0
0x0
主模式下將 SCL 保持在邏輯「0」狀態的持續時間 tSCLL = (SCLL+1) x tPRESC 也用於產生延遲 tBUF 和 tSU:STA
RW
101
表 36 – 時序限制暫存器 (TIMINGR)
名稱
排名
初始值
目的
訪問
保留
31:24
保留
新增程式碼
23:17
0x0
匹配地址的程式碼。 當位址匹配 (ADDR = 1) 時在從機模式下更新。 在 10 位元位址模式下,它包含一個標頭 (0b11110) 和位址的兩個最高有效位元。
R.O.
目錄
16
0x0
傳輸方向(從機模式)。位址匹配時更新(ADDR = 1): 0 – “記錄”傳輸型別,從機切換到接收模式;1 – “讀取”傳輸型別,從機切換到傳送器模式。
R.O.
忙
15
0x0
匯流排繁忙指示標誌。在匯流排上發生 START 事件後設定並在匯流排上發生 STOP 事件後復位
R.O.
保留
14:11
保留
開放式VR
10
0x0
溢位/欠載標誌(NOSTRETCH=1 時為從模式) 由硬體置位,由軟體設定 OVRCF 位元或當 PE=0 時由硬體清除。
R.O.
阿羅
9
0x0
仲裁失敗標誌。 由硬體置位,由軟體置位 ARLOCF 位或當 PE=0 時由硬體重設。
R.O.
102
中斷和狀態暫存器 (ISR)
表 37 顯示了 ISR 暫存器的欄位。
表 37 – 中斷和狀態暫存器 (ISR)
名稱
排名
初始值
目的
訪問
誤位元速率
8
0x0
匯流排錯誤標誌 如果介面參與傳輸,則在匯流排上偵測到不適當的 START 或 STOP 事件時,由硬體設定。從機模式下位址階段不設定。透過軟體設定 BERCF 位元或當 PE=0 時透過硬體重設。
R.O.
TCR
7
0x0
傳輸結束標誌(設定了 SBC 位元的主機或從機模式)。傳送 NBYTES 位元組後,當 RELOAD=1 時由硬體置位。 當 PE=0 時,透過向 NBYTES 寫入非零值或透過硬體進行重設。
R.O.
TC
6
0x0
傳輸結束標誌(主模式)。 傳輸 NBYTES 位元組後,當 RELOAD=0、AUTOEND=0 時由硬體置位。 透過軟體設定 START 或 STOP 位元或在 PE=0 時透過硬體重設。
R.O.
停止法
5
0x0
匯流排停止偵測標誌。 如果介面參與傳輸,則由硬體設定。 透過軟體設定 STOPCF 位元或當 PE=0 時透過硬體重設。
R.O.
NACKF
4
0x0
標記「未收到確認」(NACK)。 位元組傳輸後由硬體設定。 透過軟體設定 NACKCF 位元或在 PE = 0 時透過硬體重設。
R.O.
103
名稱
排名
初始值
目的
訪問
地址
3
0x0
地址匹配標誌(從模式)。 如果接收到的位址與 OAR1、OAR2 中允許的位址之一匹配,則由硬體設定。 透過軟體設定 ADDRCF 位元或在 PE = 0 時透過硬體重設。
R.O.
RXNE
2
0x0
標誌「接收資料緩衝區已滿」(接收模式)。 將接收到的資料寫入 RXDR 暫存器後由硬體置位。 當讀取 RXDR 時重設或 PE = 0 時由硬體重設。
R.O.
TXIS
1
0x0
傳送器中斷狀態。當 TXDR 暫存器為空且必須向其中寫入下一個資料位元組時,由硬體置位。 Reset by writing the next byte of data to the TXDR register or by hardware when PE = 0. This bit can only be set by software when NOSTRETCH = 1 to generate a TXIS event (resulting in: interrupt, when TX2 = 1, TXIS
RW1S
TXE
0
0x0
「傳送資料緩衝區」標誌 TXDR 為空(傳送模式)。 若緩衝區為空則由硬體置位;當PE=0時或透過軟體重設TXDR暫存器的內容。 透過將下一個位元組的資料寫入 TXDR 暫存器來重設。
RW1S
104
名稱
排名
初始值
目的
訪問
保留
31:11
保留
開放式VRCF
10
0x0
復位溢位/欠載中斷標誌
沃
ARLOCF
9
0x0
重置仲裁丟失標誌
沃
誤位元速率
8
0x0
重置匯流排錯誤標誌
沃
保留
7:6
保留
停止CF
5
0x0
重置匯流排上的 STOP 偵測標誌
沃
NACKCF
4
0x0
重置「未收到確認」(NACK) 標誌
沃
地址CF
3
0x0
重置地址匹配標誌
沃
保留
2:0
保留
名稱
排名
初始值
目的
訪問
保留
31:8
保留
傳送資料
7:0
0x0
接收資料緩衝區
R.O.
名稱
排名
初始值
目的
訪問
保留
31:8
保留
傳送資料
7:0
0x0
傳輸資料的緩衝區
RW
105
中斷復位暫存器(ICR)
表 38 顯示了 ISR 暫存器的欄位。每個標誌都被重置
將「1」寫入暫存器的對應位。
表 38 – 中斷重設暫存器 (ICR)
接收資料暫存器(RXDR)
表 39 顯示了 RXDR 暫存器的欄位。
表 39 – 接收資料暫存器(RXDR)
傳輸資料暫存器(TXDR)
表 40 顯示了 TXDR 暫存器的欄位。
表 40 – 傳輸資料暫存器(TXDR)
106
32位元定時器模組(TIMER32)
定時器模組基於32位元計數器,支援3個
計數模式 - 正向、反向和雙向,並具有四個 PWM 通道和
支援捕獲和比較模式(32_0定時器模組在沒有PWM和
捕獲/比較模式)。
定時器/計數器特點:
- 32位元三模式計數器;
- 32位元可程式時鐘分頻器;
- 四種型別的可遮蔽中斷(計數器溢位、計數器不足)
計數器、值捕獲、比較匹配);
- 從系統時脈頻率或外部時脈頻率進行計時的可能性
輸出;
- 四個獨立通道能夠在捕獲和比較模式下執行
或 PWM(對於 TIMER32_1、TIMER32_2)。
框圖如圖 46 所示。
32位
暫存器ICR_ch1
通道 2 Timer32_ch2 Int_OCR_ch2 Int_ICR_ch2 PWM_ch2
2
通道 3 Timer32_ch3 Int_OCR_ch3 Int_ICR_ch3 PWM_ch3
通道 4 Timer32_ch4 Int_OCR_ch4 Int_ICR_ch4 PWM_ch4
107
圖 46 - 32 位元定時器的內部結構
比較、捕捉、PWM 模組
PWM 模組提供了額外的定時器操作模式:
– 定時器 0 – 無需比較、捕捉、PWM 模式即可實現;
– 定時器 (1 – 2) – 比較、捕捉、PWM 模式。
32位元計數器
32位元TOP暫存器
計數模式
apb_時鐘
定時器32_Tx
OSC32K
時鐘
系統時鐘
訊息來源
分隔線
噪音_通道1
過濾器
噪音
定時器32_ch1
Int_ICR_ch1
32位元暫存器OCR_ch1
Int_OCR_ch11
PWM_INV_通道1
脈寬調製通道1
整數_UDF
整數_OVF
定時器_CFG
DMA請求
LSI32K
TIM1
TIM2
頻道1
108
每個通道都有自己的配置暫存器並且完全獨立
其他管道。使用暫存器配置通道
CHx_CNTRL(其中 x 是頻道號碼)。 比較值儲存在暫存器中
CHx_OCR。捕獲值儲存在 CHx_ICR 暫存器中。
要以捕獲模式啟動一個通道,必須在對應的暫存器中
通道 CHx_CNTRL 設定以下欄位:
- MODE = 2(捕獲模式);
- EDGE = 0 捕捉邊緣或 EDGE = 1 捕捉邊緣;
– NOISE = 1 啟用噪音過濾或 NOISE = 0(如果啟用過濾)
不需要;
- EN=1(通道啟動)。
啟用後,該頻道將監視 Timer32_1_chx 輸入的狀態
TIMER32_1 或 TIMER32_2 的 Timer32_2_chx。當改變這個輸入時
邏輯訊號電平(EDGE = 0時從0到1或EDGE = 1時從1到0)電流
計數器值將被寫入捕捉暫存器CHx_ICR。在 INT_FLAG 暫存器中
相應通道IC_INT_CHx的標誌將被設定為“1”。當允許時
該事件的中斷(暫存器中的 IC_INT_CHx 欄位設定為“1”
INT_MASK) 將產生 IC_INT 中斷。
配置通道為比較模式,需註冊
為對應的 CHx_CNTRL 頻道設定以下欄位:
- MODE = 1(比較模式);
- EN = 1(通道開啟)。
當計數器達到等於比較暫存器CHx_OCR中的值時
INT_FLAG暫存器將對應頻道的標誌設為“1”
OC_INT_CHx。啟用此事件的中斷時(設定為“1”
INT_MASK 暫存器中的欄位 OC_INT_CHx)將產生 OC_INT 中斷。
在 PWM 模式下,通道在輸出端產生給定形狀的脈衝。
圖 47 – PWM 模式下的通道操作圖(TOP = 15,OCR = 5)
定時器模組暫存器32個
表 41 列出了 TIMER32_x 模組暫存器。
名稱
偏移量
初始值
目的
訪問
價值
0x00
0x00000000
當前定時器值
R.O.
頂部
0x04
0xFFFFFFFF
最大計數序列值
RW
預定標
0x08
0x00000000
除數值
RW
控制
0x0C
0x00000000
定時器配置暫存器
RW
啟用
0x10
0x00000000
定時器使能暫存器
RW
INT_MASK
0x14
0x00000000
中斷遮蔽暫存器
RW
INT_CLEAR
0x18
0xFFFFFFFF
中斷標誌重設暫存器
RW
INT_FLAG
0x1С
0x00000000
中斷標誌暫存器
R.O.
CH1_CNTRL
0x80
0x00000000
頻道 1 配置暫存器
RW
CH1_OCR
0x84
0x00000000
1通道比較值
RW
CH1_ICR
0x88
0x00000000
1路採集值
RW
CH2_CNTRL
0x90
0x00000000
配置暫存器2頻道
RW
CH2_OCR
0x94
0x00000000
比較值2通道
RW
CH2_ICR
0x98
0x00000000
通道2捕獲值
RW
CH3_CNTRL
0xA0
0x00000000
配置暫存器3通道
RW
CH3_OCR
0xA4
0x00000000
比較值3通道
RW
CH3_ICR
0xA8
0x00000000
3通道採集值
RW
CH4_CNTRL
0xB0
0x00000000
配置暫存器4頻道
RW
CH4_OCR
0xB4
0x00000000
比較值4通道
RW
CH4_ICR
0xB8
0x00000000
4通道採集值
RW
註 – 偏移量為 0x80 – 0xB8 的暫存器不可用於 TIMER32_0。
109
表 41 – 定時器模組 32 的暫存器
暫存器欄位的用途如表 42 – 49 所示。
名稱
排名
初始值
目的
訪問
價值
31:0
0x0
當前計數器值
R.O.
名稱
排名
初始值
目的
訪問
頂部
31:0
0xFFFFFFFF
最大計數器值(限制頂部的計數順序)
RW
名稱
排名
初始值
目的
訪問
預定標
31:0
0x0
預因子值。 預分頻器產生一個計數時鐘,其頻率比輸入小 (TIM_PRESCALE + 1) 倍。 值的範圍是從0到(232 - 1)。
RW
110
表 42 – 目前定時器值暫存器 VALUE
表 43 – TOP 計數器最大值暫存器
表 44 – PRESCALE 分頻器值暫存器
名稱
排名
初始值
目的
訪問
保留
31:4
保留
訊息來源
3:2
0x0
選擇計數時脈訊號源:0b00 – APB 頻率(對於timer32_0 – APB_M,對於timer32_1、timer32_2 – APB_P); 0b01 – 同步時脈輸入 TIM1(在電源和時序控制單元的 TIMER_CFG padX(表 173)中配置(表 173);定時器編號); 0b11 – 非同步時脈輸入 TIM2 在電源和時序控制單元的 TIMER_CFG 暫存器中配置(表 173);
RW
計數模式
1:0
0x0
定時器計數模式:0b00—直接; 0b01—反向; 0b10 – 雙向
RW
名稱
排名
初始值
目的
訪問
保留
31:2
保留
TIM_CLR
1
0x0
寫入“1”時重置(清除)當前計數器值
W1R
TIM_EN
0
0x0
啟動/停止計數器。 0-計數器關閉,1-計數器開啟
RW
111
表 45 – 控制定時器配置暫存器
表 46 – ENABLE 啟用暫存器
名稱
排名
初始值
目的
訪問
保留
31:10
保留
目錄
9
0x0
資料傳輸方向。根據操作模式自動設定(1 - 輸出,0 - 輸入)
R.O.
脈寬調變_反相
8
0x0
PWM 反相模式下的輸出型別:0 – 直接(不反相輸出); 1 – 反向輸出
RW
CN
7
0x0
開啟/關閉通道 0 - 通道關閉,1 - 通道開啟
RW
模式
6:5
0x0
通道工作模式:0b00——保留;0b01——比較模式; 0b10——捕捉模式;0b11——脈寬調變
RW
邊緣
4
0x0
捕捉訊號模式:0-邊緣; 1 – 切割
RW
保留
3:1
保留
噪音
0
0x0
在捕獲模式下控制 Timer32_1_ch- Timer32_1_ch4、Timer32_2_ch1- Timer32_2_ch4 微電路輸入端的輸入雜訊過濾。 0 – 過濾被停用; 1 – 啟用過濾(過濾持續時間少於 APB_P 頻率 3 個時脈週期的幹擾)
RW
112
表 47 – 頻道 x CHx_CNTRL 配置暫存器
名稱
排名
初始值
目的
訪問
光學字元辨識
31:0
0x0
比較模式下的定時器值
RW
名稱
排名
初始值
目的
訪問
ICR
31:0
0x0
捕捉模式下的定時器值
RW
名稱
排名
初始值
目的
訪問
保留
31:10
保留
OC_INT_CH4
9
0x0
中斷遮蔽:定時器通道 4 匹配
RW
OC_INT_CH3
8
0x0
中斷遮蔽:定時器通道 3 匹配
RW
OC_INT_CH2
7
0x0
中斷遮罩:定時器通道匹配 2
RW
OC_INT_CH1
6
0x0
中斷遮罩:定時器通道1匹配
RW
IC_INT_CH4
5
0x0
中斷遮蔽:定時器通道4捕獲
RW
113
表 48 – 頻道比較值暫存器 x CHx_OCR
表 49 – 通道擷取值暫存器 x CHx_ICR
中斷
定時器可以產生四種型別的中斷:
- 計數器溢位 – OVF_INT;
- 清空計數器 – UDF_INT;
- 值捕獲 – IC_INT;
- 與 – OC_INT 相比匹配。
每個通道的匹配和值捕獲中斷。中斷
每當指定事件發生並設定時生成
INT_FLAG 暫存器中的對應標誌。 啟用中斷
需要將暫存器中該中斷對應的位元寫“1”
掩碼 INT_MASK。中斷暫存器欄位的用途如表 50-52 所示。
表 50 – 中斷遮蔽暫存器 INT_MASK
名稱
排名
初始值
目的
訪問
IC_INT_CH3
4
0x0
中斷遮罩:定時器通道 3 捕獲
RW
IC_INT_CH2
3
0x0
中斷遮罩:定時器通道 2 捕獲
RW
IC_INT_CH1
2
0x0
中斷遮罩:捕獲1個定時器通道
RW
UDF_INT
1
0x0
中斷遮罩:計數器下溢
RW
OVF_INT
0
0x0
中斷遮罩:計數器溢位
RW
名稱
排名
初始值
目的
訪問
保留
31:10
保留
OC_INT_CH4
9
0x1
中斷重設:定時器通道 4 匹配
RW
OC_INT_CH3
8
0x1
中斷重設:定時器通道 3 匹配
RW
OC_INT_CH2
7
0x1
中斷重設:定時器通道 2 匹配
RW
OC_INT_CH1
6
0x1
中斷重設:定時器通道1匹配
RW
IC_INT_CH4
5
0x1
中斷重設:定時器通道4捕獲
RW
IC_INT_CH3
4
0x1
中斷重設:定時器通道3捕獲
RW
IC_INT_CH2
3
0x1
中斷重設:定時器通道2捕獲
RW
IC_INT_CH1
2
0x1
中斷重設:定時器通道1捕獲
RW
UDF_INT
1
0x1
中斷重設:計數器清空
RW
OVF_INT
0
0x1
中斷重設:計數器溢位
RW
注意 – 讀取時,將讀取最後寫入暫存器的值。
114
表 51 – 中斷標誌清除暫存器 INT_CLEAR
名稱
排名
初始值
目的
訪問
保留
31:10
保留
OC_INT_CH4
9
0x0
事件狀態:定時器通道 4 匹配
R.O.
OC_INT_CH3
8
0x0
事件狀態:定時器通道3重合
R.O.
OC_INT_CH2
7
0x0
事件狀態:定時器通道2重合
R.O.
OC_INT_CH1
6
0x0
事件狀態:1個定時器通道匹配
R.O.
IC_INT_CH4
5
0x0
事件狀態:定時器通道4捕獲
R.O.
IC_INT_CH3
4
0x0
事件狀態:定時器通道3捕獲
R.O.
IC_INT_CH2
3
0x0
事件狀態:定時器通道2捕獲
R.O.
IC_INT_CH1
2
0x0
事件狀態:定時器通道1捕獲
R.O.
UDF_INT
1
0x0
事件狀態:計數器空
R.O.
OVF_INT
0
0x0
事件狀態:計數器溢位
R.O.
115
表 52 – 中斷標誌暫存器 INT_FLAG
使用 DDP 控制器
32 位元定時器可設定為處理 DMA 傳輸
以指定的時間間隔。 為此,您需要配置一個多工器
DAP 請求與選定的計時器一起工作。來自計時器的請求行數,
以下:
- TIMER32_0 - 第 12 行;
- TIMER32_1 - 第 8 行;
- TIMER32_2 - 第 9 行;
定時器產生一個持續一個計數週期的脈衝
達到最大帳戶價值。基於這種衝動(之後
重新同步到系統頻率)向 DMA 產生記錄和記錄請求
116
閱讀。請求完成後由 DPM 控制器自動取消
處理請求。
圖 48 – 根據 32 位元定時器請求進行 DMA 操作的圖
用於頻率小於轉換頻率的連續轉換
在沒有核心參與的情況下,需要配置32位元定時器和DMA控制器通道
用於轉移。設定 DMA 通道以將資料從記憶體傳輸到 DAC0 的範例:
CHx_CFG.啟用= 1;
CHx_CFG.READ_MODE = 1; // 從記憶體中讀取
CHx_CFG.READ_INCRMENT = 1; // 讀取時位址遞增
CHx_CFG.READ_SIZE = 2; // 按單字讀取
CHx_CFG.READ_REQUEST = 8; // Timer32_1 行
CHx_CFG.READ_ACK_EN = 1; // 產生確認訊號
CHx_CFG.WRITE_MODE = 0; // 根據計時器的請求執行記錄
CHx_CFG.WRITE_INCRMENT = 0; // 記錄執行到一個位址
CHx_CFG.WRITE_SIZE = 2; //以字記錄
CHx_CFG.WRITE_REQUEST = 8; // Timer32_1 行
CHx_CFG.WRITE_ACK_EN = 1; // 產生確認訊號
長=15; // 16 位元組
SRC = <RAM_位址>;
夏令時 = 0x00085000 + 0x04; //(ANALOG_REG_BASE_ADDRESS + DAC0 偏移量
值)
根據定時器的請求,將從 RAM 中讀取一個字,之後將出現一個標誌
使用 DDP 記錄許可權。結束後形成flag
目前轉換,即,如果定時器請求的頻率小於頻率
轉換完成後,不會有額外的等待錄製。
117
使用定時器的特點。
當用作計數時鐘源時
可配置定時器輸入(控制暫存器的來源欄位設定為“1”)
用於計數的時脈訊號的選擇在時脈功率控制單元中設定
在電源管理器區塊的 TIMER_CFG 暫存器中(偏移量 0x30)。以下欄位
暫存器負責定時器:
- [1:0] – Timer32_0;
- [4:3] – Timer32_1;
- [7:6] – Timer32_2;
欄位值解密如下:
- 最低有效位元負責 TIM1 輸入:
1) 值 0 – 系統頻率 (sys_clk);
2) 值 1 – AHB 匯流排頻率 (hclk);
- 最高有效位元負責 TIM2 輸入:
1) 值0-外部振盪器OSC32K的頻率;
2) 值1-內建振盪器LSI32K的頻率。
內部定時器使能訊號設定如下
在暫存器中設定 TIM_EN 後所選時脈來源的時脈週期
啟用。
建議按以下順序開啟定時器:
- 設定所需的操作模式。在INT_MASK暫存器中「0」;
- 寫入暫存器INT_CLEAR 0xFFFFFFFF;
- 設定TIM_EN為“1”;
- 如果需要定時器中斷,請在中設定所需的中斷遮蔽
暫存器 INT_MASK。
建議按以下順序關閉定時器:
- 將「0」寫入INT_MASK暫存器;
-向 PRESCALE 暫存器寫入「0」;
- 寫入暫存器INT_CLEAR 0xFFFFFFFF;
- 將 TIM_EN 設定為“0”。
16位元定時器模組(TIMER16)
118
該模組是一個16位元低功耗定時器
(以下簡稱定時器16)。由於 Timer16 可以從不同的時鐘來源執行
訊號,包括來自外部時脈訊號,這使得它適用於
作為脈衝計數器。 Timer16 可以使系統從模式中喚醒
低消耗。
Timer16 具有靈活的時鐘方案,允許
實現足夠的操作和效能,同時最大限度地減少
功耗。
主要功能:
- 16位元計數器,直接計數;
- 具有 8 個係數的頻率預分頻器(1、2、4、8、16、32、64、128);
- 選擇時脈訊號源(內部時脈訊號或帶有
外部輸出);
- 16位元自動載入暫存器(ARR);
- 16位元比較暫存器;
- 連續/單次模式;
- 選擇軟體/硬體輸入觸發;
- 可程式數位雜訊濾波器;
- 可配置輸出:脈衝或PWM;
- 可設定的輸入/輸出極性;
- 解碼模式。
Timer16 的框圖如圖 49 所示。
119
圖 49 - 16 位元定時器的內部結構
Timer16 計時
TIMER16 可以使用多個來源進行計時
時脈訊號。它可以使用內部時脈訊號進行計時,
可從 AHB、SYSCLK、OSC32M、OSC32K、HSI32M 來源中選擇
或 LSI32K 透過電源和域時鐘控制單元 (PowerManager)。
TIMER16 也可以使用外部時脈訊號進行計時,
提供給其外部引腳 lnput1。使用外部來源時
TIMER16 時脈可以以兩種可能的配置之一運作:
第一個配置 - 當 TIMER16 由外部訊號提供時脈時,但同時
同時,內部時脈訊號提供給TIMER16或來自AHB,
120
或來自任何其他內建產生器,包括 OSC32M、OSC32K、
HSI32M 和 LSI32K;
– 第二個配置 - 當 TIMER16 僅接收來自
透過外部輸入 1 引腳連線外部來源。這個配置
用於實現超時功能或計數器功能
切換到所有內建發電機後關閉時發出脈衝
低功耗模式。
透過對 CKSEL 和 COUNTMODE 位元進行程式設計,您可以控制是否
TIMER16 是否使用外部時鐘來源或內部時鐘來源。
當配置為使用外部時脈來源時
CKPOL 位元用於選擇外部時脈訊號的有效沿。
如果兩個邊緣均配置為活動邊緣,則也必須確保
內部時脈訊號(第一個配置)。在這種情況下,內部頻率
時脈訊號必須比外部頻率高出至少四倍
時脈訊號。
計數時脈訊號的選擇在電源控制單元中設定
計時在 TIMER_CFG 暫存器中(偏移量 0x30)。以下欄位負責
定時器:
- 位[11:9] – Timer16_0;
- 位[14:12] – Timer16_1;
- 位元[17:15] – 定時器16_2。
欄位值解密如下:
– 0x0 – 系統頻率(sys_clk);
- 0x1 – AHB匯流排頻率(hclk);
– 0x2 – 外部振盪器OSC32M的頻率;
– 0x3 – 內建振盪器HSI32M的頻率;
– 0x4 – 外部振盪器OSC32K的頻率;
– 0x5 – 內建振盪器LSI32K的頻率。
毛邊濾波器
TIMER16 輸入,外部(連線到微控制器的 GPIO)和
內部(在晶片級連線到其他嵌入式
週邊裝置)受到數位濾波器的保護
121
防止內部任何干擾和噪音幹擾的傳播
定時器16。這對於防止錯誤讀數或警報是必要的。
在啟動數位濾波器之前,必須先將 TIMER16
提供內部時鐘來源。這是必要的,以確保
過濾器的正確操作。
數位濾波器分為兩組:
- 第一組數位濾波器保護TIMER16的外部輸入。
數位濾波器的靈敏度由 CKFLT 位元控制
- 第二組數位濾波器保護內部觸發輸入
定時器16。數位濾波器的靈敏度由位元控制
TRGFLT。
註 - 數位濾波器的靈敏度由群組控制。
無法在內部單獨調整每個數位濾波器的靈敏度
一組。
濾波器的靈敏度取決於連續相同的數量
必須在 TIMER16 輸入之一檢測到的樣本,以便
將訊號電平的變化視為有效的轉換。
圖 50 – 毛邊濾波器時序圖
圖 50 顯示了故障濾波器在此情況下的行為範例
對雙連續樣本進行程式設計。
註 – 如果沒有內部時脈訊號,則數字
必須透過將 CKFLT 和 TRGFLT 位元設為“0”來停用濾波器。乙
在這種情況下,為了保護TIMER16的外部輸入免受幹擾,可以使用
外部模擬濾波器。
PRESC 欄位值
分頻比
0
1
1
2
2
4
3
8
4
16
5
32
6
64
7
128
122
預分頻器
16 位元 TIMER16 計數器前面有可配置預分頻器
2 的冪。預分頻器分頻係數由 3 位元欄位控制
PRESC[2:0]。表 53 列出了所有可能的除法因子:
表 53 – 分頻器分頻係數
觸發多工器
TIMER16 計數器可以透過程式啟動,也可以在
偵測 8 個觸發輸入之一上的有效脈衝邊緣。
TRIGEN[1:0]用於選擇TIMER16觸發來源:
- 當 TRIGEN[1:0] 等於「0b00」時,TIMER16 計數器一旦
CNTSTRT 或 SNGSTRT 位元之一由軟體設定。三
TRIGEN[1:0] 的剩餘可能值用於
觸發輸入使用的有效沿的設定。櫃檯
一旦偵測到有效邊緣,TIMER16 就會啟動。
– 當TRIGEN[1:0]與「0b00」不同時,TRIGSEL[2:0]用於選擇
8 個輸入中的哪一個用於執行計數器。
外部事件被視為 TIMER16 的非同步訊號。因此
一旦偵測到事件,需要延遲兩個時脈週期
由於同步,計時器將開始運作。
如果計時器已經執行時發生新事件,它將
忽略(除非啟用超時功能)。
注意 – 在設定 SNGSTRT/CNTSTRT 位元之前,定時器必須
包括在內。定時器停用時對這些位元的任何寫入都將被忽略。
123
運作模式
TIMER16 有兩種工作模式:
連續模式:定時器工作在自由模式下,定時器啟動
在開始事件上並且永遠不會停止,直到計時器結束
殘疾人士;
- 單次模式:定時器從觸發事件開始,
當達到 ARR 值時停止。
單事件模式
若要啟用單次計數,必須設定 SNGSTRT 位元。
新的開始事件將重新啟動計時器。任何觸發事件
在計數器啟動之後和計數器達到 ARR 之前發生的情況將是
被丟棄。
如果選擇外部觸發,則每個外部觸發事件
在 SNGSTRT 位元設定之後以及計數器暫存器之後到達
停止(包含零值),啟動新週期的計數器
單次計數,如圖 51 所示。
如果是軟體啟動(TRIGEN[1:0] =“0b00”),則設定 SNGSTRT
會啟動計數器進行一次性計數。
圖 51 - TIMER16 輸出波形、單計數模式配置和單計數模式啟動(WAVE 位元設定)
連續模式
若要啟用連續計數,必須設定 CNTSTRT 位元。
如果選擇外部觸發,則外部觸發事件到達
設定CNTSTRT值後,將啟動計數器進行連續計數。任何
後續的外部觸發事件將被丟棄,如圖 52 所示。
124
如果是軟體啟動(TRIGEN[1:0] =“0b0”),則設定 CNTSTRT
將啟動計數器進行連續計數。
圖 52 - TIMER16 輸出波形,模式配置
連續計數
SNGSTRT 和 CNTSTRT 位元只能在定時器
啟用(ENABLE 位元設定為“1”)。您可以從「即時」模式切換
單次到連續模式。
如果之前選擇了連續模式,則設定 SNGSTRT 將切換
TIMER16 為單一模式。計數器(如果處於活動狀態)將立即停止
將達到ARR。
如果之前選擇了一次性模式,設定 CNTSTRT 將切換
TIMER16 為連續模式。計數器(如果處於活動狀態)將立即重新啟動
將達到ARR。
逾時功能
可以對一個選定的觸發器輸入進行有效邊緣偵測
用於重置TIMER16計數器。此功能透過位元控制
超時。
第一個事件啟動計時器,任何後續事件都會重置
計數器和計時器重新啟動。
可實現低功耗逾時功能。
超時值與比較值相符;如果在預期之內
在觸發器未觸發的一段時間內,MCU 被巧合事件喚醒
比較。
125
波形生成
兩個16位元暫存器,ARR(自動載入暫存器)和CMP(比較暫存器),
用於在 TIMER16 輸出處產生幾種不同的波形。
定時器可以產生以下波形:
– PWM 模式:TIMER16 輸出一旦設定
CMP 和 CNT 暫存器之間的對應關係。 TIMER16輸出被重位,
一旦 ARR 和 CNT 暫存器之間存在對應關係;
- 單脈衝模式:輸出訊號形狀與訊號形狀相似
在 PWM 模式下第一個脈衝,然後輸出不斷重設;
– 單模式:輸出訊號形狀與模式相似
單脈衝,除了輸出支援
最後的訊號電平(取決於配置輸出的極性)。
TIMER16輸出波形可透過WAVE位元進行配置
如下:
- 將 WAVE 位元重設為「0」導致 TIMER16 產生 PWM 波形,
或單一脈衝的形狀,取決於設定的位元:
CNTSTRT 或 SNGSTRT;
- 將 WAVE 位元設為「1」使 TIMER16 產生波形圖
在單一模式下。
WAVPOL 位元控制 TIMER16 輸出的極性。變更生效
立即強制,因此預設輸出值將立即更改
重置極性,甚至在開啟計時器之前。
可產生高達 TIMER16 時脈頻率除以的訊號
2. 圖 53 顯示了三種可能的波形
在 TIMER16 的輸出處產生。這裡也顯示了改變極性的效果
使用 WAVPOL 位元。圖 54 顯示了 PWM 模式下通道的操作。
126
圖 53-波形生成
圖 54 - PWM 模式下的通道操作圖(PRESC = 0,ARR = 6,CMP
= 3,波爾 = 0)
pol = 0 時 PWM 訊號低電位和高電位的時間取決於該值
分頻器 (PRESC) 和分頻器之前定時器的輸入頻率 (Timer16_clk):
– 當 PRESC = 0 時,低 PWM 電平佔用 CMP 時脈 Timer16_clk,且
高電位 ARR – CMP + 1 個時脈週期;
– 當 PRESC > 0 時,低 PWM 電平需要 PRESC * CMP - 1 個時脈週期
Timer16_clk,高電位為 PRESC * (ARR – CMP + 1) - (PRESC - 1) 時脈。
127
註冊更新
ARR 暫存器和 CMP 暫存器在匯流排寫入作業後立即更新。
APB 或當前週期結束時(如果計時器已啟動)。
PRELOAD 位元控制 ARR 和 CMP 暫存器的更新方式:
– 當 PRELOAD 位元重設為「0」時,ARR 和 CMP 暫存器立即
任何寫入訪問後都會更新。
– 當 PRELOAD 位元設定為「1」時,ARR 和 CMP 暫存器被更新為
如果計時器已經啟動,則目前週期結束。
TIMER16 APB 介面和 TIMER16 核心邏輯使用不同的時脈。
訊號,因此 APB 記錄和時刻之間存在一些延遲
當這些值可供計數器比較器使用時。在此期間
對這些暫存器的任何額外寫入都應避免延遲。
ISR 暫存器中的 ARROK 標誌和 CMPOK 標誌指示何時進行寫入操作
分別在ARR暫存器和CMP暫存器中完成。
寫入 ARR 或 CMP 暫存器後,對相同暫存器進行新的寫入操作
只能在前一個寫入操作完成後執行。任意
在設定 ARROK 標誌或 CMPOK 標誌之前的後續寫入將導致
不可預測的結果。
計數器模式
TIMER16計數器可用於對外部輸入事件進行計數
輸入 1 TIMER16 或用於計算內部時脈週期。 CKSEL 位元和
COUNTMODE 控制哪個來源將用於更新
櫃檯。
如果 TIMER16 配置為對輸入 lnput1 處的外部事件進行計數,則計數器
可以在上升沿、下降沿或兩者上更新
邊緣取決於寫入 CKPOL[1:0] 位元的值。
根據 CKSEL 和 COUNTMODE 值可以選擇
以下計數模式:
– CKSEL = 0,COUNTMODE = 0。 TIMER16 配置為從
內部時鐘來源,TIMER16計數器設定為
在每個內部時脈後更新。
128
– CKSEL = 0,COUNTMODE = 1。對輸入 lnput1 TIMER16 進行取樣
內部時脈產生器提供給TIMER16。因此,
為了不錯過任何一個事件,外部訊號的變化頻率
輸入 1 不應超過內部時脈頻率
發生器提供給TIMER16。此外,內部時鐘
提供給 TIMER16 的發電機不得預先
縮放(PRESC[2:0] = 000)。
– CKSEL = 1:TIMER16 由外部時脈來源提供時鐘
COUNTMODE 值並不重要。在此配置中,TIMER16 不
需要一個內部時鐘來源(除了
啟用毛邊濾波器的情況)。施加到輸入 1 的訊號
TIMER16,用作系統時鐘產生器
定時器16。此配置適用於沒有電源的操作模式
包括內建發電機。透過此配置,計數器 TIMER16
可以在上升沿或下降沿更新
時脈訊號輸入 1,但不在兩個(上升沿和下降沿)
同時。由於訊號提供給外部輸入1 TIMER16
也用於為TIMER16核心邏輯提供時鐘,有
啟動前的一些初始延遲(TIMER16 開啟後)
帳戶。 更準確地說,外部輸入 1 TIMER16 上的前五個有效邊緣
(開啟TIMER16後)遺失。
開啟和關閉計時器
位於 CR 暫存器中的 ENABLE 位元用於
啟用/停用 TIMER16 核心邏輯。設定 ENABLE 位後
TIMER16 實際開啟之前需要延遲兩個時脈週期。
CFGR 和 IER 暫存器僅應在 TIMER16 時更改
禁用。
當您關閉計時器並再次開啟時,必須重新啟動
初始化 ARR 暫存器中的值。
編碼器模式
此模式可讓您處理來自正交編碼器的訊號,
用於確定旋轉元件的角位置。模式
129
編碼器介面僅充當外部可選時鐘產生器
方向。這意味著計數器只是在 0 到 0 之間連續計數
自動過載值程式設計在 ARR 暫存器中(0 到 ARR 或 ARR
到 0,取決於方向)。因此,在開始工作之前有必要
配置ARR。從兩個外部輸入訊號,lnput1 和 lnput2,
產生時脈訊號以同步 TIMER16 計數器。相間
這兩個訊號決定了計數的方向。
僅當 TIMER16 供電時編碼器模式才可用
內部時鐘源。 輸入端 lnput1 和 的訊號頻率
輸入2不得超過內部時脈產生器TIMER16的頻率,
除以 4。這是確保 TIMER16 正常運作所必需的。
方向的改變由 ISR 暫存器中的兩個標誌 Down 和 Up 表示。
此外,對於兩個方向改變事件,
如果透過 IER 暫存器啟用中斷。
若要啟動編碼器模式,ENC 位元必須設定為“1”。第一
TIMER16 必須配置為連續模式。
當編碼器模式啟動時,TIMER16 計數器會自動變更為
根據增量編碼器的速度和方向。因此它
內容始終代表編碼器位置。帳戶方向,
由向上和向下標誌發出訊號,對應於轉子的旋轉方向
編碼器。
根據脈衝邊緣靈敏度設定使用
位元CKPOL[1:0],各種計數場景都是可能的。表 54 顯示
假設 lnput1 和 lnput2 未切換的可能組合
同時。
主動前端
相反的訊號電平(lnput1 對應 lnput2,lnput2 對應 lnput1)
輸入1訊號
輸入2訊號
上升
秋季
上升
秋季
上升前沿
高
向下
不計較
向上
不計較
低
向上
不計較
向下
不計較
跌倒前線
高
不計較
向上
不計較
向下
低
不計較
向下
不計較
向上
兩條戰線
高
向下
向上
向上
向下
低
向上
向下
向下
向上
130
表 54 – 編碼器計數場景
圖 40 顯示了編碼器模式的範例序列,其中
其兩側的靈敏度均已調整。
註 – 在編碼器模式下,TIMER16 必須計時
內部時脈源,因此CKSEL位元必須設定為
復位等於“0”。此外,預分頻器分頻係數必須等於
其初始值為 1(PRESC[2:0] 位元必須等於
“0b000”)。
圖 55 - 編碼器模式下的計數序列
中斷事件
描述
匹配值
當計數暫存器(CNT)的內容與比較暫存器(CMP)的內容相符時,產生中斷標誌。
自動過載值
當計數器暫存器 (CNT) 的內容與自動過載暫存器 (ARR) 的內容相符時,將產生中斷標誌。
外部觸發事件
當偵測到外部觸發事件時,中斷標誌會升高
自動重新啟動暫存器已更新
當對 ARR 暫存器的寫入操作完成時,中斷標誌將會升高。
比較暫存器已更新
當對 CMP 暫存器的寫入操作完成時,中斷標誌將會升高。
131
中斷TIMER16
以下事件將產生中斷/喚醒事件,如果它們
使用 IER 暫存器功能啟用:
- 價值匹配;
- 自動重新載入值(無論編碼器模式下的方向為何);
- 外部觸發事件;
- 寫入自動重啟暫存器完成;
- 寫入比較暫存器完成;
- 方向改變(編碼器模式),可程式設計(上/下/雙向)
邊)。
注意 – 如果 IER 暫存器(啟用暫存器)中的任何位
暫存器中對應標誌置位後,中斷)被置位
ISR(狀態暫存器),中斷未置位。
註 – CMP 值匹配中斷標誌
只要計數器暫存器(CNT)的內容與內容匹配就設定
比較暫存器(CMP)。如果要保證單次操作
CNT 和 CMP 值一致的整個期間內的中斷
建議在值匹配中斷處理程式中停用此功能
中斷來源位於 IER 暫存器中,稍後啟用,例如在處理程式中
值自動過載中斷。
表 55 – 中斷事件
中斷事件
描述
改變方向
用於編碼器模式。內建兩個中斷標誌來表示方向變化: UP 標誌表示計數方向向上變化; DOWN 標誌表示遞減計數方向發生變化。
名稱
偏移量
初始值
目的
訪問
情報監視與偵察
0x00
0x0
中斷標誌暫存器
R.O.
ICR
0x04
0x0
中斷標誌重設暫存器
W1C
伊爾
0x08
0x0
中斷使能暫存器
RW
CFGR
0x0C
0x0
配置暫存器
RW
CR
0x10
0x0
控制暫存器
RW
化學機械拋光
0x14
0x0
比較暫存器
RW
ARR
0x18
0x1
自動過載暫存器
RW
碳奈米管
0x1C
0x0
計數器暫存器
R.O.
名稱
排名
初始值
目的
訪問
保留
31:7
保留
向下
6
0x0
將計數器的方向從上方改為下。在編碼器模式下,DOWN 位由硬體置位,告訴應用程式計數器方向已從向上變為向下。
R.O.
132
用於編碼器模式。內建兩個中斷標誌來表示方向變化: UP 標誌表示計數方向向上變化; DOWN 標誌表示遞減計數方向發生變化。
TIMER16暫存器
16 位元定時器暫存器如表 56-59 所示。
表 56 – 16 位元定時器暫存器
表 57 – ISR 中斷標誌暫存器
名稱
排名
初始值
目的
訪問
向上。
5
0x0
將計數器方向從下方更改為上。在編碼器模式下,UP 位元由硬體設定,以告訴應用程式計數器方向已從「向下」變更為「向上」。
R.O.
阿羅克
4
0x0
更新啟動暫存器確定。 ARROK 由硬體置位,通知應用程式對 APB 匯流排 ARR 暫存器的寫入操作已成功完成
R.O.
CMPOK
3
0x0
比較暫存器更新OK。 CMPOK 由硬體置位,通知應用程式對 APB 匯流排 CMP 暫存器的寫入操作已成功完成。
R.O.
外部觸發
2
0x0
外部觸發邊緣事件。 EXTTRIG 在硬體中設定,以通知應用程式所選外部觸發輸入已出現有效邊緣。如果因計時器已啟動而忽略觸發器,則不會設定此標誌
R.O.
ARRM
1
0x0
自動載入合規性。 ARRM由硬體置位,通知應用程式CNT暫存器的值已達到ARR暫存器的值。
R.O.
CMPM
0
0x0
比較匹配。 CMPM 位元由硬體置位,通知應用程式 CNT 暫存器的值已達到 CMP 暫存器的值
R.O.
名稱
排名
初始值
目的
訪問
保留
31:7
保留
133
表 58 – ICR 中斷標誌重設暫存器
名稱
排名
初始值
目的
訪問
下行CF
6
0x0
向該位元寫入「1」將清除 LPT_ISR 暫存器中的 DOWN 標誌。
W1C
UPCF
5
0x0
向該位元寫入「1」將清除 LPT_ISR 暫存器中的 UP 標誌。
W1C
阿羅克CF
4
0x0
向該位元寫入「1」將清除 LPT_ISR 暫存器中的 ARROK 標誌。
W1C
CMPOKCF
3
0x0
向該位元寫入「1」將清除 LPT_ISR 暫存器中的 CMPOK 標誌。
W1C
外部觸發GCF
2
0x0
向該位元寫入「1」將清除 LPT_ISR 暫存器中的 EXTTRIG 標誌。
W1C
ARRMCF
1
0x0
向該位元寫入「1」將清除 LPT_ISR 暫存器中的 ARRM 標誌。
W1C
CMPMCF
0
0x0
向該位元寫入「1」將清除 LPT_ISR 暫存器中的 CMPM 標誌。
W1C
名稱
排名
初始值
目的
訪問
保留
31:7
保留
唐尼
6
0x0
1 - 允許 DOWN 中斷 0 - 禁止 DOWN 中斷
RW
U.P.I.E.
5
0x0
1 - 啟用 UP 中斷 0 - 停用 UP 中斷
RW
阿羅基
4
0x0
1 - 允許 ARROK 中斷 0 - 禁止 ARROK 中斷
RW
CMPOKIE
3
0x0
1 - 啟用 CMPOK 中斷 0 - 停用 CMPOK 中斷
RW
埃斯特里吉
2
0x0
1 - 允許 EXTTRIG 中斷 0 - 禁止 EXTTRIG 中斷
RW
阿米
1
0x0
1 - 啟用 ARRM 中斷 0 - 停用 ARRM 中斷
RW
CMPIE
0
0x0
1 - 允許 CMPM 中斷 0 - 禁止 CMPM 中斷
RW
134
表 59 – 中斷允許暫存器 IER
名稱
排名
初始值
目的
訪問
保留
31:25
保留
電子海圖
24
0x0
編碼器模式解析度。 ENC 位元控制編碼器的操作模式 0 - 停用編碼器模式 1 - 啟用編碼器模式
RW
計數模式
23
0x0
COUNTMODE 位元選擇 TIMER16 使用哪個時脈來源來同步計數器: 0 - 計數器在每個內部時脈後遞增 1 - 計數器在外部輸入 1 TIMER16 上的每個有效時脈後遞增。
RW
預載
22
0x0
註冊更新模式。 PRELOAD 位元控制更新 ARR 和 CMP 暫存器的方式 0 - 在 APB 匯流排上每次寫入存取後更新暫存器 1 - 在當前週期結束時更新暫存器 TIMER16
RW
波波
21
0x0
波形極性。 WAVEPOL 位元控制輸出訊號的極性 0 - TIMER16 輸出反映 ARR 和 CMP 暫存器之間的比較結果 1 - TIMER16 輸出反映 ARR 和 CMP 暫存器之間比較的相反結果
RW
波
20
0x0
波形。 WAVE 位元控制輸出波形 0 - 停用一次性設定模式。 PWM 波形/單脈衝(取決於是否設定位元:CNTSTRT 或 SNGSTRT) 1 - 啟動一次性設定模式
RW
135
表 60 – CFGR 配置暫存器
名稱
排名
初始值
目的
訪問
超時
19
0x0
允許超時。 TIMOUT 位元控制逾時功能 0 - 定時器已運作時到達的觸發事件將被忽略 1 - 定時器已運作時到達的觸發事件將會重設並重新啟動計數器。
RW
特里根
18:17
0x0
觸發解析度和極性。 TRIGEN 位元控制 TIMER16 計數器是否由外部觸發器觸發。如果選擇外部觸發選項,則可以進行三種有效邊緣觸發配置: 0b00 - 軟體觸發(原點由軟體觸發) 0b01 - 上升沿是有效邊緣 0b10 - 下降沿是有效邊緣 0b11 - 兩個邊緣都是有效功耗邊緣(TIMER16)
RW
保留
16
保留
136
名稱
排名
初始值
目的
訪問
特里格塞爾
15:13
0x0
觸發選擇器。 TRIGSEL 位從以下 8 個可用源中選擇將用作 TIMER16 觸發事件的觸發源: 0b000 -timer16_0 -GPI00_7timer16_1 -GPI01_9timer16_2 -GPI02_3 0b001 -timer16_0 -GPI00_4timer16_1 -GPI01_8timer16_2 -GPI02_2 0b010 - 定時器16_0 - GPI00_15 定時器16_1 - GPI01_7 定時器16_2 - GPI02_1 0b011 - 定時器16_0 - GPI00_14 定時器16_1 - GPI01_6 定時器16_2 - GPI02_0 0b100 - 熱感測器轉換結束 0b101 - ADC 轉換結束 0b110 - RTC 中斷 0b111 - 鬧鐘
RW
保留
12
保留
預科科學中心
11:9
0x0
分音器。 PRESC 位元指定分頻器的分頻比。它可以是以下除法因子之一: 0b000: /1 0b001: /2 0b010: /4 0b011: /8 0b100: /16 0b101: /32 0b110: /64 0b111: /128
RW
保留
8
保留
137
名稱
排名
初始值
目的
訪問
TRGFLT
7:6
0x0
用於觸發的可設定數位濾波器。 TRGFLT 值設定必須由內部觸發器上的電平變化檢測到的連續相同樣本的數量,然後才將其視為有效的電平轉換。若要使用此功能,您必須有內部時鐘來源。 0b00 - 觸發器有效電平的任何變化都被視為有效觸發器 0b01 - 觸發器有效電平的變化必須在至少 2 個時脈週期內保持穩定,然後才被視為有效觸發器。 0b10 - 觸發器的有效電平變化必須在至少 4 個時脈週期內保持穩定,然後才被視為有效觸發器。 0b11 - 觸發器的有效電平變化必須在至少 8 個時脈週期內保持穩定,然後才被視為有效觸發器。
RW
保留
5
保留
138
名稱
排名
初始值
目的
訪問
CKFLT
4:3
0x0
用於外部時脈產生器的可設定數位濾波器。 CKFLT 值設定當外部時脈訊號的電平發生變化時必須偵測到的連續相同樣本的數量,然後才將其視為有效的電平轉換。若要使用此功能,您必須有內部時鐘來源。 0b00 - 外部時脈訊號電平的任何變化都被視為有效轉換 0b01 - 外部時脈訊號電平的變化必須穩定至少 2 個時脈週期,然後才被視為有效轉換。 0b10 - 外部時脈訊號電平變化必須穩定至少 4 個時脈週期才能被視為有效轉換。 0b11 - 外部時脈訊號電平變化必須穩定至少 8 個時脈週期才能被視為有效轉換。
RW
139
名稱
排名
初始值
目的
訪問
CKPOL
2:1
0x0
同步極性。當 TIMER16 由外部時脈來源提供時脈時,CKPOL 位元用於設定計數器使用的一個或多個有效沿: 0b00 - 上升沿是用於計數的有效沿 0b01 - 下降沿是用於計數的有效沿 0b10 - 兩個沿都是有效沿。當外部時脈訊號的兩個邊緣都被視為有效時,TIMER16 也必須由內部時脈來源提供時鐘,其速率至少為外部時脈訊號頻率的四倍。 0b11 - 不允許 如果 TIMER16 配置為編碼器模式(ENC 位元設定): 0b00 - 編碼器子模式 1 處於活動狀態 0b01 - 編碼器子模式 2 處於活動狀態 0b10 - 編碼器子模式 3 處於活動狀態
RW
140
名稱
排名
初始值
目的
訪問
CKSEL
0
0x0
時鐘選擇器。 CKSEL 位元選擇 TIMER16 將使用哪個時脈來源: 0 - TIMER16 由內部時脈來源(APB 時脈產生器或任何內建振盪器)提供時脈 1 - TIMER16 由透過外部輸入 1 TIMER16 的外部時脈來源提供時脈。
RW
注意:CFGR 暫存器僅在 TIMER16 停用(ENABLE 位元設定為“0”)時才能修改。
名稱
排名
初始值
目的
訪問
保留
31:3
保留
碳奈米管STRT
2
0x0
連續模式運轉定時器 此位元由軟體置位,由硬體清除。 在軟體觸發(TRIGEN[1:0] = 0b00)的情況下,設定該位元以連續模式啟動 TIMER16。如果停用軟觸發(TRIGEN[1:0],0b00 除外),則一旦偵測到外部觸發,設定該位元就會以連續模式啟動計時器。 如果在單脈衝模式下計數時設定該位,則當 ARR 和 CNT 暫存器再次匹配時,定時器將不會停止,並且 TIMER16 計數器將繼續以連續模式計數。僅當 TIMER16 使能時才能設定該位元。它將由硬體自動重置。
RW
141
表 61 – 控制暫存器 CR
名稱
排名
初始值
目的
訪問
SNGSTRT
1
0x0
在單一模式下運作 TIMER16 此位元由軟體置位並由硬體清除。 在軟體觸發(TRIGEN[1:0] = 0b00)的情況下,設定該位元會在單脈衝模式下觸發 TIMER16。 如果軟體觸發被停用(TRIGEN[1:0]不是0b00),一旦偵測到外部觸發,設定該位元就會在單脈衝模式下觸發TIMER16。 如果當 TIMER16 處於連續計數模式時該位置位,則 TIMER16 將在下一次 ARR 和 CNT 暫存器匹配時停止。 僅當 TIMER16 使能時才能設定該位元。 它將由硬體自動重置。
RW
啟用
0
0x0
TIMER16 解析度。 ENABLE 位元由軟體置位和清除。
RW
名稱
排名
初始值
目的
訪問
保留
31:16
保留
化學機械拋光
15:0
0x0
比較值。 CMP 是TIMER16 所使用的比較值。
RW
注意 – 僅當 TIMER16 啟用(ENABLE 位元設定為「1」)時才能修改 CMP 暫存器。
142
表 62 – CMP 比較暫存器
名稱
排名
初始值
目的
訪問
保留
31:16
保留
ARR
15:0
0x01
自動過載值 ARR 是 TIMER16 的自動過載值。 該值必須嚴格大於 CMP[15:0] 的值。
RW
注意 – 僅當 TIMER16 啟用(ENABLE 位元設定為「1」)時才能修改 ARR 暫存器。
名稱
排名
初始值
目的
訪問
保留
31:16
保留
碳奈米管
15:0
0x0
計數器值。當 TIMER16 使用非同步時脈訊號操作時,讀取 CNT 暫存器可能會傳回無效值。因此,在這種情況下,需要連續進行兩次讀取訪問,並確保兩次返回值相同。
R.O.
143
表 63 – 自動過載暫存器 ARR
表 64 – CNT 計數器暫存器
實時時鐘 (RTC)
此模組實現了實時時鐘功能。主要特點:
- 24小時運轉模式;
- 日曆功能,可調整閏年;
- 具有產生中斷能力的可程式鬧鐘;
- 二進位十進位資料編碼。
模組說明
該模組旨在追蹤時間和日期。內部模組結構
如圖 56 所示。
144
圖 56 - 模組內部結構
此模組由兩個功能元件組成。第一個包含一組
配置暫存器。第二個是功能計數模組
時間/日期。
選擇時鐘來源
實時時鐘模組可以從兩個時鐘之一提供時鐘
訊號源:內部 LSI32K 產生器和外部 OSC32K 振盪器。乙
微控制器實現時脈時脈訊號監控電路
實時。當優先源斷開或遺失時
時鐘,自動切換到第二個來源發生。選擇
時鐘來源的優先權是在控制暫存器中進行的
透過在 RTC_CLK_MUX 欄位中為電池域 CLOCKS_BU 提供時脈。
RTC_CLK_MUX 的有效值:
– 0x0 – 自動選擇。兩個訊號源均為 32 kHz
選用內部LSI32K;
– 0x1 – 內部LSI32K;
– 0x2 – 外部振盪器 OSC32K。
配置
若要配置時間/日期,必須重設暫存器的 EN 位元
RRTC_CTRL(如果設定)並記下所需的時間/日期。否則
在這種情況下,模組的執行結果可能是不可預測的,因為沒有產生
沒有硬體控制設定值的正確性。對於
BCD碼用於資料編碼。這意味著,例如,要安裝
當前時間,您需要寫下六個數字。
暫存器APB
Resetn_asyncclk_32kRTC
145
鬧鐘
模組支援基於時間/日期重合的警報功能。乙
可以選擇一個或多個欄位作為比較來源。萬一
選擇多個欄位,匹配被認為是所有選定欄位的相等。
可用於比較的欄位清單如下:
- 秒;
- 分鐘;
- 鐘;
- 天;
- 一週中的哪一天;
- 幾個月;
- 年;
- 幾個世紀。
如果指定時間與目前時間一致,則產生警報標誌
(目前狀態 RRTC_CTRL.ALRM)、中斷(如果已啟用)並生成
RTC_ALARM 引腳的有效電平為「1」。活躍水平持續時間 -
實時時鐘時鐘來源的一個週期。重置警報標誌
您必須在 RRTC_CTRL.ALRM 欄位中寫入「0」。重置安裝標誌
RTC_ALARM 引腳的有效電平,您必須在該欄位中寫入“1”
RRTC_CTRL.ALRM_PAD。如果重設有效輸出電平標誌時
RTC_ALARM(RRTC_CNTL.ALRM_PAD 中的條目「1」)鬧鐘標誌處於活動狀態,則
RTC_ALARM 引腳將產生另一個選通脈衝。
您可以透過寫入來重置計數器、標誌和 RTC 警報
到喚醒模組的 RTC_CONTROL 暫存器。
RTC模組暫存器
表中
表 65 顯示了可透過介面存取的暫存器的偏移量
配置。
名稱
偏移量
初始值
目的
訪問
RRTC_TIME
0x00
0x0
時間登記
RW
RRTC_DATE
0x04
0x0
日期 登記
RW
RRTC_TALRM
0x08
0x0
警報時間暫存器
RW
RRTC_DALRM
0x0С
0x0
警報日期暫存器
RW
RRTC_CTRL
0x10
0x0
控制暫存器
RW
RRTC_REG0
0x20
0x0
通用暫存器 REG0
RW
RRTC_REG1
0x24
0x0
通用暫存器 REG1
RW
RRTC_REG2
0x28
0x0
通用暫存器 REG2
RW
RRTC_REG3
0x2C
0x0
通用暫存器 REG3
RW
RRTC_REG4
0x30
0x0
通用暫存器 REG4
RW
RRTC_REG5
0x34
0x0
通用暫存器 REG5
RW
RRTC_REG6
0x38
0x0
通用暫存器 REG6
RW
RRTC_REG7
0x3C
0x0
通用暫存器 REG7
RW
RRTC_REG8
0x40
0x0
通用暫存器 REG8
RW
RRTC_REG9
0x44
0x0
通用暫存器 REG9
RW
RRTC_REG10
0x48
0x0
通用暫存器 REG10
RW
RRTC_REG11
0x4C
0x0
通用暫存器 REG11
RW
RRTC_REG12
0x50
0x0
通用暫存器 REG12
RW
RRTC_REG13
0x54
0x0
通用暫存器 REG13
RW
RRTC_REG14
0x58
0x0
通用暫存器 REG14
RW
RRTC_REG15
0x5C
0x0
通用暫存器 REG15
RW
146
表 65 – RTC 模組暫存器
名稱
排名
初始值
目的
訪問
保留
31:27
保留
陶氏化學公司
26:24
0x0
一週中的某一天。二元形式的有效值:0b001 – 星期一;0b010 – 星期二;0b011——環境;0b100 – 星期四;0b101 – 星期五;0b110 – 星期六;0b111 – 週日
RW
T.H.
23:22
0x0
幾十個小時的場。可用值從 0 到 2
RW
H
21:18
0x0
小時單位欄位。有效值:TH = 0 – 從 0 到 9; TH = 2 – 從 0 到 3
RW
TM
17:15
0x0
幾十分鐘的場。 有效值為 0 到 5
RW
中號
14:11
0x0
分鐘單位欄位。 有效值為 0 到 9
RW
T.S.
10:8
0x0
幾十秒場。 有效值為 0 到 5
RW
S
7:4
0x0
秒單位欄位。 有效值為 0 到 9
RW
保留
3:0
保留
147
時間登記
RRTC_TIME – 時間設定暫存器。使用BCD編碼。
設定無效值可能會導致未定義的結果。對於
若要安裝新值,必須重設 RRTC_CTRL 暫存器的 EN 位元。乙
否則結果可能無法預測。使用的欄位
示於表 66 中。
表 66 – RRTC_TIME 暫存器欄位
名稱
排名
初始值
目的
訪問
保留
31:27
保留
TC
26:23
0x0
數十世紀的領域。 有效值為 0 到 9
RW
C
22:19
0x0
世紀單位的欄位。 有效值為 0 到 9
RW
T.Y.
18:15
0x0
數十年的領域。 有效值為 0 到 9
RW
是
14:11
0x0
年單位欄位。 有效值為 0 到 9
RW
TM
10
0x0
數十月場。 有效值為 0 到 1
RW
中號
9:6
0x0
月份單位欄位。 有效值:TM = 0 – 從 0 到 9; TM = 1 – 從 0 到 2
RW
TD
5:4
0x0
數十天的田野。 有效值:{TM,M} != 03 – 從 0 到 3; {TM,M} == 03 – 從 0 到 2
RW
D
3:0
0x0
天單位欄位。有效值:TD = 2 – 從 0 到 3; TD = 3 – 從 0 到 1
RW
148
日期 登記
RRTC_DATE – 日期設定暫存器。使用BCD編碼。
設定無效值可能會導致未定義的結果。對於
若要安裝新值,必須重設 RRTC_CTRL 暫存器的 EN 位元。乙
否則結果可能無法預測。所使用的欄位已標明
見表 66。
表 67 – RRTC_DATE 暫存器欄位
警報時間暫存器
RRTC_TALRM – 暫存器儲存時間(如果與值相符)
暫存器RRTC_TIME,就會產生對應的中斷。結構
除了欄位之外,暫存器與 RRTC_TIME 暫存器完全相同
管理。使用的欄位如表 68 所示。
名稱
排名
初始值
目的
訪問
CDOW
31
0x0
允許比較設定後的星期幾
RW
CH
30
0x0
設定後允許時鐘比較
RW
C.M.
29
0x0
設定後允許進行分鐘比較
RW
C.S.
28
0x0
設定後允許比較秒數
RW
保留
27
保留
陶氏化學公司
26:24
0x0
一週中的某一天。 二元形式的有效值:0b001 – 星期一;0b010 – 星期二;0b011——環境;0b100 – 星期四;0b101 – 星期五;0b110 – 星期六;0b111 – 週日
RW
T.H.
23:22
0x0
幾十個小時的場。可用值從 0 到 2
RW
H
21:18
0x0
小時單位欄位。有效值:TH = 0 – 從 0 到 9; TH = 2 – 從 0 到 3
RW
TM
17:15
0x0
幾十分鐘的場。 有效值為 0 到 5
RW
中號
14:11
0x0
分鐘單位欄位。 有效值為 0 到 9
RW
T.S.
10:8
0x0
幾十秒場。 有效值為 0 到 5
RW
S
7:4
0x0
秒單位欄位。 有效值為 0 到 9
RW
保留
3:0
保留
149
表 68 – RRTC_TALRM 暫存器欄位
警報日期暫存器
RRTC_DALRM – 暫存器儲存日期(如果與值相符)
暫存器RRTC_DATE,就會產生對應的中斷。結構
除了欄位之外,暫存器與 RRTC_DATE 暫存器完全相同
管理。使用的欄位如表 68 所示。
名稱
排名
初始值
目的
訪問
保留
31
保留
副本
30
0x0
設定後允許進行世紀比較
RW
C.Y.
29
0x0
允許在安裝年份之間進行比較
RW
C.M.
28
0x0
設定後允許進行月份比較
RW
光碟
27
0x0
允許比較設定的天數
RW
TC
26:23
0x0
數十世紀的領域。 有效值為 0 到 9
RW
C
22:19
0x0
世紀單位的欄位。有效值為 0 到 9
RW
T.Y.
18:15
0x0
數十年的領域。 有效值為 0 到 9
RW
是
14:11
0x0
年單位欄位。有效值為 0 到 9
RW
TM
10
0x0
數十月場。 有效值為 0 到 1
RW
中號
9:6
0x0
月份單位欄位。 有效值:TM = 0 – 從 0 到 9; TM = 1 – 從 0 到 2
RW
TD
5:4
0x0
數十天的田野。 有效值:{TM,M} = 03 – 從 0 到 3; {TM,M} = 03 – 從 0 到 2
RW
D
3:0
0x0
天單位欄位。有效值:TD = 2 – 從 0 到 3; TD = 3 – 從 0 到 1
RW
150
表 69 – RRTC_DALRM 暫存器欄位
名稱
排名
初始值
目的
訪問
CN
31
0x0
安裝後模組開啟並倒數計時
RW
ALRM
30
0x0
一組位元指示一個允許的或所有允許的警報欄位的匹配。 該位必須使用控制軟體復位
RW
英特
29
0x0
警報中斷使能位。 當 ALRM 位元被置位時產生中斷
RW
標誌
28
_
時脈域之間的同步訊號。寫入任何暫存器後,當該位元讀為「1」時,禁止執行任何新的寫入
R.O.
ALRM_PAD
27
0x0
記錄「1」-重置設定有效電平ALARM_PAD的標誌
沃
保留
26:0
保留
151
控制暫存器
RRTC_CTRL – 模組控制暫存器。使用的欄位顯示在
表 69.
表 70 – RRTC_CTRL 暫存器欄位
通用暫存器 RRTC_REG0 – RRTC_REG15。
模組位址空間中有 16 個 32 位元暫存器可用。他們可以
可用於任意目的。上電時暫存器的初始值
電源0x00000000。暫存器位於電池域並保留其
系統電源故障和外部重設期間的值。
中斷線號
中斷來源名稱
0
定時器32_0
1
USART_0
2
USART_1
3
SPI_0
4
SPI_1
5
通用輸入輸出介面
6
I2C_0
7
I2C_1
8
看門狗定時器
9
定時器16_0
10
定時器16_1
11
定時器16_2
12
定時器32_1
13
定時器32_2
14
SPIFI
15
實時時鐘
16
EEPROM
17 號
匯流排看門狗(週邊)
18
匯流排看門狗(SPIFI)
152
可程式中斷控制器 (EPIC)
中斷控制器支援來自外部的 32 條中斷線
裝置。此模組提供等級和等級中斷的生成
檢測中斷線上的前部(下降)。在微控制器模組中
已經實現了鎖存中斷的機制,因此建議
使用按等級設定中斷的模式。例外的是模組
配置為電平操作的 I/O 連線埠中斷。
邊緣中斷應該用於沒有自己的模組
中斷復位機制,例如ADC。中斷線列表
表 70 列出了連線到中斷控制器的裝置。
表 71 – 連線到中斷控制器的裝置的中斷線列表
中斷線號
中斷來源名稱
19
匯流排看門狗定時器(EEPROM)
20
RAP
21
頻率監控器
22
AVCC 電壓監視器(低於閾值)
23
AVCC 電壓監視器(高於閾值)
24
VCC 電壓監視器(低於閾值)
25
VCC 電壓監視器(高於閾值)
26
電池電壓不足
27
掉電檢測器
28
溫度監控器
29
類比數位轉換器
30
數位類比轉換器0
31
數位類比轉換器1
名稱
偏移量
初始值
目的
訪問
MASK_EDGE_SET
0x00
0x0
設定邊緣中斷遮蔽
RW1S
MASK_EDGE_CLEAR
0x04
0x0
重置邊緣中斷遮蔽
RW1C
MASK_LEVEL_SET
0x08
0x0
按等級設定中斷遮蔽
W1S
MASK_LEVEL_CLEAR
0x0C
0x0
按等級重置中斷遮蔽
W1C
清麗
0x18
0x0
中斷狀態下重設標誌
W1C
狀態
0x1C
0x0
中斷狀態
R.O.
原始狀態
0x20
0x0
中斷線的當前狀態
R.O.
153
表 72 列出了暫存器的位址、名稱和名稱
可透過 APB 介面使用中斷控制器。控制器暫存器欄位
中斷如表 73 - 79 所示。當讀取只能存取的欄位時
記錄,返回“0”。所有保留的暫存器欄位在物理上都不是
模組中介紹。
表 72 – 中斷控制器暫存器
名稱
排名
初始值
目的
訪問
MASK_EDGE_SET
31:0
0x0
讀取時 – 邊緣中斷遮蔽的目前狀態。 寫入時,「1」使能相應中斷源邊緣的中斷。
RW1S
名稱
排名
初始值
目的
訪問
MASK_EDGE_CLEAR
31:0
0x0
讀取時 – 邊緣中斷遮蔽的目前狀態。 寫入時,「1」會停用對應中斷來源邊緣的中斷。
RW1C
名稱
排名
初始值
目的
訪問
MASK_LEVEL_SET
31:0
0x0
“1”條目啟用對應中斷來源等級的中斷。
W1S
名稱
排名
初始值
目的
訪問
MASK_LEVEL_CLEAR
31:0
0x0
「1」條目會停用對應中斷來源等級的中斷。
W1C
名稱
排名
初始值
目的
訪問
清麗
31:0
0x0
寫入「1」會重置對應的中斷來源標誌。
W1C
154
表 73 – MASK_EDGE_SET 暫存器欄位
表 74 – MASK_EDGE_CLEAR 暫存器欄位
表 75 – MASK_LEVEL_SET 暫存器欄位
表 76 – MASK_LEVEL_CLEAR 暫存器欄位
表 77 - CLEAR 暫存器欄位
名稱
排名
初始值
目的
訪問
狀態
31:0
0x0
中斷暫存器的目前狀態,考慮邊緣中斷的遮罩
R.O.
名稱
排名
初始值
目的
訪問
原始狀態
31:0
0x0
線路的目前狀態 - 中斷來源
R.O.
155
表 78 – 狀態暫存器欄位
表 79 – RAW_STATUS 暫存器欄位
156
校驗與計算區塊(CRC32)
此區塊設計用於計算迴圈校驗和 (CRC)
資料陣列而不使用中央處理器的運算資源。
此模組的框圖如圖 57 所示。
圖 57 – CRC 框圖
控制器由以下元件組成:
- AHB匯流排系統訊號解碼器,
- 控制暫存器CTRL,
- 多項式暫存器POLY,
- 輸入IFIFO緩衝器容量為16字32位,
- 重新排列輸入資料位元的邏輯 輸入反轉邏輯,
- 具有 MUX 多工器和移位器的 CRC_Engine 編碼裝置
CRC 資料暫存器,
- NOT 邏輯反轉邏輯和輸出資料位置換邏輯
輸出反轉邏輯。
系統訊號譯碼器產生所有讀寫訊號
控制器按照位址空間進行暫存器。控制暫存器
CTRL 控制總和計算過程的所有設定。多項式暫存器
名稱
偏移量
目的
訪問
資料
0x00
資料暫存器
RW
保利
0x04
多項式暫存器
RW
控制鍵
0x08
控制暫存器
RW
157
POLY 旨在儲存多項式的值。輸入緩衝器 IFIFO
對計算控制的輸入資料進行緩衝
金額。此緩衝區以及控制暫存器和多項式直接連線到
HWDATA 匯流排。當緩衝區完全滿時,HREADY_o訊號被啟用,
停止 AHB 匯流排上的交易。排列輸入位的邏輯
資料旨在重新排列輸入資料字的位元和位元組,
由控制暫存器的 TOT 欄位的位元控制。編碼裝置
具有 MUX 多工器和 CRC DATA 移位暫存器的 CRC_Engine 產生
計算輸入資料序列的校驗和。已計算
校驗和被寫入位元翻轉邏輯的輸出暫存器
輸出資料 透過 NOT 邏輯輸出反轉邏輯,即
根據位值反轉或不反轉輸出
FXOR 控制暫存器。輸出資料位元交換邏輯
設計用於重新排列計算出的校驗和的字的位元和位元組
並由控制暫存器的 TOTR 欄位的位元控制。控制輸出位
總和直接連線到 HRDATA 匯流排。
區塊暫存器對映如表 80 所示。 將資料寫入資料暫存器
可以在 8 位元、16 位元或 32 位元模式下完成。存取其他暫存器
僅適用於 32 位元模式。
表 80 – 校驗和計算區塊的暫存器
控制暫存器決定塊的操作模式。暫存器位說明
表 81 給出了控制措施。
名稱
排名
初始值
目的
訪問
TOT
31:30
0x0
重新排列輸入資料的位元/位元組:0b00 – 停用反轉; 0b01 – 位元組中的位元被重新排列(位元 7 與位元 0,位元 15 與位元 8,與其他位元組相同),位元組不重新排列;0b10 – 位元和位元組都重新排列 0b11 – 位元組不重新排列;
RW
總TR
29:28
0x0
輸出資料位元/位元組排列:0b00 – 排列停用; 0b01 – 位元組中的位元重新排列(位元 7 與位元 0、位元 6 與位元 1 等;位元 15 與位元 8、位元 14 與位元 9 等,與其餘位元組相同),位元組不重新排列; 0b10 – 位元組和位元組都相同),位元組不重新排列;位元組中的位元不重新排列,位元組重新排列(位元組 3 和 0、2 和 1 交換);
RW
保留
27
保留
異或
26
0x0
校驗和反轉。 某些校驗和計算協定要求對計算出的校驗和值進行反轉(對值 0xFFFFFFFF 執行 XOR 運算): 0 – 停用反轉; 1 – 啟用反轉(執行異或運算)
RW
158
表 81 – CTRL 區塊的控制暫存器的欄位說明
名稱
排名
初始值
目的
訪問
曾是。
25
0x0
資料暫存器的用途:0——寫入資料;1 – 寫入初始值
RW
保留
24:1
保留
忙
0
0x0
機器忙位:0——機器已完成計算;1 – 機器正忙。 將一個字寫入資料暫存器以計算校驗和後,繁忙位元將在寫入時脈週期後的一個時脈週期進入一種狀態。也就是說,在寫入資料後的下一個時脈週期立即讀取 AHB 匯流排上的控制暫存器將傳回一個為零(尚未更新)的 Busy 位元值的結果
R.O.
159
多項式暫存器用於儲存多項式的值,其中
被視為校驗和。
讀取資料暫存器時,會產生計算出的暫存器的內容
校驗和。當寫入該暫存器時,接收資料的目的是
不同,由模組控制暫存器的WAS位的值決定:如果這個
bit為1,則寫入資料暫存器的32位元值為初始值
校驗和值,如果WAS位元為零,則寫入正常資料。
要計算校驗和,您需要執行以下操作:
動作順序:
- 設定排列和反轉位元所需的值(TOT 欄位、
TOTR 和 FXOR);
- 將所需的32位元多項式值寫入多項式暫存器;
- 將控制暫存器的WAS位元設定為1;
- 將32位元初始值寫入資料暫存器;
- 將控制暫存器的WAS位元重設為零;
- 將所需數量的資料寫入資料暫存器;
- 從資料暫存器中讀取計算出的校驗和值。
160
SPI模組
SPI控制器模組提供與各種互動
外圍裝置,例如儲存單元、溫度感測器、
壓力感測器、類比轉換器、即時時鐘、顯示器和
任何支援序列傳輸模式的 SD 卡。
在主機模式下,SPI 控制器模組控制
序列同步訊號和從機選擇訊號
多主裝置支援。序列訊號
同步由子系統同步訊號形成。控制器
使用最多 4 個選擇輸出訊號啟動訊息傳輸
Slave,可以外部擴充。控制器讀寫
使用 32 位元讀/寫資料暫存器從從裝置取得資料。
從機模式下,SPI控制器模組接收訊號
來自外部裝置的同步並將其用作 SPI_Ref_Clk 訊號
同步資料捕獲。在控制器的從模式下
已經實現了用於識別傳輸開始的可程式設計機制,其中
透過保持 SS 從機選擇訊號來啟動控制器。
用於讀取和寫入的 FIFO 暫存器在兩者之間提供緩衝
SPI輸入/輸出介面以及與其互動的模組軟體
APB 介面。 FIFO 緩衝區可用於從機模式和從機模式。
主裝置。
SPI控制器模組的基本特性:
- 四線匯流排 – MOSI、MISO、SCLK 和 SS;
- 最多可選擇四個從機作為主機模式
裝置;
- 以雙工模式工作(同時傳送和接收資料);
- Rx/Tx FIFO讀取/寫入連線埠對應到公共位址空間;
- 具有自身狀態和中斷的可程式 FIFO 閾值水準;
- 用於選擇從裝置的自動和手動模式;
- SS和MOSI訊號的可程式延遲;
- 可程式啟動偵測模式;
- 可程式設計相位和極性(CPHA、CPOL);
- 支援中斷。
APB 中斷
APB介面
TxFIFO SPI 控制 RxFIFO 傳送接收主從同步。 從機介面接腳 SPI MOSI SCLK SS MISO SO SI MI
中斷
轉乘
161
SPI 控制器模組框圖
此模組包括以下元件:
- APB介面;
- 傳送器和接收器 FIFO 暫存器;
- 接收的接收資料暫存器(RxFIFO);
- 傳送資料暫存器(TxFIFO);
- 時鐘系統;
- 控制電路;
- 領導塊;
- 從屬塊。
SPI 控制器的框圖如圖 58 所示。
圖 58 – SPI 控制器的功能圖
APB介面
32 位元 APB 介面用於存取暫存器和 FIFO。全部
暫存器傳輸寬度為 32 位元。
傳送器和接收器 FIFO 暫存器
每個 FIFO 暫存器有 8 個位元組。程式讀取和寫入
FIFO暫存器透過暫存器資料埠對應到通用位址
空間。 FIFO 暫存器可作為兩個域之間的橋樑
時脈頻率:APB 介面和控制器參考頻率 SPI_Ref_Clk。
程式在APB時脈域向TxFIFO暫存器寫入資料,
介面引腳
模式
162
控制器從時脈域的TxFIFO暫存器讀取資料
SPI_Ref_Clk。控制器填充時脈域中的 RxFIFO 暫存器
SPI_Ref_Clk,程式將RxFIFO暫存器讀入APB時脈域。
接收資料暫存器(RxFIFO)
如果控制器嘗試將資料移入完全滿的暫存器
收到資料,發生資訊遺失並設定標誌
溢位[RX_OVERFLOW]。已完成的資料無法新增
接收接收資料暫存器。程式寫1清除該位
[RX_溢位]。
傳輸資料暫存器(TxFIFO)
如果程式嘗試將資料寫入完全滿的暫存器
傳輸資料後,該條目將被忽略。資料不能
新增到完成的傳送資料暫存器。位元[TX_FIFO_FULL]
保持直到從 FIFO 讀取下一個位元組並將其放入移位中
註冊
時鐘系統
時脈子系統為 SPI 產生參考時脈訊號
控制器。 SPI_Ref_Clk 時脈訊號用於為邏輯提供時鐘
控制器電路和波特率產生器來生成
主模式下的時脈訊號SCLK。
功能說明
主模式
在SPI主機模式下,控制器可以傳輸資料
從裝置或啟動從從裝置接收資料。
控制器使用以下之一一次選擇一個從站
四條從選擇線。如果需要連線master
裝置有四個以上從站,這可以使用外部來完成
解碼器
163
資料傳輸
主裝置控制SCLK時脈訊號和MOSI訊號。
程式將需要傳輸的資料寫入TxFIFO暫存器中,
使用暫存器寫入,然後轉儲以供硬體傳輸
控制器。資料被饋送到主輸出資料引腳
(莫西)。只要 TxFIFO 暫存器中有資料,傳輸就會繼續。
資料在 MISO 引腳上順序接收並載入 8 位
RxFIFO 暫存器。程式使用讀取暫存器讀取 RxFIFO 暫存器。開
對於寫入 TxFIFO 暫存器的每 N 個位元組,有 N 個位元組儲存在
暫存器RxFIFO,必須由程式在下一個指令之前讀取
轉移。
從機選擇可以透過硬體或軟體來實現。
當 CONFIG.Manual_CS 位元設定為 1 時,控制器不控制選擇訊號
從機並且此功能必須在軟體中實現。
當設定CONFIG.Manual_CS=0時,控制器自動生成
從機選擇訊號。在這種情況下,從機選擇訊號被確定
暫存器 CONFIG.CS 和 CONFIG.PERI_SEL:
- 如果 CONFIG.PERI_SEL = 1,則在 SPIx_n_ss_out 引腳上傳送時
產生與 CONFIG.CS 欄位對應的值:
1) 將值 CONFIG.CS[0] 腳位寫入 SPIx_n_ss_out_0
2) 將值 CONFIG.CS[1] 腳位 SPIx_n_ss_out_1
3) 將值 CONFIG.CS[2] 腳位 SPIx_n_ss_out_2
4) 將值 CONFIG.CS[3] 腳位 SPIx_n_ss_out_3
- 如果 CONFIG.PERI_SEL = 0,則傳輸過程中只會選擇一個
主動輸出:
1) 當CONFIG.CS = 0b1110時,使用SPIx_n_ss_out_0接腳;
2) 當CONFIG.CS = 0b1101時,使用SPIx_n_ss_out_1腳;
3) 如果 CONFIG.CS = 0b1011,則使用 SPIx_n_ss_out_2 腳位;
4) 如果 CONFIG.CS = 0b0111,則使用 SPIx_n_ss_out_3 腳位;
5) 如果 CONFIG.CS = 0b1111,則不選擇從站。
注意 - 在主模式下工作時,必須考慮設定
晶片SPI0_n_ss_in和SPI1_n_ss_in的引腳並以此方式配置它們,
以便在傳輸時控制器的 n_ss_in 訊號設定為 1。對於
SPI1_n_ss_in SPI1_miso SPI1_mosi SPI1_clk SPI1_n_ss_out_1
味噌
SPI1_miso SPI1_mosi SPI1_clk SPI1_n_ss_out_1 SPI1_n_ss_in
莫西
SPI_時鐘
SS_1
SS_2
164
具有多個主機的電路的操作,有必要考慮到
處於主模式的裝置不能被選為從裝置,因為
這如何導致 MODE_FAIL 錯誤。
圖 59 – 多主模式下兩個裝置的連線圖
從機模式
在從模式下,控制器接收來自外部的訊息
主裝置並發出回應。控制器切換到從機模式
當配置位元設定如下時的裝置:CONFIG
[MODE_SEL] = 0 且啟用 [SPI_EN] = 1。
SCLK 訊號觸發 MOSI 輸入處的資料鎖存。控制器
如果應用從選擇引腳,則忽略 MOSI 輸入上的資料
高邏輯電平(非活動狀態)。從機選擇訊號
裝置在傳輸期間必須保持活動狀態。控制器
如果從機選擇訊號設定 STATUS [MODE_FAIL] 狀態位
裝置在傳輸過程中被中斷。程式處理中斷
[MODE_FAIL]如下,中斷傳輸,重設控制器並
再次開始傳輸。
將要傳輸到主機的資料寫入
透過軟體將TxFIFO暫存器,然後控制器將資料轉換為
序列流並輸出 MISO。轉移將持續到
直到TxFIFO暫存器為空並且從機選擇訊號被保持
處於活動狀態(低電位)。
味噌
165
同步
從機選擇輸入訊號必須與
輸入訊號SCLK。控制器以 SPI_Ref_Clk 頻率運作。輸入
訊號以 SPI_Ref_Clk 頻率同步和分析。
單字偵測
確定字開頭的過程以 SPI_Ref_Clk 頻率執行。
控制器開啟時檢測字:控制器是否已啟動
狀態(從非活動狀態),此時從機選擇訊號
為低電平(啟動狀態),控制器將傳遞訊息
並在捕獲之前等待 SCLK 訊號變為無效(字邊界)
資料。控制器計算 SCLK 訊號的無效狀態數
頻率 SPI_Ref_Clk。當計數器值達到時,就認為已接受新單字
將達到 [Slave_Idle_coun] 位元欄位中程式設計的值。
從機選擇訊號保持時的字檢測:
當控制器處於啟動狀態且訊號選擇從裝置時
處於高狀態(非活動模式)時,控制器認為該字
在 SS 訊號轉換後的 SCLK 訊號的下一個有效邊緣開始
為低電位(活動狀態)。
注意 – 與傳輸開始相對應的狀態是必需的
保持至少 4 個 SPI_Ref_Clk 時脈週期。
出現錯誤同步的可能性很小,且
如果啟動從模式,傳輸資料包會損壞
更接近資料傳輸的開始。
您可以透過以下方式之一避免此問題:
- 確保外部主機不會發起傳輸
資料,用於 SPI_Ref_Clk 訊號的 10 個週期,轉換後
從裝置進入主動模式;
- 確保從屬裝置在啟動前已開啟
外部主裝置;
- 確保從機選擇訊號在以下情況下不會啟動:
從裝置已開啟。
時脈_PH = 0
時鐘_PH = 1
時脈_POL = 0
時脈_POL = 1
時脈_POL = 0
時脈_POL = 1
控制前端
消極的
積極的
積極的
消極的
取樣前端
積極的
消極的
消極的
積極的
字間 SS 訊號狀態
活躍的
不活躍的
SCLK 狀態失字
活躍的
不活躍的
166
相位和極性
有 4 種組合來設定控制位的相位和極性
CONFIG暫存器中的[CLK_PH]和[CLK_POL]。這些引數決定了活動
邊緣,對從機選擇訊號和 SCLK 時脈訊號的限制。
時脈相位引數決定了字和字之間的SS訊號的狀態。
當控制器不傳送位元時的 SCLK 狀態。表 82 顯示了數值
控制訊號位[CLK_PH]和[CLK_POL]。
表 82 – 控制訊號 [CLK_PH] 和 [CLK_POL]
圖 60 – 以各種模式傳輸封包時的 SPI 訊號圖
工作
167
圖 61 – 各種工作模式下的 SPI 訊號圖
在主機模式下,時脈相位位[CLK_PH]的值
CONFIG暫存器中的[CLK_PH]透過此暫存器影響交換協議
延遲如下:
– CLK_PH = 0
SS 啟動:主機自動將 SS 輸出切換到
非活動狀態(高狀態)持續等於 1 個時鐘週期的時間
APB_P 匯流排。
字間延遲:當前字的最後一位與目前字的最後一位之間的延遲
下一個字的第一位 Time = (2 + [D_BTWN]) * SPI_Ref_Clk。最低
延遲三個週期 SPI_Ref_Clk。該延遲允許 TxFIFO 被解除安裝並
為下一次從並行程式碼轉換為串列程式碼做好準備,
168
並將從選擇訊號切換到非活動狀態(高
水平)。
– CLK_PH = 1
SS 啟動:SS 訊號在字之間不會變成非啟動狀態。
字間延遲:最後一位之間的最小延遲
當前字和下一個字的第一位預設為1
SPI_Ref_Clk 訊號的週期(由 DELAY 暫存器配置)。這允許
解除安裝 TxFIFO 並為並行程式碼的下一次轉換做好準備
成連續劇。
先進先出中斷
RxFIFO 和 TxFIFO 緩衝區中斷如圖 62 所示。
圖 62 – RxFIFO 和 TxFIFO 暫存器中斷
中斷狀態位元(靜態和動態)以以下方式過濾
遮蔽暫存器然後進入系統中斷控制器。註冊
遮罩控制所示的中斷啟用和停用暫存器
如圖 63 所示。
169
圖 63 – 中斷暫存器
如何使用SPI控制器
使用控制器時,必須執行以下操作:
– 初始化
1)關閉控制器(寫入ENABLE.SPI_EN=0);
2)清空接收器FIFO(寫ENABLE.CLEAR_RX=1);
3) 重設中斷遮蔽(寫入INT_DISABLE= 0x3F);
4) 重設事件標誌(寫入STATUS= 0x3F);
5)設定必要的中斷遮蔽(寫入暫存器
INT_啟用);
6) 啟用來自所使用的 SPI 控制器的中斷(IRQ[3]
可程式控制器中的 SPI_0 或 SPI[1] 的 IRQ[4])
中斷;
7) 設定演示器的操作模式:
a) 設定所需的 CONFIG.Manual_CS 值,
b) 設定所需的 CONFIG.CS 值,
c) 設定所需的 CONFIG 值。波特率_格
d) 設定 CONFIG.MODE_SEL=1,
e) 設定所需的CONFIG.CLK_PH值,
f) 設定所需的CONFIG.CLK_CPOL值
8) 設定從機的工作模式:
a) 設定 CONFIG.MODE_SEL=0,
b) 設定所需的CONFIG.CLK_PH值,
c) 將所需的值設為 CONFIG.CLK_CPOL
170
– 主模式下的資料傳輸(以一次傳輸一個位元組為例)
1)寫入暫存器TX_THR=1;
2)向傳送器FIFO寫入資料(寫入TXDATA暫存器);
3) 等待位元組傳輸結束(查詢STATUS 位元。
TX_NOT_FULL或相應中斷的出現);
4)從接收器FIFO(RXDATA暫存器)讀取接收值
– 從機模式下的資料傳輸
1)向傳送器FIFO寫入資料(寫入TXDATA暫存器)
2)等待資料傳輸(輪詢STATUS位元。RX_NOT_EMPTY或
相應中斷的出現)
3)從接收器FIFO(RXDATA暫存器)讀取接收值
- 工作完成狀況
1)關閉控制器(寫入ENABLE.SPI_EN=0);
2)清空接收器FIFO(寫ENABLE.CLEAR_RX=1);
3) 重設事件標誌(寫入STATUS=STATUS & 0x3F);
4) 重設中斷遮蔽(寫入INT_DISABLE= 0x3F);
5) 重設事件標誌(寫入STATUS= 0x3F);
SPI 控制器與 DMA 控制器的結合操作
無論中斷遮罩如何,SPI 控制器都會產生讀取請求
並記錄到DDP控制器。寫入請求匹配一個不完整的TX_FIFO,該請求
用於讀取對應於非空RX_FIFO。
要使用 DMA 從 RX_FIFO 讀取資料,您需要設定:
CHx_CFG.READ_MODE = 0; // 以外設模式讀取
CHx_CFG.READ_INCRMENT = 0; // 從一個位址進行讀取
CHx_CFG.READ_SIZE = 0; // 讀取1個位元組
對於 SPI_0 - CHx_CFG.READ_REQUETS = 3; // SPI_0 線
對於 SPI_1 - CHx_CFG.READ_REQUETS = 4; // SPI_1 線
LEN=0; // 1 位元組
對於 SPI_0:SRC = 0x00083020;
對於 SPI_1:SRC = 0x00083420;
下面給出了使用 DAP 進行閱讀的範例。如圖所示
以下事件:
171
1. 透過 SPI 位元組傳輸結束。設定資料外觀標誌
RX_FIFO(RX_FIFO_NOT_EMPTY)。該標誌是一個寫入請求
說唱。
2. DMA 控制器透過 AHB 匯流排產生讀取請求
地址 0x0083020
3. 從SPI控制器讀取RX_FIFO資料
4. DDP控制器將接收到的資料記錄到RAM中
圖 64 – 使用 DMA 讀取資料
若要使用 DMA 寫入 TX_FIFO,您必須設定:
CHx_CFG.WRITE_MODE = 0; // 週邊裝置模式錄音
CHx_CFG.WRITE_INCRMENT = 0; // 記錄執行到一個位址
CHx_CFG.WRITE_SIZE = 0; //寫入1個位元組
對於 SPI_0 - CHx_CFG.WRITE_REQUETS = 3; // SPI_0 線
對於 SPI_1 - CHx_CFG.WRITE_REQUETS = 4; // SPI_1 線
LEN=0; // 1 位元組
對於 SPI_0:DST = 0x0008301C;
對於 SPI_1:DST = 0x0008341C;
下面介紹了使用 DAP 進行錄音的範例。如圖所示
以下事件:
1. 從 RAM 讀取資料。等待 SPI 寫入資料的請求
2. 透過 SPI 的位元組傳輸結束。設定「空格」存在的標誌
TX_FIFO 中的資料(TX_FIFO_NOT_FULL)。該標誌是一個請求
RAP 條目。
3. DDP控制器透過AHB匯流排產生寫入請求
地址0x008301C
4. 向SPI控制器中的TX_FIFO寫入資料,向DDP重設請求
(TX_FIFO_NOT_FULL)
名稱
偏移量
初始值
目的
訪問
配置
0x00
0x00000000
SPI 設定暫存器
*
狀態
0x04
0x00000004
狀態暫存器
*
INT_啟用
0x08
0x00000000
中斷使能暫存器
沃
INT_DISABLE
0x0С
0x00000000
中斷禁用暫存器
沃
INT_MASK
0x10
0x00000000
目前中斷遮蔽暫存器
R.O.
啟用
0x14
0x00000000
SPI 啟用/停用暫存器
*
延遲
0x18
0x00000000
延時暫存器
RW
傳送資料
0x1С
0x00000000
傳輸資料暫存器
沃
接收資料
0x20
0x00000000
接收資料暫存器
R.O.
碳化矽
0x24
0x000000FF
從站停止計數器暫存器
*
TX_THR
0x28
0x00000001
閾值暫存器TX_FIFO
RW
身分證號
0x2С
0x01090100
模組ID號
R.O.
* 存取型別取決於暫存器欄位/位元。
172
圖 65 – 使用 DMA 記錄資料
SPI 控制器模組暫存器
暫存器的描述如表 83 – 95 所示。
表 83 – SPI 控制器模組暫存器
名稱
排名
初始值
目的
訪問
保留
31:15
保留
手動_CS
14
0x0
選擇從機選擇訊號控制模式:1——手動模式;0 – 自動模式
RW
C.S.
13:10
0xF
從裝置選擇: 0bxxx0 – 選擇裝置 4;0bxx01 – 選擇裝置 1;0bx011 – 選擇裝置 2;0b0111 – 選擇裝置 3;0b1111 – 未選擇從裝置
RW
PERI_SEL
9
0x0
選擇外圍解碼器:「1」—使用外部解碼器; 「0」 – 僅選擇 4 個裝置中的 1 個
參考時鐘
8
0x0
參考時脈選擇1——不支援;0 – 使用 SPI 參考頻率
RW
保留
7:6
保留
173
表 84 – SPI 控制器模組 CONFIG 暫存器
名稱
排名
初始值
目的
訪問
波特率_格
5:3
0x0
控制資料傳輸速率,設定分頻係數 spi_ref_clk:0b000 – 除以 2; 0b001——除以4;0b010——除以8;0b011——除以16;0b100——除以 32;0b101——除以 64;0b110——1285 – 112125 – 12862;
RW
CLK_PH(CPHA)
2
0x0
時脈相位選擇: 1 – SPI 時脈頻率在字外無效; 0 – SPI 時脈有效外部字
RW
CLK_POL(CPOL)
我
0x0
選擇字外時脈訊號的極性: 1——時脈訊號保持高電位;0 – 時脈訊號保持低電位
RW
MODE_SEL(MSTREN)
0
0x0
模式選擇:1——SPI為主模式;0 – SPI 處於從機模式
RW
名稱
排名
初始值
目的
訪問
保留
31:16
保留
SPI_ACTIVE
15
0x0
傳輸會話狀態:「1」—SPI 控制器正在交換過程中; 「0」—SPI控制器處於交換等待狀態
R.O.
保留
14:7
保留
174
表 85 – SPI 控制器模組狀態暫存器
名稱
排名
初始值
目的
訪問
TX_FIFO_UNDERFLOW (IXR_TXUF)
6
0x0
TX FIFO 暫存器為空: 1 – 空偵測; 0 – 未偵測到清空 如果交換開始時 TX_FIFO 中沒有資料,則設定為從機模式
R.C.
RX_FIFO_FULL (IXR_RXFULL)
5
0x0
RX_FIFO 暫存器已滿: 1 – FIFO 已滿; 0 – FIFO 未滿
R.O.
RX_FIFO_NOT_EMPTY (IXR_RXNEMPTY)
4
0x0
RX_FIFO 暫存器不為空: 1 – FIFO 中至少有一個位元組; 0 – FIFO 為空
R.O.
TX_FIFO_FULL (IXR_TXFULL)
3
0x0
TX_FIFO 暫存器已滿: 1 – FIFO 已滿; 0 – FIFO 未填充
R.O.
TX_FIFO_NOT_full (IXR_TXOW)
2
0x1
TX_FIFO 暫存器未填入: 1 – 暫存器填充量小於 THRESHOLD; 0 – 暫存器被填入閾值或更大
R.O.
模式_失敗(IXR_MODF)
1
0x0
n_ss_in 腳位上的電壓與 SPI 操作模式不對應: 1 – 如果 n_ss_in 在從機模式下為低電位; 0 – 正確操作
R.C.
175
名稱
排名
初始值
目的
訪問
RX_溢位(IXR_RXOVR)
0
0x0
RX_FIFO 溢位時中斷,讀取時重設該值: l – RX_FIFO 溢位; 0 – 無溢位
R.C.
注意 – 如果發生導致中斷的事件,則暫存器位元 [6:0] 設定為「1」。
名稱
排名
初始值
目的
訪問
保留
31:7
保留
TX_FIFO_UNDERFLOW (IXR_TXUF)
6
0x0
當TX_FIFO為空時寫“1”設定中斷遮蔽(使能中斷)
沃
RX_FIFO_FULL (IXR_RXFULL)
5
0x0
當 RX_FIFO 已滿時寫“1”設定中斷遮蔽(啟用中斷)
沃
RX_FIFO_NOT_EMPTY (IXR_RXNEMPTY)
4
0x0
當RX_FIFO不為空時寫“1”設定中斷遮蔽(使能中斷)
沃
TX_FIFO_FULL (IXR_TXFULL)
3
0x0
當 TX_FIFO 已滿時寫入「1」設定中斷遮蔽(啟用中斷)
沃
TX_FIFO_NOT_full (IXR_TXOW)
2
0x0
當 TX_FIFO 未滿時,條目「1」設定中斷遮蔽(啟用中斷)
沃
模式_失敗(IXR_MODF)
1
0x0
當模式被違反時記錄“1”設定中斷遮罩(啟用中斷)
沃
RX_溢位(IXR_RXOVR)
0
0x0
記錄「1」在接收溢位時設定中斷遮蔽(啟用中斷)
沃
176
表 86 – SPI 控制器模組 INT_ENABLE 暫存器
名稱
排名
初始值
目的
訪問
保留
31:7
保留
TX_FIFO_UNDERFLOW (IXR_TXUF)
6
0x0
當TX_FIFO為空時寫“1”重置中斷遮蔽(禁用中斷)
沃
RX_FIFO_FULL (IXR_RXFULL)
5
0x0
當 RX_FIFO 已滿時寫入「1」重置中斷遮蔽(停用中斷)
沃
RX_FIFO_NOT_EMPTY (IXR_RXNEMPTY)
4
0x0
當RX_FIFO不為空時寫“1”重置中斷遮蔽(禁用中斷)
沃
TX_FIFO_FULL (IXR_TXFULL)
3
0x0
當 TX_FIFO 已滿時寫入「1」會重置中斷遮蔽(停用中斷)
沃
TX_FIFO_NOT_FULL (IXR_TXOW)
2
0x0
當 TX_FIFO 未滿時寫入“1”會重置中斷遮蔽(禁用中斷)
沃
模式_失敗(IXR_MODF)
1
0x0
當模式被違反時,寫入「1」會重置中斷遮蔽(停用中斷)
沃
RX_溢位(IXR_RXOVR)
0
0x0
寫入「1」會在接收溢位時重置中斷遮蔽(停用中斷)
沃
名稱
排名
初始值
目的
訪問
保留
31:7
保留
TX_FIFO_UNDERFLOW (IXR_TXUF)
6
0x0
TX_FIFO 為空時中斷遮蔽的目前狀態: 0 – 中斷停用; 1 – 中斷啟用
R.O.
177
表 87 – SPI 控制器模組 INT_DISABLE 暫存器
表 88 – SPI 控制器模組 INT_MASK 暫存器
名稱
排名
初始值
目的
訪問
RX_FIFO_FULL (IXR_RXFULL)
5
0x0
RX_FIFO 已滿時中斷遮蔽的目前狀態: 0 – 中斷停用;1 – 中斷啟用
R.O.
RX_FIFO_NOT_EMPTY (IXR_RXNEMPTY)
4
0x0
RX_FIFO 不為空時中斷遮蔽的目前狀態: 0 – 中斷停用; 1 – 中斷啟用
R.O.
TX_FIFO_FULL (IXR_TXFULL)
3
0x0
TX_FIFO 已滿時中斷遮蔽的目前狀態: 0 – 中斷停用;1 – 中斷啟用
R.O.
TX_FIFO_NOT_FULL (IXR_TXOW)
2
0x0
TX_FIFO 未填滿時中斷遮蔽的目前狀態: 0 – 中斷停用; 1 – 中斷啟用
R.O.
模式_失敗(IXR_MODF)
1
0x0
違反模式時中斷遮蔽的目前狀態: 0 – 中斷停用; 1 – 中斷啟用
R.O.
RX_溢位(IXR_RXOVR)
0
0x0
接收溢位時中斷遮蔽的目前狀態: 0 – 中斷停用; 1 – 中斷啟用
R.O.
178
標題
排名
初始值
描述
訪問
保留
31:4
保留
清除接收先進先出
3
0x0
在 SPI_EN = 0 時寫入 1 會清除 RX_FIFO 緩衝區。
RW
CLEAR_TX_FIFO
2
0x0
在 SPI_EN = 0 時寫入 1 會清除 TX_FIFO 緩衝區。
RW
SPI_EN(啟用)
0
0x0
SPI_Enable:1——啟用SPI模組;0 – 停用 SPI 模組
RW
名稱
排名
初始值
目的
訪問
保留
31:24
保留
D_BTWN(順便一提)
23:16
0x0
一個從裝置的選擇訊號被移除與另一從裝置的選擇訊號被置位之間的參考時脈或 ext_clk 時脈週期的延遲。
RW
D_AFTER(之後)
升5:8
0x0
當前字的最後一位與下一個字的第一位之間的參考時脈或 ext_clk 時脈的週期延遲
RW
D_INT(初始化)
7:0
0x0
將 n_ss_out 設定為「0」和傳輸第一位之間的參考時脈或 ext_clk 時脈週期中的額外延遲
RW
179
表 89 – SPI 控制器模組啟用暫存器
表 90 – SPI 控制器模組 DELAY 暫存器
名稱
排名
初始值
目的
訪問
TX_FIFO_資料
31:0
0x0
TX_FIFO 的資料。 可用資料位:[7:0]
沃
名稱
排名
初始值
目的
訪問
RX_FIFO_資料
31:0
0x0
來自 RX_FIFO 的資料。 可用資料位:[7:0]
R.O.
名稱
排名
初始值
目的
訪問
保留
31:8
保留
從屬_空閒_計數
7:0
0xFF
僅當 sclk_in(外部主裝置)時脈訊號在該欄位中指定的 SPI 參考時脈週期數內沒有變化或 SPI 模組處於非活動狀態時,處於從機模式的 SPI 模組才開始傳送
RW
名稱
排名
初始值
目的
訪問
_TX_ FIFO 的閾值
31:0
0xl
設定 TX_FIFO 被視為空並產生中斷的級別
RW
名稱
排名
初始值
目的
訪問
身分證號
31:0
0x01090100
模組ID號
R.O.
180
表 91 – SPI 控制器模組 TXDATA 暫存器
表 92 – SPI 控制器模組的 RXDATA 暫存器
表 93 – SPI 控制器模組的 SIC 暫存器
表 94 – SPI 控制器模組 TX_THR 暫存器
表 95 – SPI 控制器模組 ID 暫存器
名稱
偏移量
初始值
目的
訪問
設定/狀態
0x00
0x0
引腳的目前狀態/設定“1” 讀取時 – 引腳的目前狀態。 當寫入“1”位元時,對應引腳設定為“1”
RW
清麗
0x04
0x0
中斷的目前狀態/設定「0」 讀取時 – 中斷請求的目前狀態。 當寫入“1”位元時,對應位元輸出設定為“0”
沃
方向輸出
0x08
0xFFFF(0xFF)
設定引腳方向為輸出 讀取時 – 引腳目前方向: 0 – 輸出; 1 – 輸入。 寫入“1”將相應引腳設定為“輸出”
RW
DIRECTION_IN
0x0С
0xFFFF(0xFF)
設定引腳方向為輸入 讀取時 – 目前腳位方向:0 – 輸出; 1 – 輸入。 寫“1”將相應引腳設定為“輸入”
RW
181
通用輸入/輸出 (GPIO) 模組
每個輸入/輸出模組(GPIO)都有一個APB介面並控制16或8個
外部輸出。每個外部引腳都是單獨控制的。
表 96 列出了 GPIO 模組暫存器。所有暫存器都有
位元深度對應於區塊的輸出數量。
表 96 – GPIO 模組暫存器
名稱
偏移量
初始值
目的
訪問
輸出
0x10
0x0
輸出暫存器讀取返回輸出暫存器的內容,無論當前引腳方向如何寫入設定輸出暫存器所有位的值
RW
控制
0x14
0x0
測試模式 將“1”寫入[0]位——啟用測試模式(輸出與模組內部輸入短路) 將“0”寫入[0]位——正常模式
RW
名稱
偏移量
初始值
目的
訪問
PAD0_CFG
0x00
0x55400000
控制 PORT0 接腳功能
RW
182
多功能接腳(PAD CONFIG)
GPIO 輸入和輸出與功能引腳復用。
引腳表中列出了目的和復用方案。對於
使用功能控制暫存器PAD0_CFG、PAD1_CFG、PAD2_CFG。
I/O 單元可讓您調整輸出負載能力
(暫存器PAD0_DS、PAD1_DS、PAD2_DS)並連線上拉電阻
電源/地(暫存器PAD0_PUPD、PAD1_PUPD、PAD2_PUPD) 這些的用途
表 97 – 100 列出了暫存器和各個欄位。
控制方式、負載能力及端子上拉
需要 PAD_CONFIG 區塊的時鐘。外部復位後
PAD_CONFIG 區塊的微控制器時脈已啟用。
當外部重設有效(RST#引腳處於邏輯0)時,所有
多功能引腳作為輸入(處於第三狀態),
內建吊帶未連線。
表 97 – 引腳功能控制暫存器。
名稱
偏移量
初始值
目的
訪問
PAD0_DS
0x04
0x00000000
控制 PORT0 接腳的負載能力
RW
PAD0_PUPD
0x08
0x00000000
PORT0上拉電阻的控制
RW
PAD1_CFG
0x0С
0x00000000
控制 PORT1 接腳功能
RW
PAD1_DS
0x10
0x00000000
控制 PORT1 腳位的負載能力
RW
PAD1_PUPD
0x14
0x00000000
控制PORT1上拉電阻
RW
PAD2_CFG
0x18
0x00000000
控制 PORT2 接腳功能
RW
PAD2_DS
0x1С
0x00000000
控制 PORT2 接腳的負載能力
RW
PAD2_PUPD
0x20
0x00000000
控制PORT2上拉電阻
RW
註 – 偏移量是相對於模組基址 0x00050C00 指定的
名稱
排名
初始值
目的
訪問
連線埠_x_15
31:30
0x0
兩位的值對所選輸出功能進行編碼: 0b00 - 第一個功能(通用連線埠) 0b01 - 第二個功能(序列介面) 0b10 - 第三個功能(序列介面或定時器) 0b11 - 第四個功能(類比訊號)
RW
連線埠_x_14
29:28
0x0
RW
連線埠_x_13
27:26
0x0
RW
連線埠_x_12
25:24
0x0
RW
連線埠_x_11
23:22
0x0
RW
連線埠_x_10
21:20
0x0
RW
連線埠_x_9
19:18
0x0
RW
連線埠_x_8
17:16
0x0
RW
連線埠_x_7
15:14
0x0
RW
連線埠_x_6
13:12
0x0
RW
183
表 98 – 用於控制引腳功能的 PADx_CFG 暫存器的欄位
名稱
排名
初始值
目的
訪問
連線埠_x_5
11:10
0x0
RW
連線埠_x_4
9:8
0x0
RW
連線埠_x_3
7:6
0x0
RW
連線埠_x_2
5:4
0x0
RW
連線埠_x_1
3:2
0x0
RW
連線埠_x_0
1:0
0x0
RW
名稱
排名
初始值
目的
訪問
連線埠_x_15
31:30
0x0
兩位的值對所選輸出模式進行編碼:0b00 – 2mA、0b01 – 4mA、0b10、0b11 – 8mA
RW
連線埠_x_14
29:28
0x0
RW
連線埠_x_13
27:26
0x0
RW
連線埠_x_12
25:24
0x0
RW
連線埠_x_11
23:22
0x0
RW
連線埠_x_10
21:20
0x0
RW
連線埠_x_9
19:18
0x0
RW
連線埠_x_8
17:16
0x0
RW
連線埠_x_7
15:14
0x0
RW
連線埠_x_6
13:12
0x0
RW
連線埠_x_5
11:10
0x0
RW
連線埠_x_4
9:8
0x0
RW
連線埠_x_3
7:6
0x0
RW
連線埠_x_2
5:4
0x0
RW
連線埠_x_1
3:2
0x0
RW
連線埠_x_0
1:0
0x0
RW
名稱
排名
初始值
目的
訪問
連線埠_x_15
31:30
0x0
兩位的值對所選的輸出模式進行編碼
RW
連線埠_x_14
29:28
0x0
RW
184
表 99 – 用於控制輸出負載能力的 PADх_DS 暫存器的欄位
表 100 – 用於控制上拉電阻的 PADх_PUPD 暫存器的欄位
名稱
排名
初始值
目的
訪問
連線埠_x_13
27:26
0x0
0b00 – 上拉暫存器未連線,0b01 – 50 kOhm 上拉暫存器連線到電源,0b10 – 50 kOhm 上拉暫存器接地,0b11 – 保留
RW
連線埠_x_12
25:24
0x0
RW
連線埠_x_11
23:22
0x0
RW
連線埠_x_10
21:20
0x0
RW
連線埠_x_9
19:18
0x0
RW
連線埠_x_8
17:16
0x0
RW
連線埠_x_7
15:14
0x0
RW
連線埠_x_6
13:12
0x0
RW
連線埠_x_5
11:10
0x0
RW
連線埠_x_4
9:8
0x0
RW
連線埠_x_3
7:6
0x0
RW
連線埠_x_2
5:4
0x0
RW
連線埠_x_1
3:2
0x0
RW
連線埠_x_0
1:0
0x0
RW
中斷
Line_0 復用器[3:0]
Line_1 多工器[7:4]
Line_2 復用器[11:8]
Line_3 多工器[15:12]
Line_4 多工器[19:16]
Line_5 多工器[23:20]
Line_6 多工器[27:24]
Line_7 多工器 [31:28]
復用器[i]=0
GPIO0_0
GPIO0_1
GPIO0_2
GPIO0_3
GPIO0_4
GPIO0_5
GPIO0_6
GPIO0_7
復用器[i]=1
GPIO0_8
GPIO0_9
GPIO0_10
GPIO0_11
GPIO0_12
GPIO0_13
GPIO0_14
GPIO0_15
復用器[i]=2
GPIO1_0
GPIO1_1
GPIO1_2
GPIO1_3
GPIO1_4
GPIO1_5
GPIO1_6
GPIO1_7
復用器[i]=3
GPIO1_8
GPIO1_9
GPIO1_10
GPIO1_11
GPIO1_12
GPIO1_13
GPIO1_14
GPIO1_15
復用器[i]=4
GPIO2_0
GPIO2_1
GPIO2_2
GPIO2_3
GPIO2_4
GPIO2_5
GPIO2_6
GPIO2_7
復用器[i]=5
GPIO0_4
GPIO0_5
GPIO0_6
GPIO0_7
GPIO0_0
GPIO0_1
GPIO0_2
GPIO0_3
復用器[i]=6
GPIO0_12
GPIO0_13
GPIO0_14
GPIO0_15
GPIO0_8
GPIO0_9
GPIO0_10
GPIO0_11
185
I/O口中斷模組(GPIO IRQ)
輸出中斷的處理是在單獨的模組中實現的。輸入線
三個 I/O 塊連線到 8 個多路復用器,形成 8 條線路,用於
產生哪些中斷。每個多工器獨立控制,
基於 LINE_MUX 欄位的對應位元。
開關圖如表 101 所示。
表 101 – 切換中斷線。
中斷
Line_0 復用器[3:0]
Line_1 多工器[7:4]
Line_2 復用器[11:8]
Line_3 多工器[15:12]
Line_4 多工器[19:16]
Line_5 多工器[23:20]
Line_6 多工器[27:24]
Line_7 多工器 [31:28]
復用器[i]=7
GPIO1_4
GPIO1_5
GPIO1_6
GPIO1_7
GPIO1_0
GPIO1_1
GPIO1_2
GPIO1_3
復用器[i]=8
GPIO1_12
GPIO1_13
GPIO1_14
GPIO1_15
GPIO1_8
GPIO1_9
GPIO1_10
GPIO1_11
復用器[i]=9
GPIO2_4
GPIO2_5
GPIO2_6
GPIO2_7
GPIO2_0
GPIO2_1
GPIO2_2
GPIO2_3
復用器[i]=10
0
0
0
0
0
0
0
0
名稱
偏移量
初始值
目的
訪問
狀態
0x00
0x0
多工器之後線路輸出的目前狀態。 位元編號對應於頻道編號。
R.O.
線路復用器
0x04
0x0
多路復用器控制。每個多工器由自己的 4 位元控制:Mux_0 – [3:0]; Mux_1 – [7:4]; Mux_2 – [11:8]; Mux_3 – [15:12]; Mux_4 – [19:16];Mux_5–[23:20]; Mux_4 – [19:16];Mux_5–[23:20];
沃
中斷
0x08
0x0
中斷的當前狀態。 位元編號對應於頻道編號。
RW
186
註——當I/O口中斷模組
配置為電平操作時,中斷輸出不會被鎖存。在這個
在這種情況下,您應該配置外部中斷控制器(EPIC)以根據
到前面。當配置 I/O 連線埠中斷模組(GPIO IRQ)時
為了對事件(上升沿/下降沿)進行操作,中斷輸出被鎖存。
表 102 給出了中斷區塊暫存器的描述。
表 102 – GPIO 中斷控制模組的暫存器
名稱
偏移量
初始值
目的
訪問
啟用_設定
0x0C
0x0
中斷啟用暫存器 讀取時 – 中斷啟用的目前狀態。 寫入時,「1」啟用對應頻道的中斷。
RW
啟用_清除
0x10
0x0
中斷停用暫存器 讀取時 – 中斷啟用的目前狀態。 寫“1”時,禁止對應通道的中斷
RW
邊緣
0x14
0x0
中斷型別暫存器。 讀取時-目前中斷型別:「1」-按事件(邊緣或下降沿),「0」-按電平。 記錄「1」 – 對應頻道的事件產生中斷 記錄「0」 – 無效
RW
等級
0x18
0xFF
中斷型別暫存器。 讀取時 – 目前中斷型別(反轉):「0」 – 按事件; “1”-按等級。 寫“1”——根據對應通道的電平產生中斷 寫“0”——無效
RW
187
名稱
偏移量
初始值
目的
訪問
等級設定
0x1C
0x0
中斷等級/事件選擇暫存器。 讀取時:「0」—邏輯「0」下降沿或電平產生中斷; “1” – 上升沿或邏輯「1」電平產生中斷 記錄「1」 – 相應通道的上升沿或邏輯「1」電平產生中斷
RW
等級_清除
0x20
0x0
中斷等級/事件暫存器。 讀取時:「0」—邏輯「0」下降沿或電平產生中斷; “1” – 上升沿或邏輯「1」電平產生中斷 記錄「1」 – 相應通道的下降沿或邏輯「0」電平產生中斷
RW
ANY_EDGE_SET
0x24
0x0
任何事件的中斷暫存器。 記錄「1」-任何對應通道的變更都會產生中斷
RW
ANY_EDGE_CLEAR
0x28
0x0
任何事件的中斷暫存器。 記錄「1」-對應通道發生任何變更均不會產生中斷
RW
188
名稱
偏移量
初始值
目的
訪問
清麗
0x2C
–
事件中斷標誌重設暫存器。 寫“1”——清除對應通道的中斷標誌
W1C
189
外部記憶體控制器(SPIFI)
帶有快取的 SPIFI 控制器旨在組織互動
微處理器核心帶有外部FLASH儲存晶片。這允許
確保快閃記憶體晶片中記錄的程式碼的執行,以及
此外,如有必要,還可以將任意資料讀取和寫入外部快閃記憶體
程式執行期間的記憶體。
帶有快取的 SPIFI 控制器確保與快閃記憶體晶片的操作
透過 SPI 介面以三種模式之一:單通道;雙通道;
四通道。預設模式為單通道、雙通道
四聲道模式透過軟體啟用。
外部FLASH記憶體晶片連線到具有快取的SPI Flash單元,
必須有內建SPI介面(Single、Dual、Quatro)並支援撥號
JEDEC 標準中定義的控制指令。
設定讀取/寫入資料的命令圖的時序特性
外部快閃記憶體由軟體透過暫存器控制
具有快取的 SPIFI 控制器控制。
內建硬體驅動支援Flash型別偵測指令,
透過暫存器檔案啟動,並且還支援選擇選項
用於通訊的命令(單一讀數或保持
閱讀順序)。
預設情況下,使用最常見的時序圖
沒有進行效能最佳化來保證程式碼執行
程式直接來自快閃記憶體晶片。
SPIFI快閃記憶體介面控制器
SPIFI快閃記憶體介面控制器是數位機,
專為系統單晶片處理器的資訊介面而設計
目前與未來的(CPU SOC)與快閃記憶體晶片(MFP)
190
型別。此控制器可在以下情況下使處理器免於執行例行操作:
使用快閃記憶體(執行記憶體讀取、寫入和擦除操作時)。
在操作開始時,處理器配置 SPIFI 控制器,並且在操作期間
處理器透過並行高速與快閃記憶體交換訊息
同步匯流排AHB。
控制器可以在兩種模式下運作:
- 附週邊裝置的操作模式;
- 記憶工作模式。
SPIFI 控制器還具有啟動模式(一種型別
記憶體模式),其中 SOC 的初始啟動可以
從 SPI 快閃記憶體實作。在這種情況下,無需從
具有大量引腳的並行載入記憶體(這對
尺寸和可靠性)。
SPIFI控制器可以像平常一樣與快閃記憶體一起工作
串列模式,當資料透過兩個傳輸/接收時
單向線路 (MISO/MOSI) 和並行模式(兩個和
四位),當資料透過兩個或四個傳輸/接收時
雙向線。
控制器的框圖如圖 44 所示。
191
圖 66 – SPIFI 快閃記憶體控制器框圖
SPIFI 快閃記憶體介面控制器由下列元件組成:
- AHB匯流排介面單元;
- 先進先出緩衝器;
- 一組控制暫存器;
- 中斷請求觸發;
- 移位暫存器;
- 自動控制;
- 三穩態緩衝器;
- 時脈訊號整形器SCK;
- 計數器(超時和移位)。
AHB 匯流排介面區塊將來自該匯流排的訊號轉換為讀取訊號
以及控制暫存器的記錄,資料暫存器除外。控制暫存器塊
產生所有控制訊號和控制器狀態。控制訊號
來到控制機器,控制與資訊交換的過程
快閃記憶體。本機也控制SPIFI_SCK時脈訊號的產生
透過適當的整形器。資料轉移過程自動控制
使用移位計數器。移位暫存器將記錄的資料移位
訊息到快閃記憶體並返回。資料透過以下方式進入快閃記憶體
三穩態緩衝器,這是關閉移位輸出所必需的
當控制器運作時,暫存器同時從快閃記憶體接收訊息
雙/四模式。並行讀取和寫入移位暫存器的資料
透過 FIFO 緩衝區執行,該緩衝區依序接收來自
AHB 匯流排介面單元。在 FIFO 緩衝區的位址空間中,資料
位於DATA資料暫存器的位址。
SPIFI 控制器暫存器
表 88 給出了 SPIFI 控制器的暫存器對映。 資訊交換
處理器和控制暫存器之間的互動作用是透過AHB匯流排進行的。
名稱
偏移量
初始值
目的
訪問
控制鍵
0x000
0x400FFFFF
SPIFI控制暫存器
RW
指令管理系統
0x004
0x00000000
SPIFI命令暫存器
RW
地址
0x008
0x00000000
SPIFI位址暫存器
RW
資料傳輸
0x00C
0x00000000
SPIFI中間資料暫存器
RW
克利米特
0x010
0x00000000
SPIFI快取位址上限暫存器
RW
資料
0x014
0x00000000
SPIFI資料暫存器
RW
MCMD
0x018
0x03800000
SPIFI記憶體命令暫存器
RW
統計資料
0x01C
0x02000001
SPIFI狀態暫存器
RW
名稱
排名
初始值
目的
訪問
DMAEN
31
0x0
來自 SPIFI 控制器 1 的 DMA 請求啟用位元 – 允許請求。 僅以外圍裝置模式安裝
RW
FB時鐘
30
0x1
用於從輸出時脈緩衝器選擇輸入資料閘控訊號的位元:0 – 內部訊號,1 – 外部訊號
RW
192
表 103 – SPIFI 控制器暫存器列表
控制暫存器CTRL
此暫存器控制所有控制器操作的執行,並且必須
在初始化任何命令之前進行配置。該暫存器的欄位
見表104。
表 104 – CTRL 控制暫存器
名稱
排名
初始值
目的
訪問
射頻時鐘
29
0x0
輸入資料閘控的有效訊號邊緣選擇位:0 – 正; 1 – 陰性
RW
雙
28
0x0
協定選擇位元:IO[3:0]訊號-(0-4)位元協定;IO[1:0] 訊號 – (1–2) 位元協定
RW
PRFTCH_DIS
27
0x0
快取預取啟用位 0 – 預取啟用
RW
SCK_DIV
26:24
0x0
分頻器從系統時脈HCLK取得SPIFI_SCK時脈。 頻率使用以下公式計算:FSPIFI_SCK = FHCLK / 2(SCK_DIV+1)
RW
模式3
23
0x0
模式位 3
RW
英騰
22
0x0
命令執行完成時中斷允許位元(如果該位元為“1”,則允許中斷)
RW
193
名稱
排名
初始值
目的
訪問
D_CACHE_DIS
21
0x0
資料快取 停用位元(HPROT[0] = 1 訊號的 AHB 交易): 0 – 啟用快取時,資料被快取; 1 – 資料不會被快取
RW
CACHE_EN
20
0x0
快取使能位
西高
19:16
0xF
執行指令之前 SPIFI_SCK 訊號的週期數減一,在此期間 SPIFI_CS 訊號保持無效狀態
RW
保留
15:0
保留
名稱
排名
初始值
目的
訪問
操作碼
31:24
0x0
操作程式碼(不用於某些 FRAMEFORM 欄位值)
RW
194
CMD命令暫存器
CMD 命令暫存器決定控制器動作的順序
執行外設模式命令。此暫存器只能寫入
當 CMD 和 MCINIT 位元為零時。該暫存器的欄位在中給出
表 105.
表 105 – CMD 命令暫存器
名稱
排名
初始值
目的
訪問
框架
23:21
0x0
操作碼和命令位址欄位的控制位元:0——保留; 1——只發出操作碼,不發出位址; 2——操作碼和位址低位元組;3——操作碼和位址的兩個低位元組; 4——操作碼和位址的三個低位元組;5——操作碼和4個位址位元組; 6——無操作碼,位址低三個位元組;
RW
現場表格
20:19
0x0
命令欄位輸出格式: 0 – 所有欄位以順序模式輸出;1 – 資料以四位元或兩位模式輸出,其餘欄位以串列模式輸出;2— 操作碼以串列方式輸出,其餘為四位元或兩位模式
RW
英特倫
18:16
0x0
IDATA 暫存器中儲存的中間資料的位元組數。如果位元組數大於 IDATA 暫存器可以儲存的位元組數,則餘數為零值
RW
輸出端
15
0x0
資料方向位 0 – 從快閃記憶體讀取
RW
195
名稱
排名
初始值
目的
訪問
民調
14
0x0
當執行包含輸入資料欄位的指令並從快閃記憶體狀態暫存器迴圈查詢輸入位元流的位元狀態時,必須設定該位元。 狀態位元組中要檢查的位元的編號必須在 DATALEN[2:0] 位元中指定,並且所需的位元值在 DATALEN[3] 位元中指定。一旦這些位元的值相等,控制器就會透過停用 SPIFI_CS 訊號來完成目前命令的執行,並在啟用時產生中斷。 輪詢過程完成後,必須從 DATA 暫存器讀取一個位元組,因為最後接收到的 FLASH 狀態儲存在其中。
RW
資料連線
13:0
0x0
當 POLL 位元為「0」時,此欄位決定執行指令時資料的位元組數。如果該欄位為“0”,則正在執行的命令不包含資料
RW
名稱
排名
初始值
目的
訪問
地址
31:0
0x0
團隊執行地址
RW
196
ADDRESS 位址暫存器
此暫存器必須在任何指令初始化之前配置。
執行指令時,首先輸出位址的最高有效位元。資料欄位
暫存器在表106中給出。
表 106 – ADDRESS 位址暫存器
名稱
排名
初始值
目的
訪問
資料傳輸
31:0
0x0
中間資料
RW
名稱
排名
初始值
目的
訪問
克利米特
31:0
0x0
快取記憶體上限
RW
注意 – 當 STAT 狀態暫存器中的 CMD 和 MCINIT 位元為零時,可以修改此暫存器。
197
IDATA 中間資料暫存器
此暫存器必須在初始化指令之前配置,其中
使用中間資料。當執行命令時,第一個輸出是
該詞的最低有效位。此暫存器的欄位如表 107 所示。
表 107 – 中間資料暫存器
CLIMIT快取位址上限暫存器
SPIFI 控制器能夠快取從快閃記憶體接收的資料
資料來提高生產力。 CLIMIT暫存器儲存值
快取記憶體的上限。位址大於的儲存單元
CLIMIT 值不可快取。該暫存器的欄位給出在
表 108.
表 108 – 快取位址上限暫存器
資料暫存器 資料
在該暫存器的位址處,連線了 FIFO 資料緩衝區,另一方面,
連線到AHB匯流排的兩側。因此,當透過AHB匯流排存取該資料時
暫存器資料從對應的 FIFO 緩衝區讀取或寫入。如果
輸出讀取緩衝區為空或輸入寫入緩衝區已滿,則傳送請求時
AHB 匯流排上將引發異常(程式碼 5「載入存取故障」)。報名總數
DATA 寫入或讀取 DATALEN 欄位中指定的位元組數
CMD 暫存器。如果啟用輪詢模式(CMD 暫存器的 POLL 位元有效),則
沒有資料寫入輸出緩衝區,但輸入緩衝區的第一個位元組
用於儲存FLASH狀態。投票結束後,您必須
從 DATA 暫存器讀取一個位元組。此暫存器的欄位如表 109 所示。
名稱
排名
初始值
目的
訪問
資料
31:0
0x0
輸入或輸出資料
RW
名稱
排名
初始值
目的
訪問
操作碼
31:24
0x3
操作程式碼(不用於某些 FRAMEFORM 欄位值)
RW
框架
23:21
0x4
操作碼和命令位址欄位的控制位元:0——保留; 1——儲備; 2——操作碼+位址低位元組;3——操作碼+位址的兩個低位元組;4——操作碼+ 低三個位元組;5——操作碼+4個位址位元組;6——無操作碼,位址低三個位元組;7 – 無位元組 4個位址位元組;
RW
現場表格
20:19
0x0
指令欄位輸出格式: 0 – 所有欄位以順序模式輸出; 1 – 資料以四位元或兩位模式輸出,其餘欄位為序列模式; 2- 操作碼以串列方式輸出,其餘-四位元或兩位;3 – 所有欄位均為四位元或兩位模式
RW
198
表 109 – DATA 資料暫存器
記憶體命令暫存器 MCMD
此暫存器決定了控制器執行時動作的順序
記憶體模式命令。此暫存器只能在以下情況下寫入:
CMD 和 MCINIT 位元為零。此暫存器的欄位如表 110 所示。
表 110 – 記憶體指令暫存器 MCMD
名稱
排名
初始值
目的
訪問
英特倫
18:16
0x0
中間資料的位元組數(它們儲存在 IDATA 暫存器中)。如果位元組數大於 IDATA 暫存器可以儲存的位元組數,則剩餘部分用零值填充
RW
輸出端
15
0x0
該位必須設定為“0”
RW
民調
14
0x0
該位必須設定為“0”
RW
保留
13:0
保留
名稱
排名
初始值
目的
訪問
版本
31:24
0x02
SPIFI 控制器版本(唯讀欄位)
RW
保留
23:6
保留
中斷請求
5
0x0
向該位元寫入「1」會重設來自 SPIFI 控制器的中斷請求
RW
重置
4
0x0
此位元用於中斷目前外設或記憶體模式命令。當控制器準備好執行新指令時,該位元重設。
RW
保留
3:2
保留
指令管理系統
1
0x0
如果軟體已成功寫入命令暫存器,則該位元設定為「1」。 使用與 MCINIT 位元相同的訊號清除該位元。此外,當指令完成且 SPIFI_CS 訊號停用時,CMD 位元會重設
RW
199
統計暫存器
此暫存器包含控制器的目前狀態。這個領域
暫存器在表中給出。
表 111 – STAT 狀態暫存器
名稱
排名
初始值
目的
訪問
MCINIT
0
0x1
如果軟體已成功寫入記憶體命令暫存器,則該位元設為「1」。此位元透過硬體重設或將 RESET 位元設為「1」來重設。
RW
200
帶有快取的 SPIFI 控制器的結構和工作原理
帶有快取的 SPI Flash 控制器是一個互連的系統
區塊:AHB匯流排控制器;匯流排控制器AHB_M; SPIFI快取控制器;現金
頁型別指令、關聯記憶體、序列控制器
SPIFI 介面(包括 JEDEC 隨身碟和 SPIM)。
具有快取的 SPI Flash 控制器的結構如圖 42 所示。
圖 67 – 控制器的整體結構
根據 CACHE_EN 位元的狀態,具有快取的 SPIFI 控制器區塊
以其中一種模式工作:
- CACHE_EN = 0,快取旁路(預設操作模式);
– CACHE_EN = 1,啟用快取模式。
AHB_M 匯流排上只能進行讀取事務。匯流排控制器
AHB_M 分析 AHB_M 匯流排上的交易。申請就讀時
快閃記憶體位址空間 匯流排控制器檢查資料是否存在
快取。如果發生快取未命中,快取控制器會產生對應的內部
透過 SPIFI 控制器請求讀取資料。
其值不改變的指令和資料會被快取。
201
SPIFI快取控制器單元的工作原理
在開始使用 CACHE 區塊之前,請進行以下設定:
- 快取區域的上限透過設定來調整
對應的 CLIMIT 值(CLIMIT 32 位元匯流排);
- 序列介面控制器配置用於操作
單讀;
- 快取模式設定為CACHE_EN;
- 轉換到讀取第一個程式碼的位址
說明。
當 AHB 主機聯絡時,進一步的工作進行如下
匯流排快取控制器分析事務(僅
讀取交易)。快取控制器按值 HADDR[31:7](HADDR - 位址
AHB 匯流排事務)和關聯記憶體的 TEG 欄位的內容,以及
灰塵暫存器,決定快取命中或未命中。
當頁面高速緩衝記憶體「擊中」AHB匯流排時,
所需的說明。所需的指令(頁和字)計算如下
基於HADDR[6:2]。
如果存在“未命中”,快取控制器會降低 HREADY_O 訊號並生成
向 SPIFI 控制器請求讀取所要求的資料。收到後
資料快取控制器將它們輸出到匯流排,引發 HREADY_O 訊號並標記
相應的灰塵量。如果沒有對該區塊的呼叫,則有可能
整個資料頁的影子載入。
影子載入基於 SPIFI 中實現的預取功能
控制器。當設定 PREFETCH_DIS=0 訊號時,SPIFI 控制器
自動從快閃記憶體讀取下一個字並準備輸出。如果
AHB_M 匯流排上不會有任何呼叫導致快取位址發生變化,且
PREFETCH_DIS=0,快取控制器將在其空閒時間內填入頁面,直到
結束。
可透過 AHB 匯流排寫入外部快閃記憶體,繞過快取塊
記憶。要記錄資料,SPIFI 控制器必須切換到寫入模式。
應該考慮到寫入外部快閃記憶體的操作需要大量的
從外部快閃記憶體讀取指令的時間段
– 記憶體將不可用。
第202章
快取控制器能夠啟用/停用
快取常量資料值。啟用資料快取
需設定訊號D_CACHE_DIS=0。
快取區塊和關聯記憶體
快取記憶體區塊旨在將先前載入的指令和資料釋出到
微處理器核心執行來自外部的程式期間的 AHB 匯流排
快閃記憶體。事實上,Cache塊模擬了指令RAM隨時間的操作
存取 AMBA AHB 匯流排的 1 個週期 HCLK 中的指令。
CACHE區塊是8頁CACHE指令的記憶體區塊,共128條
每個位元組。 快取結構如圖68所示。在該結構中,任何
快閃記憶體頁可以對應到任何高速緩衝記憶體區塊。已滿
當快取滿時,最長時間未被存取的區塊將被驅逐。
圖 68 – 快取區塊顯示結構
快取使用以字載入的 256x32 位元記憶體區塊(對齊
總是沿著單字邊界)。
區塊 0 標籤 0 = HADDR[31:7]
灰塵位 0 (HADDR[6:4] = 0)
字 0(HADDR[3:2] = 0)
字 1(HADDR[3:2] = 1)
字 2(HADDR[3:2] = 2)
字 3(HADDR[3:2] = 3)
灰塵位 1 (HADDR[6:4] = 1)
字 4…字 7
…
灰塵位 7 (HADDR[6:4] = 7)
字 28 ... 字 31
1號座
…
7號單元
203
關聯記憶體建立在觸發器(鎖存器)上,並且具有大小
8x25 位元。
關聯記憶體儲存顯示區塊的TEG以及暫存器
塵土飛揚。分析讀取請求時,將讀取位址與標籤進行比較
塊寫入快取並確定命中或未命中。如果有匹配的話
TAG 請求的位址由快取頁中的「命中」並透過位元決定
灰塵較多,檢查資料的相關性並進行讀取。
計算灰塵含量的演演算法構造如下。每個區塊快取
此記憶體對應一個大小為8位元的灰塵暫存器。每 4 個單字為一個區塊
快取記憶體對應於灰塵暫存器中的一位(128 位元組 = 每塊 32 個字)。
當系統重設時,所有位元都被設定為“0”,這意味著沒有資料
快取。當從外部快閃記憶體載入資料時,資料會進入快取,
對應位元設定為“1”,對應於目前的存在
資料(資料以4個字順序寫入,這導致
發生延遲)。更換頁面時,同時記錄新頁面
TEG,該塊的灰塵暫存器被重設為「0」。
檢查地址和讀取資訊的結構如下所示
表 111.
表 112 – 關聯記憶體快取的結構
快取具有單通道全關聯對映結構
8 頁,每頁 128 位元組,基於 PLRU(偽最小)原則進行區塊替換
204
最近使用過)。此演演算法的工作原理如下:考慮二元樹
搜尋。每個樹節點都有一個一位標誌,指示「向左移動,
尋找偽 LRU 元素」或「向右尋找偽 LRU
元素。 「根據以下公式遍歷樹,就會找到偽 LRU 元素
標誌值。當存取一個元素時,該元素的樹將被更新
元素,並且在遍歷期間將設定節點標誌來指示方向,
與所選方向相反。
該演演算法可能不是最佳的,因為它是一個近似值。
對於具有8個快取模組的演演算法,改變LRU位元的原則是
如下(圖44):
- 如果對區塊的最後存取是 L0、L1、L2 或 L3,則位元 B6
設定為狀態 1,並且當存取區塊 L4、L5、L6 或 L7 時
位 B6 重置為 0;
- 如果對區塊的最後存取是 L0 或 L1,則位元 B4 設定為
狀態1,當訪問區塊L2或L3時,位元B4重置為0;
- 如果對區塊的最後存取是 L4 或 L5,則位元 B5 設定為
狀態1,當訪問區塊L4或L5時,位元B5重置為0;
- 如果對區塊的最後存取是 L0,則位元 B0 設定為
狀態1,當訪問塊L1時,位元B0重置為0;
- 如果對區塊的最後存取是 L2,則位元 B1 設定為
狀態1,當訪問塊L3時,位B1重置為0;
- 如果對區塊的最後存取是 L4,則位元 B2 設定為
狀態1,當訪問塊L5時,位元B2重置為0;
- 如果最後一次存取區塊 L6,則位元 B3 設定為
狀態 1,且當存取區塊 L7 時,位元 B3 重設為 0。
B6 B4 B5 B0 B1 B2 B3 L0 L1 L2 L3 L4 L5 L6 L7 1 0 1 1 1 1 1 0 0 0 0 0 1
L0
L7
B2
0
B3
0
B6
B5
B4
B3
B2
B1
B0
更換塊
0
X
0
X
X
X
0
L0
0
X
0
X
X
X
1
L1
0
X
1
X
X
0
X
L2
0
X
1
X
X
1
X
L3
1
0
X
X
0
X
X
L4
1
0
X
X
1
X
X
L5
1
1
X
0
X
X
X
L6
1
1
X
1
X
X
X
L7
205
圖 69 – PLRU 演演算法的操作圖
然後替換表將如表 112 所示。
表 113 – 8 區塊選項的替代
SPIFI快閃記憶體介面控制器的操作
初始化
初始初始化如下完成:
- 需要將 RESET 訊號設定為有效狀態至少
CLK訊號的一個週期;
- 作為回應,AHB 匯流排的介面區塊將被設定為其原始狀態
所有請求訊號都將被停用的狀態;
- FIFO 內的位址指標會取零值,FIFO_FULL 訊號將
“0”,訊號 FIFO_EMPTY – “1”;
206
– AHB 匯流排介面模組不會回應重設,但所有暫存器
控制項將採用預設值,表 2「初始值」;
- 中斷請求觸發被重設;
- 控制機設定為初始狀態IDLE,其中
三穩態緩衝器處於第三狀態。訊號設定、負載、
UnLoad 和 SPIFI_CS 無效(SPIFI_CS 為“1”,其餘為“0”),RT 訊號
RB 有效 – “1”,超時計數器和位元計數器保持為零;
- SCK 時脈驅動器將 SPIFI_SCK 訊號保持為零,
由於 SPIFI_CS 訊號為“1”且 MODE3 位元為“0”;
- 移位暫存器重設為零(具體而言)。
- 透過設定控制器退出記憶體模式
STAT狀態暫存器的RESET位
準備 SPIFI 控制器執行指令
SPIFI 控制器和 MFP 之間的通訊歸結為控制器寫入
命令被傳送到MFP控制機,並且MFP機執行這些命令。
一條指令一般由操作碼、位址內的位址組成
MFP 空間、中間資料和主要資料。因此,在傳送之前
對快閃記憶體的命令必須寫入所需數量的資料位元組
暫存器(FIFO緩衝區)(如果我們傳送寫入命令),所需的位元組數
資料存入IDATA中間資料暫存器,所需的位址位元組數
到地址暫存器。接下來,您需要設定 CTRL 控制暫存器和
命令 CMD(如果執行週邊模式命令)或 MCMD(如果
執行記憶體模式命令)。
應該記住的是:
- 並非所有命令都使用操作碼(CMD 暫存器的 FRAMEFORM 欄位
或 MCMD);
- 並非所有命令都使用位址(CMD 暫存器的 FRAMEFORM 欄位或
MCMD);
- 並非所有指令都使用中間資料(暫存器的 INTLEN 欄位)
CMD 或 MCMD)。如果傳送的命令不包含
中間資料,該欄位必須為空;
207
- 僅寫入指令(週邊模式)使用 DATA 資料。
如果命令不包含資料,則暫存器的 DATALEN 欄位
CMD 必須為空。
填寫CTRL控制暫存器的欄位時,需要詳細說明
展示其動態特性和協定特性
中央處理器目前正在與之互動的 MFP。
欄位值:
– CSHIGH – 由 CS 訊號無效狀態的時間值決定
對 MFP 的相鄰呼叫之間;
– RFCLK 和 FBCLK – 由 MFP 的頻率特性和時間決定
訊號從處理器傳輸到 MFP 並返回的延遲
(透過使用 IBIS 模型對 PCB 檔案進行建模來確定
多功能一體機);
- 模式 3 – 由 MFP 在模式 1 或模式下運作的能力決定
模式3;
– DUAL、DMAEN 和 INTEN – 由協定特性決定
MFP(兩位數或四位協議,是否使用 DMA,
是否使用命令完成中斷)。
另外,FIELDFORM欄位的值也是由協定決定的
特點,移位暫存器可以在一次一個、一次兩個的移位模式下執行
或四位。當移位暫存器中的資料移位時,每個字將被
平移N次,根據式(11):
N=鈮/R (11)
其中 Nb 是要移位的位數(8、16、24 或 32);
R——移位位深度。
顯然,數字 N 將在 2 的範圍內(八位移位,
移位位長四)到 32(移位 32 位,移位位寬一)。乙
在資料移位過程中,移位計數器會對移位次數進行計數,一旦移位次數
數量變成等於N-1,則控制機從下一個時脈週期進入
下一個單字的輸出。
其餘控制暫存器的欄位值取決於操作模式
(週邊或記憶體模式)、指令型別(讀取、寫入或
擦除)並將在下面針對每種情況分別給出。
208
控制器機器在外部裝置模式下的操作演演算法
控制器機器在外部裝置模式下的操作演演算法如圖所示
圖 70.
機器等待 CMD 啟動訊號(狀態暫存器的位元 1)。一旦
如果寫入暫存器成功,則該位元設為“1”
CMD指令,機器將操作碼寫入移位暫存器(如果是
由 FRAMFORM 欄位提供),然後是位址(如果 FRAMFORM 是
提供),然後是中間 IDATA 資料(如果 INTLEN 欄位不等於
0),然後執行三種演演算法之一:輪詢、讀取或寫入。
如果 POLL 位元等於“1”,則機器進入連續狀態
從 MFP 暫存器讀取狀態位元組。一旦其編號寫入位中
DATALEN[2:0],將等於 DATALEN[3] 位元的值,然後機器將理解:
條件滿足並將完成輪詢程式。如果 POLL 位元等於
“0”,則根據 DOUT 位元的值,機器將從緩衝區寫入 MFP
IFIFO,或將資料位元組從 MFP 讀入 OFIFO 緩衝區,其數量等於
值 DATALEN[13:0],之後機器將完成其工作。
209
圖 70 – 控制器機器在外部裝置模式下的操作演演算法
從 MFP 讀取
若要從 MFP(週邊裝置模式)執行讀取指令,
您需要進行以下設定:
- 設定 CTRL 暫存器欄位所需的值:
1) CSHIGH、RFCLK、FBCLK、MODE3、DUAL、DMAEN 和 INTEN;
2) CTRL暫存器的剩餘欄位必須為零;
設定IDATA和ADDRESS暫存器所需的值;
- 設定 CMD 暫存器欄位所需的值:
1)DATALEN-記錄從MFP讀取的資料位元組數;
2)POLL和DOUT-寫0(沒有輪詢,我們可以讀取資料);
210
3) INTLEN – 記下中間數所需的值
資料(此值從 0 到 7 個位元組變化;如果此
值大於四,即位元組數超過可能的值
儲存在 IDATA 暫存器中 - 在這種情況下,位元組 5、6 和 7 將相等
零);
4) FIELDFORM、FRAMEFORM 和 OPCODE – 根據資料寫入
與該 MFP 進行資訊互動的協定。應該
請記住,只有在以下情況下才可以將資訊寫入 CMD 暫存器:
如果 STAT 狀態暫存器的 MCINIT 和 CMD 位元都為「0」。
如果命令暫存器寫入成功,如設定該位元所示
CMD STAT 狀態暫存器,則 SPIFI 控制機會退出 IDLE 狀態
並進入 CSWAIT 狀態,此時 RB 訊號被去啟動並允許
對移位計數器 CSHIGH + 1 次進行計數。 SPIFI_CS 訊號
在此期間保持不活動狀態。完成 CSWAIT 狀態後,機器
啟動“SPIFI_CS”和“TRI”訊號(此訊號開啟三穩態
資料緩衝區進入 MFP),然後進入「TRCODE」狀態(如果欄位
FRAMEFORM 提供操作碼「OPCODE」的傳輸。在這種狀態下
機器將“OPCODE”寫入移位暫存器,然後將“OPCODE”移位到
多功能一體機。班次計數器對班次週期進行計數,在 N 個週期後,機器
如果FRAMEFORM欄位為“ADDR”,則進入“ADDR”位址發布狀態
規定地址轉移。然後會顯示中間資料,
如果 INTLEN 欄位大於零。每個狀態的持續時間也是N。
移位時鐘計數器也會計算該持續時間。這樣就完成了資料到MFP的傳輸
結束,機器進入“RDDATA”狀態。
在此狀態下,「TRI」訊號停用,允許
訊息從 MFP 傳送到移位暫存器。轉移過程將持續到
直到從 MFP 讀取“DATALEN”位元組。當記錄被讀取時
FIFO 緩衝區中的 MFP 資料由具有 AHB 匯流排的介面區塊定期安裝
DMA請求訊號,DMA控制器將資料泵入SOC記憶體
(如果透過設定 CTRL 暫存器中的 DMAEN 位元來啟用 DMA 請求)。由
完成從MFP接收資料的過程後,控制機進入
狀態“EOCMD”,其中機器重設 STAT 狀態暫存器的 CMD 位,並且
如果請求透過啟動「Set」訊號來設定 INT 中斷請求
211
CTRL 暫存器的 INTEN 位元不會禁止中斷。重設訊號 INT
透過寫入 1 到 STAT 狀態暫存器的 INTRQ 位元來執行。
在 MFP 中記錄
與讀取不同,寫入 MFP 不是直接進行的。記錄
分兩個階段進行:
首先,資料寫入 MFP 的內部緩衝區 - 這是正常現象
靜態記憶體快閃記憶體頁面的大小;
- 然後當資料來自時執行頁程式設計指令
緩衝區被寫入快閃記憶體。
將資料寫入 MFP 緩衝區的方式與從 MFP 讀取資料的方式相同,
但有一個例外 - 命令和資料朝一個方向到達(到達 MFP),
因此CMD命令暫存器的DOUT位元必須設定為1且訊號
「TRI」將在命令的整個持續時間內處於活動狀態。
準確地發出對記憶體頁進行程式設計的命令
與發出讀取命令相同,只是暫存器的 POLL 位元
CMD 指令必須設定為 1。命令發出後
完成後,MFP 控制機將開始向移位暫存器傳送狀態位元組
多功能一體機。
程式資料被寫入DATA暫存器。
然後,根據MFP狀態暫存器的位,將其設為某個
狀態,您可以確定程式設計過程何時完成
頁。在發出將頁程式設計到欄位位的命令之前
DATALEN[2:0] 您需要在 DATALEN[3] 欄位中寫入狀態位的編號 - 值,
此時程式設計過程將完成。寫入狀態位元組值
不執行到控制器的 FIFO 輸出緩衝區。過程完成後
程式設計頁時,控制機執行與時相同的操作
執行讀命令。
擦除 MFP 頁面/區塊
MFP 頁面/區塊擦除指令的執行方式與
頁程式設計指令,唯一的差別在於操作碼。
關閉控制器
212
可以透過設定來啟動停止執行任何命令
STAT 狀態暫存器的 RESET 位元。軟體必須確保
控制器透過讀取狀態暫存器退出命令執行模式,直到
直到 MCINIT 或 CMD 位元變成零。
使用 DDP 控制器的演演算法
使用週邊裝置中的 DMA 從 Flash 記憶體晶片中讀取資料
模式下,需要配置DMA通道,如下:
CHx_CFG.READ_MODE = 0; // 以外設模式讀取
CHx_CFG.READ_INCRMENT = 0; // 從一個位址進行讀取
CHx_CFG.READ_SIZE = 2; // 讀入4位元組字
CHx_CFG.READ_BURST_SIZE = 2; // 文字爆發
CHx_CFG.READ_REQUETS = 7; // SPIFI線
長=16; //傳輸4個字
SRC = 0x00070014;
SPIFI 控制器必須依照章節中的描述進行配置
“從 MFP 讀取”,但以下情況除外:
- 在 CMD.DATALEN 欄位中指示從 MDP 接收的位元組數,而
您需要記住,如果至少有 4 個位元組,則會產生 DDP 請求
在先進先出。如果 FIFO 中還剩下 1-3 個位元組,則必須手動將其讀出。
- 必須透過向 CNTR RDP 產生請求來解決。 DMAEN = 1
下面給出了使用 DAP 進行閱讀的範例。如圖所示
以下事件(傳送 CMD 後開始傳輸):
1.從MFP讀取3個位元組(FIFO中的位元組數顯示訊號
SPIFI_FIFO_CNT;
2.讀取4個位元組。設定DMA請求(SPIFI_DMA_R_REQ);
3. DMA 控制器透過 AHB 匯流排在位址處形成讀取請求
0x0070014(資料暫存器)。從SPIFI控制器讀取資料;
4. DDP控制器將接收到的資料記錄到RAM中。
213
圖 71 – 使用 DDP 的讀取演演算法
若要使用 DMA 寫入快閃記憶體晶片,您必須
配置DMA通道如下:
CHx_CFG.WRITE_MODE = 0; // 週邊裝置模式錄音
CHx_CFG.WRITE_INCRMENT = 0; // 記錄執行到一個位址
CHx_CFG.WRITE_SIZE = 2; //寫入4位元組字
CHx_CFG.WRITE_BURST_SIZE = 2; //文字爆發
CHx_CFG.WRITE_REQUETS = 7; // SPIFI線
長=16; //傳輸4個字
夏令時間 = 0x00070014;
SPIFI 控制器必須依照章節中的描述進行配置
“在 MFP 中記錄”,但以下情況除外:
- 在 CMD.DATALEN 欄位中,我們接收到的位元組數對應於
DDP 的 LEN 值;
- 必須透過向 DDP CNTR.DMAEN = 1 產生請求來允許。
下面介紹了使用 DAP 進行錄音的範例。如圖所示
以下事件:
1.SPIFI初始化。傳送命令。寫入請求已設定
如果 FIFO 為空,則自動;
2. DPM控制器從RAM的資料中讀取一個字;
214
3. DDP控制器透過AHB匯流排在位址處形成寫入請求
0x0070014 到 SPIFI.DATA 暫存器。此後,開始傳輸至 MFP
四個位元組;
4.傳輸結束,清空FIFO,設定DMA寫入請求。
圖 72 – 使用 DMA 的記錄演演算法
控制器在記憶體模式下操作
在此模式下,控制器的程式設計方式幾乎與
外設讀取模式除了取代CMD暫存器
使用 MCMD 暫存器。不使用 DATALEN、POLL 和 DOUT 欄位
(必須為零),其餘欄位的用途與這些欄位的用途類似
CMD 暫存器。
控制器機在記憶體模式下的運作演演算法如圖所示
圖 73.
215
圖 73 – 控制器機器在記憶體模式下的操作演演算法
在載入位址開始記憶體存取之前,處理器必須
配置控制器暫存器 CTRL、IDATA 和 MCMD(其他暫存器
用於外設模式)。這三個暫存器的設定規則
如前幾段所述(MCMD 和 CMD 暫存器具有相同的欄位)。
216
僅應在成功存取裝載記憶體區域後進行
控制器在記憶體模式下初始化,當 MCINIT 位元為
設定為“1”。在初始化之前嘗試存取啟動記憶體
控制器,以及初始化後嘗試寫入啟動記憶體
將以 AHB 錯誤結束 (HRESP = 1)。一旦 MCINIT 位元為
設定為“1”,第一次通話時控制器將進入待機模式
啟動位址空間中的處理器。一旦第一個請求
發生這種情況時,控制器會將操作程式碼寫入 MFP(這將是連續讀取),
交易地址(載入地址空間中第一個交易的地址),
所需的 IDATA 中間資料位元組數(如果 INTLEN 欄位不是
等於“0”),然後繼續從 MFP 執行讀取演演算法。讀自
MFP 資料以與週邊裝置相同的方式放置在 OFIFO 緩衝區中
模式。因此,OFIFO 緩衝區將包含來自該區域的記憶體段
載入,並且資料是否將從該位址的序列位址讀取
載入空間,則該程式碼段的平均載入速度為
實現每位元組讀取資訊的 HCLK 訊號四個時脈週期。對於
HCLK頻率32 MHz,這個速度將達到8 MB/s。
Continuous READ 型別的讀取過程將持續到
程式碼段將在連續位址處讀取。乙
如果在非順序位址執行讀取事務,則
將產生未命中訊號。控制器機器不斷輪詢
miss 訊號,如果啟用,則從 MFP 讀取資料的過程
結束,CS 訊號停用,OFIFO 緩衝區被重置(資料
消失),然後控制器啟動新的初始化序列
連續讀取命令,但有新位址。
透過設定該位元使控制器退出記憶體模式
RESET STAT 狀態暫存器。控制器機器,看到RESET訊號後,正確地
將結束連續讀取過程,關閉 MFP,停用訊號
SPIFI_CS 將重設 OFIFO 緩衝區並進入 MCINIT 訊號等待模式。
SPI介面和Flash驅動的基本規範
SPI介面和Flash驅動的基本規格:
- 標準SPI模式的全雙工同步工作模式;
217
- 半雙工工作模式為多通道SPI工作模式;
- 8位元格式的包裹;
- 8位元系統匯流排分頻器;
- 時脈訊號的可變相位和極性;
- 資料移位的可變方向 MSb – 首先或 LSb – 首先;
- 存在標誌:傳輸緩衝區為空;接收中資料的可用性
緩衝區;就業;交易結束;
- 每個指令由五段組成(指令+位址+模式位元組
+等待週期+資料),且每個段依序可以
以任何方式配置;
- 透過設定可以在指令中加入8位元指令
對應位為1;
– 24 / 32 – 位元位址可以透過設定加入到指令中
相應的位為一,以及提供相反的
可與過時的記憶體晶片型號相容
選擇位址長度24位或32位;
- 高速資料交換需要模式位元組
兩根/四條四線 SPI 線(讓您不必每次都重複該指令
如果重複命令則進行交易);
- 需要等待迴圈來執行內部的一些指令
FLASH記憶體晶片並可以透過以下方式新增到命令中
將相應位元設為 1,以及微調
對於此記憶體晶片,可以選擇該記憶體晶片的長度
部分;
- 可以透過設定將資料段新增至指令中
位對一對應,段長度也可以選擇
(1 位元組)。
下面是顯示典型場景的時序圖
透過串列介面與快閃記憶體晶片交換資料。
圖 74 顯示了最簡單的情況,此時指令僅包含
一條指令。例如,該命令可用於
解鎖記憶體程式設計模式。
218
圖 74 – 一條指令的命令時序圖
圖 75 顯示了一條指令,其中包含一條指令,後面接著
傳輸資料而不新增地址或延遲。這樣的團隊可以是
用於配置儲存晶片,例如切換到
32位元定址模式。
圖 75 – 無資料且無附加的指令時序圖
地址和延誤
圖 76 顯示了一條指令,其中包含一條指令,後面接著
接收資料而不新增地址或延遲。這樣的團隊可以是
如果需要檢查可用性,則用於讀取記憶體狀態暫存器
用於執行後續操作的微電路。
圖 76 – 有資料但無位址的指令時序圖
圖 77 顯示了一條指令,其中包含一條指令,後面接著
位址和接收到的資料,而不會增加延遲。使用這個組合
用於讀取晶片和製造商識別號,以及讀取
JEDEC 標準規定的所有資訊欄位。因此,
只需傳送命令 0x90 和 24 位元位址 0x000000 即可接收
識別號或 0x9F 存取通用介面
與 CFI JEDEC 快閃記憶體晶片互動。這種情況可能
219
也可以透過傳送相應的命令來從記憶體中讀取資料
給定晶片的讀取命令和所需的起始位址
過程中,保持CS低電平可以繼續連續讀取
資料(地址自動遞增),到達地址末尾時
空間,讀取將從位址零繼續。也採用這種格式
也可以對記憶體進行程式設計,但前提是您之前已經
已傳送解鎖錄製模式的命令。
圖 77 – 具有位址和接收資料的指令的時序圖
圖 78 顯示了一條指令,其中包含一條指令,後面接著
位址、延遲和接收到的資料。命令需要此組合
字首 FAST,例如 FAST-READ。此類命令允許您請求資料
讀取並經過一定的延遲後,顯著地從記憶體接收到回應
比使用標準指令時的頻率更高。迴圈次數
期望取決於微電路及其配置,並且應在技術說明書中指定
對應晶片的文件。
220
圖 78 – 具有位址和接收資料的指令的時序圖
並延遲
對稱加密加速器 (CRYPTO)
對稱加密加速器(加密區塊)實現了三個
專門轉換:
- AES128、FIPS 197 128 位元分組密碼,附 128 位元金鑰;
- “Magma”,GOST 34.12–2018 64 位元分組密碼;
- “Grasshopper”,GOST 34.12–2018 128 位元分組密碼。
加密區塊由三個具有共同控制的計算核心組成
有限狀態機和共用輸入/輸出緩衝區。
在計算過程中,加密區塊被配置為執行以下三種操作之一
轉換,而三個核心中只有一個起作用。在加密工作的過程中
此區塊為 DMA 控制器產生寫入和讀取許可權標誌,指示
關於資料傳輸的輸入和輸出緩衝區的準備狀態。
圖 79 給出了加密區塊的傳統框圖。
圖 79 – 加密區塊的框圖
名稱
偏移量
初始值
描述
訪問
區塊
0x0
-
用於加密的資料緩衝區
RW
關鍵
0x4
-
關鍵資料緩衝區
沃
初始化
0x8
-
初始化向量資料緩衝區
沃
配置
0xC
0x600
配置暫存器
RW
名稱
放電
初始值
描述
訪問
讀取狀態
11
0x1
資料緩衝區可供讀取: 0 – 不可用; 1 – 可用
R.O.
寫入狀態
10
0x1
資料緩衝區可用於寫入: 0 – 不可用; 1 – 可用
R.O.
準備就緒
9
0x0
模組可用狀態:0——忙線; 1 – 可用
R.O.
C_復位
8
0x0
重置計數器、下載/上傳資料
RW
221
加密區塊完全自動執行,即對於
初始化計算時,需要將所需部分的資料傳輸到區塊中,根據
當所需的資料量已傳輸時,計算被初始化,
對應模式暫存器和資料型別(金鑰擴充、加密)。
加密區塊的存取以 32 位元字進行。加密暫存器
表 113 中給出了區塊。
表 114 – 加密區塊暫存器
表 115 給出了配置暫存器欄位的描述。
表 115 – 配置暫存器欄位的描述
名稱
放電
初始值
描述
訪問
訂單模式
7
0x0
載入/解除安裝順序選擇: 0——從低位元字到高位元字;1 – 從高位元字到低位元字
RW
交換模式
6:5
0x0
選擇字排列模式暫存器:0——不排列;1 – 按半字重新排列;2 – 按位元組排列;3 – 位元排列
RW
模式選擇
4:3
0x0
加密模式選擇暫存器:0——ECB;1 – CBC;2 – 點選率
RW
核心選擇
2:1
0x0
加密演演算法選擇暫存器:0——“Grasshopper”; 1 – “巖漿”; 2 – “AES”
RW
解碼
0
0x0
設定計算核心的運作模式:0——直接運作(加密); 1 – 反向行程(解碼)
RW
222
使用加密區塊的過程
演演算法“草蜢”:
- 設定配置暫存器;
設定 256 位元金鑰 – 透過載入 8 個 32 位元字
地址0x4。在這種情況下,金鑰必須始終以加密模式載入
(配置.解碼 = 0)。收到八個字後,加密區塊將開始
在金鑰擴充套件過程以及擴充套件過程完成之前
鍵,該區塊將處於非活動狀態,禁止訪問
到匯流排側的區塊(非活動狀態下的就緒訊號);
- 在配置暫存器中設定計算核心的工作模式;
安裝一個 128 位元資料區塊 – 載入四個 32 位元資料區塊
位址 0x0 處的字。收到四個字後,加密區塊將開始這個過程
223
加密,而來自匯流排端的存取將被阻止(準備在
非活動狀態)並且省略了 DMA 的資料寫入使能標誌
控制器;
- 讀取128位元資料塊。
加密完成後,將允許從外部存取加密區塊
匯流排,而 DMA 控制器讀取資料的標誌將被設定為
活躍狀態。完成從密碼讀取四個 32 位元字後
塊,DDP控制器的讀取標誌將被設定為無效,並且
標誌寫入活動狀態。 加密區塊已準備好處理下一個區塊。
Magma 和 AES128 演演算法的加密過程完全相似,
除了處理資料的位元深度之外。對於 Magma 演演算法 - 256
位元金鑰,64 位元塊。對於 AES128,128 位元金鑰,128 位元區塊。
以區塊鏈 (CBC) 模式加密時,第一個初始化
載入四個 32 位元後自動實作耦合區塊
字進入初始化向量暫存器。隨後的區塊耦合將
相對於暫存器中設定的值來實現,直到它
重新啟動。
以伽瑪模式(CTR)加密時,應寫入 INIT 暫存器
初始化向量,其長度等於塊的一半,之後相同
零的數量。因此,載入到 INIT 中的資料大小將等於
塊。
以簡單取代模式 (ESB) 加密時,初始化向量
無需下載。
與 DDP 控制器配合使用的步驟
為了在沒有核心參與的情況下處理資料,可以使用 DDP 控制器。
為此,您需要配置加密加速器以在所需的環境中工作
模式,載入表(如果需要),檢查可用性狀態
加速器(就緒 = 1)並配置 DMA 控制器的兩個通道,一個用於載入
資料進行轉換,另一個讀取處理後的資料。
使用DMA記錄資料,需配置DMA通道
如下:
CHx_CFG.WRITE_MODE = 0; //週邊裝置模式錄製
224
CHx_CFG.WRITE_INCRMENT = 0; // 記錄執行到一個位址
CHx_CFG.WRITE_SIZE = 2; //寫入4位元組字
CHx_CFG.WRITE_BURST_SIZE = 2; // 文字爆發
CHx_CFG.WRITE_REQUETS = 2; // 加密行
LEN = <訊息大小>; // 加密區塊大小的倍數
夏令時間 = 0x00080000; // 註冊區塊。
使用 DMA 從區塊轉換後讀取資料
您需要如下設定 DMA 通道:
CHx_CFG.READ_MODE = 0; // 以外設模式讀取
CHx_CFG.READ_INCRMENT = 0; // 從一個位址進行讀取
CHx_CFG.READ_SIZE = 2; //讀取4位元組字
CHx_CFG.READ_BURST_SIZE = 2; // 文字爆發
CHx_CFG.READ_REQUETS = 2; // 加密行
LEN = <訊息大小>; // 加密區塊大小的倍數
SRC = 0x00080000; // 區塊暫存器
整個訊息處理完成的標誌將是任務的完成
兩個 DDP 通道
一次性可程式設計 (OTP) 單元控制器
該塊旨在存取反熔絲塊的陣列
用於從 APB 介面寫入和讀取的 OTP。
註 - 在版本“B”中,不使用 OTP 區塊。
此模組與 256 位元 Hard IP 反熔絲 OTP 相容
組織8x32 otp_block_8x32_pwr_off,為串列技術開發
CMOSF8_4M_5V PJSC 米克朗。圖 80 顯示了框圖。
反熔絲 OTP 硬 IP 模組配置:
- 資訊容量 – 256 位元;
- 陣列字串中的位數 – 32 位元;
- 陣列中的行數 – 8+1(有一條測試行);
- 輸入寬度 – 32 位元;
- 輸出寬度 – 32 位元;
- 測試柱 – 1。
225
圖 80 – OTP 框圖
OTP 控制器特點:
- 透過 APB 介面分 3 階段進行錄製;
- 透過APB介面分2或3階段讀取;
- 能夠存取測試行和測試列
硬IP生產測試;
- 透過設定寫入和讀取操作的時脈週期數的能力
控制暫存器。
閱讀
此電路允許透過 APB 介面分 2 或 3 級進行讀取:
- 寫入位址(OTPA)-讀取資料暫存器(OTPDAT);
– 寫入位址 (OTPA) – 輪詢就緒標誌 (OTPSTA.BSY) – 讀取
資料暫存器(OTPDAT)。
如果使用兩階段讀取,則取代標誌檢查過程
資料準備就緒,引入APB介面等待週期,在此期間
PREADY 訊號保持在「0」。如果使用三階段讀,PREADY
保持在“1”,但需要額外檢查就緒標誌
(OTPSTA.BSY)。暫存器用於在模式之間切換
OTPCON.APBNWS。當OTPCON.APBNWS = 1時,使用三階段讀取模式
(沒有 APB 等待時鐘)。
226
如果讀取 OTPDAT 暫存器時 OTPCON.APBNWS = 0,
OTPA 位址自動遞增。因此,地址條目不是
如果您需要讀取位址高一級的字,則需要
上一篇。當地址自動遞增時,僅
改變 OTPA[2:0] 位元。如果地址遞增,
包含 OTPA[2:0] = 0b111,則新值將包含 OTPA[2:0] = 0b000,
其他數字不會改變。如果讀取暫存器時 OTPCON.APBNWS = 1
OTPDAT 不會自動遞增 OTPA 位址。
如果 OTPCON.APBNWS = 0,控制器執行自動
每次讀取 OTPDAT 暫存器時,從硬核心 IP 讀取一個字。
如果 OTPCON.APBNWS = 1,控制器執行自動
每次寫入 OTPA 暫存器時,都會從硬核心 IP 讀取一個字。
程式設計
程式設計電源(VPRG 引腳)為 8.0–9.0 V,持續時間
至少 50 ms 的脈衝。每個穿孔電池的 VPRG 電流高達 4.0 mA。
需要安排重複(最多10次)操作
程式設計以防第一次未閃現必要的資訊,但是
另外,如果可能的話,增加時間(最多 100 ms)和電壓
程式設計(高達 10 V)。
寫入操作完成後,需要將VPRG降低至VDD5電平
(讀取 VPRG 接腳電壓,範圍 3.0 V - 5.5 V)或 0 V。
第一次保證16位記錄,所以一個字是32位
建議分兩次迭代進行程式設計,並交替遮蔽一次
半個字,然後另一個。可以程式設計任意數量的位元(1-
32) 在一次迭代中,同時必須遮蔽非可程式設計位
零。也可以一次記錄整個 32 位元字並隨後記錄
具有相同模式的附加韌體。
模擬按鍵在 OTP 區塊內部實現,該區塊可切換
程式設計或輸出時具有外部 VPRG 的內部電源匯流排
如果未執行程式設計,則內部穩壓器。
因此,可以在高電平寫入操作後立即讀取
227
程式設計電壓。在這種情況下,建議閱讀
設定 OTPADJ.sel_upp_read_i = 0b000。
程式設計時,“零”變成“一”。反向過渡
不可能的。可以透過以下方式更改縫合字的內容
程式包含“零”的位元。例如,單字“0b0101”可以是
更改為“0b0111”或“0b1101”或“0b1111”。
寫一個字,建議按照下面描述的順序
行動:
- 將位址寫入 OTPA 暫存器。如果您正在錄製測試
字,則 OTPA[3] = 1,否則 – OTPA[3] = 0。如果測試
列,則 OTPA[4] = 1,否則 – OTPA[4] = 0;
- 將資料寫入OTPDAT暫存器;
輪詢 OTPSTA.BSY 標誌,直到其被清除。
記錄過程結束時,會自動遞增
OTPA 地址。因此,如果需要記錄地址,則無需記錄地址
一個新詞,其地址比前一個詞大一。
當位址自動遞增時,只會發生變化
位元 OTPA[2:0]。如果您要增加包含以下內容的位址
OTPA[2:0] = 0b111,則新值將包含 OTPA[2:0] = 0b000 等
排名不會改變。
時間限制
以便控制波形從 Soft IP 到 Hard IP
滿足任何這些訊號的時序引數的要求
時脈訊號頻率clk的值,可以改變之間的延遲
時間圖上的一些事件。圖 81 顯示表格
記錄過程中的訊號。圖 82 顯示了程式中的波形
閱讀。
圖中使用以下符號:
- APB協定訊號:
1) clk——OTP控制器的時脈輸入
2)PADDR-資料匯流排;
3) PWRITE-APB匯流排上的操作型別(0-讀,1-寫);
228
4) PSEL-選擇OTP控制器進行資料交換的訊號;
5) PENABLE – 許可訊號,顯示第二個及後續
交易報價;
6) PREADY-資料就緒訊號;
– OTP 區塊訊號:
1) we_i – 區塊輸入,記錄/程式許可訊號「0」 –
沒有條目。 「1」——條目
2) re_i – 區塊輸入,讀取許可訊號「0」 – 不讀。 「1」——
閱讀
圖 81 – 記錄過程中的波形
圖 82 – 讀取過程中的波形
229
圖中顯示了以下時間間隔:
N_SU – APB 上的事務結束與
時脈週期內的上升沿 we_i。應該用於
確保硬 IP 預安裝時間的要求。推薦
值 N_SU = ceil(40/Pclk),其中 Pclk 是時脈訊號的週期(以 ns 為單位),ceil
– 四捨五入到最接近的較大整數的函式。範例:2
時脈頻率 Fclk = 33.3 MHz;
N_W – 時脈週期內 we_i 訊號(Hard IP 輸入)高電平的持續時間。
建議值 N_W = 50,000,000 ns / Pclk,其中 Pclk 是週期
時脈訊號(ns)。例:頻率 Fclk = 33.3 時有 1,666,667 個時脈週期
兆赫茲;
N_H – we_i 的下降沿和 OTPSTA.BSY 的下降沿之間的時間
在酒吧。應用於確保時序要求
硬IP保留。建議值 N_H = ceil(40/Pclk),其中 Pclk –
以 ns 為單位的時鐘週期,ceil – 捨去到最接近的函式
更大的整數。範例:頻率 Fclk = 33.3 MHz 時為 2 個時脈週期。開
圖81和82顯示了記錄過程中的波形和
相應地閱讀;
N_RSU – APB 上事務開始與
時脈週期內的上升沿re_i。應該用於
確保硬 IP 預安裝時間的要求。考慮到
由於先前的結果,輸入 a_i 保持穩定的水平
對OTPA暫存器的寫入操作,推薦該值
設定等於“0”;
N_RA – 時脈週期內 re_i 訊號(Hard IP 輸入)高電平的持續時間。
建議值 N_RA = ceil(40/Pclk),其中 Pclk 為時脈週期
signal in ns, ceil – 舍入函式到最接近的較大整數
數字。範例:2 個時脈週期,頻率 Fclk = 33.3 MHz;
N_RH – re_i 的下降沿和它可以的時刻之間的時間
APB 上的新交易將開始。應該用於
確保硬 IP 保留時間的要求。推薦
值 N_RH = ceil(40/Pclk),其中 Pclk 是時脈訊號的週期(以 ns 為單位),ceil
230
– 四捨五入到最接近的較大整數的函式。範例:2
時脈頻率 Fclk = 33.3 MHz;
根據Hard IP規範,在讀取操作完成之後,在
下一個寫入操作必須至少需要 1 µs 才能完成。
存取測試行和列
以相同的方式執行寫入和讀取測試行和列的訪問
存取主陣列的列和行。選擇主 OTP 陣列
需要設定ADDR[4:3] = 0b00,ADDR[2:0]位元用於
選擇主陣列的一行。選擇測試行的主要 32 個儲存格
需要設定 ADDR[4:3] = 0b01,ADDR[2:0] 位元被忽略。 對於
選擇測試列(1個儲存格) 必須設定測試行
ADDR[4:3] = 0b11,ADDR[2:0] 位元被忽略。若要選擇測試列,
與主陣列相鄰,需設定ADDR[4:3] = 0b10,
ADDR[2:0] 位元用於選擇測試列中的單元。錄音時
測試列中除最低有效位元外的所有資料位元 (OTPDAT) 均被忽略。當
從測試列讀取時,所有資料位元 (OTPDAT) 都讀為 0,除了
小。
低功耗模式
硬 IP 反熔絲 OTP 區塊實現了簡化
訊號 power_off_i 的功耗。要進入 Hard IP 模式,您必須
將 1 寫入位元 OTPRTADJ.power_off_i。為了擺脫這個困境,硬IP
模式下,需要將 0 寫入 OTPRTADJ.power_off_i 位元。處於模式中
低功率單元處於非活動狀態。退出縮減模式後
功耗,轉換後需暫停至少100μs
讀取訊息前將power_off_i訊號從1變為0,將re_i從0切換為
1. Hard IP上電後,可能無法進行讀寫操作。
早於 500 µs。
暫存器
暫存器清單及其用途如表 116 所示。 在表 117 中 -
124顯示OTP控制器的暫存器。
名稱
偏移量
初始值
描述
訪問
OTPDAT
0x00
-
讀/寫資料暫存器
RW
OTPA
0x04
0x0000001
頁位址暫存器
RW
OTPCON
0x08
-
控制暫存器
沃
奧普斯塔
0x0C
0x0000000
狀態暫存器
R.O.
OTPDEC
0x10
0x0000002
字串解碼器暫存器
R.O.
OTPADJ
0x14
0x1020200
用於控制讀取過程的時序引數和附加設定的暫存器
RW
OTPWT1
0x18
0x0000202
寫入程式持續時間調整暫存器1
RW
OTPWT2
0x1C
0x0196E6B
寫入程式持續時間調整暫存器2
RW
初始
名稱
排名
目的
訪問
意義
錄製到此後立即
暫存器將在內部啟動
將下載的資料寫入的過程
反熔絲 OTP 陣列。時序引數
資料
31:0
-
RW
此操作可以自訂
使用其他暫存器。當讀自
此暫存器讀取資料
從 OTP 收到
初始
名稱
排名
目的
訪問
意義
保留
31:5
保留
要執行的字位址
寫/讀。
當選擇 ADDR[3] = 0 時
主 OTP 陣列。
地址
4:0
0x1
RW
當ADDR[3]=1時選擇
百行。
當選擇 ADDR[4] = 1 時
測試柱
第231章
表 116 – OTP 控制器暫存器
表 117 – 讀取/寫入資料暫存器 OTPDAT
表 118 – OTPA 頁位址暫存器
初始
名稱
排名
目的
訪問
意義
保留
31:4
保留
手動控制模式已啟用。乙
該模式是自動的
讀和寫操作不是
微機電系統
3
0x0
正在進行中。
沃
用於測試。不
建議按標準更改
操作模式。 允許改變
手動控制訊號繼電器塊
硬IP。
曼雷我
2
0x0
用於測試。不
沃
建議按標準更改
操作模式。 允許改變
手動控制 we i block 訊號
硬IP。
夥計,我們我
1
0x0
用於測試。不
沃
建議按標準更改
操作模式。 允許改變
禁止插入等待刻度
讀取時APB交換過程
資料(存取暫存器
OTPDAT 用於讀取)。如果酒吧
APBNWS
0
0x0
等待被禁用(APBNWS=1),然後
沃
需要進行標誌輪詢
記錄位址後的 OTPSTA.BSY
OTPA 直至 EESTA.BSY
將變成等於 0
初始
名稱
排名
目的
訪問
意義
保留
31:1
保留
1 – 阻止繁忙(執行
請求的操作)
BSY
0
0x0
R.O.
0 – 區塊準備好執行
新團隊
初始
名稱
排名
目的
訪問
意義
保留
31:9
保留
第232章
表 119 – OTPCON 控制暫存器
表 120 – OTPSTA 狀態暫存器
表 121 – OTPDEC 字串解碼器暫存器
初始
名稱
排名
目的
訪問
意義
字串解碼器輸出
OTP 區塊。用於
測試。
功能檢查
德科
8:0
0x0
r r f r 字串解碼器
R.O.
透過改變來進行
測試列位址,
頁面和輸出控制
解碼器
初始
名稱
排名
目的
訪問
意義
保留
31:29
保留
低功耗模式:
“0” – 硬 IP 退出模式
降低功耗,並且可以
執行讀取和寫入操作;
“1” – Hard IP 進入模式
電源關閉_i
28
0x0
p 減少能源消耗,
RW
禁止寫入和讀取操作。
退出Hard IP模式後
減少能源消耗
之前需要一些時間
可能會開始新的行動
讀取目前選擇:
「0」——2μA;
“1” – 0.2 µA
sel_read_cur_i
27
0x0
RW
用於測試。不
建議按標準更改
操作模式。
讀取電壓選擇
0b000、0b100 – 2.0V;
0b001、0b101 – 2.5V;
sel_upp_read_i[2:0]
26:24
0x1
0b111、0b011 – 3.0V;
RW
0b010 – VDD18 電源電壓 1.8
B、連線主LDO;
0b110 – VDD5 範圍 3.0 - 5.5V
保留
23:19
保留
233
表 122 – 時序控制暫存器 OTPADJ
價值 目的 訪問
初始
名稱
排名
目的
訪問
意義
下降沿 re_i 和之間的時間
可以開始的時刻
APB 上的新交易。應該
用於提供
保持時間要求 Hard
智慧財產權。建議值N_RH =
氮肥
18:16
0x1
=ceil(40/Pclk),其中 Pclk 是週期
RW
ns 中的時脈訊號,ceil – 函式
四捨五入到最接近的較高值
整數。
範例:頻率 Fclk = 的兩個時脈週期
33.3兆赫。為了電路的正確執行
該值必須大於 0
保留
15:11
保留
高訊號持續時間
時脈週期內的 re_i(硬 IP 輸入)。
推薦值N_RA =
ceil(40/Pclk),其中 Pclk 是時脈週期
N_RA
10:8
0x1
ceil 中的訊號 – 舍入函式
RW
最接近的較大整數。
範例:頻率 Fclk = 的兩個時脈週期
33.3兆赫。為了電路的正確執行
該值必須大於 0
保留
7:3
保留
開始之間的時間
APB 上的交易和積極的
我在酒吧前。應該
用於提供
預設時間要求
N_RSU
2:0
0x0
RW
硬IP。考慮到在輸入 i
維持在穩定水平
先前寫入操作的結果
到 OTPA 暫存器,給定值
建議設定為0
234
價值 目的 訪問
初始
名稱
排名
目的
訪問
意義
保留
31:11
保留
下降沿 we_i 和之間的時間
後沿 OTPSTA.BSY 中
酒吧應該用於
保證時間要求
硬IP保留。推薦
值 N_H=ceil(40/Pclk),其中 Pclk –
氮氫
10:8
2
RW
時鐘週期(以 ns、ceil 為單位)–
舍入到最接近的函式
更大的整數。
範例 – 頻率 Fclk 的時脈 ldf
= 33.3 兆赫。為了正確操作
電路值必須大於0
保留
7:3
保留
結束之間的時間
APB 上的交易和積極的
我們在酒吧前面。應該
用於提供
預設時間要求
硬IP。建議值
N_SU
2:0
2
N_SU = =ceil(40/Pclk),其中 Pclk –
RW
時鐘週期(以 ns、ceil 為單位)–
舍入到最接近的函式
更大的整數。
範例 – 頻率 Fclk 的兩個時脈週期
= 33.3 兆赫。為了正確操作
電路值必須大於0
初始
名稱
排名
目的
訪問
意義
保留
31:24
保留
高電平持續時間
訊號 we i(硬 IP 輸入)
酒吧推薦
意義
西北
23:0
1666667
N_W = 50000000 ns/Pclk,其中
RW
Pclk——時脈週期
ns 中的訊號。
範例 – 1666667 個週期
頻率 Fclk = 33.3 MHz
235
表 123 – 用於調整寫入過程持續時間的暫存器 1 OTPWT1
表 124 – 用於調整寫入過程 2 OTPWT2 持續時間的暫存器
236
EEPROM控制器
此控制器設計用於存取區塊陣列
用於從 AHB-Lite(唯讀)和 APB 介面寫入和讀取的 EEPROM
(分幾個階段進行閱讀和寫作)。此控制器與
容量為 8 KiB 的硬核心 IP EEPROM 及其所需的生成單元
電壓和電流(電源)。
EEPROM 控制器的框圖如圖 83 所示。
圖 83 – EEPROM 控制器框圖
相容的EEPROM核心配置:
- 資訊容量——2千字;
- 一個字中的位數 – 38(32 位元使用者資料和 6 位元用於
糾正單一錯誤);
- 輸入寬度 – 32 + 6 位元;
- 輸出寬度 – 32 + 6 位元;
- 陣列中的行數 – 64;
- 陣列中的列數 – 1216。
控制器特點:
- 透過 APB 介面分幾個階段進行錄製;
- 透過APB介面分2或3階段讀取;
- 透過 AHB-Lite 介面直接從陣列讀取(有延遲,
閱讀程式所需);
第237章
- 單糾錯電路,具有升起標誌的功能
單一錯誤;
- 可直接存取校正位元進行寫入和讀取;
- 透過設定寫入和讀取操作的時脈週期數的能力
控制暫存器。
透過 APB 介面的讀取模式
控制器允許透過 APB 介面分兩個或三個階段進行讀取:
- 寫入地址(EEA)-讀取資料暫存器(EEDAT);
– 寫入位址 (EEA) – 輪詢就緒標誌 (EESTA.BSY) – 讀取暫存器
資料(EEDAT)。
如果使用兩階段讀取,則取代標誌檢查過程
資料準備就緒,引入APB介面等待週期,在此期間
PREADY 訊號保持在「0」。如果使用三階段讀,PREADY
保持在“1”,但需要額外檢查就緒標誌
(EESTA.BSY)。暫存器用於在模式之間切換
EECON.APBNWS。當EECON.APBNWS = 1時,使用三階段讀取模式
(沒有 APB 等待時鐘)。
當 EECON.APBNWS = 0 時,讀取 EEDAT 暫存器時,
EEA 位址自動遞增。因此,在該模式下,錄音
如果您需要讀取位址高一的字,則不需要位址
上一篇。
當 EECON.APBNWS = 0 時控制器執行自動讀取
讀取 EEDAT 暫存器時來自 EEPROM 的字。
當 EECON.APBNWS = 1 時控制器執行自動讀取
寫入 EEA 位址暫存器時來自 EEPROM 的字。
為了執行校正位元的讀取,透過 APB 存取 EERB 暫存器。
當需要同時讀取校正位元和資料時,校正位元暫存器
首先讀取每個單字(即
暫存器位元修正EERB,然後透過暫存器讀取四個位元組的資料
EEDAT)。必須遵循此順序,因為讀取暫存器時
EEDAT EEA 位址自動遞增。
238
讀取 EEPROM 中儲存的實際值,而不是
已修正,在讀取前必須停用糾錯電路,
透過向 EECON.DISECC 位元寫入「1」。
透過AHB-Lite介面讀取資料
此區塊實現透過AHB-Lite介面讀取資料的操作。
一次只能使用一個介面,或使用 AHB-Lite,
或與 APB 一起。因此,在開始透過 AHB-Lite 傳輸時,該區塊必須
處於等待新指令到達的模式 (EESTA.BSY = 0)。
註 – EEPROM 區塊的實作方式是重複
讀取 AHB 匯流排上的一個位址時無需存取資料陣列
EEPROM,傳回先前讀取的值。辦完手續後,
透過 APB 匯流排觸發,先前讀取的值被 0 取代。這可能
如果執行的話,會導致在 AHB 匯流排上讀取不正確的值
到與先前透過 APB 匯流排執行該程式相同的位址。排除
在這種情況下,建議在 APB 匯流排上執行操作後,
任意不同地址的兩個讀數。這確保了最後讀取的地址
AHB匯流排上的情況與以前不同。
緩衝區填滿過程
Hard IP EEPROM的一個特點是需要填充緩衝區
在擦除和程式設計操作之前進行記錄。手術過程中
程式設計時,寫緩衝區的內容會傳送到陣列字串(或
EECON.WRBEH = 0b00 的幾行)。在擦除操作過程中,
擦除填滿時填入任意值的單字
緩衝。寫入緩衝區大小為 32 個資料字。當寫入緩衝區滿時,地址
緩衝區內的字由 EEA[6:2] 的位元決定。當錄音緩衝區已滿時
EEA[12:7] 位元必須保持不變(用作位元)
字串解碼器控制項)。
在寫入緩衝區被填滿之前,必須設定寫入使能位
緩衝器 EECON.BWE = 1。在擦除/程式設計過程之後,該位
會自動清除。
239
該位值必須在寫入緩衝區被填滿之前設定。
WRBEH[1:0],定義後續操作的型別(偶數操作)
行、奇數行、所有行)。
填充寫入緩衝區的過程可以透過重複執行
重複 3 個過程,直到緩衝區已滿:
- 記錄EEA中的字位址;
- 記錄任意資料(擦除)或記錄資料
(程式設計)EEDAT;
- 輪詢就緒標誌 EESTA.BSY 直到它等於 0(如果
EECON.APBNWS = 1)。
如果設定了,則不必輪詢就緒標誌
EECON.APBNWS = 0(預設)。在這種情況下,雖然緩衝區寫入過程不是
將結束,APB匯流排上將產生等待週期,在此期間
PREADY = 0。如果 EECON.APBNWS = 1,則 PREADY 將始終保持
1,但是在緩衝區寫入之間需要輪詢標誌
EESTA.BSY。
緩衝區填充過程可以透過自動加速
寫入 EEDAT 後遞增位址。每次輸入 EEDAT 後
要寫入的字的內部位址會自動遞增。如果需要的話
對陣列的整個字串進行程式設計,建議只寫地址
EEA中的第一個字,然後在EEDAT中依序寫入32個字的資料,而不是
在寫入 EEDAT 之間寫入字位址。
擦除單字
如需擦除頁面/部分頁面/所有頁面中的文字,建議
請遵循下面所述的操作順序:
- 填滿錄音緩衝區;
– 寫入 EECON 暫存器:
1) EECON.EX = 1(啟動程式);
2) EECON.OP = 0b01(擦除);
3) EECON.WRBEH = 0b00(正常)或 0b01(僅限偶數頁)
或 0b10(僅奇數頁)或 0b11(所有頁);
- 輪詢 EESTA.BSY 標誌,直到其被清除。
240
程式設計的話
在頁面/部分頁面/所有頁面中程式設計單字
建議遵循下述操作順序:
- 填滿錄音緩衝區;
– 寫入 EECON 暫存器:
1) EECON.EX = 1(啟動程式);
2) EECON.OP = 0b10(程式設計);
3) EECON.WRBEH = 0b00(正常)或 0b01(僅限奇數頁)
或 0b10(僅偶數頁)或 0b11(所有頁);
- 輪詢 EESTA.BSY 標誌,直到其被清除。
單一錯誤中斷
如果糾錯電路被使能(EECON.DISECC = 0)且
透過 APB 或 AHB-Lite 介面讀取,然後在偵測到單一錯誤時
糾錯電路將可升高 EESTA.SERR 標誌。
如果在讀取的字中偵測到單一錯誤,則可能是
已產生中斷請求。啟用此中斷請求
IESERR 位元必須設定為 1。
EESTA.SERR 標誌和中斷請求可以同時被清除
透過將“0”寫入 EESTA.SERR 位元。
時間限制
以便控制波形從 Soft IP 到 Hard IP
滿足任何這些訊號的時序引數的要求
時脈訊號頻率clk的值,可以改變之間的延遲
時間圖上的一些事件。不同時的訊號形狀
操作如圖84-86所示。
第241章
圖 84 – 記錄緩衝區填充過程中的波形
圖 85 – 擦除和程式設計過程中的波形
圖 86 – 讀取過程中的波形
圖中顯示了以下時間間隔:
- N_LD – 訊號上升沿和下降沿之間的時脈週期數
硬核 IP Phi1Ee 和 Phi1ShiftEe 以及從匯流排訪問開始到
第一前面Phi1Ee。任意頻率下的建議值 clk 1
機智;
初始
名稱
偏移量
描述
訪問
意義
歐洲經濟發展局
0x00
-
讀/寫資料暫存器
RW
歐洲經濟區
0x04
-
頁位址暫存器
RW
第242章
– N_EP_1 – 時脈週期內 BUSY 訊號(Hard IP 輸入)高電位的持續時間。
建議值 N_EP_1 = 2000000 ns / Pclk,其中 Pclk 為週期
時脈訊號(ns)。範例 – 66667 個時脈週期,頻率 Fclk = 33.3 MHz;
– N_EP_2 – BUSY 和 HvonValid 下降沿之間的延遲(硬輸入
IP)以時鐘週期為單位。建議值 N_EP_2 = 15000 ns / Pclk,其中 Pclk –
時脈訊號的週期(以 ns 為單位)。範例 – 500 個時脈週期,頻率 Fclk = 33.3
兆赫茲;
– N_R_1 – Phi1ShiftEe 為高電位的時脈週期數
閱讀過程中的層次。建議值N_R_1 = ceil(51/Pclk),
其中 Pclk 是時脈訊號的週期(以 ns 為單位),ceil 是捨入函式
最接近的較大整數;
– N_R_2 – 完成讀取過程所需的時脈週期數
(讀取過程結束後將OkSelEe調至高電位)。
任何clk頻率下的建議值為1個時脈週期;
– 透過 AHB-Lite 介面存取時,訊號形式具有相似的外觀
並且還取決於顯示的引數。將位址值寫入 EEA 時,
如果 EECON.APBNWS = 1,波形也具有類似的形式且
也取決於顯示的引數。
使用區塊時,必須考慮以下時序:
限制:
- 從接通電源或訊號從“1”轉為“0”的時間
BadPowerEe 在任何硬 IP 呼叫之前不應
小於100μs;
- 從StopEe訊號從「1」轉為「0」的時刻到任何一個時刻的時間
對硬 IP 的呼叫應至少為 500 ns。
暫存器
表 125 列出了暫存器清單及其用途。
表 125 – EEPROM 控制器暫存器
初始
名稱
偏移量
描述
訪問
意義
伊康
0x08
0x000000 讀
控制暫存器
RW
歐洲電子技術協會
0x0C
0x000000 讀
狀態暫存器
RW
右
讀取校正位元暫存器
歐洲教育局
0x10
0x000007 Rs
R.O.
話
與
歐洲經濟發展署
0x14
0x329000 讀
設定暫存器
RW
右
持續時間調整暫存器
NCCYCRL
0x18
0x010201p
讀取和填滿緩衝區的過程
RW
小時
記錄
右
持續時間調整暫存器1
NCCYCEP1
0x1C
0x01046B R p
RW
擦除和程式設計過程
n
右
持續時間調整暫存器2
NCCYCEP2
0x20
0x0001F4 讀
RW
擦除和程式設計過程
n
初始
名稱
排名
目的
訪問
意義
-
在閱讀/寫這篇文章時
註冊是自動進行的
資料
31:0
RW
主題遞增
地址(歐洲經濟區)。
初始
目的
名稱
排名
訪問
意義
保留
31:13
保留
-
執行擦除/程式設計/讀取的字位址。 如果需要擦除或程式設計,則必須在寫入緩衝區填充過程中使用該位址
地址
12:2
RW
保留
1:0
保留
初始
名稱
排名
目的
訪問
意義
保留
31:9
保留
啟用中斷請求時
升起 SERR 標誌:
伊塞拉
8
0x0
RW
0 - 未收到請求;
1 - 收到請求
243
表 126 – 134 提供了模組暫存器的描述。
表 126 – EEDAT 讀取/寫入資料暫存器
表 127 – EEA 頁位址暫存器
表 128 – EECON 控制暫存器
初始
名稱
排名
目的
訪問
意義
寫入緩衝區的許可權。這一點
應先設定為“1”
寫入緩衝區填滿操作
在擦除操作之前和
程式設計。操作後sti-
B.W.E.
7
0x0
RW
啟用並程式設計該位
被自動清除(即,對於
隨後寫入緩衝區應該
將“1”重寫到此
位元)
停用糾錯電路
在執行請求時
程式。已斷開連線
向該位寫入“1”。如果電路
校正被停用,然後在錄製時
修正位的值確定
該字的最低有效六位。如果
校正電路開啟,那麼當
迪賽克
6
0x0
RW
寫入值校正位
由 SEC32 - ENC 電路計算。如果
校正電路已停用,那麼當
閱讀時沒有進行更正
單字中可能出現的錯誤。如果電路
校正已開啟,然後在讀取時
資料由模式修正
DEC32_ENC
禁止插入等待刻度
透過 APB 交換過程時
錄音緩衝區已滿(期間
EEDAT 中的條目)以及寫入位址時
用於資料讀取過程(EEA)。
APBNWS
5
0x0
RW
如果禁用等待刻度
(APBNWS=1),那麼你需要使
在這些之後輪詢 EESTA.BSY 標誌
操作直至 EESTA.BSY
不會等於 0
244
初始
名稱
排名
目的
訪問
意義
操作行為
擦除/程式設計:
0b00 – 正常擦除/
一頁程式設計;
0b01 – 擦除/程式設計
所有偶數頁;
0b10 – 擦除/程式設計
WRBEH
4:3
0x0
RW
所有奇數頁;
0b11 – 擦除/程式設計
所有頁面。這些位元必須
手術前安裝
之前填充寫入緩衝區
擦除操作和
程式設計
選擇程式:
0b00 - 頁面讀取;
OP
2:1
0x0
0b01——擦除;
RW
0b10-程式設計;
0b11 - 未使用的值
啟動程式。此時條目1
前
0
0x0
位元啟動程式的執行,
RW
過程由OP位決定
初始
名稱
排名
目的
訪問
意義
保留
31:2
保留
單一(可校正)指示器
錯誤。硬體也許
僅提出,即如果在單字之後
SERR
1
0x0
「without」這個詞讀錯了
RW
錯誤,該標誌不會被清除。也許
以程式方式清除
條目 0
1 - 阻止繁忙(執行
請求的操作)
BSY
0
0x0
R.O.
0 – 該區塊已準備好執行新的
團隊
初始
名稱
排名
目的
訪問
意義
保留
31:6
保留
245
表 129 – EESTA 狀態暫存器
表 130 – 讀取字校正位元暫存器 EERB
價值 目的 訪問
初始
名稱
排名
目的
訪問
意義
包含 6 個校正位
正確
5:0
0x7
R.O.
讀到的最後一個字
初始
名稱
排名
目的
訪問
意義
保留
31:27
保留
將硬IP轉移到國家
*IddqEn
26
0x0
Iddq 處於靜止狀態
RW
測試
切換硬IP模式
停止Ee
25
0x0
減少
RW
能源消耗
目前微調
*嚴格控制
24:22
0x0
RW
閱讀時使用
時間調整
*VppCtl
21:20
0x3
增加高
RW
電壓
啟用精確模式
*CG嚴格
19
0x0
電壓調整,
RW
閱讀時使用
電壓調整
*VcgCtl
18:16
0x2
提交給經理
RW
閱讀時快門
目前的調整,
*參考控制
15:13
0x4
RW
閱讀時使用
參考調整
*VbgCtl
12:10
0x4
RW
電壓帶隙
調整夾持力矩
*虛擬Ctl
9:8
0x0
RW
輸出資料
塊控制訊號
*減Imix
7
0x0
模擬監控
RW
訊號
進階組-調整
內部Vboost訊號,
LSB——訊號
*VboostCtl
6:5
0x0
RW
塊控制
模擬監控
訊號
塊控制訊號
*PlusImix
4
0x0
模擬監控
RW
訊號
水平調整
*愛滋病毒控制
3:1
0x0
RW
HIV內部訊號
246
價值 目的 訪問
表 131 – 硬 IP EEADJ 模組設定暫存器
價值 目的 訪問
初始
名稱
排名
目的
訪問
意義
增加時脈頻率
訊號到達
*OSCX2
0
0x0
RW
帶充電器的裝置
泵送,兩次
注意 – 由「*」指示的欄位用於微調模組和
執行測試程式。 當以下情況時,無法保證裝置的運作:
使用製造商未建議的值。
初始
名稱
排名
目的
訪問
意義
保留
31:24
保留
所需迴圈次數
完成程式閱讀
nia(將 OkSelEe 翻譯為
高電平後
N_R_2
23:16
0x1
閱讀程式)。
RW
建議值
任何頻率 clk 1 個時脈週期。
禁止安裝
等於 0
期間的迴圈次數
其中 Phi1ShiftEe 具有高
程式中的高水平
閱讀。推薦
值 N RA = ceil(51/Pclk),
N_R_1
15:8
0x2
其中 Pclk 是時脈週期
RW
ns 中的訊號,ceil – 函式
四捨五入到最接近的
更大的整數。
禁止安裝
等於 0
之間的週期數
前後
硬IP訊號的邊緣
Phi1Ee 和 Phi1ShiftEe 和
自上訴開始之日起的延遲
N_LD
7:0
0x1
RW
沿著巴士到第一個邊緣
菲1Ee。推薦
任意頻率下的值
時鐘1時鐘。禁止
設定為 0
第247章
價值 目的 訪問
表 132 – 用於調整讀取和填充寫入緩衝區 NCYCRL 的過程持續時間的暫存器
價值 目的 訪問
初始
名稱
排名
目的
訪問
意義
保留
31:18
保留
高電平持續時間
BUSY 訊號(硬 IP 輸入)至
酒吧推薦
值 N RA = 2000000 奈秒 /
Pclk,其中 Pclk 是週期
N_EP_1
17:0
0x1046B
RW
時脈訊號(ns)。
範例 – 66667 時脈週期
頻率 Fclk = 33.3 MHz。
禁止安裝
等於 0
248
表 133 – 用於調整擦除和程式設計過程 NCYCEP1 持續時間的暫存器 1
價值 目的 訪問
初始
名稱
排名
目的
訪問
意義
保留
31:11
保留
後方之間的延遲
前面 BUSY 和 HvonValid
(硬 IP 輸入)以時脈週期為單位。
建議值NRA
= 15000 奈秒/Pclk,
N_EP_2
10:0
0x1F4
其中 Pclk 是時脈週期
RW
ns 中的訊號。
範例 – 500 個週期
頻率 Fclk = 33.3 MHz。
禁止安裝
等於 0
249
表 134 – 用於調整擦除和程式設計過程 NCYCEP2 持續時間的暫存器 2
價值 目的 訪問
看門狗定時器 (WDT) 模組
看門狗定時器(WDT)模組實現掛起控制功能
可執行程式。看門狗定時器必須初始化且
在程式開始時啟動。之後他獨立數數
指定時間,如果在這段時間內程式沒有重新啟動它,那麼
定時器為微控制器核心產生重設訊號。結束前 256 小節
在指定的時間之後,定時器另外發出中斷訊號。
注意 – 由看門狗定時器引起的系統重設訊號不
提供給 RST# 引腳。
看門狗定時器由獨立的內部訊號計時,這要歸功於
為什麼即使系統時脈訊號消失它仍然繼續運作。定時器
由一個12位元時鐘計數器和一個12位元預
因此,最大可能的時間間隔是 224
節拍
此模組實現了防止暫存器內容意外變更的保護
從程式端。
看門狗暫存器
表 135 列出了可透過 APB 介面使用的暫存器。
名稱
偏移量
初始值
目的
訪問
關鍵
0x9C
–
按鍵暫存器
沃
康
0x84
0x0
配置
RW
S.T.A.
0x9C
–
狀態暫存器
R.O.
名稱
排名
初始值
目的
訪問
預定標
14:12
0x0
定時器的輸入分頻器(Fclk):0b000 – Fclk / 1;0b001——Fclk/2;0b010——Fclk/4;0b011——Fclk/16;0b100——Fclk/64;0b101——Fclk/16;0b100——Fclk/64;0b101——Fclk/16; 0b111 – Fclk/4096
RW
預載
11:00
0x0
啟動或重新啟動時定時器的初始值(定時器向上計數)
RW
250
表 135 – 看門狗定時器模組暫存器
若要記錄模組配置,您必須遵循以下步驟
解鎖。為此,您需要將值 0x1E 寫入 KEY 暫存器。鎖
15 個時脈週期後或寫入任何暫存器時啟動。
觸發看門狗定時器值或將看門狗定時器值重新載入到 KEY 暫存器中
您需要寫入值 0x71。停止 KEY 暫存器中的看門狗計時器
您需要寫入值0xE8。
看門狗配置暫存器欄位的描述見
表 136. 暫存器更新只能在停止狀態下進行
看門狗定時器。
表 136 – CON 設定暫存器欄位
看門狗狀態暫存器欄位的描述見
表 137.
定時器活動位在一段時間後更改其值
存取 KEY 暫存器,這是訊號同步所必需的。
名稱
排名
初始值
目的
訪問
WDT_RST_FLAG
8
0x0
看門狗復位生成標誌。 1——WDT訊號重設;0 – 加電或外部重設後未發生 WDT 重設(RST# 為邏輯 0)
R.O.
–
7:2
保留
定時器載入
1
0x0
值重設: 1——定時器中的值正在重設;0 – 目前未進行定時器值過載(已完成)
R.O.
定時啟用
0
0x0
定時器活動位元:1—定時器啟動;0 – 計時器停止
R.O.
第251章
表 137 – STA 看門狗狀態暫存器欄位
匯流排看門狗定時器(WDT BUS)
匯流排看門狗防止從機鎖定係統
AHB 裝置。此模組由控制暫存器和三個匯流排監視器組成,
連線EEPROM、SPIFI匯流排、週邊裝置匯流排:加速器
密碼學、計算校驗和的模組、APB_P 匯流排上的裝置。
監視器放置在匯流排矩陣和 AHB 從站之間。
第252章
圖 87 – 匯流排看門狗定時器的功能圖
如果有到從裝置的主動傳輸,並且從裝置
將 HREADY 資料就緒訊號保持在「0」超過一定時間
時脈週期(在 TIMEOUT 欄位中指定),看門狗計時器執行下列操作
行動:
- 在匯流排上為主機產生一個錯誤標誌(HRESP =“1”);
- 產生一個中斷(如果指定從機啟用了該中斷);
- 產生從機重設訊號。
如果匯流排主機向該從機發出後續請求
裝置,監視器在匯流排上產生錯誤並且不傳輸此請求
從屬,從而有效地阻止對從屬的訪問。監視器
停止產生錯誤訊息並阻止對從站的訪問,
當從機透過將 HREADY 設定為「1」來完成傳輸。 如果有一批
傳輸時,批次傳輸中的剩餘事務將被阻塞。
當從機保持匯流排超過2TIMEOUT時脈週期時,產生中斷,
連線到以下中斷控制器線:
- IRQ[17] - 匯流排看門狗定時器(週邊裝置);
控制暫存器
EEPROM監控器
匯流排矩陣
控制器
EEPROM
監視器
SPIFI
週邊監控
AHB
控制器
SPIFI
橋AHB/APB_P
AHB
AHB
AHB
AHB
AHB
AHB復用器
CRC
密碼學加速器
AHB
AHB
AHB
中斷請求
中斷請求
名稱
偏移量
初始值
目的
訪問
超時
0x00
0x0
定義產生錯誤之前的等待週期數。 值從 0 到 15。等待週期數計算為 2TIMEOUT
RW
IRQ_CLEAR
0x04
–
中斷清除: IRQ_CLEAR[0] = 1 個週邊匯流排監視器清除中斷 IRQ_CLEAR[1] = 1 個 SPIFI 匯流排監視器清除中斷 IRQ_CLEAR[2] = 1 個 EEPROM 匯流排監視器清除中斷
W1C
啟用
0x08
0x0
啟動/停用匯流排監視器。 1 – 啟用,0 停用 ENABLE [0] – 週邊裝置匯流排監視器的控制 ENABLE [1] – SPIFI 匯流排監視器的控制 ENABLE [0] – EEPROM 匯流排監視器的控制
RW
第253章
- IRQ[18] - 匯流排看門狗定時器(SPIFI);
– IRQ[19] - 匯流排看門狗定時器(EEPROM)。
- 中斷重設是透過向暫存器對應位元寫入1來實現的
IRQ_CLEAR。
匯流排看門狗暫存器如表 138 所示。
表 138 – 匯流排看門狗控制暫存器
第254章
溫度感測器(TSENS)
感測器轉換成正比的電量
從晶體的溫度轉換為該溫度的二進位表示形式。
規格:
- 溫度測量精度±0.1℃;
- 溫度測量誤差在 [–40 °C 範圍內; 125°C] 不
超過1%;
- 具有睡眠模式,可降低電流消耗;
- 調整功能,減少製程變異的影響;
- 時脈頻率32 kHz-100 kHz。
感測器的組成和工作原理
框圖如圖 88 所示。感測器由一個區塊組成
形成參考電流,用於產生兩個基極-射極電壓的塊,
Σ-Δ ADC 和 ADC 結果會累加暫存器。
圖 88 – 感測器框圖
感測器塊基於雙極電晶體,因為它們的技術
與替代方案相比,引數的分佈很小。產生有關的資料
溫度,僅二極體連線中的兩個電晶體,受控
不同的電流。基極-射極電壓 Vbe 與溫度成反比
(CTAT),電壓差ΔVbe與(PTAT)成正比。
將熱感測器程式碼 q 轉換為攝氏度的公式:
𝑥 = (4096 − 𝑞) / 𝑞 (12)
名稱
偏移量
初始值
目的
訪問
TSENS_CFG
0x1C
0x0
設定暫存器
RW
TSENS_TRESHOLD
0x20
0x3865B
閾值暫存器
RW
TSENS_IRQ
0x24
0x0
中斷暫存器
RW
TSENS_CLEAR_IRQ
0x28
0x0
中斷復位暫存器
W1C
TSENS_VALUE
0x2C
0x0
資料暫存器
R.O.
TSENS_SINGLE
0x30
0x0
單次測量觸發暫存器
沃
TSENS_CONTINUOUS
0x34
0x0
連續測量觸發暫存器
沃
注意 – 相對於模擬子系統控制單元起始位址(微控制器位址空間中的 0x00085000)的偏移。
255
𝜇𝑥 = 𝛼 / (𝛼 + 𝑥) (13)
𝑇𝑒𝑚𝑝 = 𝐴 * 𝜇𝑥 + 𝐵 (14)
典型值:
- A = 622;
- B = -273.15;
- α = 10.3。
控制暫存器
塊暫存器用於控制溫度感測器
模擬子系統的控制。感測器控制暫存器的組成
表 139 中列出。表 140–146 提供了暫存器欄位的描述
感測器
表 139 – 溫度感測器控制暫存器
名稱
排名
初始值
目的
訪問
保留
31:16
保留
DIV
15:6
0x0
時鐘分頻器值。感測器頻率定義為 TSENS = FIN/(2*(DIV + 1))
RW
時鐘多用器
5:3
0x0
感測器時脈來源選擇(FIN):0x0 – 系統頻率(sys_clk); 0x1 – AHB 匯流排頻率 (hclk);0x2 – 外部振盪器頻率 32 MHz;0x3——HSI32M頻率;0x4 – 外部振盪器頻率 32 kHz LSI 0x5 – 頻率;
RW
復位
2
0x0
感測器復位控制,有效電平“0”
RW
NPD_時鐘
1
0x0
感測器計時控制:0——感測器計時停用;1 – 感測器時鐘啟用
RW
新產品開發
0
0x0
感測器電源控制:0——感測器關閉;1 – 感測器啟用
RW
名稱
排名
初始值
目的
訪問
保留
31:20
保留
THRESHOLD_LOW
19:10
225
當感測器輸出值小於LOW_THRESHOLD時,將產生中斷。預設值對應的溫度為 -40 °C
RW
256
表 140 – 溫度感測器 TSENS_CFG 暫存器
表 141 – 溫度感測器 TSENS_TRESHOLD 暫存器
名稱
排名
初始值
目的
訪問
閾值_HI
9:0
603
如果感測器輸出值大於HI_THRESHOLD,將產生中斷。預設值對應於 125 °C 的溫度
RW
名稱
排名
初始值
目的
訪問
保留
31:6
保留
低中斷請求
5
0x0
事件中斷狀態“感測器輸出小於閾值LOW_THRESHOLD”
R.O.
中斷請求
4
0x0
「感測器輸出大於閾值HI_THRESHOLD」事件的中斷狀態
R.O.
EOC_IRQ
3
0x0
轉換結束時的中斷狀態
R.O.
低遮罩
2
0x0
事件「感測器輸出小於閾值 LOW_THRESHOLD」的中斷遮蔽
RW
HI_MASK
1
0x0
「感測器輸出大於閾值 HI_THRESHOLD」事件的中斷遮蔽
RW
EOC_MASK
0
0x0
轉換結束時的中斷掩碼
RW
名稱
排名
初始值
目的
訪問
保留
31:3
保留
低清
2
–
重置事件中斷“感測器輸出小於閾值LOW_THRESHOLD”
W1C
第257章
表 142 – 溫度感測器 TSENS_IRQ 暫存器
表 143 – 溫度感測器 TSENS_CLEAR_IRQ 暫存器
名稱
排名
初始值
目的
訪問
HI_CLEAR
1
–
重設「感測器輸出大於閾值HI_THRESHOLD」事件中斷
W1C
EOC_CLEAR
0
–
轉換結束時重置中斷
W1C
名稱
排名
初始值
目的
訪問
保留
31:11
保留
歐洲石油公司
10
0x0
轉換結束輸出的目前值
R.O.
價值
9:0
0x0
感測器上次測量值
R.O.
名稱
排名
初始值
目的
訪問
保留
31:1
保留
單人
0
–
執行一項測量
W1S
名稱
排名
初始值
目的
訪問
保留
31:1
保留
連續
0
0
開始/停止連續溫度測量
RW
258
表 144 – 溫度感測器 TSENS_VALUE 暫存器
表 145 – 溫度感測器 TSENS_SINGLE 暫存器
表 146 – 溫度感測器 TSENS_CONTINUOUS 暫存器
引數名稱、計量單位
字母名稱
引數範數
不少於
教派
沒有了
DAC位數
-
-
12
-
微分非線性,Lsb
-
-
0.36
-
積分非線性,Lsb
-
-
0.74
0.83
參考電壓源的輸入電壓,V
尿素指數
-
1.2
-
參考電壓輸入電流,μA
國際尿素聯合會
-
0
-
DAC 輸出電壓範圍,V
dUDAC
-
0 - UREF
-
DAC 輸出訊號接腳的負載電阻,kOhm
負載電阻
-
50
-
DAC 輸出訊號接腳的負載電容,pF
負載
-
2
-
輸出電壓穩定時間,μs
輸出端
-
-
0.7
外部參考電流,μA
輸出電壓
8
10
12
電流消耗,毫安培
國際商會
-
0.9
1.07
第259章
數位類比轉換器 (DAC)
數位類比轉換器 (DAC) 旨在形成
電壓與12位元控制程式碼成正比。塊時鐘
透過分頻器 DAC0_CFG.DIV / DAC1_CFG.DIV 從 APB_P 匯流排執行。
註 - 在版本“B”中,未使用 DAC 單元。
轉換器引數如表 147 所示。
表 147 – DAC 引數
電阻式DAC的組成與工作原理
此模組由電阻式 DAC、外部輸入緩衝器/分壓器組成
參考電壓2,內部比例參考源
電壓,增益為2的輸出緩衝器,以及附加
電阻、開關和數位控制邏輯。附參考分頻的電路
選擇電壓減半並隨後將電壓增加 2 倍
260
為了在開關中僅使用“薄”N 電晶體
提供0至0.6V電壓範圍內所需的電阻
小按鍵尺寸,可最大限度地減少電壓突波
電阻矩陣各級之間缺乏緩衝。框圖
如圖 89 所示。
電阻式
矩陣
內部參考電壓
輸入匯流排12位
外部參考電壓
類比輸出
緩衝區/2
緩衝區x2
圖 89 – DAC 電路
電阻式 DAC 由兩級組成,每級提供
六位元解析度。級聯的每個單元元件由一個電阻器組成。
從拓撲上講,這些元素相對於中心對稱分佈(常見
質心)以減少引數的傳播。第一階段的輸出不是
被緩衝,因此,為了減少系統誤差,單一
第二級的元件具有明顯較高的電阻(1625 歐姆)
與 200 歐姆相比)。
輸出緩衝器是一個非反相操作
增益為 2 的放大器(運算放大器)。在其他情況下 -
增益為一的同相運算放大器。典型運算放大器電流消耗
為 200 µA(不考慮輸出電流)。關閉時,典型
運算放大器的電流消耗為30nA。
名稱
偏移量
初始值
目的
訪問
DAC0_CFG
0x00
0x0
DAC設定暫存器0
RW
DAC0_值
0x04
0x0
DAC0 的輸入資料
沃
DAC1_CFG
0x08
0x0
DAC1設定暫存器
RW
DAC1_值
0x0С
0x0
DAC1 的輸入資料
沃
參考CLB
0x38
0x188
校準電流和電壓源的控制
RW
注意 – 相對於模擬子系統控制單元起始位址(微控制器位址空間中的 0x00085000)的偏移。
名稱
排名
初始值
目的
訪問
保留
31:14
保留
空_讀
13
0x0
1 - DAC_VALUE 中儲存的值已在 DAC 中移位,可以寫入下一個值;0 - DACX_VALUE 暫存器包含原始值; *寫入 DACx_VALUE時自動重置
R.O.
保留
12
保留
擴充板
11
0x0
選擇外部參考電壓源:1-外部輸出; 0 - 可自訂 ION
RW
261
控制暫存器
為了控制 DAC,使用類比控制單元的暫存器
子系統。 DAC 控制暫存器的組成如表 147 所示。
表 149、150 提供了 DAC 暫存器欄位的描述。
表 148 – DAC 控制暫存器
表 149 – 暫存器 DAC0_CFG、DAC1_CFG
名稱
排名
初始值
目的
訪問
擴充
10
0x0
參考電壓源的選擇:1-外部;0 - 內建
RW
DIV
9:2
0x0
時鐘分頻器值。頻率定義為 FCAC=FIN/(DIV+1)
RW
護士長
1
0x0
DAC重設控制,有效電平“0”
RW
CN
0
0x0
DAC 電源管理: 0 – 停用;1 – 啟用
RW
名稱
排名
初始值
目的
訪問
保留
31:12
保留
價值
11:0
0x0
輸入資料進行轉換
RW
名稱
排名
初始值
目的
訪問
CN
8
0x01
校準源解析度:1 - 啟用; 0 - 關閉
RW
國際教育聯合會
7:4
0x08
參考電流源調諧係數
RW
電壓控制電壓
3:0
0x08
參考電壓源調諧係數
RW
262
表 150 – 暫存器 DAC_VALUE0、DAC_VALUE1
表 151 – 校準電壓和電流源的控制暫存器
使用 DDP 控制器
目前轉換完成後 DAC 操作期間
產生標誌(DAC0_CFG 或 DAC1_CFG 暫存器的 EMPTY_READ)
DMA 控制器的寫入許可權。
設定 DMA 通道以將資料從記憶體傳輸到 DAC_0 的範例:
CHx_CFG.啟用= 1;
263
CHx_CFG.READ_MODE = 1; // 從記憶體中讀取
CHx_CFG.READ_INCRMENT = 1; // 以位址增量讀取
CHx_CFG.READ_SIZE = 2; //讀取一個單字
CHx_CFG.READ_ACK_EN = 0; // 產生確認訊號
閱讀障礙
CHx_CFG.WRITE_MODE = 0; //依照DAC的請求執行錄音
CHx_CFG.WRITE_REQUEST = 10; // DAC_0 線
CHx_CFG。寫入增量=0; //寫入到一個位址
CHx_CFG.WRITE_SIZE = 2; //記錄一個字
CHx_CFG.READ_ACK_EN = 0; // 產生確認訊號
錄音已停用
LEN = 3; // 4位元組
SRC = <RAM_位址>;
夏令時=0x00085000 + 0x04; //(ANALOG_REG_BASE_ADDRESS + 偏移量
DAC0_值)
使用 DDP,將從 RAM 中讀取一個字。之後預計
寫使能標誌。然後該字被寫入 DAC0_VALUE 暫存器。
輸出圖
輸出訊號如圖 90 所示。
圖 90 – DAC 輸出訊號
引數名稱、計量單位
字母名稱
引數範數
不少於
教派
沒有了
ADC位數
–
-
12
-
多工器通道數
–
-
8
-
ADC 時脈訊號,MHz
時脈頻率
0.16
32
32
轉換頻率,kHz
FS
4
800
動態範圍,無雜訊分量,dB
SFDR
64.9
71.9
ADC 有效位數
ENOB
10.5
11.94
-
微分非線性,Lsb
–
-
1
-
積分非線性,Lsb
–
-
4
-
參考電壓源的輸入電壓,V
尿素指數
1.1
1.2
1.3
ADC 輸入訊號範圍,V
-
-
0.015 - UREF
-
參考電壓輸入電流,μA
國際尿素聯合會
-
0
-
測試輸出緩衝器的外部參考電流,μA
技術測試
0.45
0.5
1
電流消耗,μA
國際商會
-
-
1022
264
類比數位轉換器 (ADC)
類比數位轉換器 (ADC) 設計用於產生 12-
位元數字程式碼與類比輸入電壓成正比。
此區塊由 APB_P 匯流排提供時脈。
注意 - 在版本“A”中,未使用 ADC 單元。
ADC 引數如表 152 所示。
表 152 – ADC 引數
組成及工作原理
該模組是逐次逼近和輸入ADC
8 合 1 多工器和 3 合 8 解碼器。框圖如圖所示
圖 91.
265
圖 91 – ADC 電路
逐次逼近型ADC由電阻式DAC、模組
SAR14、SAH (UVH)、比較器和數位控制邏輯。
類比輸入電壓儲存在 SAH 模組中。執行
逐次逼近演演算法由 SAR 模組提供。 DAC 輸出
根據 SAR 暫存器的值設定。比較器執行比較
來自 UVH 和 DAC 的電壓值以及比較結果被饋送到 SAR 輸入。
電阻式 DAC 由兩級組成,每級提供
解析度6位元。級聯的每個單元元件由一個電阻器組成。
輸出緩衝器是一個具有係數的非反相運算放大器
獲得一。來自源的內部參考電壓驅動器
1.8 V 類比電壓在 Uist = 1.8 V 時提供 1.2 V 電壓。
典型運算放大器電流消耗為 250 µA(不含輸出電流)。乙
在關閉狀態下,運算放大器的典型電流消耗為 30 nA。
類比輸入電壓 Vin 儲存在取樣/保持裝置中
SAH/UVH。資料透過 CLK half 的上升沿寫入 Start 訊號
頻率並在轉換週期期間儲存在電容器上。
輸入頻率除以 28 和 2,形成一個附加的
相移 90 度的時脈訊號(CLK_div 模組)。在啟動訊號上
根據直接時脈訊號和偏移時脈訊號產生重設訊號
搜尋與援救設施。
266
輸入資料多工器包括輸入位址選擇暫存器
資料、3 至 8 個解碼器和直通金鑰。透過訊號將位址寫入暫存器
CK 在時脈 C1_2 中以 SAR 區塊生成,並儲存到下一個 CK,即
允許您從目前輸入結束資料轉換週期,即使位址
改變了。第一個CK訊號出現之前預設重設訊號
資料輸入 DIN<0> 被置位。
圖 92 – 切換 ADC 通道的時序圖
ADC控制
在每個 SAR 轉換週期開始時,啟動訊號和上升沿
CLK訊號,先將SAR中的N位元暫存器重設為0,然後
設定為等於轉換比例一半的值,0b100…00,其中
MSB-日誌。 「1」。在這種情況下,DAC 輸出設定為 1/2 參考電壓 (VRF)。
此後,比較器比較 Vin(UVC 輸出)和 VDAC。如果 Vin 大於
VDAC,比較器輸出設定為對數。 “1”,最高有效位 N 位
暫存器保持為“1”;如果 Vin 小於 VDAC,則比較器輸出
被設定為記錄。 “0”,MSB 重設為“0”。接下來由
將資歷位元設為“1”並重複比較過程。
第267章
對於所有位元重複該序列直至 LSB。迴圈結束時
轉換後,產生EOC訊號,轉換完成,資料來自
SAR 暫存器可由外部邏輯讀取。迴圈時序圖
轉換如圖 93 所示。連同重設/設定和迴圈
將資料寫入 UVH 轉換需要 CLK 寫入訊號的 SAH_TIME 時脈週期
UVH 和 28 個轉換週期中的資料。因此,要確保頻率
0.8 MHz 取樣需要至少 32 MHz 的輸入時脈訊號。
為了正確操作輸入多工器,選擇解碼器資料
對應的資料輸入被寫入內部位址暫存器
完成 28 個內部轉換週期中的兩個。因此,在 SAH
新輸入的資料在下一個轉換週期開始時寫入,
允許完成當前的一項。啟動訊號必須施加到 ADC 並鎖存
在CLK的前沿。此外,其持續時間必須至少為 12 小節。
CLK 用於給定資料輸入引數。
數位資料在時脈週期內的CLK下降沿讀取
C1_27或下一個轉換週期的時脈C0_0中的CLK上升沿時
EOC 輸出處啟動「1」。
轉換完成後將設定 VALID 標誌。處於模式中
從 ADC 設定資料標誌後,在下一個時鐘週期連續
被鎖存到APB資料暫存器中,開始標誌設定為下一個
轉換並重設 VALID。因此,在連續模式下,標誌
VALID 設定為一個 ADC 時鐘週期。
圖 93 – 轉換週期時序圖
名稱
偏移量
初始值
目的
訪問
ADC_配置
0x3C
0x0
設定暫存器
RW
ADC_連續
0x40
0x0
連續測量控制
RW
ADC_單次
0x44
0x0
單次測量控制
沃
ADC_有效
0x48
0x0
狀態暫存器
RО
ADC_值
0x4C
0x0
資料暫存器
RО
參考CLB
0x38
0x188
校準電流和電壓源的控制
RW
注意 – 相對於模擬子系統控制單元起始位址(微控制器位址空間中的 0x00085000)的偏移。
名稱
排名
初始值
目的
訪問
保留
31:14
保留
SAH_TIME
13:8
0xC
ADC 時脈週期中下一個取樣的取樣時間。 時脈週期數必須至少為 0x1,並且對應於至少 350 ns 的取樣時間。對於 32 MHz 的 APB 頻率,應使用 0xC。 該值可以使用以下公式計算:350·10-9·FAHB<SAH_TIME
沃
保留
7
保留
選擇性EL
6:4
0x0
ADC 通道選擇
RW
268
為了控制 ADC,使用模擬控制單元的暫存器
子系統。 ADC 控制暫存器的組成如表 153 所示。
表 154 – 159 提供了 ADC 暫存器欄位的描述。
表 153 – ADC 控制暫存器
表 154 – 寫入時 ADC 的 ADC_CONFIG 暫存器
名稱
排名
初始值
目的
訪問
擴充板
3
0x0
選擇外部參考電壓源:1-外部接腳; 0 – 可自訂的 ION
RW
擴充
2
0x0
參考電壓源選擇:1——外部;0 - 內建
RW
護士長
1
0x0
ADC重設控制,有效電平“0”
RW
CN
0
0x0
ADC 電源管理: 0 – 停用;1 - 啟用
RW
名稱
排名
初始值
目的
訪問
保留
31:15
保留
SAH_TIME
14:9
0xC
ADC 時脈週期中下一個取樣的取樣時間
R.O.
保留
8:7
保留
選擇性EL
6:4
0x0
ADC 通道選擇
RW
擴充板
3
0x0
選擇外部參考電壓源:1-外部接腳; 0 – 可自訂的 ION
RW
擴充
2
0x0
參考電壓源選擇:1——外部;0 - 內建
RW
護士長
1
0x0
ADC重設控制,有效電平“0”
RW
CN
0
0x0
ADC 電源管理: 0 – 停用;1 - 啟用
RW
269
表 155 – 讀取時 ADC 的 ADC_CONFIG 暫存器
名稱
排名
初始值
目的
訪問
保留
31:1
保留
連續
0
0x0
開始/停止連續測量
RW
名稱
排名
初始值
目的
訪問
保留
31:1
保留
單人
0
0x0
開始單次測量
沃
名稱
排名
初始值
目的
訪問
保留
31:1
保留
有效
0
0x0
當前資料可用性的標誌
R.O.
名稱
排名
初始值
目的
訪問
保留
31:12
保留
價值
11:0
0x0
轉換結果
R.O.
名稱
排名
初始值
目的
訪問
CN
8
0x01
校準源解析度:1 - 啟用; 0 - 關閉
RW
國際教育聯合會
7:4
0x08
參考電流源調諧係數
RW
270
表 156 – ADC_連續 ADC 暫存器
表 157 – ADC_ 單 ADC 暫存器
表 158 – ADC 的 ADC_VALID 暫存器
表 159 – ADC 的 ADC_VALUE 暫存器
表 160 – 校準電壓和電流源的控制暫存器
名稱
排名
初始值
目的
訪問
電壓控制電壓
3:0
0x08
參考電壓源調諧係數
RW
第271章
輸出圖
圖 94 顯示了 c 模式下 ADC 操作的時序圖
內部參考。
ADC 訊號:
iDac_out – 使用轉換 ADC 輸出訊號的結果
理想的DAC;
– SAH_out – UVH 輸出;
- DAC_OUT – 內建DAC的輸出;
- VS——幅度為1V的輸入訊號;
– VREFi – 內部緩衝參考訊號。頻率
取樣頻率 1000 kHz,訊號頻率 156250 Hz。
圖 94 – ADC 操作的時序圖
啟動模式控制單元(BOOT MANAGER)
該區塊提供更改載入模式。 Boot0和Boot1引腳的意義
在加電和外部重設(RST# 引腳)時被鎖存。 以程式設計方式
可以透過將所需的配置寫入暫存器來變更引導方法
啟動。記錄的啟動模式值將用於以下用途
名稱
偏移量
初始值
目的
訪問
啟動
0x00
-
啟動模式暫存器。
RW
名稱
排名
初始值
目的
訪問
啟動模式
1:0
-
啟動模式暫存器。 讀取時,返回上次啟動時的模式。 錄製時 – 設定後續軟重置的啟動模式。 0b00——從內建EEPROM儲存器啟動; 0b01 - 從系統 RAM 啟動; 0b10 - 使用 SPIFI 控制器從外部儲存器啟動; 0b11 - 保留
RW
第272章
事件(取決於啟用 SYS_MASK 暫存器中的對應事件
喚醒區塊):
- 鬧鐘響起時退出待機模式;
- 當外部輸出電平EXT_WU有效時退出待機模式;
- 當電源電壓降低時重置系統域(來自LDO_SYS的指示);
當電源電壓降低時重置系統域(由電路指示)
跟蹤);
– 當 BOR 訊號出現時,形成系統域重設。
讀取時,BOOT 暫存器傳回與模式對應的值
在目前引導期間選擇。當外部重設(RST#引腳)模式時
根據BOOT引腳上的邏輯電平進行設定。萬一
對於上述事件軟體復位,暫存器將對應
重置前記錄的最後一個值。因此,錄製後會出現
減去上次啟動時模式對應的舊值。
啟動模式控制單元的暫存器如表 161 所示,欄位
暫存器如表 163 所示
表 161 – 啟動控制單元的暫存器
表 162 – 負載控制暫存器
273
4 時鐘子系統
MIK32晶片具有靈活的時脈控制系統。
一般時序方案如圖 95 所示。
時脈控制電路的主要特點:
- 能夠選擇四個核心時脈訊號源之一
(內建32 MHz振盪器(HSI32M),外部振盪器(OSC32M),
內建32 kHz振盪器(LSI32K),外部時脈振盪器
(OSC32K);
- 能夠選擇四個時脈訊號源之一
看門狗定時器(內建振盪器 32 MHz (HSI32M),外部
32 MHz 振盪器 (OSC32M)、內建 32 kHz 振盪器 (LSI32K)、
外部時脈振盪器(OSC32K);
- 能夠停用週邊裝置的時脈訊號(對於
每個獨立於其他);
- 能夠停用記憶體時脈訊號
(RAM/EEPROM/SPIFI外部記憶體控制器);
- 能夠設定AHB匯流排分頻器;
- 能夠設定週邊匯流排分頻器APB_M/APB_P,
- 存在時脈訊號源監視器。
TCK
主振盪器 即時時脈 振盪器 內建振盪器 (Clock) RTC_CLK 32768Hz En_OSC32K En_OSC F_EXT (Clock) RTC_CLK 32768Hz En_OSC32K En_OSC F_EXT (最大 32MHz) SYS_CLK_SW WDT_CLK_SW WDT_CLK 分頻器 AHB_CLK CLRC_DIV WDT_CLK_SW AHB_CLK TCB RAM EEPROM (mem & cntrl) SPIFI DMA 控制器 加密加速器 CRC32 分頻器 APB_M_CLK APB_M_DIV En_ahb[2] En_ahb[1] En_ahb[3] En_ahb[5] En_ahb[6] En_ahb7] En_ahb[3] En_ahb[5] En_ahb[6] PM_ahb. En_apb_m[1] En_apb_m[2] En_apb_m[3] En_apb_m[4] APB_M_CLK En_apb_m[5] OTP 電源監視器 Timer0_32 RTC En_apb_m[6] En_apb_m[7] En_apb_m[7] P En_apb_p[0] WDT Timer16_0 Timer16_1 Timer16_2 Timer32_1 Timer32_2 SPI0 SPI1 I2C0 I2C1 En_apb_p[5:3] En_apb_p[7:6] En_apb_p[apb_p[5:3] En_apb_p[7:6] En_apb_p[ En_apb_p[15] AHB_CLK RTC_CLK 內建振盪器32MHz RC_pd F_INT (最大 32MHz) En_apb_p[16] UART0 UART1 En_apb_p[2:1] GPI0_0 GPIO_1IO_2 En_apb_p[
主振盪器
RC_pd
內建振盪器(時脈) RTC_CLK 32768Hz En_OSC32K 實時時鐘
274
圖95晶片時脈電路
275
選擇時鐘源、設定分頻器、控制
HSI32M和OSC32M使用PowerManager和WakeUp模組的暫存器。對於
實時時鐘控制和LSI32K和OSC32K控制
使用喚醒模組暫存器。
上電和外部復位時:
- 系統時鐘的優先來源是外部
32 MHz 振盪器 (OSC32M);
- 允許自動切換到另一個時鐘來源
系統;
- 匯流排分頻器AHB、APB_M、APB_P的值等於0,即指定匯流排
在振盪器頻率下工作;
- 核心時脈、TCB 模組、RAM 模組、EEPROM、SPIFI、PowerManager、
喚醒,I/O 連線埠模組啟用,其餘時鐘計時
裝置已關閉;
- 看門狗定時器時鐘由內建振盪器執行
32兆赫;
- 包括外部振盪器 OSC32K 和 OSC32M,
- 包括內建產生器 HSI32M 和 LSI32K。
為了調整內建振盪器 HSI32M,使用校正
有效值從 0 到 255 的係數。 電源管理 OSC32M,
HSI32M和HSI32M的校準是透過區塊CLOCKS_SYS暫存器來進行的
醒來。
為了調整內建振盪器LSI32K,使用校正
有效值從 0 到 15 的係數。 電源管理 OSC32K,
LSI32M 和 LSI32M 的校準是透過喚醒模組的 CLOCKS_BU 暫存器進行的。
WU模組時脈控制暫存器欄位說明
表 163 中列出了用於控制的 PM 模組暫存器欄位的描述
表 166 列出了時鐘。
名稱
偏移量
初始值
目的
訪問
時鐘_BU
0x10
0x200
電池域時脈控制暫存器(表 180)
RW
時鐘系統
0x14
0x200
系統域時脈控制暫存器(表181)
RW
名稱
排名
初始值
目的
訪問
保留
31:15
保留
OSC32K_SM
14
0x0
高功耗模式,OSC32K 的有效電平為「0」。 用於發電機更快、更穩定的啟動,提高極端工況下發電的穩定性。啟動後,可以將該值設為“1”。
RW
RTC_CLK_MUX
11:10
0x0
優先即時時鐘時鐘來源選擇:0x0——自動選擇。 如果兩個32kHz來源都可用,則選擇內部LSI32K;0x1——內部LSI32K;0x2 – 外部振盪器 OSC32K
RW
ADJ_LSI32K
9:6
0x80
校正係數 LSI32K
RW
保留
5:2
保留
LSI32K_EN
1
0x0
啟用/停用 LSI32K 0 – 啟用; 1 – 關閉
RW
276
表 163—WU 模組提供時脈的暫存器
表 164 - 電池域時脈控制暫存器 CLOCKS_BU
名稱
排名
初始值
目的
訪問
OSC32K_EN
0
0x0
啟用/停用 32 KHz 外部振盪器 0 – 啟用; 1 – 關閉
RW
名稱
排名
初始值
目的
訪問
保留
31:12
保留
FORCE_32K_CLK
11:10
0x0
強制切換到頻率監視器 0b00 和 0b11 的參考來源 – 自動選擇;0b01—強制選擇LSI32K;0b10 – OSC32K 被強制選擇。
RW
ADJ_HSI32M
9:2
0x80
修正係數 HSI32M
RW
HSI32M_EN
1
0x0
啟用/停用 HSI32M 0 – 啟用; 1 – 關閉
RW
OSC32M_EN
0
0x0
啟用/停用 32 MHz 外部振盪器 0 – 啟用; 1 – 關閉
RW
第277章
表 165 - 系統域時脈控制暫存器 CLOCKS_SYS
名稱
偏移量
初始值
目的
訪問
DIV_AHB
0x00
0x00
設定 AHB 匯流排分頻器值。 AHB 匯流排頻率 (FAHB) 的計算公式為 FSYS/( DIV_AHB+1)
RW
DIV_APB_M
0x04
0x00
設定 APB_M 匯流排分頻器的值。 APB_M 匯流排頻率 (FAPM_M) 的計算公式為 FAPB/( Div_APM_M+1)
RW
DIV_APB_P
0x08
0x00
設定 APB_P 匯流排分頻器的值。 APB_P 匯流排頻率 (FAPM_P) 的計算公式為 FAPB/( Div_APM_P+1)
RW
時鐘_AHB_設定
0x0C
0х1F
用於在 AHB 匯流排上啟用裝置時脈的暫存器。每位對應一個裝置: 0——Core;1 – EEPROM; 2 – 記憶體;3 – SPIFI;4 – TCB;5 – DMA;6 – 密碼學加速器;7 – CRC32
RW1S
CLK_AHB_CLEAR
0x10
0x00
透過 AHB 匯流排上的時脈裝置關閉暫存器。 每一位對應一個裝置,類似CLK_AHB_SET
RW1C
278
表 166 – PM 模組時脈控制暫存器
名稱
偏移量
初始值
目的
訪問
CLK_APB_M_SET
0x14
0x89
透過 APB_M 匯流排上的時脈裝置啟用暫存器。每位對應一個裝置: 0——電源管理單元(PM——Power Monitor);1——中斷控制器;2 – 定時器 32_0;3——輸出控制器;4 – 匯流排看門狗定時器 5 – OTP; 6 – 系統網域功率監視器 7 – 電池域 WU 單元 8 – 電池域 RTC
RW1S
CLK_APB_M_CLEAR
0x18
0x00
透過 APB_M 匯流排上的時脈裝置註冊關閉。每一位對應一個裝置,類似CLK_APB_M_SET
RW1C
第279章
名稱
偏移量
初始值
目的
訪問
CLK_APB_P_SET
0x1C
0x00
透過 APB_P 匯流排上的時脈裝置啟用暫存器。每一位對應一個裝置:0-看門狗定時器; 1 – UART_0; 2 – UART_1;3 – 定時器16_0;4 – 定時器16_1;5 – 定時器16_2; 6 – 定時器32_1; 7 – 定時器定時器; 11 – I2C_1; 12 – GPIO_0; 13 – GPIO_1;14 – GPIO_2; 15 – 類比區塊暫存器; 16 – GPIO中斷產生電路
RW1S
CLK_APB_P_CLEAR
0x20
0x00
透過 APB_P 匯流排上的時脈裝置關閉暫存器。每一位對應一個裝置,類似CLK_APB_P_SET
RW1C
AHB_MUX
0x24
0x00
配置系統時鐘來源(表172)
RW
WDT_CLK_MUX
0x28
0x00
看門狗定時器時鐘來源選擇:0——外部OSC32M;1 – 內部HSI32M;2 – 外部 OSC32K;3 – 內部LSI32K;
RW
280
第281章
訊號頻率使用公式 (15–17) 計算:
FAHB = FSOURCE/(DIV_AHB + 1), (15)
FAPB_M = FAHB/(DIV_APB_M + 1), (16)
FAPB_P = FAHB/(DIV_APB_P + 1)。 (17)
內建 32 MHz 和 32 kHz 振盪器
線性發生器用於產生精確的定時脈衝
增加電壓和比較器將 GLIN 輸出訊號與
支援潛力。一對這樣的比較器交替重設和
設定產生輸出脈衝訊號的 rs 觸發器(圖 96)。
比較器的參考電位由 DAC 提供,讓您調整
由於技術過程的變化而出現的位移。
圖 96 – 振盪器電路
振盪器電路由線性增加電壓產生器組成,
具有一對輸出,訊號在被選為輸入的輸出處生成
相位訊號 比較器連線到每個 GLIN 輸出,它們
產生用於觸發的 R 和 S 訊號。 RS觸發器的輸出作為相位訊號,且
還有輸出時脈訊號。比較器的參考電位由
DAC,讓您調整由於技術流程的變化而出現的那些
偏移量。
GLIN 電路有兩個交替充電的匹配電容
一個參考來源。多晶矽電容 1-多晶矽電容
第282章
2 cp1p2,其電容不依賴極板電壓和溫度。分散
電容器(從負 11% 到正 9%)。根據公式,生長時間T=VC/I,所以
因此,電容器中的偏移可以透過參考電位來補償。
電流源的靜態偏移量約為 10%,
也可以透過參考電位進行補償。
比較器由差分輸入級組成,電流進入
由通用匹配電流源設定,這減少了溫度對
轉換延遲。轉換時間和輸入偏移是靜態的
也可以透過發電機參考電位來補償誤差。
參考電位由 8 位元 DAC 提供,可在範圍內進行程式設計
從 1.24 至 0.75 V,允許頻率調整 ±25%。
石英諧振器的負載選擇 10-30 pF,取決於
諧振器的負載電容:
С1 = 𝐶2 = 2(𝐶𝐿 − (𝐶𝑘+ 𝐶𝑚)) (18)
其中 С𝐿 是所用石英諧振器的負載電容;
𝐶𝑘 – XI 和 XO 航站樓的總容量;
C𝑚 是印刷電路板上導體的總電容。
在大多數情況下,對於初步評估,您可以採取金額
𝐶𝑘 + 𝐶𝑚 = (3. .7) pF。建議使用石英諧振器
負載電容𝐶𝐿 = (10. .15) pF。
如果沒有外部晶振,XI 引腳應接地。
可以使用外部振盪器來代替諧振器。為此
振盪器 OUT 接腳連線到 OSC32K_XI 或 OSC32M_XI 接腳
微控制器。使用發電機時 OSC32K_XO 和 OSC32M_XO 的輸出
可以保持未連線狀態。
用於連線頻率高達 32 MHz 的外部石英諧振器的引腳
此振盪器建立在皮爾斯電路上(圖 97),並確保在
頻率範圍 1-32 MHz。
第283章
圖 97 – 皮爾士振盪器
CMOS振盪器電路放置在IO單元中。它包括一個反相
放大器、為放大器供電的參考電位源、反向電阻
通訊 500 kOhm RO0、ESD 焊盤保護、轉換驅動器
諧波發生器訊號轉換為脈衝輸出。
用於連線外部石英諧振器 32 kHz 的輸出
此振盪器是建立在皮爾斯電路之上的。 CMOS振盪電路置於IO中
細胞。它包括一個反相放大器、一個參考電位源 I0
放大器電源、反饋電阻、ESD焊盤保護、
比較器,用於將發電機的諧波訊號轉換為輸出訊號
脈衝,用於將訊號電平降低至核心電平並進行校正的驅動器
訊號佔空比。
系統域頻率監控器
系統域時脈監控區塊旨在
在缺失或遺失的情況下產生中斷/狀態訊號
輸入時脈訊號。
功能特點:
- 選擇輸入時脈訊號clk_32k之一作為啟動模式的參考訊號
移除復位後,具有後續切換的可能性;
- 獨立偵測輸入時脈訊號的存在/遺失;
訊號名稱
旗幟
標誌改變前參考頻率的完整時脈週期數
clk_32k_int
c_32k_ext_det
16
clk_32k_ext
с_32k_int_det
16
時鐘_32M_分機
c_32M_ext_det
4
clk_32M_int
с_32M_int_det
4
第284章
– 在參考訊號遺失的情況下自動切換至
緊急模式下備用並繼續偵測。
該模組可以工作在三種模式:啟動、動態工作和
緊急狀況
啟動方式
啟動模式下,透過計算確定參考頻率源32k
給定數量的脈衝,優先考慮內部脈衝。第一
已計數的計數器允許其時鐘來源變為
顯示器的互斥參考,對應的輸入訊號
連線到 clk_32k_ref 模組的輸出。
在 sel_refclk 輸入處設定值以更改參考之前
時脈訊號,必須確保有對應的時脈訊號,
透過檢查 c_32k_ext_det 和 c_32k_int_det 標誌的狀態。否則電路
會切換,並且clk_32k_ref輸出不會輸出時脈訊號,從此狀態
該區塊只能透過重置退出。
動態運作模式
一旦選擇了參考時鐘,動態電路就會啟動
檢測。 *_det 標誌在計數時將被設定為活動等級“1”
輸入時脈訊號的一定數量的時脈週期。如果有的話
在相同數量的時脈週期後,對應的 *_det 標誌將從訊號中消失。
每個時脈訊號所需的時脈週期數如表 167 所示。
自動檢測結果可用於選擇
時脈訊號和中斷生成。
表 167 – 頻率偵測的時脈週期數
第285章
開始偵測 clk_32k 輸入處的訊號並操作對應的
*_det 標誌需要提供兩個時脈訊號。
圖 98 顯示了啟動模式下區塊的操作開始,當第一個
clk_32k_ext 訊號出現,在這種情況下它被選為參考訊號。如下圖所示
其他輸入的 det 標誌的操作。在產生 85 ms 和 105 ms 的時間點
將參考訊號從外部 clk_32k_ext 強制切換到內部
clk_32k_int 反之亦然。
圖 98 – 啟動和動態模式
緊急模式
當輸入訊號消失時,會轉變為緊急模式,
選為參考。轉換本身伴隨著警報標誌的設定。同時
模組的備份部分繼續執行,讓您可以監控訊號的存在
clk_32M_*。 clk_32k_ref 輸出連線到備用訊號(如果可用)。
圖 99 顯示了 sel_refclk 輸入處的各種組合的設定。乙
時間點240 ms,選擇的clk_32k_ext訊號消失
參考(c_32k_ext_there 標誌指示這一點),並且模組進入緊急模式
工作,如警報標誌所報告。參考訊號clk_32k_ref轉到
連線到備份輸入 clk_32k_int。
圖100首先顯示了退出緊急模式時
clk_32k_ext。 clk_32k_ref 訊號回復為輸出主 clk_32k_ext 訊號。
然後參考訊號clk_32k_ext消失並進入緊急模式。
模式。緊急模式下,sel_refclk 輸入與模組斷開,不影響模組
工作。下面展示了緊急模式下flags 32M_*_det的發出和消失
備援訊號,導致模組的操作完全停止。
名稱
偏移量
排名
目的
訪問
AHB_CLK_MUX
0x24
1:0
系統時鐘來源選擇:0——外部OSC32M;1 – 內部HSI32M;2 – 外部 OSC32K;3 – 內部LSI32K
RW
FORCE_MUX
0x24
2
禁止在時鐘遺失時強制切換所選時鐘來源
RW
第286章
僅當兩個訊號均出現時才能恢復操作
clk_32k 或在模組完全重設後。
圖 99 – 動態與緊急模式
圖 100 – 緊急模式
系統頻率監視器透過以下方式控制
電源控制和時脈區塊暫存器(表 168)和區塊暫存器
喚醒(表 190)
表 168 – 用於控制頻率監視器的電源和時脈控制單元的暫存器
名稱
偏移量
排名
目的
訪問
頻率遮罩
0x34
4:0
頻率監控設定:FREQ_MASK[0]-LSI32K頻率遺失時的中斷遮蔽;FREQ_MASK[1] – 外部振盪器頻率消失時的中斷遮蔽 32 kHz – OSC32K;FREQ_MASK[2] – HSI32M 頻率遺失時的中斷遮蔽; FREQ_MASK[4] – 當 32 MHz 的外部和內部頻率消失時,允許將 AHB 匯流排分頻器設定為 0 – HSI32M 和 OSC32M
RW
頻率狀態
0x38
3:0
頻率監控狀態(0 – 未偵測到時脈來源,1 – 偵測到時脈來源) FREQ_STATUS[0] – 內部 LSI32K;FREQ_STATUS[1] – 外部 OSC32K;FREQ_STATUS[2] – 內部 HSI32M;FREQ_STATUS[3] – 外部 OSC32M;
R.O.
名稱
排名
初始值
目的
訪問
時鐘系統
11:10
0x200
強制切換到參考來源:0b00 和 0b11 – 自動選擇;0b01——強制選擇LSI32K;0b10 – OSC32K 強制選擇。
RW
第287章
表 169 – 喚醒區塊暫存器
288
5 電源子系統
MIK32晶片實現獨立的電源管理和
對整個系統和周邊裝置進行計時。
微控制器有兩個電源域:
電池域包含一個即時時脈、一組暫存器
主電源關閉時資料儲存,控制單元
模式(喚醒模組)、LSI32K、OSC32K;
- 包含開關矩陣AHB、控制器的系統域
直接存取、中斷控制器、SCR1 核心、內部
RAM、EEPROM 和外部記憶體控制器 SPIFI、
週邊裝置、密碼加速器、運算單元
校驗和、模擬區塊控制暫存器、HSI32M、
OSC32M。
微電路電源域中的區塊分佈如圖所示
圖 101。
「主動」模式意味著具有最大效能的模式:
最大系統頻率、最小分頻器、所有時鐘
所涉及的外圍單元已啟用。
「低消耗」模式包括減少
透過降低運轉頻率,暫時降低效能和消耗
停用未使用的周邊裝置的時脈。
「主動」模式和「低消耗」模式是相當傳統的,
因為它們在安裝時選擇的時鐘來源不同
分音器,禁用某些裝置的時鐘,這
由具體任務決定。與其他模式的主要區別是
核心的功能。
「休眠」模式涉及自動關閉核心頻率,
一些記憶體模組。透過寫入 SLEEP_MODE 暫存器來執行轉換
電源管理器模組。錄製時,核心時鐘被禁用,並且取決於
寫入值後,以下模組的時鐘被停用:
– SLEEP_MODE[0] = 1 – 停用核心時脈;
第289章
– SLEEP_MODE[1] = 1 – 停用 EEPROM 時脈;
– SLEEP_MODE[2] = 1 – 停用 RAM 時脈;
– SLEEP_MODE[3] = 1 – 停用 SPIFI 控制器時脈。
透過正在使用的周邊裝置的中斷來退出該模式。對於
應在進入睡眠模式之前和之後透過中斷正確退出睡眠模式
承受多個等待週期:
asm(“nop”);
PM->睡眠=0b1111; // 進入睡眠模式
asm(“nop”);
在「活動」、「睡眠」、「低功耗」模式下,可以
軟體降低 APB_M、APB_P 匯流排頻率以及時脈禁用
獨立的外圍單元。
在「停止」模式下,所有周邊的時鐘會自動關閉。
不包括電池域單元。轉換是透過寫入暫存器來執行的
喚醒模組的停止。 透過 EXT_WU 引腳上的事件退出該模式或
RTC 鬧鐘。為了正確退出鬧鐘模式,RTC 需要
符合附加條件:(AHB_CLK) > (2 * RTC_CLK)。
在除待機以外的所有模式下,所有域均已通電。處於模式中
待機期間僅電池域保持開啟。系統 LDO 被停用。
透過寫入喚醒模組的 SYS_POWEROFF 暫存器來執行轉換。退出於
透過 EXT_WU 接腳上的事件、警報或重設來控制模式。
電源管理由 WakeUP、PowerManager 模組和
由PowerManager模組進行時鐘控制。
名稱 AVCC,類比子系統電源電壓 (3.3V-5V) VCC,主電源電壓 (3.3V-5V) VCC_BAT,外部電池域電源電壓 (3.3V-5V) VCC_BU,電池域電源電壓 (3.3V-5V) VDD,數位部分電源電壓 (1.65V) VDD_BU1555555555555555553. (2.97...3.63) V (2.5...3.63) V (1.8 V) (1.8 V) VBAT,外部電池域電源 (2.5...3.63) V
AVCC
VCC_BU,電池域供電電壓
(3.3V-5V) (2.5…3.63)
電池域 電源開關 LDO 系統域 OTP 系統域 RAM 時脈 32MHz RC_32Mhz 類比域 電池域 LDO_SYS_en 時脈 32KHz VCC VCC_BAT LDO_SYS_ok 接腳控制器 POR + BOR + LDO_BU + 非校準 ION PowerSwitch_ok 引腳控制器 POR + BOR + LDO_BU + 非校準 ION PowerSwitch_ok ADC 監控溫度OSC_32Mhz En_OSC32M En_OSC32M En_RC32M RC_32Khz OSC_32Khz En_OSC32K En_RC32K 校準電流和電壓源,電池域重設 Bor Vref 溫度監視器。電壓監視器 VCC VCC SENS 電壓監視器 AVCC Vref_BU PowerSwitch_Control LDO_SYS_en PowerSwitch_Control AHB_MATRIX DMA CPU Timer32/Timer16 GPIO I2C/SPI/UART SPIFI EEPROM CRC32 CRIPTO RAM AHB_MATRIX HSI32M WDT 單元/單元 I/O 單元 VCC_BU VDD_BU VDD VBAT
類比域 DAC ADC 監控溫度。校準電流和電壓源、溫度監視器。 AVCC 電壓監視器
En_RC32M
En_OSC32M
VCC VCC_BAT VBAT
VCC_BAT VBAT
POR + BOR + LDO_BU + 非校正 ION
系統域LDO
LDO_SYS_正常
LSI32K
啟動管理器
En_OSC32M
En_RC32M
中央處理器
DMA
AHB_MATRIX
一次性TP
記憶體
EEPROM
SPIFI
I2C/SPI/UART
定時器32/定時器16
通用輸入輸出介面
時脈32MHz
看門狗定時器
恆指32M
AHB_MATRIX
CRC32 加密貨幣
記憶體
模擬分量控制單元
午安
引腳控制器
290
圖 101 – 電源域
模式
CPU狀態
記憶體狀態
週邊狀態
系統和電池域狀態
計時
進入模式
退出模式
活躍
處理器運作正常。
RAM、EEPROM、SPIFI 在正常模式下執行
外圍工作正常。
系統網域啟用、電池域啟用
來自頻率高達 32 MHz 的外部振盪器 來自頻率高達 32 MHz 的內建振盪器
復位/上電後的模式
-
減少能源消耗
處理器運作正常。
RAM、EEPROM、SPIFI 在正常模式下運作。 建議透過寫入暫存器來停用未使用的記憶體模組的時脈:PM.CLK_AHB_CLEAR
建議透過寫入下列暫存器以程式設計方式(由使用者)停用未使用的周邊模組的時脈: PM.CLK_AHB_CLEAR PM.CLK_APB_M_CLEAR PM.CLK_APB_P_CLEAR
系統網域啟用、電池域啟用
來自外部時脈振盪器 來自內建時脈振盪器 來自具有系統匯流排分頻器的高達 32 MHz 的外部振盪器
以程式設計方式,透過切換到所需的時鐘來源或設定所需的分頻器
以程式設計方式,透過切換到所需的時鐘來源或設定所需的分頻器
睡覺
核心處於休眠狀態
寫入 PM.SLEEP_MODE 時可以停用 RAM、EEPROM、SPIFI 時鐘
建議透過寫入下列暫存器以程式設計方式(由使用者)停用未使用的周邊模組的時脈: PM.CLK_AHB_CLEAR PM.CLK_APB_M_CLEAR PM.CLK_APB_P_CLEAR
系統網域啟用、電池域啟用
來自頻率高達 32 MHz 的外部振盪器 來自頻率高達 32 MHz 的內建振盪器
透過寫入 PM.SLEEP_MODE 暫存器
透過中斷
停止
核心處於休眠狀態
RAM、EEPROM、SPIFI 時脈禁用
週邊時鐘關閉
系統域已啟用,電池域已啟用。
系統時鐘已停用
寫入 WAKEUP.STOP 暫存器
透過 RTC/引腳 EXT_WU
第291章
表 170 – 微控制器的基本操作模式
模式
CPU狀態
記憶體狀態
週邊狀態
系統和電池域狀態
計時
進入模式
退出模式
等待
關閉電源
關閉電源
關閉電源
系統域停用,電池域啟用
系統時鐘已停用
寫入 WAKEUP 暫存器。 系統電源關閉
透過重設/RTC/引腳 EXT_WU
第292章
名稱
偏移量
初始值
目的
訪問
DIV_AHB
0x00
0x00
設定 AHB 匯流排分頻器值。 AHB 匯流排頻率 (FAHB) 的計算公式為 FSYS/( DIV_AHB+1)
RW
DIV_APB_M
0x04
0x00
設定 APB_M 匯流排分頻器的值。 APB_M 匯流排頻率 (FAPM_M) 的計算公式為 FAPB/( Div_APM_M+1)
RW
DIV_APB_P
0x08
0x00
設定 APB_P 匯流排分頻器的值。 APB_P 匯流排頻率 (FAPM_P) 的計算公式為 FAPB/( Div_APM_P+1)
RW
時鐘_AHB_設定
0x0C
0х1F
用於在 AHB 匯流排上啟用裝置時脈的暫存器。每位對應一個裝置: 0——Core;1 – EEPROM; 2 – 記憶體;3 – SPIFI;4 – TCB;5 – DMA;6 – 密碼學加速器;7 – CRC32
RW1S
CLK_AHB_CLEAR
0x10
0x00
透過 AHB 匯流排上的時脈裝置關閉暫存器。 每一位對應一個裝置,類似CLK_AHB_SET
RW1C
293
電源和時脈控制單元(POWER MANAGER)
電源和網域時鐘控制單元(PowerManager)提供
時脈訊號的控制(設定匯流排的分頻器係數,
禁用單一裝置的時脈)。
區塊暫存器如表 171 所示。
表 171 – 電源和時脈控制單元的暫存器
名稱
偏移量
初始值
目的
訪問
CLK_APB_M_SET
0x14
0x89
透過 APB_M 匯流排上的時脈裝置啟用暫存器。每位對應一個裝置: 0——電源管理單元(PM——Power Monitor);1——中斷控制器;2 – 定時器 32_0;3——輸出控制器;4 – 匯流排看門狗定時器 5 – OTP; 6 – 系統網域功率監視器 7 – 電池域 WU 單元 8 – 電池域 RTC
RW1S
CLK_APB_M_CLEAR
0x18
0x00
透過 APB_M 匯流排上的時脈裝置註冊關閉。每一位對應一個裝置,類似CLK_APB_M_SET
RW1C
294
名稱
偏移量
初始值
目的
訪問
CLK_APB_P_SET
0x1C
0x00
透過 APB_P 匯流排上的時脈裝置啟用暫存器。每一位對應一個裝置:0-看門狗定時器; 1 – UART_0; 2 – UART_1;3 – 定時器16_0;4 – 定時器16_1;5 – 定時器16_2; 6 – 定時器32_1; 7 – 定時器定時器; 11 – I2C_1; 12 – GPIO_0; 13 – GPIO_1;14 – GPIO_2; 15 – 類比區塊暫存器; 16 – GPIO中斷產生電路
RW1S
CLK_APB_P_CLEAR
0x20
0x00
透過 APB_P 匯流排上的時脈裝置關閉暫存器。每一位對應一個裝置,類似CLK_APB_P_SET
RW1C
AHB_MUX
0x24
0x00
配置系統時鐘來源(表172)
RW
WDT_CLK_MUX
0x28
0x00
看門狗定時器時鐘來源選擇:0——外部OSC32M;1 – 內部HSI32M;2 – 外部 OSC32K;3 – 內部LSI32K;
RW
295
名稱
偏移量
初始值
目的
訪問
CPU_RTC_CLK_MUX
0x2C
0x00
選擇核心0內的RTC時鐘來源-外部OSC32K;1 – 內部LSI32K;
RW
定時器_CFG
0x30
0x00
選擇定時器的時鐘來源(表 173)
RW
頻率遮罩
0x34
0x10
頻率監視器中斷設定(表 174)
RW
頻率狀態
0x38
0x00
頻率監視器狀態(表 175)
RW
睡眠模式
0x3C
0x00
透過寫入該暫存器來轉換到睡眠模式。 寫入時,核心時脈被禁用。根據寫入的值,以下模組的時脈已停用: SLEEP_MODE [0] = 1 – 停用核心時脈;SLEEP_MODE [1] = 1 – 停用 EEPROM 時脈; SLEEP_MODE [2] = 1 – 停用 RAM 時脈; SLEEP_MODE [3] = 1 – 時脈 SPIFI 控制器。
RW
296
名稱
排名
初始值
目的
訪問
FORCE_MUX
2
0x00
禁止在時鐘遺失時強制切換所選時鐘來源 0 – 允許自動頻率變更; 1 – 禁止自動頻率改變;
RW
AHB_Clk 復用器
1:0
0x00
系統時鐘來源:0——外部OSC32M;1 – 內部HSI32M;2 – 外部 OSC32K;3 – 內部LSI32K
RW
名稱
排名
初始值
目的
訪問
MUX_TIM16_2
17:15
0x00
選擇 Timer16_3 的時脈訊號。值類似於 MUX_TIM16_0
RW
MUX_TIM16_1
14:12
0x00
選擇 Timer16_2 的時脈訊號。值類似於 MUX_TIM16_0
RW
MUX_TIM16_0
11:9
0x00
為 Timer16_0 選擇時脈訊號: 0x0 – 系統頻率 (sys_clk);0x1 – AHB 匯流排頻率 (hclk);0x2—外部振盪器OSC32M 的頻率;0x3—內建振盪器HSI32M的頻率;0x4— 0x4— 32545Kx325Kx325Kx4——的外部振盪器;
RW
保留
8
保留
第297章
表 172 – 用於設定 AHB_MUX 系統時脈來源的暫存器
表 173 – TIMER_CFG 定時器的時鐘設定暫存器
名稱
排名
初始值
目的
訪問
MUX_TIM32_2_TIM2
7
0x00
選擇輸入TIM2 Timer32_2的非同步時脈訊號:0 – OSC32K;1 – LSI32K;
RW
MUX_TIM32_2_TIM1
6
0x00
選擇輸入TIM1 Timer32_2的同步時脈訊號:0 – sys_clk;1——hclk;
RW
保留
5
保留
MUX_TIM32_1_TIM2
4
0x00
選擇輸入TIM2 Timer32_1的非同步時脈訊號:0 – OSC32K; 1 – LSI32K;
RW
MUX_TIM32_1_TIM1
3
0x00
選擇輸入TIM1 Timer32_1的同步時脈訊號:0 – sys_clk;1——hclk;
RW
保留
2
保留
MUX_TIM32_0_TIM2
1
0x00
選擇輸入TIM2 Timer32_0的非同步時脈訊號:0 – OSC32K; 1 – LSI32K;
RW
MUX_TIM32_0_TIM1
0
0x00
選擇輸入TIM1的同步時脈訊號 Timer32_0:0 – sys_clk;1——hclk;
RW
名稱
排名
初始值
目的
訪問
MASK_OSC32M
3
0x00
當外部振盪器頻率丟失時中斷使能 32 MHz
RW
MASK_HSI32M
2
0x00
頻率遺失時啟用中斷 HSI32M
RW
298
表 174 – 用於設定頻率監視器中斷遮蔽的暫存器 FREQ_MASK
名稱
排名
初始值
目的
訪問
MASK_OSC32K
1
0x00
外部振盪器頻率消失時的中斷解析度 32 kHz
RW
MASK_LSI32K
0
0x00
頻率遺失時啟用中斷 LSI32K
RW
名稱
排名
初始值
目的
訪問
MASK_OSC32M
3
0x00
外部振盪器頻率狀態 32 MHz
R.O.
MASK_HSI32M
2
0x00
HSI32M頻率狀態
R.O.
MASK_OSC32K
1
0x00
外部振盪器頻率狀態 32 kHz
R.O.
MASK_LSI32K
0
0x00
LSI32K頻率狀態
R.O.
299
表 175 – 頻率監視器狀態暫存器 FREQ_STATUS
名稱
偏移量
初始值
目的
訪問
系統遮罩
0x00
0x10
用於啟用和重設系統域的事件遮罩(表 177)
RW
系統級
0x04
0x03
系統域啟用和重設的活動事件等級(表 178)
RW
系統電源關閉
0x08
0x00
寫入暫存器“1”會停用系統域電源。
RW1S
電源開關
0x0C
0x00
電源監控電路控制和狀態暫存器(表 179)
RW
時鐘_BU
0x10
0x200
電池域時脈控制暫存器(表 180)
RW
時鐘系統
0x14
0x200
系統域時脈控制暫存器(表181)
RW
實時時鐘控制
0x18
0x00
重置內部RTC計數器(當前時、分鐘、秒)、內部警報標誌flagalarm_pad、警報標誌ALRM。 寫“0”時發生 RTC 復位
RW
停止
0х1С
0x00
切換到“停止”模式。 透過寫入“1”執行停用系統匯流排時脈。
W1S
300
喚醒區塊
喚醒區塊提供系統網域電源管理,
時脈訊號源。喚醒模組暫存器如表 176 所示。
表 176 – 喚醒區塊暫存器
名稱
排名
初始值
目的
訪問
BU_RST_BOR
5
0x01
當BOR訊號出現時禁止形成電池域復位
RW
SYS_RST_BOR
4
0x01
當 BOR 訊號出現時禁止產生系統域重設
RW
SYS_RST_PS
3
0x00
電源降低時禁止形成系統域重設(追蹤電路指示)
RW
SYS_RST_LDO
2
0x00
掉電時禁止形成系統域重設(LDO_SYS指示)
RW
SYS_UP_WU
1
0x00
當外部引腳電平 EXT_WU 有效時,允許系統域開啟(從停止或待機模式)
RW
系統_UP_RTC
0
0x00
允許在警報響起時開啟系統域(從停止或待機模式)
RW
名稱
排名
初始值
目的
訪問
LVL_WU
1
0x01
外部引腳有效電平 EXT_WU
RW
LVL_RTC
0
0x01
不承載功能負載。必須設定為 1 才能運作
RW
名稱
排名
初始值
目的
訪問
保留
31:3
保留
電池正常
2
0x0
備用(電池)電源標誌狀態
R.O.
301
表 177 – 用於啟用和重置系統域 SYS_MASK 的事件遮蔽暫存器
表 178 – 用於啟用和重設系統域 SYS_LEVEL 的事件等級暫存器
表 179 – 功率監聽電路控制與狀態暫存器 POWER_SWITCH
名稱
排名
初始值
目的
訪問
控制
1
0x0
強制切換期間的來源選擇(En =“1”) 0 – VCC 1 – VBAT
RW
CN
0
0x0
允許強制切換到其中一個電源
RW
名稱
排名
初始值
目的
訪問
保留
31:15
保留
OSC32K_SM
14
0x0
高功耗模式,OSC32K 的有效電平為「0」。 用於發電機更快、更穩定的啟動,提高極端工況下發電的穩定性。啟動後,該值可以設定為1。
RW
RTC_CLK_MUX
11:10
0x0
優先即時時鐘時鐘來源選擇:0x0——自動選擇。 如果兩個32kHz來源都可用,則選擇內部LSI32K;0x1——內部LSI32K;0x2 – 外部振盪器 OSC32K
RW
ADJ_LSI32K
9:6
0x80
校正係數 LSI32K
RW
保留
5:2
保留
LSI32K_EN
1
0x0
啟用/停用 LSI32K 0 – 啟用; 1 – 關閉
RW
第302章
表 180 - 電池域時脈控制暫存器 CLOCKS_BU
名稱
排名
初始值
目的
訪問
OSC32K_EN
0
0x0
啟用/停用 32 KHz 外部振盪器 0 – 啟用; 1 – 關閉
RW
名稱
排名
初始值
目的
訪問
保留
31:12
保留
FORCE_32K_CLK
11:10
0x0
強制切換到頻率監視器 0b00 和 0b11 的參考來源 – 自動選擇;0b01—強制選擇LSI32K;0b10 – OSC32K 被強制選擇。
RW
ADJ_HSI32M
9:2
0x80
修正係數 HSI32M
RW
HSI32M_EN
1
0x0
啟用/停用 HSI32M 0 – 啟用; 1 – 關閉
RW
OSC32M_EN
0
0x0
啟用/停用 32 MHz 外部振盪器 0 – 啟用; 1 – 關閉
RW
303
表 181 - 系統域時脈控制暫存器 CLOCKS_SYS
功率監控器
當電源上升或下降時,電源監視器會產生標誌
相對於給定的閾值。閾值可以是
程式設計範圍為標稱值的 ± (4 ÷ 12) %。安裝步驟
電源電壓監控閾值是監控範圍的 1/16。
設定閾值的精度為½步驟。功率監控電路工作在
程式碼 OVER_THRESH/UNDER_THRESH
等級 OUT_UNDER
OUT_OVER 級別
0b0000
3,168
3.432
0b0001
3.1504
3.4496
0b0010
3.1328
3.4672
0b0011
3.1152
3.4848
0b0100
3.0976
3.5024
304
寬電源電壓範圍 - 在一定溫度範圍內為 1.584 V 至 3.696 V
從 -45 oC 到 +125 oC。
參考電壓(內部或外部)被緩衝並
使用閾值電壓驅動器的電阻矩陣進行劃分。
解碼器輸出控制按鍵,選擇 16 個控制之一
每個範圍內的電壓分別。 測試範圍選擇方案
電源電壓選擇哪個電阻分壓器將決定
輸出電壓在受控電壓的上限和下限範圍內
營養。接下來,比較器比較矩陣除數的選定值
閾值電壓產生器與功率分配器的輸出值。 在
比較器的輸出端有一個針對持續時間小於 1 μs 的脈衝的濾波電路,
重設控制邏輯NRESETO/NRESETU。
當自檢模式開啟時,提供比較器的參考輸入
對應於 16 個功率監控閾值中的第八個的電壓
(對於上限和下限控制範圍)。選擇
OVER_THRESH 和 UNDER_THRESH 的對應值不僅允許
檢查比較器的操作,也評估其輸入處的偏移值。
監視器閾值使用以下公式計算:
OUT_OVER = vsup•1.04+vstep * OVER_THRESH ,
OUT_UNDER = vsup•0.96-vstep * UNDER_THRESH ,
其中 vstep-改變閾值的步長;
vsup – 電源電壓 VCC (3.3 V)。
表 182 列出了 3.3 V 電源電壓的計算值。
表 182 – 選擇功率監視器觸發值
程式碼 OVER_THRESH/UNDER_THRESH
等級 OUT_UNDER
OUT_OVER 級別
0b0101
3.08
3.52
0b0110
3.0624
3.5376
0b0111
3.0448
3.5552
名稱
偏移量
初始值
目的
訪問
PVD_DPF_VALUE
0x10
0x5DC
設定數位濾波器
RW
物理氣相沉積CFG
0x14
0x0
設定暫存器
RW
PVD_狀態
0x18
0x0
狀態暫存器
RО
注意 – 相對於模擬子系統控制單元起始位址(微控制器位址空間中的 0x00085000)的偏移。
名稱
偏移量
初始值
目的
訪問
DPF_VALUE
0x0
0x5DC
設定數位濾波器
RW
配置
0x04
0x0
設定暫存器
RW
狀態
0x08
0x0
狀態暫存器
RО
注意 – 相對於起始位址 PVD_CONTROL(微控制器位址空間中的 0x000051800)的偏移。
305
控制暫存器
區塊暫存器用於控制 AVCC 電壓監視器
模擬子系統的控制。監視控制暫存器的組成
AVCC 電壓如表 183 所示。
暫存器用於控制VCC電壓監視器
PVD_CONTROL。 VCC電壓監控控制暫存器的組成
列於表 184 中。
表 185 – 187 提供了監視器暫存器欄位的描述。
表 183 – AVCC 電壓監視器控制暫存器
表 184 – VCC 電壓監視器控制暫存器
名稱
排名
初始值
目的
訪問
保留
31:16
保留
柴油顆粒過濾器
7:0
220
確定濾波脈衝持續時間的係數(在系統頻率下)
RW
名稱
排名
初始值
目的
訪問
保留
31:13
保留
EN_VREFCLB
12
0x0
使用校準後的 ION 作為參考電壓源: 1 – 使用 ION; 0 – 不使用 ION。
RW
OVER_THRESH
11:8
0x0
監控上限
RW
低於閾值
7:4
0x0
降低監控閾值
RW
測試模式
3
0x0
切換到測試模式
RW
諾賽託
2
0x0
停用(重置)高閾值偵測。 1——正常運作;0——不進行檢測,電路處於重設狀態
RW
諾塞圖
1
0x0
禁用(重置)低閾值檢測。 1——正常運作;0——不進行檢測,電路處於重設狀態
RW
P.D.
0
0x1
顯示器電源控制: 1 – 顯示器關閉; 0 – 顯示器開啟
RW
306
表 185 – 電壓監視器 DPF_VALUE 暫存器
表 186 – 電壓監視器 CONFIG 暫存器
名稱
排名
初始值
目的
訪問
保留
31:4
保留
OVER_FLAG
3
0x0
考慮數位濾波的上閾值監控線的當前狀態
R.O.
UNDER_FLAG
2
0x0
考慮數位濾波的下閾值監控線的當前狀態
R.O.
OVER_VALUE
1
0x0
無數位濾波的高閾值監控線的當前狀態
R.O.
UNDER_VALUE
0
0x0
無數位濾波的低閾值監控線的當前狀態
R.O.
307
表 187 – 電壓監視器狀態暫存器
POR 和 BOR 訊號產生方案
產生 POR(上電重設)和 BOR(欠壓復位)訊號的方案
確保當 vcc 上電時晶片保持在重設狀態
當電源電壓上升到接通閾值時微電路
若電源電壓降至關斷閾值以下(訊號
POR),以及當 vcc 功率下降到某個水平以下時形成一個標誌
(BOR 訊號)。
當電源電壓VCC上升時,電路輸出重設訊號
POR(邏輯電平“0”有效)直到電壓在 VCC 上建立
高於 vpor 值。
值得注意的是,POR發生電路的porl訊號用於重設
電路的數位部分,由 VDD 匯流排供電。 VDD 電壓
由內建調節器形成。當您開啟外部電源時,可能會
當 VCC 電壓已經超過 vpor 電平時,會出現 porl 訊號
被重置為被動狀態(邏輯電平“1”),並且vdd電源為
數字部分仍然缺失。在這種情況下,數字部分不會被重置。
因此,porl訊號調節電路監控匯流排電壓電平
VCC 和 VDD 匯流排上的電壓位準。
如果 VCC 電源電壓值低於 vpdr 值,則該單元
輸出重設訊號,直到電源電壓再次升至 vpor 以上。
引數
名稱
分鐘。
型別。
最大限度。
測量單位
註解
POR 訊號轉換為活動狀態的電壓位準
副總裁
2.37
2.4
2.43
乙
考慮參考電壓源±1%的分佈
POR 訊號轉換為被動狀態的電壓位準
揮發性有機物
2.47
2.5
2.53
乙
BOR 訊號轉換為有效狀態的電壓位準
VBDR
2.62
2.65
2.68
乙
BOR 訊號轉換為被動狀態的電壓位準
電壓
2.72
2.75
2.78
乙
VDD 電源追蹤訊號轉換為有效狀態的電平
vpdr_vdd
1.18
1.2
1.22
乙
308
BOR 訊號發生電路的行為(有效電平為
邏輯「0」)類似於 POR 訊號調節電路的行為,但電平
驅動 vbor 和 vbdr 高於 POR 產生電路(請參閱表
1)。
圖 102 – POR 和 POR 操作的簡化圖
BOR(未顯示 VDD 匯流排上電壓的影響)。
表 188 – POR 和 BOR 訊號產生電路的基本電氣特性
VDD 電源追蹤訊號到被動狀態的轉換電平
vpor_vdd
1.23
1.25
1.27
乙
porh 輸出從“0”到“1”的電路操作延遲
TPORH01
35
68
115
奈秒
考慮到參考電壓源的±1%的範圍; 超過 100 mV 閾值和 1 pF 負載電容
輸出埠從“1”到“0”的電路操作延遲
TPORH10
135
234
第364章
奈秒
輸出範圍從“0”到“1”的電路操作延遲
特博爾01
35
68
115
奈秒
輸出範圍從“1”到“0”的電路操作延遲
特博爾01
135
234
第364章
奈秒
porl 輸出從「0」到「1」的電路操作延遲
tporl01
31
62
110
奈秒
porl 輸出從「1」到「0」的電路操作延遲
tporl10
161
273
第427章
奈秒
borl 輸出處的電路從「0」到「1」的操作延遲
特博爾01
30
61
106
奈秒
borl 輸出處的電路從「1」到「0」的操作延遲
特博爾10
160
270
第425章
奈秒
VCC電路的電流消耗
伊蘇普_vcc
15
23
40
微安
考慮參考電壓源±1%的分佈
VDD電路中的電流消耗
伊蘇普_vdd
-
-
< 1
納安
309
名稱
排名
初始值
目的
訪問
保留
31:3
保留
電池正常
2
0x0
備用(電池)電源標誌狀態
R.O.
310
電源追蹤和切換電路
用於監視和切換外部電源的電路(VoltageMonitor)
旨在監視主電源電壓的狀態,當
如有必要,切換至備用(電池)電源。
此電路的主要功能特點是:
- 監控主電源電壓的狀態,當
如有必要,請自動切換到備用(電池)
食物;
- 強制切換到其中一種電源的可能性;
- 監控備用(電池)電源和化成的狀態
相應的標誌。
外部電源監控和切換電路的操作演演算法,
下一個:
- 如果主電源下降到 (3.3 x 0.9 - 0.02) V 的水平,它就會開啟
比較主備電源電壓等級的模式
營養;
- 如果在比較模式下主電源電壓大於
低於備用電壓 20 mV,電路切換到
從備份源進行操作;
- 當主電源電壓再次超過電壓時
保留超過 20 mV,或將超過 (3.3 x 0.9 + 0.02) V,
電路將切換到主電源運作。
透過模組的POWER_SWITCH暫存器控制模組
喚醒(相對於喚醒基底位址的偏移量 0x0C)。欄位的目的
暫存器列於表189中。
表 189 – 喚醒模組的 POWER_SWITCH 暫存器
名稱
排名
初始值
目的
訪問
控制
1
0x0
強制切換期間的來源選擇(En =“1”) 0 – VCC 1 – VBAT
RW
CN
0
0x0
允許強制切換到其中一個電源
RW
引數、計量單位
名稱
引數值
分鐘。
型別。
最大限度。
VCC和VBAT比較電路開啟時的VCC電平,V
Ucc_cmp_on
2.945
2.95
2.955
VCC和VBAT比較電路關閉時的VCC電平,V
Ucc_cmp_off
2.985
2.99
2,995
切換到備份時的相對 VCC 電平
vcc2vbat
VBAT – 25mv
VBAT – 20mV
VBAT – 15mV
切換回主電源時的相對 VCC 電平
vbat2vcc
VBAT+15mV
VBAT+20mV
VBAT+25mV
關於電池狀態 V 的訊號發生電路從「1」到「0」的切換電平
VBGO10
2.78
2.8
2.82
關於電池狀態的訊號發生電路從「0」到「1」的切換電平,V
VBGO01
2.84
2.86
2.88
VCC 低於 vcc2vbat 電平和切換到備用電源之間的延遲,ns
Тvcc2vbat
370
500
720
VCC 上升到 vbat2vcc 電平以上和切換到主電源之間的延遲,ns
Тvbat2vcc
50
80
120
fpwr 訊號和切換到備用電源之間的延遲,ns
Тvcc2vbat_fpwr
6
7
9
311
主要電氣特性如表 190 所示。
表 190 – 追蹤電路的基本電氣特性
引數、計量單位
名稱
引數值
分鐘。
型別。
最大限度。
fpwr 訊號和切換到主電源之間的延遲,ns
Тvbat2vcc_fpwr
10
12
14
第312章
外部電源監控與切換框圖
如圖 103 所示。
圖 103 – 監控和切換外部來源的框圖
營養
比較電路基於兩個比較器。第一個比較器
當主電源電壓 (VCC) 超出時監控事件
操作範圍的下限,當它發生時,開啟比較模式
主電源和備用電源 (VBAT) 的電壓。比較
由第二比較器電路執行。比較是透過第二個電路進行的
比較器。每個比較器的磁滯迴線寬度為 40 mV。
線性電池域電源穩壓器
線性穩壓電路(LDO_LP)設計用於
用不穩定的輸入形成穩定的輸出電壓
電壓。
穩壓器的主要功能特點
是:
– 形成穩定的輸出電壓和不穩定的輸出電壓
輸入電壓;
- 指示輸出狀態的標誌的形成
電壓。
引數、計量單位
名稱
引數值
分鐘。
型別。
最大限度。
輸出(調節)電壓,V
電壓
1.77
1.79
1.8
電流消耗,μA
ICC
21
29
44
關閉模式的電流消耗,nA
IQC
–
–
25
負載電流,毫安培
號碼
0
3
4.5
訊號發生電路關於電源狀態 VDD、V 的電平從“1”切換到“0”
升級10
1.32
1.35
1.38
訊號發生電路關於電源狀態 VDD、V 的電平從“0”切換到“1”
升級01
1.42
1.45
1.48
電源雜訊抑制比,dB
PSSR
40
45
52
313
穩壓器的框圖如圖 104 所示。 穩壓器
電壓是根據基於調節誤差放大器的AB類電路產生的,
P型傳輸電晶體、N型放電電晶體、電阻式
基於比較器的分頻器和電源狀態訊號產生電路。
為了確保穩壓器的穩定工作,有必要在 VDD 引腳和
「地」接一個標稱值~的校正電解電容
2.2uF (ESR ~1±0.5ohm) 與 ~100nF 陶瓷電容器並聯。
圖 104 – 電壓調節器框圖
主要電氣特性如表 191 所示。
表 191 – 調節器的主要電氣特性
引數、計量單位
名稱
引數值
分鐘。
型別。
最大限度。
輸入電壓,V
電壓控制電路
2.97
3.3
3.63
輸出(調節)電壓,V
電壓
1.78
1.8
1.85
電流消耗,μA
ICC
63
84
125
關閉模式的電流消耗,nA
IQC
–
–
500
負載電流,毫安培
號碼
0
60
75
保護電路動作負載電流,mA
idd_lim
50
60
75
訊號發生電路關於電源狀態 VDD、V 的電平從“1”切換到“0”
升級10
1.32
1.35
1.38
訊號發生電路關於電源狀態 VDD、V 的電平從“0”切換到“1”
升級01
1.42
1.45
1.48
電源雜訊抑制比,dB
PSSR
51
53
56
314
基本線性穩壓器
線性穩壓器 (LDO) 電路設計用於生成
輸出電壓穩定,輸入電壓不穩定
負載電流範圍。
穩壓器的主要功能特點
是:
- 在寬範圍內形成穩定的輸出電壓
負載電流;
- 指示輸出狀態的標誌的形成
緊張;
形成一個標誌,指示控制器轉換到
輸出電流限制;
- 可從外部關閉調節器以節省
消費。
主要電氣特性如表 192 所示。
表 192 – 調節器的基本電氣特性
315
電壓調節器的框圖如圖 105 所示。
電壓調節器是根據基於誤差放大器的傳統電路製作的
調節、傳輸電晶體、電阻分壓器和電路
基於比較器產生有關電源狀態的訊號。已新增
用於限制負載電流的閾值電路和用於產生有關負載電流的訊號的電路
營養狀況。當超過負載電流閾值時,電路
進入輸出電流限制模式並產生訊號
輸出“cov”。為了確保穩壓器的穩定執行,有必要在
將校正電解與 VDD 接腳和接地連線
與陶瓷並聯的額定電容 ~ 2.2 µF (ESR ~ 1±0.5 Ohm)
電容 ~ 100 nF。
圖 105 – 電壓調節器框圖
校準電壓參考
校準參考電壓電路產生穩定的
輸出電壓在很寬的溫度範圍內。參考源電路
電壓基於半導體帶隙的使用。
此方案的一個特點是存在一個校準單元,
您可以在±範圍內調整參考源的輸出電壓值
105 mV,相對於計算值和最佳值的步長約為 15 mV
溫度依賴性值。程式碼“0b1000”對應於計算的和
從溫度依賴性的角度來看最佳輸出值
參考源電壓(1.218V),程式碼“0b0000”對應最小
輸出電壓值,程式碼“0b1111”對應最大值
輸出電壓。啟用校準電壓參考
316
透過在模擬控制暫存器的 CLB_EN 欄位寫入「1」來執行
REF_CLB 子系統(將該位元設為「1」也啟用校準
目前源)。透過 COEF_REFVCLB 欄位調整係數
相同的暫存器。
校準參考電流源
參考電流源電路產生的輸出電流弱依賴
溫度能夠將電路切換到關閉狀態,以便
減少能源消耗。
校準參考電流源的電路所產生的電流取決於
使用以下公式輸入參考電壓:
我輸出。 = 文。 /R
凡. – 與溫度無關的輸入參考電壓,
R – 具有最小溫度相關係數的電阻
(在這種情況下是沒有自對準矽化物的多晶矽),
Iout——輸出參考電流。
此方案的一個特點是使用校準單元
您可以在範圍內調整參考源電流的輸出值
相對於程式碼值的平均值,±0.6 µA,步長為 ~0.08 µA
調整參考電壓源refVclb的“0b1000”。程式碼“0b1000”
對應參考源輸出電流的平均值(2.1μA),程式碼
“0b0000”對應最大輸出電流值,程式碼“0b1111”
對應最小輸出電流值。開啟校準
參考電流源透過在 CLB_EN 暫存器欄位中寫入“1”來實現
模擬子系統 REF_CLB 的控制(也將該位元設為“1”
包括校準電壓源)。係數已調整
透過同一暫存器的 COEF_REFICLB 欄位。
引腳分配請參考引腳表 193。
重設訊號產生電路
第317章
圖 106 – 重設訊號產生電路,第 1 部分
318
圖 107 – 放電形成示意圖,第 2 部分
第319章
圖 108 – 放電形成示意圖,第 3 部分
PADx_CFG = 0
PADx_CFG = 1
PADx_CFG = 2
不。
PADx_CFG = 3
符號
輸出
描述
模擬
輸出
住房
功能
d
目的
型別
描述
目的
型別
描述
目的
型別
描述
介面
公共連線埠
介面
UART_0。
多功能
登入-
1
連線埠_1_12
GPIO1_12
輸入輸出
目的地 1.
I2C1_sda
I2C 1線
UART0_ndtr
退出
準備狀態
數位類比轉換器0
結論。埠 1,數字 12
退出
位元 12
資料
資料
接收器
介面
公共連線埠
多功能
串列埠1,
2
連線埠_1_11
GPIO1_11
輸入輸出
目的地 1.
UART1_nrts
退出
REF_ADC_DAC
結論。埠 1,數字 11
要求
排名 11
傳輸
介面
公共連線埠
多功能
串列埠1,
3
連線埠_1_10
GPIO1_10
輸入輸出
目的地 1.
UART1_ncts
登入
結論。埠 1,數字 10
準備狀態
排名10
轉移
介面
公共連線埠
多功能
串列埠1,
4
連線埠_1_9
GPIO1_9
輸入輸出
目的地 1.
UART1_txd
退出
結論。埠 1,數字 9
資料為
排名 9
轉移
5
電壓控制電路
主電源3.3V
系統LDO輸出
6
電源電壓
連線
電容器
介面
公共連線埠
多功能
串列埠1,
7
埠_1_8
GPIO1_8
輸入輸出
目的地 1.
UART1_rxd
登入
結論。埠 1,位元 8
已接受
排名 8
資料
備用電源
8
VBAT
電池域3.3V
9
電壓訊號
一般結論
擴充輸出
10
VCC_BU
電池供電
域3.3V
電池LDO輸出
11
電源電壓BU
連線
電容器
OSC32K_X
振盪器輸出 32kHz
12
氧
(3.3V)
振盪器輸入32kHz
13
OSC32K_XI
(3.3V)
外部復位(有效
14
RST#
0級)
退出模式
15
EXT_WU
減少消耗
320
6 引腳分配
表 193 - 引腳分配
RTC_ALAR
鬧鐘(主動
16
中號
1級)
控制輸入
17 號
引導_0
啟動裝置
控制輸入
18
啟動_1
啟動裝置
電壓
19
VPRG
免洗程式設計
8.0V
20
電壓控制電路
主電源3.3V
退出
數位化
介面
子系統
公共連線埠
多功能
SPI1_n_ss_輸出
SPI 1 訊號
數位測試pa
s
21
連線埠_1_7
GPIO1_7
輸入輸出
目的地 1.
退出
退出
ADC_1
結論。埠 1,數字 7
_3
選擇
d
經測試
排名 7
奴隸3
呀
模擬
區塊
介面
公共連線埠
多功能
SPI1_n_ss_輸出
SPI 1 訊號
22
連線埠_1_6
GPIO1_6
輸入輸出
目的地 1.
退出
結論。埠 1,數字 6
_2
選擇
排名 6
奴隸2
訊號
介面
公共連線埠
同步
多功能
SPI1_n_ss_輸出
SPI 1 訊號
23
連線埠_1_5
GPIO1_5
輸入輸出
目的地 1.
退出
UART0_ck
退出
的系統蒸發散
ADC_0
結論。埠 1,數字 5
_1
選擇
排名 5
接待處和
奴隸1
轉移
系統LDO輸出
24
電源電壓
連線
電容器
32x-
一點
介面
公共連線埠
定時器2。
多功能
SPI1_n_ss_輸出
SPI 0 訊號
25
連線埠_1_4
GPIO1_4
輸入輸出
目的地 1.
退出
定時器32_2_Tx
登入
外部
結論。埠 1,數字 4
_0
選擇
排名 4
入口
從機0
計時的
呀
介面
公共連線埠
SPI 1 訊號
多功能
定時器32_2_ch
登入-
26
連線埠_1_3
GPIO1_3
輸入輸出
目的地 1.
SPI1_n_ss_in
登入
選擇在
32x-
結論。埠 1,數字 3
4
退出
排名3
模式
一點
奴隸
定時器2。
介面
頻道 1-
公共連線埠
多功能
登入-
SPI 0
定時器32_2_ch
登入-
3.
27
連線埠_1_2
GPIO1_2
輸入輸出
目的地 1.
SPI1_時鐘
結論。埠 1,數字 2
退出
計時的
3
退出
輸出-
排名2
訊號
脈寬調製,
介面
登入 -
公共連線埠
SPI 1 線
捕獲/比較
多功能
登入-
定時器32_2_ch
登入-
28
連線埠_1_1
GPIO1_1
輸入輸出
目的地 1.
SPI1_mosi
資料來自
意見
結論。埠 1,數字 1
退出
2
退出
排名 1
導致
奴隸
321
29
電壓訊號
一般結論
介面
32x-
公共連線埠
SPI 1 線
多功能
登入-
定時器32_2_ch
登入-
一點
30
連線埠_1_0
GPIO1_0
輸入輸出
目的地 1.
SPI1_味噌
資料來自
結論。埠 1,數字 0
退出
1
退出
定時器2。
位元 0
奴隸於
頻道4
主持人
公共連線埠
多功能
31
連線埠_2_7
GPIO2_7
輸入輸出
目的地 2.
結論。埠 2,數字 7
排名 7
訊號
介面
公共連線埠
同步
多功能
SPI0_n_ss_out
SPI 0 訊號
32
連線埠_2_6
GPIO2_6
輸入輸出
目的地 2.
退出
UART1_ck
退出
的系統蒸發散
結論。連線埠 2,位元 6
_3
選擇
排名 6
接待處和
奴隸3
轉移
介面
公共連線埠
多功能
SPIFI_資料_
登入-
SPIFI匯流排
33
連線埠_2_5
GPIO2_5
輸入輸出
目的地 2.
結論。埠 2,數字 5
3
退出
資料,
排名 5
排名3
介面
公共連線埠
多功能
SPIFI_資料_
登入-
SPIFI匯流排
34
連線埠_2_4
GPIO2_4
輸入輸出
目的地 2.
結論。埠 2,數字 4
2
退出
資料,
排名 4
排名2
介面
致電
公共連線埠
多功能
SPIFI_資料_
登入-
SPIFI匯流排
(呼叫)於
35
連線埠_2_3
GPIO2_3
輸入輸出
目的地 2.
UART1_nri
登入
結論。埠 2,數字 3
1
退出
資料,
透過電話
排名3
排名 1
第三行
介面
訊號
公共連線埠
多功能
SPIFI_資料_
登入-
SPIFI匯流排
準備狀態
36
連線埠_2_2
GPIO2_2
輸入輸出
目的地 2.
UART1_ndsr
登入
結論。埠 2,數字 2
0
退出
資料,
來源
排名2
排名 0
資料
公共連線埠
介面
訊號
多功能
37
連線埠_2_1
GPIO2_1
輸入輸出
目的地 2.
SPIFI_CS
退出
SPIFI訊號
UART1_ndcd
登入
發現了
結論。埠 2,數字 1
排名 1
C.S.
載體
介面
公共連線埠
準備狀態
多功能
登入-
SPIFI
38
連線埠_2_0
GPIO2_0
輸入輸出
目的地 2.
SPIFI_SCLK
UART1_ndtr
退出
接收器
結論。連線埠 2,位元 0
退出
計時的
位元 0
資料
訊號
OSC32M_X
振盪器輸出
39
氧
32MHz(3.3V)
振盪器輸入32MHz
40
OSC32M_XI
(3.3V)
系統LDO輸出
41
電源電壓
連線
電容器
公共連線埠
介面
多功能
42
連線埠_0_15
GPIO0_15
輸入輸出
目的地0。
時差
退出
JTAG。退出
結論。連線埠 0,位元 15
排名 15
資料
介面
公共連線埠
多功能
JTAG。重置
43
連線埠_0_14
GPIO0_14
輸入輸出
目的地0。
TRSTn
登入
結論。連線埠 0,位元 14
(活躍的
位元 14
0級)
第322章
介面
16-
公共連線埠
多功能
JTAG。
定時器16_2_ou
一點
44
連線埠_0_13
GPIO0_13
輸入輸出
目的地0。
經顱磁刺激系統
登入
退出
ADC_7
結論。連線埠 0,位元 13
訊號
t
定時器
排名 13
管理
2.退出
16-
公共連線埠
介面
多功能
定時器16_2_in
一點
45
連線埠_0_12
GPIO0_12
輸入輸出
目的地0。
TCK
登入
JTAG。訊號
登入
結論。連線埠 0,位元 12
2
定時器
位元 12
計時
2.輸入2
16-
公共連線埠
介面
多功能
定時器16_2_in
一點
46
連線埠_0_11
GPIO0_11
輸入輸出
目的地0。
TDI
登入
JTAG。登入
登入
ADC_6
結論。連線埠 0,位元 11
1
定時器
排名 11
資料
2.輸入1
16-
公共連線埠
介面
多功能
登入-
定時器16_1_ou
一點
47
連線埠_0_10
GPIO0_10
輸入輸出
目的地0。
I2C0_scl
I2C 0 訊號
退出
結論。連線埠 0,位元 10
退出
t
定時器
排名10
計時
1.退出
16-
公共連線埠
介面
多功能
登入-
定時器16_1_in
一點
48
連線埠_0_9
GPIO0_9
輸入輸出
目的地0。
I2C0_sda
I2C 0線
登入
ADC_5
結論。連線埠 0,位元 9
退出
2
定時器
排名 9
資料
1.輸入2
介面
16-
公共連線埠
多功能
串列埠0,
定時器16_1_in
一點
49
埠_0_8
GPIO0_8
輸入輸出
目的地0。
UART0_nrts
退出
登入
結論。連線埠 0,位元 8
要求
1
定時器
排名 8
傳輸
1.輸入1
介面
16-
公共連線埠
多功能
串列埠0,
定時器16_0_ou
一點
50
連線埠_0_7
GPIO0_7
輸入輸出
目的地0。
UART0_ncts
登入
退出
ADC_4
結論。埠 0,位 7
準備狀態
t
計時器 0。
排名 7
轉移
退出
介面
16-
公共連線埠
多功能
串列埠0,
定時器16_0_in
一點
51
連線埠_0_6
GPIO0_6
輸入輸出
目的地0。
UART0_txd
退出
登入
結論。連線埠 0,位元 6
資料為
2
定時器
排名 6
轉移
0.輸入2
52
電壓控制電路
主電源3.3V
介面
16-
公共連線埠
多功能
串列埠0,
定時器16_0_in
一點
53
連線埠_0_5
GPIO0_5
輸入輸出
目的地0。
UART0_rxd
登入
登入
結論。埠 0,數字 5
已接受
1
定時器
排名 5
資料
0.輸入1
32x-
一點
介面
公共連線埠
定時器1。
多功能
SPI0_n_ss_out
SPI 0 訊號
54
連線埠_0_4
GPIO0_4
輸入輸出
目的地0。
退出
定時器32_1_Tx
登入
外部
ADC_3
結論。連線埠 0,位元 4
_0
選擇
排名 4
入口
從機0
計時的
呀
介面
32x-
公共連線埠
SPI 0 訊號
一點
多功能
定時器32_1_ch
登入-
55
連線埠_0_3
GPIO0_3
輸入輸出
目的地0。
SPI0_n_ss_in
登入
選擇在
定時器1。
結論。埠 0,數字 3
4
退出
排名3
模式
頻道 1-
奴隸
4.
323
介面
輸出-
公共連線埠
多功能
登入-
SPI 0
定時器32_1_ch
登入-
脈寬調製,
56
連線埠_0_2
GPIO0_2
輸入輸出
目的地0。
SPI0_時鐘
ADC_2
結論。埠 0,數字 2
退出
計時的
3
退出
登入 -
排名2
訊號
捕獲/比較
介面
意見
公共連線埠
SPI 0 線
多功能
登入-
定時器32_1_ch
登入-
57
連線埠_0_1
GPIO0_1
輸入輸出
目的地0。
SPI0_莫西
資料來自
結論。埠 0,數字 1
退出
2
退出
排名 1
導致
奴隸
介面
REF_TST,
公共連線埠
SPI 0 線
多功能
登入-
定時器32_1_ch
登入-
外部
58
連線埠_0_0
GPIO0_0
輸入輸出
目的地0。
SPI0_味噌
資料來自
結論。連線埠 0,位元 0
退出
1
退出
參考訊號
位元 0
奴隸於
用於測試
主持人
59
電壓訊號
一般結論
介面
介面
UART_0。
測試多工器輸出
公共連線埠
多功能
SPI0_n_ss_out
SPI 0 訊號
致電
系統輸出
60
連線埠_1_15
GPIO1_15
輸入輸出
目的地 1.
退出
UART0_nri
登入
結論。埠 1,數字 15
_2
選擇
(呼叫)於
模擬
排名 15
奴隸2
透過電話
測試
第三行
介面
介面
UART_0。
公共連線埠
多功能
SPI0_n_ss_out
SPI 0 訊號
訊號
61
連線埠_1_14
GPIO1_14
輸入輸出
目的地 1.
退出
UART0_ndsr
登入
結論。埠 1,數字 14
_1
選擇
準備狀態
位元 14
奴隸1
來源
資料
類比電源
62
AVCC
3.3V 模組
公共類比輸出
63
AVSS
區塊
介面
公共連線埠
介面
UART_0。
多功能
登入-
64
連線埠_1_13
GPIO1_13
輸入輸出
目的地 1.
I2C1_scl
I2C 1 訊號
UART0_ndcd
登入
訊號
數位類比轉換器1
結論。埠 1,數字 13
退出
排名 13
計時
發現了
載體
第324章
325
使用的縮寫列表
AHB AMBA 高效能匯流排
用於週邊裝置的 APB AMBA 匯流排(AMBA Peripheral Bus)
EEPROM 電可擦除可程式唯讀記憶體 (EEPROM)
GPIO 通用連線埠輸入/輸出
I2C 積體電路間介面
JTAG介面 JTAG(聯合測試行動小組-制定IEEE1149標準的工作小組的名稱)
低壓降 LDO 電壓轉換器(Low drop out)
OTP一次性可程式設計-一次性可程式設計記憶體
UART通用同步/非同步收發器
ADC 類比數位轉換器
ION 電壓參考源
RAM 隨機存取記憶體 (RAM)
ROM只讀記憶體(ROM)
DAC數位類比轉換器
PWM(脈寬調變)
第326章
暫存器和位元欄位使用的縮寫列表
RW 讀/寫(可讀、可寫)
RO Read Only(可讀取,忽略寫入)
WO Write Only(讀0,可寫)
R/W1S Read/Write 1 to Set(可讀,write1設定對應位)
R/W1C Read/Write 1 to Clear(可讀,write1刪除對應位元)
W1S 寫入1設定(讀0,寫入1設定對應位)
W1C Write 1 to Clear(讀0,寫1清除對應位)
RC 讀取時清零