なーお さんの日記
2014
7月
13
(日)
19:28
本文
mbedで色んなことが簡単に出来るだろうことはわかったけど、遊びと勉強ばかりでは面白くないので、仕事に何か応用できないかと考えた。
そこでこの時にVB.netで作ったRS485通信のPC内シミュレータを、mbed LPC1114に移植できれば複数台の通信確認が取れるなと考えて、RS485通信トランシーバIC (TE)SN75176BP とブレッドボードその他を購入しやってみました。
今回は、3台分の機器側に成りすますシミュレータをブレッドボード上に配線します。 ブレッドボード上に1台ずつ、計3枚の普通のブレッドボードが必要。
- 購入部品 (LED、抵抗、配線材などは手持ち品を流用)
名称 型番 購入先 数量 単価(税抜) 普通のブレッドボード EIC-801 スイッチサイエンス 3枚 257円(税込) mbed対応マイコン LPC1114-FN28
生産中止(?)品秋月電子通商 3個 120円 RS485/RS422トランシーバIC (TE)SN75176BP 秋月電子通商 3個 80円 ディップSW 5P 秋月電子通商 3個 60円 タクトSW 各色 秋月電子通商 3個 10円
- 配線図
- 電源はトラ技ライタ経由USBから取る。
- ディップSWで局番(今回は1~3)設定可能とする。
- SN75176BPのDE端子は、機器1台なら3.3V印加しておくだけでOKだが、機器2台以上マルチドロップの場合は、マスタからのコマンドに返信するとき以外はバスを解放する必要があるため、マイコンのdp4を返信直前にHigh、返信後20msec後にLowとするソフト処理を行う。
- マイコン側は3.3Vなのでこのままで良いか不安もあったけど動いてるから大丈夫?
- マスタ側ソフトは、このディレイ時間20ms分の待ちが必要。
- この信号のHighの時に赤LEDを点灯させる。
- RS485バスラインのプルアップ抵抗(R5)、プルダウン抵抗(R6)の抵抗値は、実際の路線長で決める必要があると思うのだけど、今回はテストなので小さ目の抵抗を入れてみた。
- 生存確認用にLED1を点滅。 UARTポートと共に割り込みプログラムとする。
- プログラム
- 今回は、仕事の秘匿義務の兼ね合いもあるので非公開です。すみません。
- コーディング・デバグは、ある程度の段階でmbedオンラインコンパイラからエクスポートして、μVision4にて行いました。
- 配線状況
テストなのでヒドイ状態ですね。(汗) 下記動画の際には少しだけ整理しました。
- 動画
PLC側のテスト画面と共に映してみました。ボーレートは38,800bps。
機器1→機器2→機器3と通信先を切り替えてサイクリックに通信します。 機器側が受信し送信中に赤LEDが点灯します。 1回のコマンドで1点灯で、点滅回数分のコマンドを処理しています。
今後も仕事で通信案件が来た時には、こんな感じでシミュレータを作って事前テストするですね。 部品単価が安いので、USB/RS485コンバーターを買うよりずっと安価にできますし。
ここまでテストばっかりやってきたけど、そろそろ実際に動かす何かを作るかなあ。。
閲覧(20890)