2009-12-26
実験に使用したRS-485ドライバーはリニアテクノロジーのLTC1485。MAXIMのセカンドソースか?ピン互換性がある。電圧変換機能はないのでRS-232CドライバーICの用に外付けコンデンサは必要ない。

LTC1485 秋月電子で1個¥300
消費電力は信号の周波数が高ければ大きくなります。

ドライバーの消費電力。20mA程度流れる。通信用のドライバーは比較的大食い。
デジタル回転計のセンサーが遠距離にある場合を想定して実験。先ずはドライバー無しで。ケーブル長は16m。電線はシールド線だがシールドは宙ぶらりん。ツイストペア線では無い。ドリルの最大回転数1万rpm程度までは問題になりそうもない綺麗な波形。

ドライバー無しでも動作してしまった。この写真の状態ではブレッドボードに載っている回路は使用されていない。左側が16mの電線。

3400rpmでの波形は少しなまっているが問題ないレベル
ドライバー無しでも余裕で動作するのであまり意味がないがドライバーを使用して動作確認。当たり前のように動く。

ドライバー経由で動作確認。中央のPICはこの実験では使用されていない。
回転計動作確認用のドライバー回路図。左側+マークの部品はホールIC「DN6851」。
1番ピン:受信信号出力 MPUに繋ぐ
2番ピン:LOWで受信可、HIGHで受信不可
3番ピン:HIGHで送信可、LOWで送信不可
送信/受信を2,3番端子で切り替える。
同時に送受信は出来ないので通常2,3番ピンを接続しMPUに繋ぐ。この回路は一方通行なので電源に直接繋いでしまっている。
4番ピン:送信信号入力 MPUに繋ぐ
5番ピン:電源マイナス
6番ピン:ケーブルへ
7番ピン:ケーブルへ
8番ピン:電源5V
120Ωの抵抗を取り去ってしまうと発信してしまいます。

ドリルの回転数程度では遅すぎるのでPICに方形波を出力するプログラムを書き込んで実験。プログラムは以下の通りシンプルな物。
'---------------------------------
program tenmetsu
symbol PORT_OUTPUT = 0
main:
TRISB = PORT_OUTPUT
while( TRUE )
PORTB.1 = 0
PORTB.1 = 1
PORTB.1 = 0
PORTB.1 = 1
PORTB.1 = 0
PORTB.1 = 1
PORTB.1 = 0
PORTB.1 = 1
PORTB.1 = 0
PORTB.1 = 1
wend
end.
'---------------------------------

ドライバーの入力波形。つまりPICのPORTB1の出力波形。2つ有るが上は下の一部を拡大した物。約2.5MHz。
もう少し周波数を高くできそうだ。

ケーブルの受信端の波形。つまり受信側ドライバーの6,7番ピン間の波形。

ドライバー受信端1番ピンの波形。当たり前だが入力波形と同じ。
2010-02-14
ケーブルを100m購入したので実験してみた。

今回は使用していないがシールドの抵抗値は3.27Ω

電線は100mで12.79Ω
ドライバー受信端の信号。入力信号は以前と全く同じ物。波形を見る限り2.5MHzでは100mが限界と見て良さそうだ。LTC485とLTC1485はケーブルが長いときには性能が同じで、ケーブルが短いときに伝送速度を速くできるのがLTC1485ってことらしい。

LTC1485の波形。上下の波形は同じ物。下の波形の明るくなっている部分を拡大したのが上の波形。

LTC485の波形 両者に違いは殆ど見られない。価格差は2倍。
実験風景。基板はOLIMEXで作った。自前のプロトコルならクロックとデータの2本線の方が楽なのでICは片側に2個搭載してある。合計4個。電線も4芯が必要。

電源は共通。

受信端の波形、デューティーも狂っていない。ケーブルを流れる信号がノコギリ波でもデジタルに変換すれば元のきれいな波形に戻ってくれる。
電源電圧は5V。負荷が軽ければ(=ケーブルが短ければ)電圧は落ちないが、さすがに100mにもなると信号の振幅は3V程度になる。

LTC485の波形

LTC1485の波形。若干振幅(=電圧)が大きいようだ。
ケーブルが長くなると消費電力も大きくなる。信号の有無による消費電力の変化は数mA。電流計の針の振れの差はよく見ていないと判らない。周波数を下げることによって消費電力を抑えようとしてもあまり効果が望めない。

約40mA

4個使えば...当然約80mA
今度は2つの信号がシールドケーブル内で相互にどのような影響を受けるのかの実験。使用したケーブルはオヤイデ電気の軟質横巻シールドケーブル。横巻きというのはシールドが網目状になっているのではなく螺旋状に巻いてあるという意味。

長さは60m。巻いてある影響も受けているはず。
プログラムを書いて信号を送り込む。

送信側の信号。つまりPICのデジタル信号。これは上下が別々の信号。上がクロックで下がデータのイメージ。上がPORTB.2、下がPORTB.1の出力。

受信端の信号。LT458の出力信号
ケーブル上の信号波形

互いに影響を受けているがデジタル変換されると問題ないレベルだが。300kHz程度が安全圏内だろう。1MHzはちょっと速すぎる感じ。

下側の信号を切ってみた。上側の信号の影響を受けている。
実験回路の回路図。これを2個使用。