RS-232Cを理解する
もはや骨董品になりつつあるRS-232C。ここの目的は、マイコンのTX,RXからテキストのコマンドを送りつけて、機器とRS-232Cと通信することをめざす。テストとして、NEW portの光パワーメーターのRS-232Cで制御する。
https://www.equipland.com/objects/catalog/product/extras/1030_1830-c.pdfその前に、RS-232Cのピンについてのお勉強。装置のマニュアルに掲載されているピン配置
各ピンの役割
DTE | DCE | |||||
1 DCD | Data Carrier Detect | モデムでデータ通信する時。1にしておく | 1 CD | Carrier Detect | (キャリア検出) | |
2 RxD | Recieve Data | 受信データライン | 2 SD | Send Data | (送信データ) | |
3 TxD | Transmit Data | 送信データライン | 3 RD | Recieve Data | (受信データ) | |
4 DTR | Data Terminal Ready | こちらの電源が入っている事を相手に教えてあげる。1の時電源ON | 4 DR | Data Set Ready | (データセットレディ) | |
5 GND | Ground | GND。信号のグランド | 5 SG | Signal Ground | (シグナルグランド) | |
6 DSR | Data Set Ready | 相手側の電源が入っているか確認。1の時電源ON。 | 6 ER | Equipment Ready | (データ端末レディ) | |
7 RTS | Request to Send | 送信要求、ゼロの時相手は送信を止める | 7 CS | Clear to Send | (送信可) | |
8 CTS | Clear to Send | 7RTSの逆。1との時こちら側からデータを出力する | 8 RS | Request to Send | (送信要求) | |
9 RI | Ring Indicator | モデムからの受信している間1になる | オープン | 9 | |
↑から自作で回路を作製する際、7&8番ピンの直結しておき、
マイコンからの送信要求(7番ピン)に対し、無条件に送信可(8番ピン)を返すようしておけばとりあえずはよさげ。
他に必要なのは、5番ピンはグランドと、2番ピンと3番ピンがマイコンからの制御信号のやり取りに使う。
一通り理解が進んだところで、実装!
VCC=3.3 V(5Vでも動く)で使っても±9VのRS-232Cの出力に変換してくれる。
ピン数が多いが、コンデンサを回りにくっつけるだけなので実質の配線は少ない。
String incomingStrings;
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
Serial.print("K1\n");
}
void loop() {
Serial.print("W?\n");
delay(10);
if (Serial.available() > 0) {
// read the incoming byte:
incomingStrings = Serial.readString();
Serial.println(incomingStrings);
}
delay(50);
}
W?とコマンドを送ると、0800と返してくる(波長設定を聞いている)
はまった事:
RS-232Cの2ピンは、データを受け取る側なので、マイコンのTXと接続すると思い込んでいた。実際は、RS-232Cの3ピンとT2OUT-TX2IN-マイコンのRx、2ピンとR2OUTーR2INーTXを接続すると動いた・・・解明できていないが、俗にいうクロスケーブル?
ここは、ボード側でストレート、クロスをジャンパー設定できるようにするとかしておいたほうがよさそう
コメント
コメントを投稿