2ndステップ 開発環境の作成
| 作成日 | : | 2011/10/31 |
| 最終更新日 | : | 2020/07/05 |
2ndステップ 開発環境の作成
| 作成日 | : | 2011/10/31 |
| 最終更新日 | : | 2020/07/05 |
概要
本ステップではアシンクロナス・シリアル・インタフェースの説明と、数値を出力できるようにする関数の追加をしました[1]。
内蔵シリアル・コントローラ
アシンクロナス・シリアル・インタフェースの制御
μPD70F3716GCはアシンクロナス・シリアル・インタフェースを3つ持ちます[2]。
それらはUARTA0、UARTA1、UARTA2と呼ばれます。
それぞれに対応する端子には別の機能も割り当てられており、アシンクロナス・シリアル・インタフェースを使用する場合には同時に対応する機能を使用することができません。
μPD70F3716GCでアシンクロナス・シリアル・インタフェースを操作するためのレジスタは以下のように固定でマッピングされています[2][3]。
なお、細かいレジスタの意味や設定値についてはユーザーズマニュアル V850ES/JG2 32ビット・シングルチップ・マイクロコントローラ ハードウェア編[2]を参照してください。
今回の実装としては、シリアル通信に関する設定は12ステップ本[1]にあわせています。
即ち、データ長8ビット、ストップビット長1ビット、パリティ無しに設定しています。
表1. アシンクロナス・シリアル・インタフェースを操作するためのレジスタ
| |
レジスタ名 |
アドレス |
サイズ |
意味 |
詳細 |
| UARTA0 |
PMC3 |
FFFFF446H |
2バイト |
ポート3の機能を切り替える UARTA0の使用の有無を切り替える |
| ビット名 |
位置 |
サイズ |
意味 |
| PMC31 |
第1ビット |
1ビット |
P31端子の設定 RXDA0の使用可否 |
| PMC30 |
第0ビット |
1ビット |
P30端子の設定 TXDA0の使用可否 |
|
| PFC3 |
FFFFF466H |
2バイト |
ポート3の兼用機能を指定する |
| ビット名 |
位置 |
サイズ |
意味 |
| PFC31 |
第1ビット |
1ビット |
P31端子の設定 RXDA0の使用可否 |
| PFC30 |
第0ビット |
1ビット |
P30端子の設定 TXDA0の使用可否 |
|
| UA0CTL0 |
FFFFFA00H |
1バイト |
UARTA0シリアル転送動作を制御する |
| ビット名 |
位置 |
サイズ |
意味 |
| UA0PWR |
第7ビット |
1ビット |
動作の制御 |
| UA0TXE |
第6ビット |
1ビット |
送信動作の可否 |
| UA0RXE |
第5ビット |
1ビット |
受信動作の可否 |
| UA0DIR |
第4ビット |
1ビット |
転送方向選択 |
| UA0PS1 |
第3ビット |
2ビット |
送信時パリティの選択 |
| UA0PS0 |
第2ビット |
| UA0CL |
第1ビット |
1ビット |
データ長の指定 |
| UA0SL |
第0ビット |
1ビット |
ストップビットの指定 |
|
| UA0CTL1 |
FFFFFA01H |
1バイト |
UARTA0のボーレートを指定する |
1stステップを参照 |
| UA0CTL2 |
FFFFFA02H |
1バイト |
| UA0OPT |
FFFFFA03H |
1バイト |
UARTA0のオプション制御 |
| ビット名 |
位置 |
サイズ |
意味 |
| UA0SRF |
第7ビット |
1ビット |
SBF受信フラグ |
| UA0SRT |
第6ビット |
1ビット |
SBF受信トリガ |
| UA0STT |
第5ビット |
1ビット |
SBF送信トリガ |
| UA0SLS2 |
第4ビット |
3ビット |
SBF送信長の選択 |
| UA0SLS1 |
第3ビット |
| UA0SLS0 |
第2ビット |
| UA0TDL |
第1ビット |
1ビット |
送信データレベルの指定 |
| UA0RDL |
第0ビット |
1ビット |
受信データレベルの指定 |
|
| UA0STR |
FFFFFA04H |
1バイト |
UARTA0の状態を読む |
| ビット名 |
位置 |
サイズ |
意味 |
| UA0TSF |
第7ビット |
1ビット |
転送状態フラグ |
| UA0PE |
第2ビット |
1ビット |
パリティエラーフラグ |
| UA0FE |
第1ビット |
1ビット |
フレーミングエラーフラグ |
| UA0OVE |
第0ビット |
1ビット |
オーバランエラーフラグ |
|
| UA0RX |
FFFFFA06H |
1バイト |
UARTA0受信データレジスタ |
- |
| UA0TX |
FFFFFA07H |
1バイト |
UARTA0送信データレジスタ |
- |
| UARTA1 |
PMC9 |
FFFFF452H |
2バイト |
ポート9の機能を切り替える UARTA1の使用の有無を切り替える |
| ビット名 |
位置 |
サイズ |
意味 |
| PMC91 |
第1ビット |
1ビット |
P91端子の設定 RXDA1の使用可否 |
| PMC90 |
第0ビット |
1ビット |
P30端子の設定 TXDA1の使用可否 |
|
| PFC9 |
FFFFF472H |
2バイト |
ポート9の兼用機能を指定する |
| ビット名 |
位置 |
サイズ |
意味 |
| PFC91 |
第1ビット |
1ビット |
P91端子の設定 RXDA1の使用可否 |
| PFC90 |
第0ビット |
1ビット |
P90端子の設定 TXDA1の使用可否 |
|
| PFCE9 |
FFFFF712H |
2バイト |
ポート9の兼用機能を指定する |
| ビット名 |
位置 |
サイズ |
意味 |
| PFC91 |
第1ビット |
1ビット |
P91端子の設定 RXDA1の使用可否 |
| PFC90 |
第0ビット |
1ビット |
P90端子の設定 TXDA1の使用可否 |
|
| UA1CTL0 |
FFFFFA10H |
1バイト |
UARTA1シリアル転送動作を制御する |
| ビット名 |
位置 |
サイズ |
意味 |
| UA1PWR |
第7ビット |
1ビット |
動作の制御 |
| UA1TXE |
第6ビット |
1ビット |
送信動作の可否 |
| UA1RXE |
第5ビット |
1ビット |
受信動作の可否 |
| UA1DIR |
第4ビット |
1ビット |
転送方向選択 |
| UA1PS1 |
第3ビット |
2ビット |
送信時パリティの選択 |
| UA1PS0 |
第2ビット |
| UA1CL |
第1ビット |
1ビット |
データ長の指定 |
| UA1SL |
第0ビット |
1ビット |
ストップビットの指定 |
|
| UA1CTL1 |
FFFFFA11H |
1バイト |
UARTA1のボーレートを指定する |
1stステップを参照 |
| UA1CTL2 |
FFFFFA12H |
1バイト |
| UA1OPT |
FFFFFA13H |
1バイト |
UARTA1のオプション制御 |
| ビット名 |
位置 |
サイズ |
意味 |
| UA1SRF |
第7ビット |
1ビット |
SBF受信フラグ |
| UA1SRT |
第6ビット |
1ビット |
SBF受信トリガ |
| UA1STT |
第5ビット |
1ビット |
SBF送信トリガ |
| UA1SLS2 |
第4ビット |
3ビット |
SBF送信長の選択 |
| UA1SLS1 |
第3ビット |
| UA1SLS0 |
第2ビット |
| UA1TDL |
第1ビット |
1ビット |
送信データレベルの指定 |
| UA1RDL |
第0ビット |
1ビット |
受信データレベルの指定 |
|
| UA1STR |
FFFFFA14H |
1バイト |
UARTA1の状態を読む |
| ビット名 |
位置 |
サイズ |
意味 |
| UA1TSF |
第7ビット |
1ビット |
転送状態フラグ |
| UA1PE |
第2ビット |
1ビット |
パリティエラーフラグ |
| UA1FE |
第1ビット |
1ビット |
フレーミングエラーフラグ |
| UA1OVE |
第0ビット |
1ビット |
オーバランエラーフラグ |
|
| UA1RX |
FFFFFA16H |
1バイト |
UARTA1受信データレジスタ |
- |
| UA1TX |
FFFFFA17H |
1バイト |
UARTA1送信データレジスタ |
- |
| UARTA2 |
PMC3 |
FFFFF446H |
2バイト |
ポート3の機能を切り替える UARTA2の使用の有無を切り替える |
| ビット名 |
位置 |
サイズ |
意味 |
| PMC39 |
第9ビット |
1ビット |
P39端子の設定 RXDA2の使用可否 |
| PMC38 |
第8ビット |
1ビット |
P38端子の設定 TXDA2の使用可否 |
|
| PFC3 |
FFFFF466H |
2バイト |
ポート3の兼用機能を指定する |
| ビット名 |
位置 |
サイズ |
意味 |
| PFC39 |
第9ビット |
1ビット |
P39端子の設定 RXDA2の使用可否 |
| PFC38 |
第8ビット |
1ビット |
P38端子の設定 TXDA2の使用可否 |
|
| UA2CTL0 |
FFFFFA20H |
1バイト |
UARTA2シリアル転送動作を制御する |
| ビット名 |
位置 |
サイズ |
意味 |
| UA2PWR |
第7ビット |
1ビット |
動作の制御 |
| UA2TXE |
第6ビット |
1ビット |
送信動作の可否 |
| UA2RXE |
第5ビット |
1ビット |
受信動作の可否 |
| UA2DIR |
第4ビット |
1ビット |
転送方向選択 |
| UA2PS1 |
第3ビット |
2ビット |
送信時パリティの選択 |
| UA2PS0 |
第2ビット |
| UA2CL |
第1ビット |
1ビット |
データ長の指定 |
| UA2SL |
第0ビット |
1ビット |
ストップビットの指定 |
|
| UA2CTL1 |
FFFFFA21H |
1バイト |
UARTA2のボーレートを指定する |
1stステップを参照 |
| UA2CTL2 |
FFFFFA22H |
1バイト |
| UA2OPT |
FFFFFA23H |
1バイト |
UARTA2のオプション制御 |
| ビット名 |
位置 |
サイズ |
意味 |
| UA2SRF |
第7ビット |
1ビット |
SBF受信フラグ |
| UA2SRT |
第6ビット |
1ビット |
SBF受信トリガ |
| UA2STT |
第5ビット |
1ビット |
SBF送信トリガ |
| UA2SLS2 |
第4ビット |
3ビット |
SBF送信長の選択 |
| UA2SLS1 |
第3ビット |
| UA2SLS0 |
第2ビット |
| UA2TDL |
第1ビット |
1ビット |
送信データレベルの指定 |
| UA2RDL |
第0ビット |
1ビット |
受信データレベルの指定 |
|
| UA2STR |
FFFFFA24H |
1バイト |
UARTA2の状態を読む |
| ビット名 |
位置 |
サイズ |
意味 |
| UA2TSF |
第7ビット |
1ビット |
転送状態フラグ |
| UA2PE |
第2ビット |
1ビット |
パリティエラーフラグ |
| UA2FE |
第1ビット |
1ビット |
フレーミングエラーフラグ |
| UA2OVE |
第0ビット |
1ビット |
オーバランエラーフラグ |
|
| UA2RX |
FFFFFA26H |
1バイト |
UARTA2受信データレジスタ |
- |
| UA2TX |
FFFFFA27H |
1バイト |
UARTA2送信データレジスタ |
- |
ソースコードの修正
[今回の成果物]
[今回追加するファイル]
[今回修正するファイル]
とはいえ、今回修正するファイルについては書籍との差分が無いため解説はしません。
1stステップのファイルに書籍の差分を取込むだけで2ndステップのソースコードが完成します。
確認方法
1stステップと同様の方法で確認できます。
結果
問題ないことを確認しました。
参考文献
- 坂井弘亮, 12ステップで作る組込みOS自作入門, カットシステム, 2010
- NEC Electronics Corporation, ユーザーズマニュアル V850ES/JG2 32ビット・シングルチップ・マイクロコントローラ ハードウェア編, NEC Electronics Corporation, 2005
- 浅沼重保, シリアル・ポートを使ったプログラミング, インタ-フェ-ス, vol. 33, no. 5, pp. 122-133, May. 2007