2016年8月1日 星期一

DIY - PIC24:通用非同步收發器 UART 介紹(三十)

DIY - PIC24:通用非同步收發器 UART 介紹(三十): 

Microchip PIC24FJ064GA008 內置有 2個通用非同步收發器(Universal Asynchronous Receiver TransmitterUART),即 UART 是非同步串列通信口的總稱,它包括了 RS232RS499RS423RS422 RS485 等介面標準規範和匯流排匯流排的供應商標準規範。UART 是用於控制電腦與串列設備的晶片,是一個用來進行資料交換和跟蹤的兩個引腳 UART,它為現場編程解決方案提供了一個理想的工具。

PIC24FJ64GA008 MCU UART 簡化框圖
通用非同步收發器(Universal Asynchronous Receiver TransmitterUART)模組是 PIC24F 器件系列提供的串列 I/O 模組之一。UART 是可以與外設器件和個人電腦(使用RS-232RS-485LIN 1.2 IrDA® 等協議)通信的全雙工非同步通信通道。模組還通過 UxCTSUxRTS 引腳支援硬體流控制選項,並且還包含有 IrDA 編碼器和解碼器。

UART 模組的主要特性有:
• 通過 UxTX UxRX 引腳進行全雙工 8位或 9位資料傳輸
• 偶、奇或無奇偶校驗選項(對於 8位元資料)
• 一或兩個停止位
• 硬體自動串列傳輸速率特性•通過 UxCTS UxRTS 引腳支援硬體流控制選項
• 完全集成的具有16位預分頻器的串列傳輸速率發生器(Baud Rate Generator
16 MIPS 時,串列傳輸速率範圍為 1 Mbps 15 bps
4級深度先進先出(First-In-First-OutFIFO)發送資料緩衝器
4級深度 FIFO 接收資料緩衝器•奇偶校驗、幀和緩衝器溢出錯誤檢測
• 支援帶位址檢測的 9位元模式(第 9位元 = 1
• 發送和接收中斷
• 用於診斷支援的環回(Loopback)模式
IrDA 編碼器和解碼器邏輯
LIN 1.2 協定支援•用於支援 IrDA 編碼器/解碼器的 16倍頻串列傳輸速率時鐘輸出 

1UxModeUARTx 模式寄存器
PIC24FJ64GA008 MCU UxModeUARTx 模式寄存器
PIC24FJ64GA008 MCU UxModeUARTx 模式寄存器
bit
Description
bit 15
UARTENUARTx 使能位
1=UARTx 使能;UEN<1:0> UTXEN 控制位定義了 UARTx 如何控制 UARTx 引腳。
0=UARTx 禁止;UARTx 引腳由相應的 PORTLAT TRIS 位控制。
bit 14
UFRZ:調試模式停止位元
1=模擬器處於調試模式時,模組停止工作
0=模擬器處於調試模式時,模組繼續工作
bit 13
USIDL:空閒模式停止位元
1=器件進入空閒模式後停止工作
0=處於空閒模式時繼續工作
bit 12
IRENIrDA 編碼器和解碼器使能位
1=IrDA 編碼器和解碼器使能
0=IrDA 編碼器和解碼器禁止
bit 11
RTSMDUxRTS 引腳模式選擇位元
1=UxRTS 處於單工(Simplex)模式
0=UxRTS 處於流控制模式
bit10
ALTIOUARTx 備用 I/O 選擇位(1)
1=UART 通過 UxATX UxARX I/O 引腳通信
0=UARTx 通過 UxTXUxRX I/O 引腳通信
bit 9-8
UEN<1:0>UARTx 使能位
11=使能並使用 UxTXUxRX BCLKx 引腳;UxCTS 引腳由埠鎖存器控制
10=使能並使用 UxTXUxRXUxCTS UxRTS 引腳
01=使能並使用 UxTXUxRX UxRTS 引腳;UxCTS 引腳由埠鎖存器控制
00=使能並使用 UxTX UxRX 和引腳;UxCTSUxRTS BCLKx 引腳由埠鎖存器控制
bit 7
WAKE:在休眠模式期間檢測到啟動位元喚醒使能位
1=使能喚醒
0=禁止喚醒
bit 6
LPBACKUARTx 環回模式選擇位元
1=使能環回模式
0=禁止環回模式
bit 5
ABAUD:自動串列傳輸速率使能位
1=在下一個字元使能串列傳輸速率檢測。需要收到“同步”欄位(55h);完成時由硬體清零。
0=禁止串列傳輸速率檢測或檢測已完成
bit 4
RXINV:接收奇偶校驗翻轉位
1 = UxRX 空閒狀態為0
0 = UxRX 空閒狀態為1
bit 3
BRGH:高串列傳輸速率選擇位
1 = 高速
0 = 低速
bit 2-1
PDSEL<1:0>:奇偶校驗和資料選擇位元
11 = 9位元資料,無奇偶校驗
10 = 8位元資料,奇校驗
01 = 8位元資料,偶校驗
00 = 8位元資料,無奇偶校驗
bit 0
STSEL:停止選擇位
1 = 2個停止位
0 = 1個停止位

2UxSTAUARTx 狀態和控制寄存器
PIC24FJ64GA008 MCU UxSTAUARTx 狀態和控制寄存器
PIC24FJ64GA008 MCU UxSTAUARTx 狀態和控制寄存器:
bit
Description
bit 15,13
UTXISEL<1:0> 發送中斷模式選擇位元
11 =保留
10 =當一個字元被傳輸到發送移位寄存器並且發送緩衝器變為空時,產生中斷
01 =當最後一次發送完成(最後一個字元移出發送移位寄存器)且所有的發送操作均完成時,產生中斷
00 =當任意字元被傳輸到發送移位寄存器時產生中斷(這意味著在發送緩衝器中至少有一個單元為空)
bit 14
UTXINV:發送奇偶校驗翻轉位
IREN = 01 = UxTX 空閒狀態為1
0 = UxTX空閒狀態為0
IREN = 11= IrDA 編碼 UxTX 空閒狀態為1
0= IrDA 編碼 UxTX 空閒狀態為0
bit 12
未實現:讀為0
bit 11
UTXBRK:發送間隔位
1 = 無論發送狀態如何,都將 UxTX 引腳驅動為低電平(同步間隔發送——啟動位後跟隨120,之後跟隨 1個停止位)
0 = 同步間隔發送被禁止或已完成
bit 10
UTXEN:發送使能位
1= UARTx 發送器使能,UARTx 控制 UxTX 引腳(如果UARTEN = 1
0= UARTx 發送器禁止,中止所有等待的發送,緩衝器復位。PORT 控制 UxTX 引腳。
bit 9
UTXBF:發送緩衝器滿狀態位元(唯讀)
1 = 發送緩衝器已滿
0 = 發送緩衝器未滿,可以寫入至少一個或多個資料字
bit 8
TRMT:發送移位寄存器空位(唯讀)
1 = 發送移位寄存器為空,同時發送緩衝器為空(上一個發送已經完成)
0 = 發送移位寄存器非空,發送在進行中或在發送緩衝器中排隊
bit 7-6
URXISEL<1:0>:接收中斷模式選擇位元
11 = 接收緩衝器滿時(即,有4個資料字元),中斷標誌位置1
10 = 接收緩衝器3/4滿時(即,有3個資料字元),中斷標誌位置1
0x = 當接收到一個字元時,中斷標誌位置1
bit 5
ADDEN:位址字元檢測位元(接收資料的第 8位元 = 1
1 = 位址檢測模式使能。如果沒有選擇 9位元模式,該控制位元無效。
0 = 位址檢測模式禁止
bit 4
RIDLE:接收器空閒位(唯讀)
1 = 接收器空閒
0 = 正在接收資料
bit 3
PERR:奇偶校驗錯誤狀態位元(唯讀)
1 = 檢測到當前字元的奇偶校驗錯誤
0 = 未檢測到奇偶校驗錯誤
bit 2
FERR:幀錯誤狀態位元(唯讀)
1 = 檢測到當前字元的幀錯誤
0 = 未檢測到幀錯誤
bit 1
OERR:接收緩衝器溢出錯誤狀態位元(清零/唯讀)
1 =接收緩衝器溢出
0 =接收緩衝器未溢出(清零先前置1 OERR 位會將接收緩衝器和 RSR
重定為空狀態)
bit 0
URXDA:接收緩衝器是否有資料位元(唯讀)
1 = 接收緩衝器中有資料,有至少一個或多個字元可讀
0 = 接收緩衝器為空

3UxRXREGUARTx 接收寄存器 
PIC24FJ64GA008 MCU UxRXREGUARTx 接收寄存器
PIC24FJ64GA008 MCU UxRXREGUARTx 接收寄存器:
bit
Description
bit 15-9
未實現:讀為0
bit 8
URX8:接收到字元的第 8個資料位元(在9位元模式下)
bit 7-0
URX<7:0>:接收到字元的第 7-0 個資料位元

4UxTXREGUARTx 發送寄存器 
PIC24FJ64GA008 MCU UxTXREGUARTx 發送寄存器
PIC24FJ64GA008 MCU UxTXREGUARTx 發送寄存器:
bit
Description
bit 15-9
未實現:讀為0
bit 8
UTX8:已發送字元的第 8個資料位元(在 9位元模式下)
bit 7-0
UTX<7:0>:已發送字元的第 7-0 個資料位元

5UxBRGUARTx 波特率寄存器 
PIC24FJ64GA008 MCU UxBRGUARTx 波特率寄存器
PIC24FJ64GA008 MCU UxBRGUARTx 波特率寄存器:
bit
Description
bit 15-0
BRG<15:0>:波特率除數位

PIC24FJ64GA008 MCU UART 模塊相關的寄存器
2016年 8月 1日 天氣報告
氣溫:32.1@ 19:10
相對濕度:百分之 60%
天氣:微雨
※ 天文台在下午 8時 40分發出八號熱帶氣旋警告信號,颱風妮妲位置為北緯 21.7度,東經 116.4度附近,接近中心最高持續風速為每小時 130公里。 

沒有留言:

張貼留言