MCR - Micom Car Rally
2015大会 マイコンカーラリーとは? 今から始めるマイコンカーラリー 技術情報 大会記録 MCRファン倶楽部 お問い合せ
マイコンカーラリートップへ マイコンカーラリートップへ
技術情報 >> R8C/M12A 技術情報
技術情報
アプリケーション
R8C/M12A 技術情報
上位入賞マイコンカー
参加者レポート
よくある質問(FAQ)
ダウンロード
R8C/M12A 技術情報
リセット端子をポートとして使う

内容
R8C/M12Aの3ピンは、リセット端子とPA_0端子が兼用になっていて、通常はリセット端子です。ここでは、PA_0端子として使う方法と、注意事項について説明します。

プログラムの説明
プログラム

リセット端子をPA_0端子に切り替えるプログラムを下記に示します。

    /* リセット端子をPA_0に変更 */
    pamcre = 0;   /* プロテクト=0,1を書き込むと   */
    pamcre = 1;   /* プロテクトが解除される       */
    hwrste = 0;   /* PA_0はI/Oポートとして動作    */
    poda_0 = 0;   /* PA_0はオープンドレインなし   */
    pamcre = 0;   /* プロテクトONにして書き込み禁止*/

レジスタの設定

レジスタの設定について説明します。

■ハードウェアリセットプロテクトレジスタ(HRPR)
bit 7 6 5 4 3 2 1 0
設定
内容
- - - - - - - PAMCRレジスタ書き込み許可ビット
0:書き込み禁止
1:書き込み許可
設定値 - - - - - - - 0→1
ビットの
名称
              PAMCRE

ポートPAモード制御レジスタ(PAMCR)を操作したいのですが、このビットはプロテクトがかかっていて、プロテクトを解除しないと操作できません。このプロテクト解除が、ハードウェアリセットプロテクトレジスタ(HRPR)のPAMCRレジスタ書き込み許可ビット(PAMCRE)です。このビットに"0"を書き込み、すぐに"1"を書き込むことによってプロテクトが解除されます。
※"1"を書き込むだけでは、解除されません。必ず"0"を書いたあとに"1"を書いてください。

■ポートPAモード制御レジスタ(PAMCR)
bit 7 6 5 4 3 2 1 0
設定
内容
- - - ハードウェアリセット
許可ビット
0:3ピンはPA_0
1:3ピンはRESET
- - - ポートPA_0オープンドレイン
制御ビット
0:オープンドレインなし
1:オープンドレインあり
設定値 - - - 0 - - - 0
ビットの
名称
      HWRSTE       PODA_0

ハードウェアリセット許可ビット(HWRSTE)を"0"にすると3ピンが通常のI/Oになり、ポートはPA_0となります。
ポートPA_0オープンドレイン制御ビット(PODA_0)は、1にするとNチャネルオープンドレイン出力となり、0にするとCMOS 出力となります。オープンドレイン出力は"0":0V出力、"1":開放状態になります。CMOS出力は、"0":0V出力、"1":5V出力になります。特別なことがない限り、CMOS出力で良いでしょう。

設定が終わったら、PAMCRレジスタ書き込み許可ビット(PAMCRE)を"0"にしてプロテクトを戻しておきます。PDAレジスタで、PA_0端子の入出力設定をしてください。

回路上の注意

PA_0端子を入力にすると、SW1が通常のプッシュスイッチになります(下図)。スイッチが足りないときは、書き込み時はリセットスイッチとして、プログラム実行時はプッシュスイッチとして使うと良いでしょう。
回路図

PA_0端子を入力にして、機器からの信号を入力しようとします。このとき、機器からの出力信号が5VでSW1をONにするとショート状態になります(左下図)。そのため、抵抗を入れてショートしないようにします(右下図)。ただし、100Ωだと50mA流れます。機器が出力することの電流値をデータシートで調べて抵抗値を決めてください。
回路図

この回路では、SW1の0Vが優先されてPA_0端子に入力されます。出力機器を優先したい場合は、SW1側に抵抗を入れてください。ただし、リセットをかけたいとき、出力機器から5Vが出力されているときはリセットされませんので、注意が必要です。

PA_0端子を出力にして、機器に信号を出力するとき、SW1をONにすると0Vが出力されます。PA_0端子から5Vを出力するとショート状態になります(左下図)。そのため、PA_0端子を出力として使う場合は、SW1と3ピンの間に1kΩ程度の抵抗を入れます(右下図)。
回路図

SW1をONにしたとき、1kΩに流れる電流は、「5V/1kΩ=5mA」になります。PA_0端子が流せる電流は、0Vを出力するとき、5Vを出力するとき、共に5mAです。出力電流が5mA以上にならないようにしてください。今回の回路は、出力する機器で消費する電流を考慮していません。出力する機器に流れる電流も考慮して回路設計してください。ロジックIC(74HCxxなど)は、入力電流が数μA程度なので、1kΩで大丈夫です。

リセット端子に戻す
hwrsteを"1"にすると、リセット端子に戻すことができます。

    pamcre = 0;   /* プロテクト=0,1を書き込むと   */
    pamcre = 1;   /* プロテクトが解除される       */
    hwrste = 1;   /* PA_0はリセット端子として動作 */
    pamcre = 0;   /* プロテクトONにして書き込み禁止*/

BACK