OPAMPでADC inを駆動してchセパレーションが悪いchだと-40dBぐらいしかない、これが発端.@13Hz ←13MHzじゃないぞ
プリント基板配線がch同士で並んで150mmぐらい走行している場所がある(GNDガード有)のでそこでクロストークしてるんだろうと、パターンカットとシールド線jumperを試みたが全く変化なし.13Hzなので浮遊容量で盛大に飛ぶ領域でもないわけでそりゃそうだろうなと.
ここで不思議だったのは、
ch0→ch1へのクロストーク大きい
ch1→ch0へのクロストークゼロ
という片方向性であった.単純な飛びじゃないなぁ....
プリントパターン原因説を排除するために、CPUの入り口へ信号注入してみて判った事がなかなかエグイ.
ch0→ch1へのクロストーク
1)OPAMP駆動 -40dB ←悪いなぁ
2)信号源IMP 18kΩ -10dB ←超悪化
3)ch1ADCinに680uF -70~-80dB ←ほぼノイズフロアレベル
これからなにが言えるかというと、
・信号源IMPでクロストークが変わる
・プリント基板は関係ない
・STM32 ADCの問題
STM32H743のdatasheetを調べる.
ADCのspecを見るが、chross talk, isolation, separationの言葉がどこにもない.
しかし信号源IMPによって最大変換周波数が変わるとか書かれている.
こんな図があってだな、ADCはS/H型であり、SW界隈のこの構造だと信号源IMPが大きいとCADCへのチャージがヨレヨレになるのはいかにも起きそうである.
また、ch0→ch1が悪くてch1→ch0が良好なのはSW切替の順番に依るとすればご納得だ.
測定結果を再掲する.
ch0→ch1へのクロストーク
1)OPAMP駆動 -40dB ←悪いなぁ
2)信号源IMP 18kΩ -10dB ←超悪化、故障レベル
3)ch1ADCinに680uF -70~-80dB ←ほぼノイズフロアレベル
OPAMP出力IMPはdatasheetに書かれてなかったので、SPICEでsimったところ、0.0001Ωのオーダーであった.強いNFBがかかっているのでそんなもんだろうさ.それなのにchセパが発狂するとか変だわ.
3)680uFはどんなIMPか?
1/2πfc=18Ω (クロストークを受ける側にとってのIMP)
たかが18Ωで無問題領域へ逃げられるこれまた矛盾を突き付けられる.
123の測定条件にはいろいろと瑕疵はあるのだが、2から信号源IMPに依存するとは言える.またADCブロック図からも信号源IMPに依存すると言える.しかし123の傾向性に一貫性がない.
OPAMPの出力IMP問題よりも、OPAMP電流駆動能力の問題かねぇ? OPAMPを変更してみるか? ちなみにNJM8068を使用中.ちなみにADC full scale 3Vをほぼフルスイングしている.3V→1Vにしたらchセパが良好になるかもしれない.
→OPAMP変更は効かなかった.
なにか判ったら続報しまぁす.
ーーーー
続報・解決
STM32 ADCにはsample timeという設定がある.これが効いた.
あまり大きくすることはできないと思うが、破綻しない範囲でcycleを遅くするのが吉ということだ.入力MPXやS/Hをゆっくり動かせばグリッジから逃げ易いという理屈なのだろう.
sample timeを変えてch0→ch1クロストークを測定した
ADC_SAMPLETIME_1CYCLE_5 -40dB ✖
ADC_SAMPLETIME_2CYCLES_5 -40dB ✖
ADC_SAMPLETIME_8CYCLES_5 -70dB 〇
ADC_SAMPLETIME_16CYCLES_5 -70dB 〇
ADC_SAMPLETIME_32CYCLES_5 -∞ ノイズフロア ◎
ADC_SAMPLETIME_64CYCLES_5 -∞ ノイズフロア ◎
ADC_SAMPLETIME_387CYCLES_5 -∞ ノイズフロア ◎
ADC_SAMPLETIME_810CYCLES_5 -∞ ノイズフロア ◎
本件の発覚からFIXまで4日間かかった.やっと先へ進める.
あでゅ~
解決おめでとうございます。
返信削除>sample timeという設定がある.これが効いた.
やはり「パチモン」は、この辺がシビアなのかなー。
それでも「解決策」があって良かったですね。
こんな重箱の隅....
削除もうかんべんしてぇ(悲鳴)