google-site-verification: google3bd66dd162ef54c7.html
FC2ブログ

DSO Shell 用に作った光インターフェイス回路の解説

 前回の記事ではDSO Shell (DSO 150)を改造して、光で波形データーを出力する方法について紹介しました。今回はその続きで、もう少し詳しい回路の説明などを波形写真を交えて解説したいと思います。

 やりたいことをおさらいしておくと、DSO Shell から出る電気信号(シリアルデーター)を光に変換し、その後で再度電気信号に戻すのが目標です。こういうことをやりたい場合、最初に考えるのは次のような回路だと思います。

▼基本的な光インターフェイス回路
基本回路
 信号は負論理なのでPNPトランジスタで受けてLEDをドライブし、その光をフォトトランジスタで受けて電気信号に戻す回路です。まずは、これでうまくいくか確かめてみます。

▼テスト用の回路を組む
基本回路の実験中
 LEDとフォトトラは、セロテープで丸めてくっつけて、簡易的な芯合わせ状態にしています。いきなりDSO Shell の信号を使うのは実験がやり難いので、パルスジェネレーターから信号を入れて動かしてみます。VR1で波形が電源とGNDの間で均等に振り分けられるように調整します。

▼出力波形
基本回路の波形
 上が入力、下が出力の波形です。一見うまくいっているように見えますが問題はそのスピードです。横軸は50μs/DIVなので、パルス幅は100μsあり、10kbpsの速度しか出ていません。
 DSO Shell のデーター出力レートは115.2kbps なので、あと10倍高速にしないといけません。つまりこの回路は使えません。

 こういう場合の対策をネットで調べてみると、前の記事に書いたように、JO-MIDI-FMさんの書かれた、汎用 4 ピンフォトカプラを使った MIDI 入力という記事の方法が使えそうです。いろいろ試した結果、少しアレンジを加えて以下の回路で行くことにしました。

▼回路図(前の記事と同じ回路図です)
Dso Shell 光インターフェイス回路
 回路図内のLEDとフォトトランジスタは秋月で購入可能な物です。以下、ポイントを説明していきます。

・C1はスピードアップコンデンサで、Q1をすばやくOFFにするために入れています。C1を入れないと、LEDがONの時間が1.5μsくらい長くなってしまい、デューティ比が悪化します。

・R2でLEDの明るさが決まりますが、この値が小さすぎると、フォトトランジスタ (PT1) が飽和してスピードが遅くなります。ちなみに、最初はR2を220Ωにしていたのですが、これでは光が強すぎでした。

・Q2で電流を検出し、同じ電流をQ3にミラーすることで出力電圧を出す回路になっています。
 参考にさせて頂いたサイトでは、フォトトランジスタのコレクタと電源の+5Vの間にLEDを入れて、フォトトランジスタの発熱抑制と光入力の表示機能を兼ねさせていました。表示があると便利なのですが、LEDを入れるとパルスの応答特性が悪化したので外しました。原因としては、LEDのVfは電流によってかなり変わるので、ミラー効果の抑制効果が低下した。あと、LEDはバイアス履歴によっては変な挙動を示すことがあるので、そのあたりの悪影響があったのではないかと想像しています。それと、参考にさせて頂いたサイトは 31.25kbps の MIDI のデーターが対象なので、もう少しマージンがあったのかも知れません。

・VR1は出力波形(Q3のコレクタ波形)を見ながら調整します。VR1の値を小さくすると波形は上に引っ張られ、VR1の値を大きくすると波形は下に引っ張られます。ということで、ほど良い波形になるように調整が必要です。

 以下、波形の調整の様子を見て行きますが、説明の都合で先に調整完了後の波形から始めます。

▼入出力波形
入出力波形
 上が入力(CN1のピン4)、下が出力(CN2のピン4)です。なお、トリガは入力のプラスエッジで掛けています(流れているデーターの影響で、マイナスよりプラスエッジの方が見易かったためです)
 入力に対して出力が1μsくらい遅れているようですが、全体がシフトしているだけなので、シリアルデーターの受信には全く影響無いと思います。

▼測定の様子
波形観察中

▼アイパターン (トリガディレイを掛けた画面です)
アイパターン
 USBシリアルアダプタの入力は3.3V(5Vトレラント)なので、その中間の1.7V付近でクロスするようにVR1を調整しました。まあ波形の平坦部のレベルがしっかりと出ているので、ここまで追い込まなくても大丈夫だと思います。

 さて、話をVR1の調整に戻します。

 ここまでの説明では、別のオシロを使って波形を見ました(テクトロの400MHzアナログオシロ、2465Bです)。こういう波形をDSO Shell 自身で見ることが出来ればいいのですが、シリアルに波形データーを吐き出している最中なので、CPUは忙しくてそんな暇は無いだろうと思っていました。

 ところが、驚いたことにトリガモードをNORM(ノーマル)にしておくと、シリアルに波形データーを約3秒かけて送信した後で、シリアルポートに流れたデーターの波形が液晶に表示されました。もちろんプローブは測定したい場所(CN2 の4ピン)に繋いでおきます。つまり、ちゃんとトリガがかかるように設定しておけば、シリアルにデーターを送っている最中でも、波形はメモリーに記録されているようです。ちなみに、遅い速度で記録すると波形は約3秒間記録されていたので、先頭からメモリーの許す範囲で記録されるようです。

 実際の波形で説明します。以下の写真は出力ピン(CN2の4ピン)の波形で、左がアナログオシロ、右がDSO Shell の画面です。なお、アナログオシロの波形はカメラのシャッター速度1秒で撮影しています。つまり1秒間重ね合わせた波形です。

▼VR1の値が小さい場合
抵抗低すぎ 上すぎ
 上側に引っ張られすぎています。Lowレベルが2V以上あるので、これではシリアルの信号として認識されません。

▼VR1の値が高い場合
抵抗高すぎ 下過ぎ
 上向きに引っ張る能力が不足しているため、振幅が5Vまで達していません。またデューティー比も50%になっていません。これでは文字化けやフレーミングエラーが多発して、正しい通信は出来ません。

▼VR1適正
適正 適正
 正常なシリアルインターフェイスの波形です。右側のDSO Shellの波形でもデューティー比がほぼ50%付近であることが確認出来ます。

 VR1の調整は、シリアルモニタで受信しながら、エラー無しで受信出来る範囲の中心に合わせるだけでもたぶん大丈夫だと思います。でも、このように波形を見ればより正確な調整が出来るはずです。

◆まとめ
・比較的高速なシリアルデーターを光で取り出すための回路の話でした。秋月で普通に手に入る部品でも、使い方を工夫すれば115200bps の速度を出すことが出来ました。
 ここで使った、スピードアップコンデンサ、ミラー効果抑制のためのカレントミラー回路、トランジスタの飽和対策などは、古典的と言って差し支えないほど昔からある方法です。こういうテクニックはICの中に埋まっていて、普段は使うことが無いかも知れませんが、覚えておけば何かの時に役立つと思います。

・この回路の動作確認に私は別のオシロを使いました。でもDSO Shell は自分が出しているシリアルデーターの波形を自分の画面に表示出来ることが判りました。こうなると、別のオシロを準備する必要が無くなった訳で、この回路を実際に作って調整するためのハードルが大幅に下がったと思います。
 ただ観察対象の波形はボタンを押した瞬間しか現れないので一発勝負です。つまり、波形を確実にトリガで引っ掛けるように設定することが必要で、信号のレベルとイベントの極性がどうなっているか正しく予想してオシロに設定しないといけません。これって結構難しいですが、このオシロの使い方をマスターするのに格好の素材だと思います。
関連記事

コメントの投稿

管理者にだけ表示を許可する

No title

解説記事、面白かったです。ありがとうございます。
明るすぎると飽和して、反応が悪くなるっていう点、なるほどと思いました。明るければ明るいほど良いものと思っていたので…

100Ω(固定)と10kΩ(半固定)の組み合わせは、元々目星があったりしたのでしょうか?それとも、カットアンドトライで決めていったのでしょうか?

nekosanさん、おはようございます

固定で入っている100Ωは保護用なのでこれくらいの値になるのかと。

半固定抵抗の値ですが、1kΩでは100Ωに対する比率が小さいので面白くない。とは言っても100kΩでは速度的にインピーダンスが高すぎな感じ。ということで10kΩにしたと思います。

まあ、ある程度高速で動く回路のコレクタ抵抗は10kΩくらいが上限かと思います。

No title

100Ωはコレクタ電流が流れすぎない保護用、10kΩは出力インピーダンスを大きくしすぎない程度でそこそこ大きく、という感じですかね。
なるほど。良くわかりました。ありがとうございます。


例の、計測の数値が表示されない件について、JYE-Teckからメールの返信がありました。

メーカー側では再現しておらず、なのでアナログボードの各電圧を計ってみて、教えて、という連絡が来ました。
私のボード上で各電圧を測ってみたところ、次のようになりました。(9V電源)

V+ : 8.29
AV+ : 6.69
V- : -7.29
AV- : -5.89
V1 : 0.0028
V2 : 0.0017
V3 : 0.0
V4 : 1.414

このうち、AV+とAV-は、それぞれ+5.0V、-5.0Vの±2%が本来の設定値なので、すこし外れているようです。

これが原因かは判らないのですが、ひとまずJYE-Teckにこれらの数値を伝えたところです。
また、この電圧は故障などによるものなのか、もしくはファームを入れ替えたことによるものなのかも不明なので、その辺もどうなのか、質問を投げてみました。

お手すきのときで構わないのですが、このAV+、AV-の電圧がどのくらいになっているか、ご計測いただけるとありがたいのですが…

nekosanさん、今晩は

100Ωを入れておかないと、半固定抵抗の端っこが焼損することがあります。トランジスタよりこっちの方が値段が高いことが多いので被害が大きいです。

あと、お尋ねの電圧ですが、うちの個体の電圧は下記でした。
V+ : 8.18
AV+ : 6.609
V- : -7.395
AV- : -6.034
V1 : -0.00303 (-3.03mV)
V2 : 0.00065 (0.65mV)
V3 : 0.00065(0.644mV)
V4 : 1.531

AV+とAV-の電圧ですが、私やnelosanの基板はバージョンが古いので、電圧の安定化がいいかげんだったので±2%にはならないと思います。
ちなみに、新しいバージョンでは7805と7905を使っているのできちんと±5Vになっているのだと思います。

現在の回路図は、下記で、
https://www.jyetech.com/Products/LcdScope/Schematic_150analog.pdf
昔の回路図は現在のJYEのサイトに掲載されていませんが、掘ったら昔の名前で残っていました(下記です)
https://www.jyetech.com/Products/LcdScope/Schematic_Shell.pdf

あと計測値が表示されない現象ですが、波形データーを出力する時に計測値が一緒に出ますが、こちらも状況は同じです。
つまり、振幅が4DIV以上無いと計測値が出力されません。
この前の記事の最初の写真(見難いです)と、8枚目の写真が計測情報が出ていない例です。

判り難い画像を作ったので下記に上げておきました。
https://blog-imgs-110.fc2.com/r/a/d/radiopench/20171228Vdiv500mV.jpg
https://blog-imgs-110.fc2.com/r/a/d/radiopench/20171228Vdiv1000mV.jpg

これはネットに公開した画像なのでどのように使っていただいてもかまいません。

では、

re:nekosanさん、今晩は

ラジオペンチさん、早速のご調査ありがとうございました。
お手を煩わせてしまい、もうしわけありません。

DSO-138の正負電源回路は追ったことがあるんですが、DSO-Shellの方は見たことがありませんでした。新旧で異なってるんですね。

(スイッチトキャパシタで正負電源作るだけの旧版と、7805/7905で安定化している新版という感じですかね。DSO-138は、さらに輪をかけてすごい回路構成だったので、市販のスイッチトキャパシタ使ってるDSO-Shellの方が、まだ安定しているだろうと思います)

でも、AV+、AV-は、オペアンプの両電源に使っているだけだろうと思うので、多分これが原因とはなりにくいと思うんですよね…。
(多分これが原因ではないのでは?と、JYE-Techにはメールしておきました)

あと、UARTのデータもありがとうございます。あとで、JYE-Teckに送って、見てもらおうと思います。

なにか調査が進んでくれればありがたいのですが。何か進展したら、ご報告したいと思います。

そういえばこの回路だと、100Ω抵抗つけずに可変抵抗絞ったら、確かにショートしてしまいますね。

re2:nekosanさん、今晩は

4DIV以下でタイミング関係の波形情報が表示されない件は、これが仕様だよ、と言われたらそれまでなので、深追いしても疲れるだけかも知れませんね。

それに、Jyeのフォーラム見ていると、何かユーザーの意見が書かれても、黙殺していることがあります。あっちはあっちの都合があるのでしょうね。

No title

まぁ、少ない人数でサポートやってるんでしょうし、おまけ機能程度に考えておけばいいのかな、と思います。
現状でも、PCとアイソレートされたお手軽オシロとして、かなり役立ってるので、もう十分お値段以上だと思ってます。

光通信でPCにデータ取り込む機能、私も付け加えたいなぁと思いつつ、普段使ってるWindows機は、オフィスソフトがLibreOfficeなので、Excelのマクロが動かないんですよね。なので、DSO-Shellの出力フォーマットに合わせてLibreOfficeで動くようなマクロ書くか、専用のGUIソフトでも書くか、どっちかかなぁと思ったりしてます。
(さすがに作るとなるとすぐに簡単に、と言うわけに行かないので、いずれ考えようかな、程度ですけど)

もしくは、Gnuplotですかね。あまり使ったこと無いので、ちゃんと動かせるかが心配ですが。

今確認してみたら、27日にファーム111というのが出てました。なんか、単位云々でバグフィックスされたバージョンとか。(詳細不明)
もしかして、これの件でしょうかねぇ?

nekosanさん、おはようございます

今見たら111出てました。
やるなら、アップデートの手順に慣れている今かなという気はしますが、真っ先にやって爆弾入ってるといやなので、ちょっとだけ様子見しようかと思います。

うちのExcelはすごく古いバージョンなので、やはりVBAとかはまともに動きそうにありません。そんなことで、TeraTermで読んでコピペでCSVファイルを作るやり方で使う予定です。

グラフ化ソフトがあると便利でしょうね。出来るだけ環境に依存しない言語で作ってあるといいなと思います。JAVA勉強するか!いや冗談です。

作りました

あけましておめでとうございます。
今年も、面白い記事を沢山載せて下さい!

光通信、作製しました。
ばっちりです。ケースも、3Dプリンタで製作して、いい感じになりました。

100均で売っている、スマートフォンスタンド+ペン入れがぴったりです。電源端子の部分を削るとよりフィット。
鉛筆入れの部分には、プローブや、光通信モジュールを入れています。

re:作りました

akioさん、今年もよろしくお願い致します。

光通信うまくいってよかったです。そうやって連絡いただけるとこちらも励みになります。
カレンダー
11 | 2018/12 | 01
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード