RigolDS1074オシロスコープが非常に間違ったタイミングを示している

Aug 22 2020

バイト0x33を送信している5ボー(ビットあたり200ミリ秒)の反転RS232信号があります。(最初の「Low」はスタートビットです)

オシロスコープをユニットあたり200ミリ秒に設定すると、この信号は完全に表示されます。シングルトリガーモードを使用しています(右上の[シングル]ボタン)

ご覧のとおり、タイミングは正確です。

ここで奇妙なことが起こります。ユニットあたり500ミリ秒の設定で同じ信号をキャプチャします。こんな感じです。

タイミングをよりよく確認するために、同じキャプチャのタイミングをユニットあたり200ミリ秒に切り替えて、次のようにします。

ご覧のとおり、信号はビットあたり200ミリ秒よりも遅いようです。それはデジタルオシロスコープでどのように可能ですか?

最初のステップでは、オシロスコープはキャプチャされたデータをメモリに保存します。2番目のステップでは、データを表示します。すべてのタイミングは、正確な水晶発振器に基づいています。

私が見る唯一の違いは、スクリーンショットの上部にあります。

正しいキャプチャ:10.0 MSa / sおよび24.0Mポイント

間違ったキャプチャ:4.0 MSa / sおよび24.0Mポイント

私への唯一の説明は、太ったソフトウェアのバグのようです。Rigolのエンジニアは、4.0Mサンプル信号を表示するための正しい変換を行うことができませんか?このオシロコープシリーズはどのようにして品質管理に合格しましたか?

そしてそうです:私は自分の信号が正確であることを確認しました。これを100回繰り返すことができます。ユニットあたり200ミリ秒でキャプチャするのが最適です。ユニットあたり500ミリ秒でのキャプチャは失敗します。

PD:今はもっと多くのタイムベースをテストしました。結果は次のとおりです。

5 seconds per unit --> OK
2 seconds per unit --> OK
1 second per unit --> OK
500 ms per unit --> wrong (constantly 4% timing error)
200 ms per unit --> OK
100 ms per unit --> OK
50 ms or less --> a period does not fit anymore

しかし、これは複数のバグの1つにすぎません。オシロスコープにはさらにいくつかのバグがあります。

RS232デコーダーを有効にしていて、水平解像度が小さすぎる場合、16進バイトが表示されないことは理解できます。しかし、これは非常にバグが多いため、完全に間違ったデータが表示されます。このスクリーンショットは、10400ボーでデータパケット間の長い休止があるRS232信号を示しています。表示されている「FF」がすべて間違っています。


そして、最も醜いバグの1つは、ノブ「Horizo​​ntalPosition」です。これは完全ながらくたです。信号を画面上で水平に移動する必要があります。しかし、それは非常に悪い動作をするので、ノブを速く動かすと、信号が突然完全に異なる位置にジャンプします。ゆっくり動かすとほとんど動かなくなります。Rigolオシロスコープを使用して長いキャプチャをナビゲートするなどの基本的な機能は面倒です。

また、そのノブを速く動かすと、信号に突然アーティファクトが発生します。上でキャプチャしたのと同じ信号が、突然次のようになります。

このバグを増幅すると、2ミリ秒周期の方形信号が表示されます。この信号は、オシロスコープの入力には存在していません。これは、メモリ内のキャプチャされた信号を画面上で水平に移動するだけで、オシロスコープのソフトウェアバグによって生成されます。ここに、左側のアーティファクトのズームが表示されます。

そして、これは正しいアーティファクトのズームです:


そして、これだけでは不十分であるかのように、さらに多くのバグがあります。これらのバグはすべて再現可能ではありません。例えば:

  1. 信号はありますが、オシロスコープはトリガーされません。それはほとんどトリガーしますが、常にではありません。
  2. 「シングル」トリガーモードは有効になっていますが、画面がいっぱいになってもスコープは停止しません。
  3. USBスティックを差し込むと、オシロスコープが完全にフリーズします。すべてのボタンが死んでいた。

回答

7 SredniVashtar Aug 22 2020 at 05:27

私にはバグのように見えます。LED点滅プログラムを備えたArduinoを使用して1054zでそれを再現しました。

これは、500msのタイムスケールで取得され、200msのスケールで拡張された12Mのメモリ深度を持つ信号です。「ビート」の長さは1000ミリ秒です。(技術的には、900ミリ秒の長さとオーバーヘッドがありますが、次の列車の最初の部分を追加すると、数値がより良くなる1000ミリ秒のシーケンスが得られます。)

上記のものは、AUTOメモリ設定でも得られる結果です。しかし、メモリの深さを24Mに設定すると、500msのスケールで問題が発生します。上記のように、これは500msのタイムスケールで取得されてから200msのタイムスケールに拡張された信号です。

パルス長は40ミリ秒延長されているように見えます。これは、OPが示す100ミリ秒ごとに4ミリ秒と同じです(600ミリ秒から624ミリ秒になります)。200msのタイムスケールでの収集は、1000msの正しいパルス長を示しています

しかし、500ミリ秒のタイムスケールで取得すると、1040ミリ秒になります

誰かがそれを複製したいのであれば、これがArduinoスケッチです。

/*
  doubleBlink
  Turns on and off an LED in a predetermined sequence, repeatedly.

  Most Arduinos have an on-board LED you can control. On the Uno and
  Leonardo, it is attached to digital pin 13. If you're unsure what
  pin the on-board LED is connected to on your Arduino model, check
  the documentation at http://www.arduino.cc

  This example code is in the public domain.

  modified 8 May 2014
  by Scott Fitzgerald
  modified 15 February 2016
  by Sredni Vashtar
 */


// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);              // wait for 0.1 second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(100);              // wait for 0.1 second
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(500);              // wait for 0.5 second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(200);              // wait for 0.2 second
}

(スコープのファームウェアを最後に更新してからしばらく経ちました-私は00.04.04.01.01を使用しています-しかし、バグは現在までの最新バージョンで確認されています)

編集: mkeithのアドバイスに従って、メモリ深度が24Mに設定されている場合、500msのタイムスケールで取得され、200usで拡張された1kHzスコープのテスト信号があります。

周期は1.040msになります。同じ4%のエラー。200usで直接取得すると、1.000ミリ秒の正しい値が得られます。

そしてそれは良くなります!5秒のタイムベースでテスト信号を取得し、それを200usに拡張すると、周期は800usになります。
これは20%のエラーです。

他のタイムベース(同じ停止された取得)では、正しい値を取得します。彼らがRigolでどのように丸めを行うのか見てみたいです。

とにかく、このバグは最新のファームウェアバージョンに影響を及ぼしています(OPが指摘しているように)。質問が閉じられたため、興味のある人はEEVBlogフォーラムでこのスレッドをフォローすることをお勧めします。

4 Konvpalto Oct 08 2020 at 01:19

DS1054Zも所有しており、最新のソフトウェア(00.04.04.04.03)がインストールされており、このバグも発生します。Rigolに電話をかけたところ、これは2020年8月にオープンしたバグ#297を参照しており、社内で再現したとのことですが、システムでの次のファームウェアリリースの具体的な計画はありません。サポートエンジニアはこれについてタイムラインを提供できませんでした(そして「新しいソフトウェアバージョンのリリースを予測するのが難しい古いハードウェア」について言及しました)ので、より多くのRigol DS1xxxZ所有者がRigolサポートをポーリングし、問題を修正するように依頼する必要があると思います:そのようなプレッシャーが彼らに新しいソフトウェアバージョンを作成させるかもしれません。

問題のエンジニアはクリスアームストロング(https://www.youtube.com/watch?v=u3ZbcRb6AeM、chris_armstrong @ rigol.com)なので、バグレポートで彼をCCに保つことができます。彼は、正気でいい人のようです。

それが私たち全員に役立つことを願っています。

2 Kean Aug 28 2020 at 01:12

解決策はありませんが、他のモデルに影響があることは確認できます。

MSO1104Zで1kHzスコープのプローブテスト信号を測定したところ、4MSa / sでサンプリングすると、1.040msの周期の読み取り値も表示されます。2MSa / sまたは10MSa / sでサンプリングすると、1.000msで正しく読み取られます。

私のMSO1104Zシステム情報ページにもバージョン00.04.04.SP4が実行されていることが示されていますが、私の記録によると、最後にロードしたファームウェアは00.04.04.04.02でした。そこで、RigolのWebサイトから00.04.04.04.03をダウンロードしてインストールしました。これで、システム情報ページに00.04.04.SP4が表示され、予想どおり、4MSa / sの取得でもタイミングの問題が発生します。

スコープを使用して24Mptsに変更したことを忘れたときに、これが再び表示されないように、スコープで取得メモリの深さの設定を自動に戻しました。

編集して追加:ロジックアナライザの入力で再現しようとしましたが、有効にした状態で4MSa / sのデータレートを取得できませんでした。私が試した他の取得設定でも再現できませんでした。

2 Elmue Aug 27 2020 at 23:34

このスレッドを再開していただきありがとうございます。だから私は私の答えを投稿することができます。

Rigolサポートからの私の最初の応答はこれでした:

これはDS1000Zシリーズの既知の問題だと思います。ファームウェアをバージョン04.04.04.03にアップグレードしてください。そうすれば、キャプチャの問題を解決できます。

DS1074Zオシロスコープの実際のファームウェアをダウンロードするには、次のリンクをたどってください。

https://eu.rigol.com/products/oscillosopes/ds1000z.html

(簡単な登録が必要ですが、1分で完了します)少しでもお役に立てれば幸いです。

興味深いのは、「私は...」と「あるべき」という言い回しです。それはすでに、これが彼らのすべてのバグに対する標準的な答えであるという印象を私に与えました。最新のファームウェアをインストールすれば、それは「修正されるべき」です。

これはRigolのホームページにあります:

そして私のスコープは示しています:

だから私は今3つの異なるバージョンを持っています:

Support email:  04.04.04.03
Rigol Homepage: 00.04.04.04.03
Oscilloscope:   00.04.04.SP4

ご覧のとおり、Rigolのファームウェアバージョンは統合されていません。

これらの3つのバージョンが同じかどうかを尋ねる別のメールを書きました。サポートは、それらはすべて同じであると回答しました。

それから私は3番目の電子メールを書きました:「それで私は最新のファームウェアを持っています。しかし深刻なバグはまだそこにあります。これらのバグはいつ修正されますか?」

もう答えがありません。1週間後、同じサポート担当者に4通目のメールを書きました。彼はもう私に答えません。

彼らのホームページのファームウェアは現在1年前のものです。「サポート」はもう答えません。したがって、Rigolがバグを修正する動機がないことは明らかです。

これはDS1000Zシリーズ全体のファームウェアであることに注意してください。したがって、これらのバグの影響を受けるオシロスコープモデルは複数あります。


Rigolファームウェアは、わずか1.9MBのRARファイルです。これはとても奇妙だと思います。もっと期待していました。

アップグレード手順には次のように書かれています。

  • MSO / DS1000Zシリーズのデジタルオシロスコープは、ダウングレード操作をサポートしていません。

これは別の問題です。新しいファームウェアが利用可能であったとしても:新しいファームウェアに既存のバグよりもさらに悪い新しいバグがある場合はどうなりますか?この場合、以前のファームウェアバージョンに戻る機会がありません。Rigolファームウェアアップデートは一方向の道です。あなたはそれがあなたをどこに導くかを決して知りません。


Rigolのホームページはめちゃくちゃです。「サポート」->「ソフトウェア-ファームウェアのダウンロード」に移動し、カテゴリ「オシロスコープ」と入力して「DS1074Z」を検索すると、結果はまったく表示されません。

製品ラインで「DS1000Z-E」を選択し、「キーワード」を空のままにすると、DS1000Zページと同じファームウェアは見つかりません。

https://eu.rigol.com/En/Index/listView/catid/28/tp/6/cat/7/xl/40

DS1000ZとDS1000Z-Eは別シリーズのようです。リリースノートには次のように書かれています。

[Model Supported] DS1202Z-E.
[Latest Revision Date] 2019-09-20
[Updated Contents]
v00.06.01.00.00 2019-09-20
     - The first version is released.
[Previous Versions and Updated Contents]
     - none

したがって、これは私の範囲ではありません。