[270] | 1 | /*
|
---|
[429] | 2 | * TOPPERS Software
|
---|
| 3 | * Toyohashi Open Platform for Embedded Real-Time Systems
|
---|
| 4 | *
|
---|
[270] | 5 | * Copyright (C) 2001-2011 by Industrial Technology Institute,
|
---|
| 6 | * Miyagi Prefectural Government, JAPAN
|
---|
| 7 | * Copyright (C) 2007-2016 by Embedded and Real-Time Systems Laboratory
|
---|
| 8 | * Graduate School of Information Science, Nagoya Univ., JAPAN
|
---|
[429] | 9 | *
|
---|
[270] | 10 | * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
|
---|
| 11 | * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
|
---|
| 12 | * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
|
---|
| 13 | * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
|
---|
| 14 | * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
|
---|
| 15 | * スコード中に含まれていること.
|
---|
| 16 | * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
|
---|
| 17 | * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
|
---|
| 18 | * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
|
---|
| 19 | * の無保証規定を掲載すること.
|
---|
| 20 | * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
|
---|
| 21 | * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
|
---|
| 22 | * と.
|
---|
| 23 | * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
|
---|
| 24 | * 作権表示,この利用条件および下記の無保証規定を掲載すること.
|
---|
| 25 | * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
|
---|
| 26 | * 報告すること.
|
---|
| 27 | * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
|
---|
| 28 | * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
|
---|
| 29 | * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
|
---|
| 30 | * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
|
---|
| 31 | * 免責すること.
|
---|
[429] | 32 | *
|
---|
[270] | 33 | * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
|
---|
| 34 | * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
|
---|
| 35 | * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
|
---|
| 36 | * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
|
---|
| 37 | * の責任を負わない.
|
---|
[429] | 38 | *
|
---|
[270] | 39 | * $Id$
|
---|
| 40 | */
|
---|
| 41 |
|
---|
| 42 | /*
|
---|
| 43 | * FIFO内蔵シリアルコミュニケーションインタフェースに関する定義
|
---|
| 44 | */
|
---|
| 45 |
|
---|
| 46 | #ifndef TOPPERS_SCIF_H
|
---|
| 47 | #define TOPPERS_SCIF_H
|
---|
| 48 |
|
---|
| 49 | /*
|
---|
| 50 | * SCIFレジスタの番地の定義
|
---|
| 51 | */
|
---|
| 52 | #define SCIF_SCSMR(base) ((uint16_t *)(base + 0x00U))
|
---|
| 53 | #define SCIF_SCBRR(base) ((uint8_t *)(base + 0x04U))
|
---|
| 54 | #define SCIF_SCSCR(base) ((uint16_t *)(base + 0x08U))
|
---|
| 55 | #define SCIF_SCFTDR(base) ((uint8_t *)(base + 0x0cU))
|
---|
| 56 | #define SCIF_SCFSR(base) ((uint16_t *)(base + 0x10U))
|
---|
| 57 | #define SCIF_SCFRDR(base) ((uint8_t *)(base + 0x14U))
|
---|
| 58 | #define SCIF_SCFCR(base) ((uint16_t *)(base + 0x18U))
|
---|
| 59 | #define SCIF_SCFDR(base) ((uint16_t *)(base + 0x1cU))
|
---|
| 60 | #define SCIF_SCSPTR(base) ((uint16_t *)(base + 0x20U))
|
---|
| 61 | #define SCIF_SCLSR(base) ((uint16_t *)(base + 0x24U))
|
---|
| 62 | #define SCIF_SCEMR(base) ((uint16_t *)(base + 0x28U))
|
---|
| 63 |
|
---|
| 64 | /*
|
---|
| 65 | * シリアルモードレジスタ(SCIF_SCSMR)の設定値
|
---|
| 66 | */
|
---|
[429] | 67 | #define SCIF_SCSMR_ASYNC 0x0000U /* 調歩同期式モード */
|
---|
[270] | 68 | #define SCIF_SCSMR_SYNC 0x0080U /* クロック同期式モード */
|
---|
[429] | 69 | #define SCIF_SCSMR_8BIT 0x0000U /* 8ビットデータ */
|
---|
[270] | 70 | #define SCIF_SCSMR_7BIT 0x0040U /* 7ビットデータ */
|
---|
[429] | 71 | #define SCIF_SCSMR_NOPARITY 0x0000U /* パリティビットなし */
|
---|
| 72 | #define SCIF_SCSMR_PARITY 0x0020U /* パリティビット付加 */
|
---|
| 73 | #define SCIF_SCSMR_EVEN 0x0000U /* 偶数パリティ */
|
---|
[270] | 74 | #define SCIF_SCSMR_ODD 0x0010U /* 奇数パリティ */
|
---|
[429] | 75 | #define SCIF_SCSMR_1STOP 0x0000U /* 1ストッピビット */
|
---|
[270] | 76 | #define SCIF_SCSMR_2STOP 0x0008U /* 2ストッピビット */
|
---|
| 77 | #define SCIF_SCSMR_CKS1 0x0000U /* P1φクロック1 */
|
---|
| 78 | #define SCIF_SCSMR_CKS4 0x0001U /* P1φ/4クロック */
|
---|
| 79 | #define SCIF_SCSMR_CKS16 0x0002U /* P1φ/16クロック */
|
---|
| 80 | #define SCIF_SCSMR_CKS64 0x0003U /* P1φ/64クロック */
|
---|
| 81 |
|
---|
| 82 | /*
|
---|
| 83 | * シリアルコントロールレジスタ(SCIF_SCSCR)の設定値
|
---|
| 84 | */
|
---|
| 85 | #define SCIF_SCSCR_TIE 0x0080U /* 送信割込み許可 */
|
---|
| 86 | #define SCIF_SCSCR_RIE 0x0040U /* 受信割込み等許可 */
|
---|
| 87 | #define SCIF_SCSCR_TE 0x0020U /* 送信許可 */
|
---|
| 88 | #define SCIF_SCSCR_RE 0x0010U /* 受信許可 */
|
---|
| 89 | #define SCIF_SCSCR_REIE 0x0008U /* 受信エラー割込み等許可 */
|
---|
| 90 | #define SCIF_SCSCR_INTCLK 0x0000U /* 内部クロック,CKS端子は無視 */
|
---|
| 91 | /* (調歩同期式の場合) */
|
---|
| 92 |
|
---|
| 93 | /*
|
---|
| 94 | * シリアルステータスレジスタ(SCIF_SCFSR)の参照値
|
---|
| 95 | */
|
---|
| 96 | #define SCIF_SCFSR_PER_MASK 0xf000U /* パリティエラー数抽出マスク */
|
---|
| 97 | #define SCIF_SCFSR_PER_SHIFT 12 /* パリティエラー数抽出右シフト数 */
|
---|
| 98 | #define SCIF_SCFSR_FER_MASK 0x0f00U /* フレーミングエラー数抽出マスク */
|
---|
| 99 | #define SCIF_SCFSR_FER_SHIFT 8 /* フレーミングエラー数抽出右シフト数 */
|
---|
| 100 | #define SCIF_SCFSR_ER 0x0080U /* 受信エラー */
|
---|
| 101 | #define SCIF_SCFSR_TEND 0x0040U /* 送信完了 */
|
---|
| 102 | #define SCIF_SCFSR_TDFE 0x0020U /* 送信FIFOデータエンプティ */
|
---|
| 103 | #define SCIF_SCFSR_BRK 0x0010U /* ブレーク検出 */
|
---|
| 104 | #define SCIF_SCFSR_FER 0x0008U /* フレーミングエラー検出 */
|
---|
| 105 | #define SCIF_SCFSR_PER 0x0004U /* パリティエラー検出 */
|
---|
| 106 | #define SCIF_SCFSR_RDF 0x0002U /* 受信FIFOデータフル */
|
---|
| 107 | #define SCIF_SCFSR_DR 0x0001U /* 受信データレディ */
|
---|
| 108 |
|
---|
| 109 | /*
|
---|
| 110 | * FIFOコントロールレジスタ(SCIF_SCFCR)の設定値
|
---|
| 111 | */
|
---|
| 112 | #define SCIF_SCFCR_RSTRG_15 0x0000U /* RTS#出力アクティブトリガ:15 */
|
---|
| 113 | #define SCIF_SCFCR_RSTRG_1 0x0100U /* RTS#出力アクティブトリガ:1 */
|
---|
| 114 | #define SCIF_SCFCR_RSTRG_4 0x0200U /* RTS#出力アクティブトリガ:4 */
|
---|
| 115 | #define SCIF_SCFCR_RSTRG_6 0x0300U /* RTS#出力アクティブトリガ:6 */
|
---|
| 116 | #define SCIF_SCFCR_RSTRG_8 0x0400U /* RTS#出力アクティブトリガ:8 */
|
---|
| 117 | #define SCIF_SCFCR_RSTRG_10 0x0500U /* RTS#出力アクティブトリガ:10 */
|
---|
| 118 | #define SCIF_SCFCR_RSTRG_12 0x0600U /* RTS#出力アクティブトリガ:12 */
|
---|
| 119 | #define SCIF_SCFCR_RSTRG_14 0x0700U /* RTS#出力アクティブトリガ:14 */
|
---|
| 120 | #define SCIF_SCFCR_RTRG_1 0x0000U /* 受信FIFOデータ数トリガ:1 */
|
---|
| 121 | #define SCIF_SCFCR_RTRG_4 0x0040U /* 受信FIFOデータ数トリガ:4 */
|
---|
| 122 | #define SCIF_SCFCR_RTRG_8 0x0080U /* 受信FIFOデータ数トリガ:8 */
|
---|
| 123 | #define SCIF_SCFCR_RTRG_14 0x00C0U /* 受信FIFOデータ数トリガ:14 */
|
---|
| 124 | #define SCIF_SCFCR_TTRG_8 0x0000U /* 送信FIFOデータ数トリガ:8 */
|
---|
| 125 | #define SCIF_SCFCR_TTRG_4 0x0010U /* 送信FIFOデータ数トリガ:4 */
|
---|
| 126 | #define SCIF_SCFCR_TTRG_2 0x0020U /* 送信FIFOデータ数トリガ:2 */
|
---|
| 127 | #define SCIF_SCFCR_TTRG_0 0x0030U /* 送信FIFOデータ数トリガ:0 */
|
---|
| 128 | #define SCIF_SCFCR_MCE 0x0008U /* CTS#,RTS#許可 */
|
---|
| 129 | #define SCIF_SCFCR_TFRST 0x0004U /* 送信FIFOデータレジスタリセット */
|
---|
| 130 | #define SCIF_SCFCR_RFRST 0x0002U /* 受信FIFOデータレジスタリセット */
|
---|
| 131 | #define SCIF_SCFCR_LOOP 0x0001U /* ループバックテスト */
|
---|
| 132 |
|
---|
| 133 | /*
|
---|
| 134 | * FIFOデータカウントレジスタ(SCIF_SCFDR)の参照値
|
---|
| 135 | */
|
---|
| 136 | #define SCIF_SCFDR_T_MASK 0x1f00U /* 未送信データ数抽出マスク */
|
---|
| 137 | #define SCIF_SCFDR_T_SHIFT 8 /* 未送信データ数抽出右シフト数 */
|
---|
| 138 | #define SCIF_SCFDR_R_MASK 0x001fU /* 受信データ数抽出マスク */
|
---|
| 139 | #define SCIF_SCFDR_R_SHIFT 0 /* 受信データ数抽出右シフト数 */
|
---|
| 140 |
|
---|
| 141 | /*
|
---|
| 142 | * ラインステータスレジスタ(SCIF_SCLSR)の参照値
|
---|
| 143 | */
|
---|
| 144 | #define SCIF_SCLSR_ORER 0x0001U /* オーバーランエラー */
|
---|
| 145 |
|
---|
| 146 | /*
|
---|
| 147 | * シリアル拡張モードレジスタ(SCIF_SCEMR)の設定値
|
---|
| 148 | */
|
---|
| 149 | #define SCIF_SCEMR_BGDM 0x0080U /* ボーレートジェネレータ倍速モード */
|
---|
| 150 | #define SCIF_SCEMR_ABCS16 0x0000U /* ビットレートの16倍の基本クロック */
|
---|
| 151 | #define SCIF_SCEMR_ABCS8 0x0001U /* ビットレートの8倍の基本クロック */
|
---|
| 152 |
|
---|
| 153 | #endif /* TOPPERS_SCIF_H */
|
---|