○ シリアル通信を光ファイバー経由する

パソコンのUSBをシリアル通信(TTLレベル)に変換するモジュールを使用します。
シリアル変換モジュール 低価格ですがちゃんとした作りで気に入っています。
安価なトスリンクという光ファイバーと送受信パーツを使ってシリアル通信を経由させてみたいと思います。
テレビなどの裏側などに付いている光コネクタですが、オーディオデーターを光ファイバーで扱うための規格のようでケーブル長は通常5mまでだそうです。
光ファイバー経由することにより強力な絶縁が手に入りそうです。
シリアル通信は双方向なので送信と受信の2本の光ファイバーを使用しました。
光ファイバーとしてTOSLINK コネクタコードを2本使用しました。
送信部分のパーツとして、秋月電子通商から
販売コード109598 角型光デジタル通信コネクター(送信用・シャッター付) PLT133/T10W
販売コード109597 角型光デジタル通信コネクター(受信用・シャッター付) PLR135/T10
この部品を2個づつ購入しました。
調べてみた所、受信と送信でピンに共通性が無く配線時に頭が混乱してきます。
最初に次のようシリアル変換モジュールに接続しました。

送信側はデータが無い時は常に光りっぱなしになります。
この回路をシリアル変換モジュールに接続し、光コネクタの送信側と受信側を光ケーブルで接続し 送信→受信 が行われるようにしました。
作成してパソコンからUSBシリアル変換モジュールを経由して a の文字を送った所 O の文字が返ってきました。
つまり、受信ビットが反転しています。

回路を修正して RxD に NOT(反転)回路を入れてみる事にしました。

実際に作成するとこのようになります。
回路には書いてありませんが空いた NOT の入力はGNDに落としておいた方が無難です。
パスコンのアルミ電解コンデンサを1個、積層セラミックコンデンサを2個追加しました、コレが無いと文字化けが頻発します。

適当に作ってみて動作を確認している所です。

動作は良好で、送信したデータを受信出来る事を確認できました。
9600bps でしか確認していません。もっと速くするには抵抗値の調整をする必要があると思います。
▼ Arduinoとパソコンを光ファイバー経由で通信する
先ほど適当に作成して確認した回路を基板上に作り直し、USBシリアル変換モジュール と接続しパソコンの通信を光に変換します。

Arduino側にも同様の回路を作成し 0番ピンRX 1番ピンTX に接続しました。

TOSLINKケーブルを2本用意して送信と受信を交互に接続します。

パソコンとArduino間の通信が出来る事が確認できました。
しかし、時々ノイズによる文字化けが発生します、ソフト側で複数回送受信して値が同一なら適用するみたいな
エラー訂正の仕組みを送受信側に作る必要があるようです。
▲トップページ
>
マイコンなど