R8C/3MQでのポート設定(p0_4)について

Former Member
Former Member

皆様、はじめまして。つくしと申します。

以後よろしくお願いします。

さて早速で恐縮ですが、質問です。

現在、R8C/3MQを使用したプログラムを作成中です。

プログラムも凡そ順調に動いているのですが、どうしても「ポート0_4」が出力設定に変更できません。

「pd0_4」レジスタが常に0となってしまいます。

何か心当たりのある方はいらっしゃらないでしょうか。

確認は、

 ・デバッガ(E8a)でレジスタ値を読み取る (pd0_4=1; P0_4=0; と記述した箇所をステップ実行しても変更なし)

 ・ポート状態をテスタで確認 (上記と同様に、pd0_4=1; P0_4=0; の箇所をステップしても電圧に変更なし。(外部プルアップのため、3.3V固定))

の2通りを実施しました。

データシートを見ると、アンテナスイッチ出力、タイマRCコンペア出力、タイマRE出力などと共用しているピンですが、入力専用ピンではない様です。

「ANTSWEN」「TRCIOBSEL」「TOENA」の各レジスタに問題が無い事も確認しました。

デバッガ(E8a)を接続して、プログラムロード前に「pd0_4」「p0_4」レジスタを直接操作してもやはり変更出来ませんでした。

対象マイコンはR5F213MCQNNP(R8C/3MQ)、開発環境はWindows7 Pro(32bit)、HEW(Version 4.09.00.007・コンパイラV.5.45 Release 01)です。

皆様のお知恵をお貸しください。

Parents
  • つくしさん

    もしかして、P0_4とGNDが基板上でショートしてたりしません?

    その昔、10KΩプルダウンのはずが、誤実装でなぜか10Ωでプルダウンされていたことがありました。
    デジタル系部品の誤実装はなかなか気がつかないんですよね、、、、

  • Former Member
    Former Member in reply to Kirin

    kirinnさん、お返事ありがとうございます。

    確かにショートは考えていませんでした。ちょっと確認してみます。

    ですがそれが原因だとすると、p0_4だけならともかくpd0_4が動かないのはちょっと納得いかない挙動ですね。

  • つくしさん

    そういえば、PD0を操作する直前に、「PRCR=0x04;」してます?

    PRCR=0x04;
    PD0=0x10;
    で試してみてください。

  • Former Member
    Former Member in reply to Kirin

    Kirinさん

    お返事ありがとうございます。

    前回名前間違えました。すみません。

    む、PRCRとは何ぞや、と思って調べてみたら・・・なんとプロテクトですか!

    これはすっかり見落としていました。恐らくこれですね。ご指摘ありがとうございます。

    しかしなんでこのポートだけプロテクトが掛かっているのでしょうか。うーむ、意図が謎です。

    ちょっと今すぐは確認できないので、動作報告は後になります。また後ほど。

  • Former Member
    Former Member in reply to Former Member

    動作報告です。

    以下のコードで、無事pd0_4レジスタの書き換えに成功しました。

    Kirinさん、鋭いご指摘、感謝感謝です。

    prc2 = 1;

    pd0_4 = 1;

    prc2だけプロテクトが自動復帰する仕様なのですね。

    おそらく元の用途があったのでしょうが、一体何の用途だったのやら。

    H8→R8C→RL78とどんどん変わったせいで、ペリフェラル仕様がコロコロと変わるのでいまいち慣れませんね。

    私は元々H系(この言い方はNGかな?)に属していたのですが、データシートやマニュアルの書き方も変わってしまって、

    ちょっとH系の書き方が懐かしく感じられる今日この頃です。

    では、ありがとうございました。

Reply
  • Former Member
    Former Member in reply to Former Member

    動作報告です。

    以下のコードで、無事pd0_4レジスタの書き換えに成功しました。

    Kirinさん、鋭いご指摘、感謝感謝です。

    prc2 = 1;

    pd0_4 = 1;

    prc2だけプロテクトが自動復帰する仕様なのですね。

    おそらく元の用途があったのでしょうが、一体何の用途だったのやら。

    H8→R8C→RL78とどんどん変わったせいで、ペリフェラル仕様がコロコロと変わるのでいまいち慣れませんね。

    私は元々H系(この言い方はNGかな?)に属していたのですが、データシートやマニュアルの書き方も変わってしまって、

    ちょっとH系の書き方が懐かしく感じられる今日この頃です。

    では、ありがとうございました。

Children
No Data