產(chǎn)品詳情
1.復(fù)位和時(shí)鐘系統(tǒng)
1.1. 復(fù)位
CIU32M010、CIU32M030 支持系統(tǒng)復(fù)位、電源復(fù)位和主復(fù)位。
1.1.1. 系統(tǒng)復(fù)位
系統(tǒng)復(fù)位將復(fù)位除某些復(fù)位狀態(tài)寄存器和特殊功能寄存器之外的所有寄存器。
當(dāng)以下事件中的一件發(fā)生時(shí),產(chǎn)生一個(gè)系統(tǒng)復(fù)位
? SLEEP 模式下外部 IO 口喚醒
? WDT 計(jì)數(shù)溢出復(fù)位
? 系統(tǒng)鎖定復(fù)位
1.1.2. 主復(fù)位
主復(fù)位能將部分系統(tǒng)復(fù)位無(wú)法復(fù)位的寄存器復(fù)位。
以下事件可以觸發(fā)一個(gè)主復(fù)位
? 軟件復(fù)位
? PVD 檢測(cè)到電壓低事件,且控制器處于復(fù)位功能模式
1.1.3. 電源復(fù)位
上電/掉電復(fù)位(POR/PDR 復(fù)位)都屬于電源復(fù)位。電源復(fù)位將復(fù)位所有的邏輯和模擬模塊。復(fù)位入口矢量被固定在地址 0x0000_0004。
1.2 時(shí)鐘
1.2.1. 模塊框圖
1.2.2. HIRC 時(shí)鐘
HIRC 時(shí)鐘信號(hào)由內(nèi)部 72MHz 的振蕩器產(chǎn)生,HIRC 振蕩器能夠在不需要任何外部器件的條件下提供系統(tǒng)時(shí)鐘。HIRC 需要頻率校準(zhǔn),校準(zhǔn)值寫(xiě)在 FLASH 系統(tǒng)存儲(chǔ)區(qū)域。在程序使用這個(gè)時(shí)鐘前,可以讀取并配置出高精度的 HIRC 時(shí)鐘。經(jīng)過(guò)出廠(chǎng)校驗(yàn)后,正常溫度范圍下 HIRC 精度為 72MHz(±1.5%),具體請(qǐng)參考電氣特性參數(shù) 。
1.2.3. LIRC 時(shí)鐘
LIRC 振蕩器擔(dān)當(dāng)一個(gè)低功耗時(shí)鐘源的角色,它作為系統(tǒng)啟動(dòng)時(shí)鐘為其他單元提供時(shí)鐘。LIRC 時(shí)鐘頻率大約 256KHz。
1.2.4. 系統(tǒng)時(shí)鐘(SYSCLK)
兩種不同的時(shí)鐘源可被用來(lái)驅(qū)動(dòng)系統(tǒng)時(shí)鐘(SYSCLK)
? 內(nèi)部低速 256KHz LIRC
? 內(nèi)部高速 72MHz(±1.5%) 高速振蕩器
1.2.5. 毛刺濾波時(shí)鐘源選擇
三種不同的時(shí)鐘源可被用來(lái)驅(qū)動(dòng) GPIO 的毛刺濾波時(shí)鐘
? 內(nèi)部高速 HIRC 的分頻時(shí)鐘
? 內(nèi)部低速 LIRC_256K 8 分頻時(shí)鐘
? 系統(tǒng)時(shí)鐘
? 內(nèi)部低速 LIRC_256K
當(dāng)不被使用時(shí),任一個(gè)時(shí)鐘源都可被獨(dú)立地啟動(dòng)或關(guān)閉,由此優(yōu)化系統(tǒng)功耗。
2. 通用輸入輸出
2.1. 模塊介紹
每組 GPIO 端口有四個(gè) 32 位配置寄存器(GPIOx_MODE,GPIOx_OTYPE,GPIOx_OSPEED and GPIOx_PUPD),兩個(gè) 32 位數(shù)據(jù)寄存器(GPIOx_IDAT and GPIOx_ODAT),一個(gè) 32 位置位/復(fù)位寄存器
(GPIOx_BSR)和一個(gè) 32 位翻轉(zhuǎn)寄存器(GPIOx_TGL)。另外,所有 GPIO 有兩個(gè)復(fù)用功能選擇寄存器(GPIOx_AFRH and GPIOx_AFRL)。
注:GPIOx 中的 x 表示 GPIO 組數(shù)。
2.2. 功能特點(diǎn)
? 輸出狀態(tài):推挽或開(kāi)漏(上下拉)
? 輸出寄存器狀態(tài)值(GPIOx_ODAT) 或者復(fù)用功能輸出
? 輸入狀態(tài):浮空、上下拉、模擬
? 輸入數(shù)據(jù)到數(shù)據(jù)寄存器(GPIOx_IDAT) 或復(fù)用功能輸入
? 獨(dú)立置位/復(fù)位/翻轉(zhuǎn) IO 狀態(tài)(GPIOx_ BSR、GPIOx_TGL)
? 模擬功能
? 復(fù)用功能(開(kāi)漏或推挽、上拉或下拉)
2.3. 功能說(shuō)明
GPIO 的每一個(gè)端口可以通過(guò)軟件獨(dú)立配置成下面狀態(tài)
? 輸入浮空
? 輸入上拉
? 輸入下拉
? 模擬功能
? 開(kāi)漏輸出(上拉或下拉)
? 推挽輸出
? 復(fù)用功能(開(kāi)漏或推挽、上拉或下拉)
2.3.1. 通用 IO(GPIO)
復(fù)位期間和剛復(fù)位后,復(fù)用功能未開(kāi)啟,IO 端口被配置成浮空輸入模式。當(dāng)作為輸出配置時(shí),寫(xiě)到輸出數(shù)據(jù)寄存器上的值(GPIOx_ ODAT)輸出到相應(yīng)的 IO 引腳??梢砸酝仆旎蜷_(kāi)漏模式使用輸出驅(qū)動(dòng)器。輸入數(shù)據(jù)寄存器(GPIOx_ IDAT)在每個(gè) APB 時(shí)鐘周期 IO 引腳上的數(shù)據(jù)。所有 GPIO 引腳有一個(gè)內(nèi)部弱上拉,當(dāng)配置為輸入時(shí),它們可以被斷開(kāi)。
2.3.2. 單獨(dú)的位操作
當(dāng)對(duì) GPIOx_ ODAT 的個(gè)別位編程時(shí),軟件不需要禁止中斷:在單次 APB 寫(xiě)操作里,可以只更改一個(gè)或多個(gè)位。只需要通過(guò)對(duì)“置位/復(fù)位寄存器”(GPIOx_BSR)或“取反寄存器”(GPIOx_TGL)中想要更改的位寫(xiě)“1”來(lái)實(shí)現(xiàn)。沒(méi)被選擇的位將不被更改。
2.3.3. 復(fù)用功能(AF)
芯片 IO 引腳通過(guò)多路選擇器連接到片內(nèi)外設(shè),每個(gè) IO 上同一時(shí)刻只能選通一個(gè)復(fù)用功能。每個(gè) IO引腳有一個(gè) 2 輸入的多路選擇器連接到復(fù)用功能(AF0~AF1),通過(guò)配置 GPIOx_AFRH/L 選擇功能。如果把端口配置成復(fù)用輸出功能,則引腳和輸出寄存器斷開(kāi),并和片上外設(shè)的輸出信號(hào)連接。如果軟件把一個(gè) GPIO 腳配置成復(fù)用輸出功能,它的輸出將不確定。
2.3.4. GPIO 鎖定機(jī)制
鎖定機(jī)制允許在 GPIO 控制寄存器 GPIOx_LCK 上執(zhí)行一串鎖定程序,然后把 GPIO 的狀態(tài)鎖定,一旦 GPIO 狀態(tài)被鎖定,將不可改變,直到復(fù)位。被鎖定的寄存器有(GPIOx_MODE, GPIOx_OTYPE,GPIOx_OSPEED, GPIOx_PUPD, GPIOx_AFRL and GPIOx_AFRH)。鎖定序列參考 GPIOx_LCK 寄存器描述 。
2.3.5. 輸入配置
當(dāng) IO 端口配置為輸入時(shí)
? 輸出緩存器被禁止
? 根據(jù)輸入配置(上拉、下拉或浮空)的不同,弱上拉和下拉電阻被連接
? 出現(xiàn)在 IO 腳上的數(shù)據(jù)在每個(gè) APB 時(shí)鐘被采樣到輸入數(shù)據(jù)寄存器
? 對(duì)輸入數(shù)據(jù)寄存器的讀訪(fǎng)問(wèn)可得到 IO 狀態(tài)
2.3.6. 輸出配置
當(dāng) IO 端口被配置為輸出時(shí)
? 輸出緩沖器被激活開(kāi)漏模式:輸出寄存器上的“0”激活 N-MOS,而輸出寄存器上的“
1”將端口置于高阻態(tài)(P-MOS從不被激活)推挽模式:輸出寄存器上的“0”激活 N-MOS,而輸出寄存器上的“1”將激活 P-MOS。
? 施密特觸發(fā)輸入被激活
? 弱上拉和下拉電阻被禁止 CIU32M010、CIU32M030
? 出現(xiàn)在 IO 腳上的數(shù)據(jù)在每個(gè) APB 時(shí)鐘被采樣到輸入數(shù)據(jù)寄存器
? 在開(kāi)漏模式時(shí),對(duì)輸入數(shù)據(jù)寄存器的讀訪(fǎng)問(wèn)可得到 IO 狀態(tài)
? 在推挽模式時(shí),對(duì)輸出數(shù)據(jù)寄存器的讀訪(fǎng)問(wèn)得到后一次寫(xiě)的值
2.3.7. 模擬輸入配置
當(dāng) IO 端口被配置為模擬輸入配置時(shí)
? 輸出緩存器被禁止
? 禁止施密特觸發(fā)輸入,實(shí)現(xiàn)了每個(gè)模擬 IO 引腳上的零消耗。施密特觸發(fā)輸出值被強(qiáng)制為“0”
? 弱上拉和下拉電阻被禁止
? 讀取輸入數(shù)據(jù)寄存器時(shí)數(shù)值為“0”
2.3.8. 復(fù)用功能配置
對(duì) IO 端口進(jìn)行編程作為復(fù)用功能時(shí)
? 在開(kāi)漏或推挽式配置中,輸出緩沖器被打開(kāi)
? 內(nèi)置外設(shè)的信號(hào)驅(qū)動(dòng)輸出緩沖器 (復(fù)用功能輸出)
? 施密特觸發(fā)輸入被激活
? 弱上拉和下拉電阻被禁止
? 在每個(gè) APB 時(shí)鐘周期,出現(xiàn)在 IO 腳上的數(shù)據(jù)被采樣到輸入數(shù)據(jù)寄存器
? 開(kāi)漏模式時(shí),讀輸入數(shù)據(jù)寄存器時(shí)可得到 IO 口狀態(tài)
? 在推挽模式時(shí),讀輸出數(shù)據(jù)寄存器時(shí)可得到后一次寫(xiě)的值
沈陽(yáng)芯碩科技有限公司是華大電子專(zhuān)業(yè)代理商,有技術(shù)問(wèn)題可咨詢(xún)我們