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

ミニオシロ DSO Shell に光インターフェースのデーター出力機能を付けた

 JYE tech のミニオシロのDSO Shell のファームを110にアップデートすることで、波形データーをシリアルポートから出せるようになりました。USBシリアル変換アダプタを接続すればデーターを取り込むことが出来ますが、このやり方ではグラウンドの電位がPCと共通になってしまうのが難点です。これではDSO Shell の良さが一つ消えてしまいます。そこで、電気的に絶縁するために、光インターフェイスで接続できるように改造してみました。

 別に光で出さなくても、フォトカプラで絶縁する、あるいは絶縁型USBアダプタを使うなどの手があります。でもここは判り易く光で出すことにしました。と言うとかっこいいですが、手持ちの部品だけで何とかしたかった、という貧乏根性が背景にあります。

 データーのレートが115200bps とかなり早いので、少し工夫が必要でしたがともかく完成しました。

▼光インターフェイスを接続した状態
光インターフェイスの使い方
 ケースの右下に開けた穴から光信号を取り出し、インターフェイス回路経由でUSBシリアルアダプタを使ってPCへ接続しています。
 
▼光の出口
光出口
 赤色LEDを使ったので、データー送信中は穴の奥が赤く光ります。

▼内部
DSO Shellに組み込み
 下側ケースにスペースがあったので、そこに送信用の基板を取り付けました。なお、基板はホットボンドで接着固定しています。

▼光送信部
送信回路
 写真左上のピンソケットを、本体のコネクタ(J5)に取り付けたピンヘッダに接続して使います。ピンソケットの端子はこの写真のように折り曲げないとケースに収まりません。なお、線の保護のため熱収縮チューブを使っています。

 右側の銅パイプは薄い(0.1mm)銅板を丸めてはんだ付けして作った物です。ここは内径3mmのパイプなら何でもいいです。ここにLEDとフォトトランジスタを対向して突っ込むことで光軸を合わせます。

▼受信回路
受信回路
 上が受光用のフォトトランジスタ(NJL7502L)で、これをDSO Shellの光の出口の穴に差し込みます。左が受信用の回路で、右はUSBシリアル変換アダプタ(AE-FT234X)です。なお、このUSBシリアルアダプタの信号レベルは3.3Vですが、入力は5Vトレラントです。

▼回路図
回路図
 受信側はカレントミラーを使ったフォトトランジスタの電流検出回路になっています。ここはJO-MIDI-FMさんの書かれた、汎用 4 ピンフォトカプラを使った MIDI 入力と言う記事を参考にさせて頂きました。ありがとうございます。
 なお、このフォトトランジスタは照度測定用なのでこういう用途に向いている物ではありません。またトランジスタも本来ならスイッチング用を使うべきです。ともかく、入手性第一(手持ち部品優先)で作ったのでこんな回路になっています。

▼出力波形(Q3のコレクタ波形)
受信波形
 立ち上がりがやや遅いですが、デューティーは50%を維持出来ているのでこの波形なら大丈夫だと思います。波形の上側のノイズ(ニジミ)は、電源電圧のリップルが原因です。

▼ターミナルソフト(TeraTerm)で受信している様子
teraterm
 スイッチ操作(ADJ + V/DIVボタン押し)をする度に、こういうデーターが流れてきます。波形データーだけでなく、測定条件や波形の周波数や振幅などのパラメーター情報も送信されています。なお、波形データーは行番号、時間、電圧が1行になっていて、1024行あります。

▼エクセルで波形をグラフ表示
エクセルで波形表示
 ここまでくれば、FFTでも何でも出来ます。このオシロに使われているADCのINLやDNLを見るのも簡単に出来そうです。

◆まとめ
 こう書くとあっさり出来てしまったみたいですが、115200bps のデーターをフォトトランジスタで受信するにはそれなりの工夫が必要でした。答えはほぼ回路図に書いてありますが、マージン確保のためには調整などが必要です。ということで、そのあたりの話は次回の記事で紹介したいと思います。
カレンダー
11 | 2017/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コード