• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:LSB、count、V(電圧)についての質問)

LSB、count、V(電圧)についての質問

このQ&Aのポイント
  • ハードウェア修理についての質問です。特定のテスト項目でEBという略語が使われていて意味が分かりません。また、テストOKの範囲を超えている値が出ており、その原因がわかりません。
  • テスト項目によって異なるテスト値が出ていることに疑問があります。特にEB Analog Input Read ch1, 1Vの計測値についての計算方法がわかりません。
  • EB Analog Input Read ch1, 1Vのcounts値が14905(中間値)となる計算方法がわかりません。他のテスト項目との関連性も不明です。

質問者が選んだベストアンサー

  • ベストアンサー
  • tance
  • ベストアンサー率57% (402/704)
回答No.5

tanceです。 入力フルスケールが±10Vだとします。AD976の仕様では 1.Vin = +10V・・・・・7FFF(16進) 2.Vin = 0V・・・・・・0000 3.Vin = -10V・・・・・8000 4.Vin = -0.305mV・・・FFFF (1LSBだけマイナス) となっています。 今入力はプラスですから1と2の間で動作しています。 つまり、10Vを15ビットでデジタル化しているわけです。(7FFFは15ビット) 従って、比例計算で 10V:9V = 7FFF:x となります。(ただ、正確には出力が7FFFとなるのは10V - 1LSBのとき なので、10Vから305uVを引きます)  比例計算ですから x = (9/10)*7FFF となります。 (一部数字の書き間違いがあったかもしれません。32768を32786!) 比例計算になる理由はお解りですね。入力と出力が比例しなかったら 「アナログからデジタルへの変換器」とは呼べないですから。 基準電圧が理想どおりになっていない場合も単なる比例計算です。 2.4996Vがもし2.5000Vだったらデジタルデータも2.5/2.4996になります。 MAX354は単なるスイッチの集まりですからここにゲインがあるのは おかしいですね。 ======================================== ADのVin = 11.386V Vref = 2.4996V だと、フルスケールは2.4996V×4 = 9.9984Vになります。(中心値) 従って、11.386Vという入力はADにとって過大入力です。このような ときは普通は7FFFを出力することが多いですが、実際は個々のICの 設計によってちがいますので、どんなコードが出てくるかわかりません。 ======================================== 回路構成を聞くと、2つの差動入力の差をとる回路に見えます。PGA207は ゲイン可変のインストゥルメンテーションアンプですからCH8~CH16の 信号との差が出力されます。 PGA207のCH0出力=Gain×(CH0 - CH8) となっているのではないでしょうか。CH0やCH8も入力は差動なので、計 4本の入力を正しく設定しないと出力は確定しないのではないかと 思います。 確認方法として、PGA207のプラス、マイナス両入力の電圧を測ってみて ください。同時に JX±の部分 初段INA128の出力 PGA207出力 AD976のVin デジタルデータ も取得してください。これらを総合すると、どの段で何が起きているか 解ります。

fg5_sinnyo
質問者

お礼

>確認方法として、PGA207のプラス、マイナス両入力の電圧を測ってみて ください。同時に JX±の部分 初段INA128の出力 PGA207出力 AD976のVin デジタルデータ も取得してください。これらを総合すると、どの段で何が起きているか 解ります。 デジタルデータなんですが、 回路図を見るとFPGAにはD0~D7までの下8bitしかつながっていません。 金曜日に設計部の人に聞いたら16bitデータを8bitずつ2度に分けて出力するモードを使用しているとか言ってました。 なので、デジタルデータは16bitすべては計測できないと思います。

fg5_sinnyo
質問者

補足

「32768を32786!」ですが、「32786を32768へ」の間違いですね? ○(9V/10V) * 32768 = 29491(tanceさん記述)が ×(9V/10V) * 32786 = 29507になってしまいます。 ところで、 >ただ、正確には出力が7FFFとなるのは10V - 1LSBのとき なので、10Vから305uVを引きます であるなら、 Vin=+10V・・・0x7FFF=32767より、 32767×9÷(10-0.000305)=29491となります。 (9V/10V) * 32768 = 29491について、 32768という数字は以下の式で出たんですよね? 0x7FFF + 0x1 = 0x8000 = 32768 プラス1は何でしょう? 最上位ビットが±の符号を表しているから16ビットで表現するには数字上では1を足すということでしょうか? だとすれば、15ビットではなく16ビットでデジタル化になると思うのですが。。。 また、 >今入力はプラスですから1と2の間で動作しています。 つまり、10Vを15ビットでデジタル化しているわけです。(7FFFは15ビット) 従って、比例計算で 10V:9V = 7FFF:x となります。(ただ、正確には出力が7FFFとなるのは10V - 1LSBのとき なので、10Vから305uVを引きます)  比例計算ですから x = (9/10)*7FFF となります。 からxを計算するとx = 29490となり1足りません。 >正確には出力が7FFFとなるのは10V - 1LSBのとき なので、10Vから305uVを引きます の理由が分かりません。 もう一度ご説明いただけませんでしょうか?

その他の回答 (8)

  • tance
  • ベストアンサー率57% (402/704)
回答No.9

tanceです。 378.8Hzでパタパタというのは何とかなりませんか?これを止めて高精度 測定ができるようになると、異常箇所があればその発見に大変役立ち ます。 各部のワーストケースを考慮して規格や基準を決めることは大変重要な ことです。量産品であればこのような検討は必ずされていると思いますが 製作台数が少ない製品では、必ずしもきちんと計算されていないケースが あります。ダメだったら良いのに交換すれば良い、という考え方です。 もしくは、調整箇所を設ける方法もあります。オフセットやゲインは 半固定抵抗(可変抵抗、ボリウム、トリムポットなどとも言う)で 誤差がなくなるように合わせこむ方法です。fg5_sinnyoさんの回路が 無調整の回路だとすると、規格は確かにぎりぎりかもしれません。 INA128の1番ピンと8番ピンの間に抵抗が入っていると思いますが、 この抵抗値がゲインを直接決めます。従って、この抵抗の誤差も 全体のゲイン誤差に関係します。同様に、AD976の入力にある200Ω やその周辺の抵抗値誤差も関係します。 回路全体がわからないので何とも言えませんが、規格の決め方に ついてはアウトともセーフとも言えないギリギリすれすれかも知れ ません。 基準電圧についてはADのゲインを左右しますから、2.502V~2.498V という±0.08%の誤差がそのままAD部分のゲイン誤差に加算されます。 あと、オフセット誤差ですが、これはソフト的に補正をすることが よくあります。特に途中にMAX354のようなスイッチ素子が入っている 場合は、入力を切り離してゼロを読み、全オフセットを知ることに より、このオフセットを計算で差し引いて補正する、というものです。 いずれにしても、回路やシステムの詳細のわかる人が注意深く計算 しないと結論は出ないと思います。(概算では白黒つけられない)

fg5_sinnyo
質問者

お礼

あれから設計部の人と一緒に考えて概ね解決しました。 結局「閾値が狭すぎる」という判断に至りました。 また、ボリューム調整で±5countsくらいはいじれるので それも試してみます。 この度はtanceさんのおかげで大変助かりました。 それと、逐次比較型の計算方法を間違えていたみたいです。 先日ご教示いただいたpdfを読み直して自分で15bitA/D変換をやってみました。 無事正確に変換できました。 これでなおいっそう回路知識が深まりました。 この度は誠にありがとうございました。

  • tance
  • ベストアンサー率57% (402/704)
回答No.8

PGA207の入力は両方とも13.22Vだったのでしょうか。だとすると、完全に 飽和している部分がありますね。INA128の出力がまともなのですから MAX354が正しいチャンネルを選んでいないのではないでしょうか。 各部の電圧を測る意義は、9V入力に対して出力コードが26818で 1V入力に対して出力コードが14094 だという状況を再現したときに 各部がどうなっているのか、が大きなヒントになるということです。 PGA207の入力が異常な状態ではこのデータはあまり意味がありません。 まずは当初の現象を再現してみてください。こうして、各部を 正確に計ることができれば、どこの誤差がどのくらいで、だから この出力になる・・・といった関係が明らかになるはずです。 (回路や部品がおかしいのか、操作や測定が間違っているのか、どこも おかしくないのか)

fg5_sinnyo
質問者

お礼

オペアンプ:INA128U Offset Errは±50 ±500/G μV つまり±0.55mV ゲインアンプ:PGA207UA Offset Errは2.5mV、Gain Errは±0.1% A/Dコンバーター:AD976ABR Offset Errは±0.010V +FS Errは-0.25% < Error < 0.25% -FS Errは-0.25% < Error < 0.25% が実際に使用している部品でした。 で、テストOKとなる範囲の中間値:14905・・・4.5486Vが 仮にすべての部品のOffsetやGainや基準電圧の誤差がゼロだと 仮定すると、各部品の誤差が最大の場合、V_INが何V つまりEB Analog Input Read ch1, 1Vのテスト結果の誤差理論値はいくらになるでしょうか? ADコンバーターの基準電圧のずれのところの計算方法がよく分かっていないです。

fg5_sinnyo
質問者

補足

測定方法に完全に誤りがありました。 今日の測定でtanceさんの計算方法が正しいことが確認できました。 EB Analog Input Read ch1, 1Vのテストで止めた時、 ch1のコネクタの±間:1.0027V 初段のINA128の出力:1.0029V 初段のMAX354のA0、A1、A2、E共に0~3.3Vパタパタ 初段のMAX354のOUT:1~13.3Vパタパタ(測定していないが恐らく378.8Hz) 次段のMAX354のOUT:1~13.3Vパタパタ(測定していないが恐らく378.8Hz) PGA207の入力+側:1~13.3Vパタパタ(378.8Hz) PGA207の入力-側:常に0V PGA207の出力:108μsの「{13.3V→4.88V(54μs)}→{0.88V→13.3V(54μs)}」の波形が周期378.8Hzでパタパタ PGA207のA0:常に0V PGA207のA1:0~3.3Vパタパタ(378.8Hz) (A0 = 0、A1 = 1でGainx5) 次段のINA128の出力:{13.3V→4.44V(54μs)}→{0.88V→13.3V(54μs)}」の波形が恐らく周期378.8Hzでパタパタ AD976のV_IN:{13.3V→4.34V(54μs)}→{0.88V→13.3V(54μs)}」の波形が恐らく周期378.8Hzでパタパタ (ただし、信号が波形なのでオシロでしか測れず、各電圧値は正確ではない) ここで、テスト装置によるEB Analog Input Read ch1, 1Vの測定結果は 14966countsでしたので、 14966 = X / 10 * 32768 X = 4.567V オシロで測ったV_IN = 4.34Vでしたので概ね一致します。 ところで、 EB Analog Input Read ch1, 1Vの Min値:14855・・・4.5333V Max値:14955・・・4.5639V で、OKとなる範囲はわずか0.0306Vしかありません。 基準電圧ICのデータシートによる誤差は2.498V~2.502V (今日の計測値は2.4981Vでした) また、AD976のOffset Errは±0.010V +FS Errは-0.25% < Error < 0.25% -FS Errは-0.25% < Error < 0.25% さらに、INA128UA(確かUA)のOffset Errは±125±1000/G μV つまり ±1.125mV PGA207UA(UAかは忘れた)のOffset Errは2.5mV、Gain Errは±0.1% などを考え合わせると Min値:14855・・・4.5333V Max値:14955・・・4.5639V の範囲は厳しすぎる?かもしれません。 詳細な計算方法がすぐに分からないのであれですけど。。。 これらの部品の誤差を考えるとOKとなる範囲が狭すぎることが証明できれば知りたかったすべてのことが解決です。 自分でも考えてみます(分からないかも。。。) tanceさんに期待してます。

  • tance
  • ベストアンサー率57% (402/704)
回答No.7

tanceです。 1FFFで計算する部分と8000で計算する部分があって混乱しやすい ですが、意味を考えて理解するようにしてください。 0, 1, 2, ・・・・32767(Ox1FFF) の最大値は1FFFですが、FSを8000等分 しています。 さらに混乱させてしまうかもしれませんが、量子化誤差というものが あります。たとえば、真に256の値といったら、出力が255から256へ変化 する瞬間のことを言うのでしょうか。それとも254から255? それとも その両者の中間? このあたりの定義によってはプラス1とかマイナス1 などがつくことがあります。 このあたりは広く解説されているのでご自分で調べてみてください。 また、8bitを2回に分けて読んでいるのですから結果的に16bit全てを 読んでいることになっているはずです。現に256以上のカウント値を 観測しているわけですから、下8bitしか読めていないということは ありません。

fg5_sinnyo
質問者

補足

ご回答ありがとうございます。 FSを0x8000等分している件、了解しました。 ところで、 >PGA207のプラス、マイナス両入力の電圧を測ってみて ください。 →13.22V JX±の部分 →1.0027V 初段INA128の出力 →1.0029V PGA207出力 →12.95V。ただしA0 = 0、A1 = 3.23Vだったので、Gainは5倍モードのようです。 AD976のVin →11.5507V デジタルデータ →オシロでみたら全ビットがパタパタしていました。 JX±の部分、初段INA128の出力→1.00V以外は理解不能な値でした。

回答No.6

補足ありがとうございます。 設計値はたぶん  9Vの時:ゲイン1倍→AD976の入力9Vで出力26810カウント  1Vの時:ゲイン5倍→AD976の入力5Vで出力14905カウント ってことですね? AD976はフルスケールが±4*REFで、16bit精度なので、 REF=2.5Vなら理論上のLSB=2*4*2.5/65536。 ということは、VIN=9Vのとき29491カウント、VIN=5Vのとき16384 REF=2.49996ならVIN=9Vのとき29495カウント、VIN=5Vのとき16386 VINの実測値が11.386Vというのは変な気がします。 VIN(1ピン)とAGND2(5ピン)間で測定した値でしょうか? AGND1(2ピン)はREF(3ピン)用なので、VINとAGND1間だと違う値になるのかもしれません。

  • tance
  • ベストアンサー率57% (402/704)
回答No.4

tanceです。 #2さんへの補足を見て勘違いに気づきました。 9Vというのはゲイン1で出力26810カウント、 1Vがゲイン5で出力14905なんですね。 理想値(多分設計中心値)では 9Vのとき:  (9V/10V) * 32768 = 29491 ・・・・26810は誤差-9.1% (1V*5/10V) * 32786 = 16384・・・・14905 は誤差-11.2% この誤差は何が原因かということでしょうか。このくらい大きく 狂っていればテスターでいい加減に見てもはっきりわかりますから やはり、各部の電圧を測って、どこまで正しく来ていて、どこから 狂うのかを見極めるべきだと思います。 マルチプレクサなどの関係で、例えば、一瞬しか信号が来ないとか 何らかの測定困難な状況があるのでしょうか。コントロールソフトを いじって特定の測定だけ繰り返すとか、何らかの方策はないのでしょうか。

fg5_sinnyo
質問者

お礼

MAX354は入力チャネルを選んでその値を単純に出力するだけではないようです。今、手元にありませんが、9V入力の13.5V出力くらいだった気がします。回路図的にそこの部分だけが特によく分かりません。日本語のデータシートを読んでみたのですが、計算式は書いていないような。。。

fg5_sinnyo
質問者

補足

(9V/10V) * 32768 = 29491や(1V*5/10V) * 32786 = 16384の計算式の意味が分からないのですが。。。 測定困難な状況はありません。 テストを指定した場所でSTOPさせることが可能です。 いつもその状態でオシロやテスターやデジタルマルチメーターを使っています。

  • tance
  • ベストアンサー率57% (402/704)
回答No.3

再度tanceです。 AD976は基準電圧の±4倍の入力レンジを持っています。2.5Vの基準 電圧がAD976の3番ピンに加わっているのだとすると、ADコンバータの フルスケールは9Vではなく±10Vになっているはずです。(AD976の データシートより) このコンバータで出力コードが14940(10進数)になる入力は (10V - 305uV) × 14940 / 32768 = 4.559V となります。このあたりはデータシートのFig.8を見てください。 何故かこのFig8ではフルスケールをVrefで書いていますが本当は 4・Vrefです。 つまり、ADコンバータが正しく動いているとすれば、出力コードが 14940のときには ADの入力には +4.559Vが加わっていることに なります。 これと9Vの関係が不明ですね。AD976のVinについている抵抗とボリウム がアッテネータになっているのでしょうか。普通の使い方だと、 AD976のVinについている抵抗は33.2kのはずなのですが、どうなっている でしょうか。(ボルテージフォロワとADのVinの間にある抵抗は200Ωが 標準です) また、この9Vという電圧は可変ゲインアンプの前の電圧なのでしょうか、 それとも後? 前ということは普通はあり得ないと思うのですが 後というのも変です。普通は装置の入力で言います。途中の電圧を 言うことは不自然です。 一度、AD976の3番ピンと1番ピンの電圧を測ってみる必要があるかも しれません。 何かテストポイントなどがあって計りやすくなっていたとしても それを使用せずに、直接ICの足の電圧を測ることが大切です。(特に 修理のときは何が壊れているか解らないので、絶対確かなこと以外は 信用しないようにしてください) 各部の電圧が正しく加わっているかが測定できるなら、おかしい場所を 切り分けることができます。 ------------------------------ 前回はADコンバータの原理を重視したためにFSの半分より大きいか 小さいかをビット数回判定して、出力コードを求める話をしましたが、 この原理が解ってしまえば、普段はもっと簡単に計算できます。 フルスケール入力では出力コードもフルカウント、0入力では 0カウント、途中は比例、と計算できます。 ただし、このAD976もそうですが、入力が両極性のときは出力コードで マイナスを表す特別なコーディングが使われるので、単純に比例では なくなることがあります。このあたりはデータシートのFig.8を見て ください。

fg5_sinnyo
質問者

補足

>AD976のVinについている抵抗とボリウム がアッテネータになっているのでしょうか。普通の使い方だと、 AD976のVinについている抵抗は33.2kのはずなのですが、どうなっているでしょうか。 (ボルテージフォロワとADのVinの間にある抵抗は200Ωが標準です) →回路図を見ると33.2kΩです。ボリュームは10kって書いてありますね。ボリュームの先は何もないです。 >また、この9Vという電圧は可変ゲインアンプの前の電圧なのでしょうか、それとも後?前ということは普通はあり得ないと思うのですが 後というのも変です。普通は装置の入力で言います。途中の電圧を 言うことは不自然です。 →テスト装置からコネクタJXへ JXのIN+ ---抵抗(不明)---抵抗(1.8k)---抵抗(2.2k)--- オペアンプの+ JXのIN- ---抵抗(2.2k)--- オペアンプの-側 オペアンプ(INA128)の+と-の間の電圧が9Vです。ゲイン1倍なので出力も9Vです。その後はAnalogOut→MAX354→再度MAX354→PGA207の+側→抵抗(5kΩあるいは500Ω。基板上どっちを使っていたか忘れました)→INA128の+側(-側はAGND)→200Ω→ADCのV_INってなってます。 PGA207の-側について・・・ch08~ch16(ch数は14ではなく16でした)のAnalogOut→MAX354→MAX354→PGA207の-側となっています。 例えばch1を使った場合はPGA207の+側はch1からの信号が来るんでしょうが、-側は何が来るんでしょうね?意味不明です。 >一度、AD976の3番ピンと1番ピンの電圧を測ってみる必要があるかもしれません。 ピンを直接デジタルマルチメーターで計った時の電圧値は 1pin(V_IN):11.386V 3pin(REF):2.4982V→基準電圧IC(REF192ES)交換後2.4996V でした(EB Analog Input Read ch1, 1VでテストをSTOPした時)。 この情報で基準電圧が2.5Vぴったりの時に EB Analog Input Read ch1, 1Vの値が理論上何countsになるか、 また更に言えば、REF値が2.4982Vでは何countsになるかが計算できるでしょうか?

回答No.2

基準は、  1Vのとき14855~14955(真ん中が14905)  9Vのとき26755~26865(真ん中が26810) ですね。 真ん中の値を使って直線近似すると、  電圧(mV)=0.672*カウント値-9016 ぐらいなので、0Vのときに13417のオフセットがあると思います。 (-9.016Vのときにカウント値が0になる) この式だとLSBは0.672mV/countです。

fg5_sinnyo
質問者

補足

Gainx1倍の時の9V:26755~26865(真ん中が26810)と Gainx5倍の時の1V:14855~14955(真ん中が14905)を 同時に計算していいんでしょうか? LSBを求める時、Gainは考えなくていいのですか?

  • tance
  • ベストアンサー率57% (402/704)
回答No.1

質問者さんはエラーの出ているものをエラーでなくする理屈を求めて いるのでしょうか。それとも不良箇所を探したいのでしょうか。 どのようなシステムかわからないので的確なことは言えませんが、 9Vを計るときと、1Vを計るときではA/Dコンバータ(モジュール)の ゲインを変えているのではないでしょうか。 1LSBの電圧が違うこと自体は不思議なことではないように思います。 基準電圧はギリギリですが仕様には入っているし、14954~14960という 読み値も誤差0.04%にすぎないのですから、こんなものではないで しょうか。 ちょっと気になるのは基準電圧が変わったときに、相応の出力変化が ないように見えます。Vref = 2.4982V から 2.4996V に変わった 時に出力は 14957から14954に変化したそうですが、これは比例して いません。オフセット誤差があるのではないでしょうか。 フルスケールだけでなく、0V入力も計って「変化量」として見て みたらどうでしょうか。これにより、ゲイン誤差なのかオフセット 誤差なのかが分離できると思います。もし入力仕様が±なら0Vでなく 最もマイナスな値を入れてみてください。 また、0.04%が許せない測定をする場合は測定器や環境や接続方法などに 相当の注意が必要です。入力の9Vや1Vの精度も同様に要チェックです。

fg5_sinnyo
質問者

お礼

システム的には テスト装置→コネクタ→ゲイン1倍オペアンプ→アナログマルチプレクサ→プログラマブルゲインアンプ→抵抗→ゲイン1倍のオペアンプ→抵抗→A/Dコンバーター(AD976)のV_IN→FPGAとつながっています。ちなみにA/DコンバーターのV_INには上記記述の「抵抗→A/DコンバーターのV_IN」の→部分から別系統へ配線され→抵抗→可変抵抗が付いていてボリューム調整できるようになっています。 ちょっと表現が分かりにくいですがイメージできるでしょうか?

fg5_sinnyo
質問者

補足

またまたご回答ありがとうございます。 テストレポートを見てみると、 JX Analog Input Read ch1, +9V JX Analog Input Read ch1, 0V JX Analog Input Read ch1, -9V の直前に EB AI ChX, Gain x1, no current っていうのがあって、 EB Analog Input Read ch1, 1V の直前に EB AI ChX, Gain x5, no current っていうのがありましたので tanceさんの仰ると通りGainが5倍になっていました。 そうするとつじつまがあいますね。 ところで一番知りたいことは 基準電圧が2.5Vぴったりの時に EB Analog Input Read ch1, 1Vの値が理論上何countsになるかです。 ただし、A/Dコンバーターやオペアンプなどのオフセットやゲインは 誤差があるものとして考えます。 先日教えて頂いた原理式などを用いていろいろと考えてみたのですが、 自分では何countsになるか分かりませんでした。 ↓が自分の考えです。 このICが逐次比較型だとすると FS=9Vなので、 4.5V>1VよりB15=0 4.5V-2.25V>1VよりB14=0 2.25V-1.125V>1VよりB13=0 1.125V-0.5625V<1VよりB12=1 同様にB11~B0はすべて1 よって、Dout=0x1FFF Gainx5なので、1FFFx5=9FFB これを10進に直すと、40955counts??? 14940とかになりません。。。 計算式をご教示願えますでしょうか?

関連するQ&A