お世話になります。ackと申します。初めてΔΣ24bitADCを使用することになり,その変換時間を計算したいと思っています。通常のADCとは違い,マニュアルに1回あたりの変換時間を見つけることができませんでした。マニュアルの「A/D 変換を 1 回終了するたびに,割り込み要求(INTDSAD)が発生」という表現は,サンプリング周波数(1MHz)とオーバ・サンプリング比とA/D変換回数,平均化をする
場合は平均化データ数とどのような関係になるのでしょうか。
単純にサンプリング周期(1μs)×オーバ・サンプリング比×A/D変換回数×平均化データ数という
ことで良いのでしょうか。
ΔΣADCを使用するのが初めてのため,仕組みを勉強しながら試行錯誤を繰り返しています。ご教授いただけると幸いです。
ackさん
動作モードによってちょっと複雑みたいですね。1回の変換時間は、0.48828Ksps(@2048オーバーサンプリング)~ 15.625 ksps(@64オーバーサンプリング)×平均化数で、複数チャンネル同時変換する場合は、AUTOSACNが自動的にA/D変換回数指定で指定した値1~8032回分空打ちして変換値を安定化(Settling)するので、
・1チャンネルだけなら、変換時間×オーバーサンプリング×平均化数・複数チャンネルスキャンなら、「変換時間×オーバーサンプリング×平均化数 + A/D変換回数指定」×チャンネル数となります。
R01UH0524JJ0100 Rev.1.00の373ページにある図14-36 AUTOSCANシーケンスが分かりやすいと思います。
P.S.
図をみたら、1チャンネルだけのワンショットでもAUTOSACNが動いて空打ちするみたいですね。
こんにちはackさん、NAKAといいます。
僕もRL78/I1E使ってます。
内容はKirin先生の通りだと思います。NAKAは頭が弱いのでもうちょっと簡単に....
RL78/I1Eに搭載されたΔΣADCのサンプリング周波数は1MHz固定ですので、
これを前提として説明させて頂きます。
1回分のAD変換をどれだけでのOSRで行うかでAD変換特性が変わります。
I1EではOSRを6通り(64~2048)の中から設定でき、OSRが高い方がSINAD特性が
良くなります。
しかし、トレードオフでOSRが高いとAD変換速度が遅くなります。※UMのP362
また、SINDA特性はGainにも依存しますのでご注ください。
※24bitΔΣ特性データをご参照ください。
例)
OSR AD変換速度 AD変換時間
64 15.625ksps 64usec ←1MHzを64サンプリング
2048 488.28sps 2048usec ←1MHzを2048サンプリング
例えば、1秒間に200回程度AD変換が必要であれば、OSR=2048でも間に合います。
対象Ch=Ch0のみ、OSR=2048、AD変換回数=200回
セットリング時間を含めてAD変換200回が完了するまでの時間=約414msecとなります。
但し、これは1チャネルのみを連続変換した場合であり、複数チャネルの場合は
異なりますのでご注意ください。
AD変換回数の決め方は入力信号がDCなのか、平均化処理が必要なのかなどで
決めて頂くと良いと思います。
DC信号の場合、1回変換でも良いがばらつきを補正するため複数回AD変換する。
AC信号の場合、FFT処理をするため複数回AD変換する。など
有効bitは18~19bitでしょうか?
Kirin様,NAKA様
ご回答ありがとうございました。お二人のご親切な解説に基づいてマニュアルを
読み直してみて,少しずつ理解が増してきたように思います。
現在までのところ下記のように理解したのですが,間違いがありましたら
ご指摘いただけますでしょうか。
I1Eの⊿ΣA/D変換の場合
1. サンプリング周波数は1MHz固定(1usec周期)
2. OSR(64~2048usec)が1回の変換時間。
3. PGAxCTL2の値がA/D変換回数(1~8032回)
4. OSR×A/D変換回数(usec)毎に1回のA/D変換が完了
よって,1Chの1回あたりのA/D変換所要時間は
Settling Time + OSR×A/D変換回数(usec) ・・・(A)
さらに平均化処理を行う場合は
(A)×平均データ数(usec) ・・・(B)
複数チャンネルの場合は(A)または(B)×チャンネル数(usec)
オーバーサンプリングは一定時間内のA/D変換の分解能を増やすという
イメージがありますが,I1Eの場合はサンプリング周波数が固定のため,
時間をかけて分解能を増やすという理解でよいのでしょうか。
概ねOKです。たぶん式の書き方の問題だと思いますけども、Settling Time は平均データ数には関係ないので、(B)の式は Settling Time + OSR×A/D変換回数×平均データ数 ・・・(B')ですね。
オーバーサンプリングは、記載されている通りで、log2(OSR比)の分だけ分解能(ビット)を拡張できます!
p.s. ちなみに、デジタル(SINC)フィルタで、「セトリング時間(Settling time)としてサンプリング期間の3倍の時間(=3×1/fout)+128μsを必要とします。」と記載されているので、Settling time=OSR×1usec+A/D変換回数となりそうです。「備考 セトリング時間は,内蔵シーケンサであるAUTOSCANにて自動的に生成されます。」と記載されていので、たぶんA/D変換回数の設定に関わらず固定値が付加されるようです。実際に使っているNAKAさん教えて!
Kirin様
ご指摘ありがとうございます!平均化をする場合は Settling Time は1回の計算でよかったんですね。
勘違いしておりました。
オーバーサンプリングの理解が正しかったとすると,次はNAKA様がご指摘くださったように
変換時間と特性を考慮してA/D変換回数や平均化を決めればいいですね。
実際には2chを使用し,できれば1秒間に300回ほど変換を行いたいと思っています。
入力はDC信号で有効Bitは16bitで十分なので,精度はほどほどにしてスピード重視の設定を
計算と実験で決めようと思います。
初めてのΔΣ24bitADCで暗中模索状態で,マニュアルを読んでも自分の知識不足で言語明瞭意味不明瞭,
使いこなすまでにはほど遠いですが,これで光が見えてきました。今回の必要は満たせそうです。
本当にありがとうございました。
ついでに、 有効ビット(ENOB)の計算方法は、SNDR(=SINAD)[dB]を元にすると ENOB=(SNDR-1.76)/6.02 なので、 RL78/I1Eのデータシートから「GSET1=1, GSET2=1, fIN=50Hz ノーマル・モード,Pin=-1dBFS」typ. 85dBの時 有効ビットENOB=(85-1.76)/6.02 = 13.8bitになります。
log2(2048/64)=5、13.8+5=18.8bitとなるので、 NAKAさん情報の有効ビットが18-19ビットというのはOSR=2048の時ということになりそうです。
がんばってくださいね!
Kirin先生!
有効ビットが18-19bitは、実測で評価および、うっふっふっふっ....極秘資料入手....なんちゃって!.....笑)あまり詳しく話すとまた消されちゃいますのでそこそこに!
いつもみなさんに教えていただいてばかりのNAKAですが、多少でもお役に立ててうれしいです!
NAKAさんのところは お土地柄か、いっつも新しいものを最初に使えて羨ましいですねー^^
ありがとうございます。
そのような計算式があるのですね。ゲインはちょうど1倍で使用するので,今回有効ビットを16ビット
くらいとしてOSR=512として実験したところ,精度も期待したとおりで変換速度も十分でした!
何度も的確な情報を教えてくださり感謝いたします。ありがとうございました。
現在、某メーカのセンサー、アナログ、A/D、通信I/Fが1パッケージになった専用Socと戦ってますが、RL78/I1Eのスマアナを使ったディスクリート構成で、SNR、時間精度等性能面では完全に凌駕してやりました!!(機能面で負けてる部分もありますが...汗)
みなさーん!ルネサスのSmartAnalog MCU 結構いいですよーぉ!!どんどん使ってくださ~い!!!と媚びを売ってみる......笑)