RX24T(64ピンパッケージ)を使用しています。
P37のオープンドレイン制御レジスタ値を設定したいのですが、ハードウェアマニュアル(REN_r01uh0576jj0200-rx24t_MAH_20170414.pdf)を見ると、PORT3のオープンドレイン制御レジスタに「ODR0」のみが記載され「ODR1」は記載されていません。
「オープンドレイン制御レジスタ0」の説明章を確認すると、ODR0にはポート4個分(Pm0,Pm1,Pm2,Pm3)の出力形態指定ビットがあります。
これら4個(Pm0,Pm1,Pm2,Pm3)のうち、P37に対応する指定ビットはどれなのでしょうか?
P37をオープンドレインにするのは PORT3.ODR1.BYTEの0x40だと思います(スマートコンフィギュレータで確認)
データシートからは抜けているけどスマートコンフィギュレータでは割り当てできる。でも、e2studioでレジスタ説明のポップアップがない。構造体定義上レジスタ構造が共通なためエラーでずにビルドできるけど実際のレジスタが存在せずにオープンドレイン設定できないと可かもしれない。それか資料の抜け。どっちなのか?
これが正しいなら資料の抜けっぽいな。
こんにちは。コメントありがとうございます。ご指摘の通り、私の手元の開発環境(CS+)でも「PORT3.ODR1.BYTE」に値をセットしてもエラーや警告等は出ないので、HWマニュアルの誤記かも知れないですね。私のデバッガでPORT3.ODR1.BYTEレジスタを調べてみます。
CS+のデバッガでも「PORT3.ODR1」にはカーソルを合わせてもレジスタの説明が表示されませんでした。「PORT3.ODR0」にはカーソルを合わせるとレジスタの説明が表示されます。やっぱり、ソースコード上は「PORT3.ODR1.BYTE」は定義されているが、実際にレジスタは存在していないかも知れません。「PORT3.ODR1」は有るのか無いのか、ルネサスに問い合わせしたいと思います。
私は実機を持っていないので確認できないのですが、ビルドは通ると思いますから、実機をお持ちなら確認して機能してたら大丈夫でしょうね。表18ー2ではサポートしていることになっていますし。ダメだとしても出力設定をLOWにして入力モードと出力モードの切り替えという方法でもオープンドレイン動作になるかなと・・・
確認した結果、「PORT3.ODR1.BYTE」の0x40を設定すれば、P37はNチャネルオープンドレイン出力になるようです。ハードウェアマニュアルに「PORT3.ODR1」が記載されていないのは誤記でした。実際に「PORT3.ODR1.BYTE」レジスタは存在します。