ZHCSNZ0C November 2022 – January 2025 TCAL6408
PRODUCTION DATA
輸入端口寄存器(寄存器 0)反映引腳的輸入邏輯電平,無論配置寄存器將引腳定義為輸入還是輸出。輸入端口寄存器為只讀。寫入此寄存器時將不起作用。默認值 (X) 由外部應用的邏輯電平決定。在執行讀取操作之前,系統將連同命令字節發送寫入傳輸,以指示 I2C 器件接下來將訪問輸入端口寄存器。
| 位 | I-7 | I-6 | I-5 | I-4 | I-3 | I-2 | I-1 | I-0 |
| 默認值 | X | X | X | X | X | X | X | X |
輸出端口寄存器(寄存器 1)顯示由配置寄存器定義為輸出的引腳的輸出邏輯電平。該寄存器中的位值對定義為輸入的引腳沒有影響。反過來,從該寄存器讀取的值反映了控制輸出選擇的觸發器中的值,而不是實際的引腳值。
| 位 | O-7 | O-6 | O-5 | O-4 | O-3 | O-2 | O-1 | O-0 |
| 默認值 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
極性反轉寄存器(寄存器 2)允許對配置寄存器定義為輸入的引腳進行極性反轉。如果對該寄存器中的某個位進行設置(寫入”1“),則相應端口引腳的極性會反轉。如果該寄存器中的某個位被清除(寫入”0“),則相應端口引腳的原始極性會保留。
| 位 | P-7 | P-6 | P-5 | P-4 | P-3 | P-2 | P-1 | P-0 |
| 默認值 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
配置寄存器(寄存器 3)配置 I/O 引腳的方向。如果該寄存器中的某個位設置為 1,則相應端口引腳被啟用為具有高阻抗輸出驅動器的輸入。如果該寄存器中的某個位被清除為 0,則相應端口引腳被啟用為輸出。
| 位 | C-7 | C-6 | C-5 | C-4 | C-3 | C-2 | C-1 | C-0 |
| 默認值 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
輸出驅動強度寄存器控制 P 端口 GPIO 緩沖器的輸出驅動電平。每個 GPIO 都可以通過兩個寄存器控制位獨立地配置為所需的輸出電流電平。例如,端口 P7 由寄存器 41(位 7 和 6)控制,端口 P6 由寄存器 41(位 5 和 4)控制,依此類推。GPIO 的輸出驅動電平編程為 00b = 0.25x 驅動強度、01b = 0.5x 驅動強度、10b = 0.75x 驅動強度或 11b = 1x,以實現全驅動強度能力。
| 位 | CC-3 | CC-3 | CC-2 | CC-2 | CC-1 | CC-1 | CC-0 | CC-0 |
| 默認值 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| 位 | CC-7 | CC-7 | CC-6 | CC-6 | CC-5 | CC-5 | CC-4 | CC-4 |
| 默認值 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
輸入鎖存寄存器啟用和禁用 P 端口 GPIO 引腳的輸入鎖存功能。該寄存器僅在引腳配置為輸入端口時有效。當輸入鎖存寄存器位為 0 時,不鎖存相應的輸入引腳狀態。相應輸入引腳的狀態變化會產生中斷。讀取輸入寄存器會清除中斷。如果在讀取輸入端口寄存器之前輸入返回到其初始邏輯狀態,則中斷被清除。
將輸入鎖存寄存器位設置為 1 時,會鎖存相應的輸入引腳狀態。輸入狀態的變化會產生一個中斷,輸入邏輯值被加載到輸入端口寄存器(寄存器 0 和 1)的相應位中。讀取輸入端口寄存器會清除中斷。但是,如果輸入引腳在讀取輸入端口寄存器之前返回其初始邏輯狀態,則不會清除中斷,并且輸入端口寄存器的相應位會保持引發中斷的邏輯值。
例如,如果 P4 輸入處于邏輯 0 狀態,然后轉換為邏輯 1 狀態,再返回邏輯 0 狀態,則輸入端口寄存器將捕獲此更改并生成中斷(如果未屏蔽)。當對輸入端口 0 寄存器執行讀取操作時,假設沒有其他輸入發生變化,中斷將被清除,并且輸入端口寄存器的第 4 位將讀取“1”。輸入端口寄存器第 4 位的下一次讀取現在應讀取“0”。
當非鎖存輸入與鎖存輸入同時切換狀態,然后返回其原始狀態時,中斷保持激活。輸入寄存器的讀取只反映了鎖存輸入狀態的變化,同時也清除了中斷。如果輸入鎖存寄存器從鎖存配置變為非鎖存配置,并且輸入邏輯值恢復到其原始狀態,中斷將被清除。
如果輸入引腳從鎖存輸入變為非鎖存輸入,則從輸入端口寄存器讀取會反映當前端口邏輯電平。如果輸入引腳從非鎖存輸入變為鎖存輸入,則從輸入寄存器讀取會反映鎖存邏輯電平。
| 位 | L-7 | L-6 | L-5 | L-4 | L-3 | L-2 | L-1 | L-0 |
| 默認值 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
上拉/下拉使能寄存器允許用戶啟用或禁用 GPIO 引腳上的上拉/下拉電阻器。將該位設置為邏輯 1 可以選擇上拉/下拉電阻器。將該位設置為邏輯 0 會斷開上拉/下拉電阻器與 GPIO 引腳的連接。當 GPIO 配置為輸出時,電阻器被禁用。使用上拉/下拉選擇寄存器選擇上拉或下拉電阻器。
| 位 | PE-7 | PE-6 | PE-5 | PE-4 | PE-3 | PE-2 | PE-1 | PE-0 |
| 默認值 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
上拉/下拉選擇寄存器允許用戶通過編程相應的寄存器位來配置每個 GPIO,以具有上拉或下拉電阻器。將某個位設置為邏輯 1 會為該 GPIO 引腳選擇一個 100kΩ 的上拉電阻。將某個位設置為邏輯 0 會為該 GPIO 引腳選擇一個 100kΩ 的下拉電阻。如果通過寄存器 43 禁用上拉/下拉功能,則寫入該寄存器對 GPIO 引腳沒有影響。
| 位 | PUD-7 | PUD-6 | PUD-5 | PUD-4 | PUD-3 | PUD-2 | PUD-1 | PUD-0 |
| 默認值 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
上電時,中斷屏蔽寄存器默認為邏輯 1,在系統啟動期間禁用中斷。可以通過將相應的屏蔽位設置為邏輯 0 來啟用中斷。
如果輸入改變了狀態,并且中斷屏蔽寄存器中的相應位為 1,則屏蔽中斷并且不斷言中斷引腳。如果中斷屏蔽寄存器中的相應位設置為 0,則中斷引腳被斷言。
當輸入改變了狀態,并且產生的中斷被屏蔽時,將中斷屏蔽寄存器位設置為 0 將導致中斷引腳被斷言。如果當前已經是中斷源的輸入的中斷屏蔽位設置為 1,則中斷引腳被解除斷言。
| 位 | M-7 | M-6 | M-5 | M-4 | M-3 | M-2 | M-1 | M-0 |
| 默認值 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
中斷狀態寄存器是一個只讀寄存器,用于識別中斷源。讀取時,邏輯 1 表示相應的輸入引腳是中斷源。邏輯 0 表示輸入引腳不是中斷源。當中斷屏蔽寄存器中的相應位設置為 1(已屏蔽)時,中斷狀態位將返回邏輯 0。
| 位 | S-7 | S-6 | S-5 | S-4 | S-3 | S-2 | S-1 | S-0 |
| 默認值 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
輸出端口配置寄存器選擇按端口推挽或開漏 I/O 級。邏輯 0 會將 I/O 配置為推挽式(Q1 和 Q2 處于活動狀態,請參閱圖 7-2)。邏輯 1 將 I/O 配置為開漏(Q1 被禁用,Q2 處于活動狀態),建議的命令序列是在配置寄存器 (03) 將端口引腳設置為輸出之前,對該寄存器 (4F) 進行編程。
| 位 | 保留 | ODEN-0 | ||||||
| 默認值 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |