2022年08月13日

1-WireマスタコンバータDS2485

1-WireはGNDと電力を兼ねた信号線1本だけで低速なデータ転送を行うシリアルインターフェイス規格です。I2CやSPIと違って基板内や基板同士の通信でなく、外部に延長することを目的としていたシリアル通信規格のため、最長で数百m以上ケーブルを伸ばしてセンシングすることが可能です。

今回、紹介するのはI2Cから1-Wireデバイスを制御するための1-Wireマスタコンバータ、DS2485です。126Byteのバッファ、0.75kbit(32Bytex3)のEEPROMを搭載しています。I2Cから1-Wireに変換するコンバータとして、従来のDS2482、DS2483、DS2484等がありますが、DS2485は細かいタイミング調整やバッファ、EEPROM等を備えています。一方、コマンド等は従来と互換性がなくなっています。また、標準では3.3V系専用で5V系には対応していません。5V系で動作させるためにはレベル変換が必要です。なお、DS2485に備えられたGPIOはユーザ側でオープンドレインIOとして利用可能ですが、データシート内のP.38のP-Channel Enableビット等があることから仕様上はストロングプルアップのP-FET制御用のIOを想定しているようです。


マイコンから直接、1-Wireを制御する場合に比べて、1-Wireマスタコンバータを使用するとI2Cからコマンドを書き込んだり、値を読み込んだりするだけで通信できるため、マイコン側の負荷が低減できます。特に1-Wireはタイミングにセンシティブなため、一般的なマイコンで実装すると1-Wireの通信中は処理が占有されてしまいがちです。そのような場合に便利なのが1-Wireマスタコンバータです。

1-Wireマスタコンバータ、DS2485の変換基板を作成して、有名な1-Wire温度センサ、DS18B20を接続してみました。


1Wire.jpg

1-Wireで必要なコマンドが1-Wireマスタコンバータに予め実装されているため、簡易に1-Wire機能を実装することが可能です。実装後の動作確認ではすんなり動作せず、原因を追ったところ、初期設定が必要なレジスタがあることが分かりました。1-WireマスタコンバータDS2485として電源投入後、Master Reset 62hコマンドくらいで、その他のタイミング等はデフォルト値で問題ありません。ただ、RPUP/BUFコマンドについてはエラッタなのか、デフォルト値から変更が必要なことが分かりました。RPUP/BUF Registerの初期値は803Chとなっており、一般的な条件では0006hに設定変更が必要です。他のレジスタはデフォルトで0006hになっているにも関わらず、RPUP/BUFだけは0006hに変更が必要なため、分かりづらく、注意が必要だと思いました。

1-Wireは省配線でありながら、1-Wire温度センサ、DS18B20の他、熱電対やEEPROMメモリ、I2C/SPIブリッジ等の様々なデバイスがあることから、色々試してみたいと思いました。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック