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送信データレジスタ -

ソースコードの修正

[今回の成果物]

[今回追加するファイル]

  • なし

[今回修正するファイル]

  • main.c
  • lib.c
  • lib.h

とはいえ、今回修正するファイルについては書籍との差分が無いため解説はしません。 1stステップのファイルに書籍の差分を取込むだけで2ndステップのソースコードが完成します。

確認方法

1stステップと同様の方法で確認できます。

結果

問題ないことを確認しました。

参考文献

  1. 坂井弘亮, 12ステップで作る組込みOS自作入門, カットシステム, 2010
  2. NEC Electronics Corporation, ユーザーズマニュアル V850ES/JG2 32ビット・シングルチップ・マイクロコントローラ ハードウェア編, NEC Electronics Corporation, 2005
  3. 浅沼重保, シリアル・ポートを使ったプログラミング, インタ-フェ-ス, vol. 33, no. 5, pp. 122-133, May. 2007