231 や 671 などでアナログ回路が接続されているピンの MPC.PxxPFS の ASEL はいつ 1 にすれば最適でしょうか?
1. リセット解除直後、できるだけ迅速に (MSTPCRA や S12AD の初期化より先)
2. リセット解除直後 (は ASEL=0 のままとし) MSTPCRA や S12AD や S12AD1 の初期化一式が完了後
言い換えると
・回路的にデジタル入力としては中途半端な電圧がかかってしまう状況で ASEL=0 な時間が長時間あってよいか否か?
・その状況でデジタル入力部に貫通電流が流れないか?
・ S12AD のモジュールスタンバイ解除前に ASEL=1 にしてよいか(ハード的・ソフト的・両方の意味で)
という疑問です。
入力回路のところの 3入力OR は中途半端な電圧で問題ないか?
※ 231 や 671 ではほぼすべての入力端子がシュミットトリガ動作になっているので問題なさそうな気がしてきた・・・
62N とか 63T だとどうだったけ?
(この構成図だと ASEL=1 かつ PCR=1 は厳禁っスね)
わわいです
問題があるのであれば、必ずマニュアルにその記載があるはずなので、その心配はないような回路構成になってるものと思われます
#そりゃ確かなことはルネサスに問い合わせないとわかりようもないことですが。
スタンバイ解除やADCの初期化などは、一瞬(ミリ秒未満ぐらい?)で終わるので、どっちでも大差ない気もしますが、アナログ系の回路のスタンバイ解除前に、ASEL=1にしてはいけないという制約も見当たりませんので、感覚的には1が良い気がします。
入力が中間電位ならば、貫通電流は多少は生じるでしょう。
3入力ORは、ASEL=1ならば、PADが中間電位でも問題ないと思いますが(一般的には、pMOSが縦積み3段になっていて、どこかのpMOSのゲートにHが入っているので、他のゲートが中間電位でも電流は流れない)。
> ASEL=1 かつ PCR=1 は厳禁っスね
アナログ入力として使うのに、プルアアップでわざわざ電位を変えに行くのは意味不明ですが、厳禁という程でもない?
ちょっとだけ気になったのは、入力端子にいつ電位が入るのかという話です。
(1)マイコンVCC投入(リセット状態)
(2)入力端子に中間電位が印加される
(3)リセット解除
でしょうか。マイコンのVCCが入るまで、(2)が待ってくれる様な仕組みなのか、マイコンVCCと同じ系統の電源から(2)の電位が生成される仕組みなのか。((2)が、マイコンVCC印加タイミングと無関係ならそもそもNGだし、リレーとか、アナログスイッチが付いていて、マイコンがスタンバってからスイッチをONする様な仕組みには出来ないのかなとか、ちょっと思いました。)
他にご意見も出てこないようなので現ソースコードの実装のままとしておきます。
・リセット解除直後はハードウエアで ASEL=0 に初期化済み、を維持したまま
・外付け水晶振動子の駆動を開始する(発振安定には数ミリ秒を要する)
・ MSTP / S12AD の初期化を行う(他の周辺回路の初期化も行う)
・各種初期化の最終段階で ASEL=1 を実施
ちなみに現回路はごく単純に AVCC と VCC は同一3端子レギュレータにて供給し温度センサーである NTC と直列固定抵抗が ANxxx ピンに直結です。 tf さんの言うところの (1) → (2) → (3) 動作であって、回路側でリセット解除前に中間電圧がピンにかかる(待ってくれない)っス。コスト的に「待たせる回路」とか入れられないです。
まあ、問題ない使い方だと思います。
センサがNTCサーミスタなら、例えば
Pxx(I/O端子)ー R -- NTC --GND
の様な接続として、測定の時だけI/OをHにする(部品点数は増えない、ポートは1つ潰れる)という手もあるかな?(消費電流も多少減らせる)
RX231の入力はシュミットトリガなので貫通はない。もちろんパタパタする分の電気は消費しますが閾値あたりで変化する信号を受け取った普通のCMOSの貫通電流とは違ってパタパタの回数で発生するものなので特に何もせずにそのまま妥当なタイミングでアナログポートに切り替えて問題ないと思います。
NTC の自己発熱が問題になる案件だとそれやりました。ノイズ対策用の積分回路とか入っていると通電後の A/D 変換開始時間をタイマーで遅らせないと何拾っているかわからないという罠が。かと言って長時間通電すると自己発熱ががががが。
Pxx として AVcc 系を選ばないとマズイとか、そうすると ANxxx として使える端子数が半分になっちゃうとか、簡単そうに見えて落とし穴多いっス。
P03,P05,P07ならA/D変換端子を消費しません。
1本のI/Oで8本のセンサを駆動すると、10kΩのNTCサーミスタとR=10kΩなら、総抵抗=2.5kΩを1本のI/Oざっくり50ΩでON/OFF。約2%程度の誤差がでますが、必要な精度によっては&予め(試算出来る)誤差を計算で補正すれば、使い方に拠っては許容範囲かも。
(原理的に、とあるセンサの測定値が他のセンサの測定値に影響を与える方式になりますので筋の良い手法ではありませんが)