RL78/G13 ADPCレジスタのダイナミック切り替えについて

RL78/G13で開発中です。

P26ポートをアナログ入力、かつP20~P25をデジタルIOで使おうと思います。

マイコン制約があり、上記配置を固定化して使用できないため、

ADPCをダイナミックに切り替えて行っています。具体的には、

◆アナログ使用時:

P2 = 0; // output zero
ADPC = 8; // ANI0-6 is analog. ANI7-14 is digital.
PM2 = 0xff; // P2 is Input.(default)

◆デジタル使用時

P2 = _00_Pn4_OUTPUT_0 | _00_Pn5_OUTPUT_0;
ADPC = _01_ADPC_DI_ON;
PM2 = _01_PMn0_MODE_INPUT | _02_PMn1_MODE_INPUT | _04_PMn2_MODE_INPUT | _08_PMn3_MODE_INPUT | _00_PMn4_MODE_OUTPUT |
_00_PMn5_MODE_OUTPUT | _40_PMn6_NOT_USE | _80_PM2_DEFAULT;

上記問題ないでしょうか。

宜しくお願い致します。

  • チョコです。
    そのような使い方は問題が考えられます。出力に設定しているP24~P25が正常にドライブできなくなる状態が存在するのでやめた方がいいと思います。
    それよりは、常にデジタル(ADPCを01H)に設定しておいて、PM26を入力設定に固定し、ANI6をA/D変換するのがいいかもしれません。この場合には、P26のデジタル入力部分で中間電位の入力により貫通電流が流れる可能性があります。A/D変換の精度が少し落ちるかもしれませんが、この設定でもちゃんとA/D変換できますよ(もちろん、メーカの保証範囲外ですが、よく評価して問題がないことを確認して使ってください)。
  • チョコさん、早速のお返事ありがとうございます。
    もう一つ質問させてください。
    ダイナミック切り替え前提で考えたときに、問題のない方法はあるでしょうか。
    例えばP44、P45に割り当たっているOUTを無くすとか・・・
    宜しくお願い致します。
  • チョコです。
    前回回答の問題点はP24、P25の出力が途切れてしまうことです。
    P20~P25が入力であれば、アナログ入力に変更している間は、デジタル入力としては強制的にロウ(0)が読めるようになってしまいます。
    入力ポートとして、この、ロウ(0)状態を読まなければ(使わなければ)問題はありません。
    ただし、P20~P25をデジタル入力で使用している期間は、P26(ANI6)で貫通電流が流れるのは変わりません。これ以外は問題はないと思います。
  • チョコさん
    ありがとうございました。<(_ _)>