ファームウェアのコマンド

ファームウェア・DSIO

LED電光掲示板は Dallas 1-Wire Busとのインターフェース回路を 有しています。 1-Wire Busは3線、あるいは2線からなるバスで、 複数のセンサー等のデバイスを接続することができます。 デバイスは64bitからなる固有のIDを有し、別々にアクセスすることができます。

代表的なデバイスとしてはDS18S20という温度センサーがあります。 この温度センサーは1/16度の分解能を有し、 また、複数のセンサーをバスに接続できることから 面白い応用が可能です。

使用法の概要

1-wire bus上のデバイスにアクセスするには、 bus上のデバイスのIDを知る必要があります。 そのために dsenumコマンドでデバイスのIDを列挙させます。

次に dsconvtコマンドですべてのセンサー温度変換コマンドを発行し、 そのあと dsgettコマンドで各センサーの測定値を読出します。


コマンド:dsenum

用例:dsenum

1-Wire busに接続されているデバイスのIDを列挙する。

応答例:(何も接続されていない場合)
dsenum
E no devices.
Ok.

応答例:(3個の温度センサーが接続されている場合)
dsenum
D 1002890f00000037
D 101b8c0f00000028
D 10fb890f000000d3
Ok.

コマンド:dsconvt

用例:dsconvt [ID]

1-wireバスに 温度変換命令を発行する。 引数は16進数16桁のデバイスのIDコードで、 指定されれば、そのデバイスだけへの変換命令が発行され、 指定されなければ、バス上の全てのデバイスへの変換命令が発行される。

バスを監視し、変換の完了を待つので、 バス上に指定された温度センサーが無い場合にはタイムアウト・エラーになる。

応答例:(何も接続されていない場合)
dsconvt
E convT timeout
Ok.

応答例:(温度センサーが接続されている場合)
dsconvt
Ok.

コマンド:dsgett

用例:dsgett  [ID]

センサーの温度の変換値を読出す。 単位は度で、小数点以下2桁までの値が返される。 引数は16進数16桁のデバイスのIDコードで、 指定されれば、そのデバイスの値を読出し、 指定されなければ、バス上の全てのデバイスへの読出しが行なわれるが、 バスに接続されているセンサーが複数有る場合にはエラーになる。

応答例:(何も接続されていない場合)
dsgett
E read scratchapd failed.
Ok.

応答例:(3個の温度センサーが接続されている場合)
dsgett
E crc error.
E read scratchapd failed.
Ok.
dsgett 1002890f00000037
D 27.26
Ok.

商品の仕様、デザイン、価格は予告なく変更されることがあります。