source: asp3_wo_tecs/trunk/arch/arm_gcc/doc/uart_memo.txt@ 302

Last change on this file since 302 was 302, checked in by ertl-honda, 7 years ago

TECSレスのASP3の開発のため以下のtrunkからコピー
http://dev.toppers.jp/svn/asp3/branches/WO_TECS-3.C.0

File size: 6.2 KB
Line 
1
2 TOPPERSプロジェクト 設計メモ
3 PrimeCell UART(PL11)に関するメモ
4
5 作成者
6: 高田広章(名古屋大学)
7 最終更新: 2015年7月26日
8
9○メモの位置づけ
10
11このメモは,ARM PrimeCell UART(PL011)に関して,TOPPERSカーネルをポー
12ティングするにあたって必
13要となる事項
14をまとめたものである.
15
16○目次
17
18・参考文献
19・概要
20・プログラミングモデル
21
22○参考文献
23
24[1] PrimeCell UART (PL011) Technical Reference Manual, 2007
25Revision: r1p5
26DDI0183G_uart_pl011_r1p5_trm.pdf
27
28○概要([1] 第1章)
29
30・AMBAのAPBに接続されるスレーブモジュール
31・UARTとIrDA SIR(Serial InfraRed)に対応
32・送受信用のFIFOバッファを持つ.ディスエーブルすることも可能
33 - 送信FIFOは8ビット幅
34
35 - 受信FIFOは12ビット幅
36
37・DMAにも対応
38・バージョンがr1p0〜r1p5まであり,少しずつバージョンアップされている
39 - r1p5で,FIFOバッファのサイズが大きくなった
40・PrimeCell UART(PL010)とは,後方互換性がない
41
42○プログラミングモデル(Programmers' Model)([1] 第3章)
43
44※凡例:
45 レジスタ名(レジスタ略称)オフセット,ビット幅
46
47
48データレジスタ(UADR)0x000, 12/8
49 - データ(8ビット)をライトすると,送信FIFOに送られる
50 - リードすると,受信FIFOから,データ(8ビット)とステータス(4ビッ
51 ト)が取り出される
52 - ステータスの構成
53 + OE(Overrun error)
54 + BE(Break error)
55 + PE(Parity error)
56 + FE(Framing error)
57
58受信ステータスレジスタ(UARTRSR)0x004, 4/0
59エラークリアレジスタ(UARTECR)
60 - リードすると,ステータス(4ビット)が読み出される
61 + データレジスタをå…
62ˆã«èª­ã‚€å¿…
63要がある
64 + OEは,最新の状æ…
65‹ãŒèª­ã‚ã‚‹
66 + BE,PE,FEは,FIFOのå…
67ˆé ­ã®çŠ¶æ…
68‹ãŒèª­ã‚ã‚‹
69 - ライトすると,ステータスがクリアされる(データは無視)
70
71フラグレジスタ(UARTFR)0x018, 9/-(RO)
72 - 以下の状æ…
73‹ã‚’それぞれ1ビットで参ç…
74§ã§ãã‚‹
75 + RI:Ring Indicator(外部からの信号)
76 + TXFE:送信FIFOが空
77 + RXFF:受信FIFOがフル
78 + TXFF:送信FIFOがフル
79 + RXFE:受信FIFOが空
80 + BUSY:データ送信中
81 + DCD:Data Carrir Detect(外部からの信号)
82 + DSR:Data Set Ready(外部からの信号)
83 + CTS:Clear To Send(外部からの信号)
84
85IrDAローパワーカウンタレジスタ(UARTILPR)0x20, 8
86 <省略>
87
88ボーレート(整数部)レジスタ(UARTIBRD)0x24, 16
89 - ボーレートの整数部(16ビット)を設定するレジスタ
90 - このレジスタ書き込んだ後に,ライン制御レジスタに書き込むことが必
91要
92
93ボーレート(小数部)レジスタ(UARTFBRD)0x28, 6
94 - ボーレートの小数部(6ビット)を設定するレジスタ
95 - このレジスタ書き込んだ後に,ライン制御レジスタに書き込むことが必
96要
97
98ライン制御レジスタ(UARTLCR_H)0x2c, 8
99 - シリアル通信の規格を設定するためのレジスタ
100 [7] SPS:スティッキーパリティに
101 [6:5] WLEN:データ長(8ビット,7ビット,6ビット,5ビットから選択)
102 [4] FEN:FIFOイネーブル
103 [3] STP2:ストップビットを2ビットに
104 [2] EPS:偶数パリティに
105 [1] PEN:パリティを用いる
106 [0] BRK:ブレークを送信する
107 - これらの3つのレジスタは,UARTをディスエーブルして操作する
108
109制御レジスタ(UARTCR)0x30, 16
110 - UARTを動作を設定するためのレジスタ
111 [15] CTSEn:CTSハードウェアフロー制御を行う
112 [14] RTSEn:RTSハードウェアフロー制御を行う
113 [13] Out2:UART Out2の反転(RIに使える)
114 [12] Out1:UART Out1の反転(DCDに使える)
115 [11] RTS:RTS(Request To Send)の反転
116 [10] DTR:DTR(Data Transmit Ready)の反転
117 [9] RXE:受信イネーブル
118 [8] TXE:送信イネーブル
119 [7] LBE:ループバックイネーブル
120 [6:3] 予約
121 [2] SIRLP:SIRローパワーIrDAモード
122 [1] SIREN:SIRイネーブル
123 [0] UARTEN:UARTイネーブル
124
125割込みFIFOレベル選択レジスタ(UARTIFLS)0x34, 6
126 - 送受信独立に,FIFOのデータ量がどれだけになったところで割込みをか
127 けるかを設定できる
128 + 1/8, 1/4, 1/2, 3/4, 7/8
129 - デフォルトでは,送受信とも,FIFOが半分のところで割込みがかかる
130
131割込みマスクセット/クリアレジスタ(UARTIMSC)0x38, 11
132 - 割込みマスクを設定するレジスタ
133 + 1:割込みを許可(割込みをマスクをセットと書いてあるが…)
134 + 0:割込みを禁止(割込みをマスクをクリアと書いてあるが…)
135 - 以下の割込みに対する割込みマスクをセット/クリアできる
136 + OEIM:Overrun Error Interrupt Mask
137 + BEIM
138 + PEIM
139 + FEIM
140 + RTIM:受信タイムアウト割込みマスク
141 + TXIM:送信割込みマスク
142 + RXIM:受信割込みマスク
143 + DSRMIM
144 + DCDMIM
145 + CTSMIM
146 + RIMIM
147 ※マニュアルは,マスクのセット/クリアと,割込を許可/禁止の関係を,
148  勘違いして書いてあると思われる.別の箇所には,1が割込みイネーブル
149  であると明確に記載してある.
150
151生の割込みステータスレジスタ(UARTRIS)0x3c, 11/-(RO)
152
153マスクされた割込みステータスレジスタ(UARTMIS)0x40, 11/-(RO)
154
155割込みクリアレジスタ(UARTICR)0x44, -/11(WO)
156
157DMA制御レジスタ(UARTDMACR)0x48, 3
158
159●ペリフェラルの種類を識別するためのレジスタ
160
161UARTペリフェラルID0レジスタ(UARTPeriphID0)0xfe0, 8/-(RO)
162UARTペリフェラルID1レジスタ(UARTPeriphID1)0xfe4, 8/-(RO)
163UARTペリフェラルID2レジスタ(UARTPeriphID2)0xfe8, 8/-(RO)
164UARTペリフェラルID3レジスタ(UARTPeriphID3)0xfec, 8/-(RO)
165UART PCell ID0レジスタ(UARTPCellID0)0xff0, 8/-(RO)
166UART PCell ID1レジスタ(UARTPCellID1)0xff4, 8/-(RO)
167UART PCell ID2レジスタ(UARTPCellID2)0xff8, 8/-(RO)
168UART PCell ID3レジスタ(UARTPCellID3)0xffc, 8/-(RO)
169
170以上
Note: See TracBrowser for help on using the repository browser.