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;

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

宜しくお願い致します。

Parents
  • チョコです。
    そのような使い方は問題が考えられます。出力に設定しているP24~P25が正常にドライブできなくなる状態が存在するのでやめた方がいいと思います。
    それよりは、常にデジタル(ADPCを01H)に設定しておいて、PM26を入力設定に固定し、ANI6をA/D変換するのがいいかもしれません。この場合には、P26のデジタル入力部分で中間電位の入力により貫通電流が流れる可能性があります。A/D変換の精度が少し落ちるかもしれませんが、この設定でもちゃんとA/D変換できますよ(もちろん、メーカの保証範囲外ですが、よく評価して問題がないことを確認して使ってください)。
Reply
  • チョコです。
    そのような使い方は問題が考えられます。出力に設定しているP24~P25が正常にドライブできなくなる状態が存在するのでやめた方がいいと思います。
    それよりは、常にデジタル(ADPCを01H)に設定しておいて、PM26を入力設定に固定し、ANI6をA/D変換するのがいいかもしれません。この場合には、P26のデジタル入力部分で中間電位の入力により貫通電流が流れる可能性があります。A/D変換の精度が少し落ちるかもしれませんが、この設定でもちゃんとA/D変換できますよ(もちろん、メーカの保証範囲外ですが、よく評価して問題がないことを確認して使ってください)。
Children
No Data