0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

RaspberryPiでPython SMBusライブラリのWriteメソッドのロジアナ解析

Posted at

#概要
RaspberryPi上で動作するPythonで、i2cデバイスと通信をする際に使用できるSMBusライブラリのコマンドの一部をロジアナで見てみます。挙動の参考にしてみてください。

#ロジアナ解析

##write_byte_data(slave_address, command, byte_data)

write_byte_data(0x3e, 0xaa00, 0xaaff)

image.png

  • slaveアドレスに続き、コマンド8bit、データ8bitがslaveデバイスへ送信されています。ソースでは故意に16bitデータを入力させましたが、上位8bitは無視されていました。

##write_word_data(slave_address, command, word_data)

write_word_data(0x3e, 0xaa00, 0xeedd)

image.png

  • コマンド8bit、データ16bitが送信されています。コマンドは下位8bitのみ、データはwordなので16bit分ですがLSB 7:0、MSB15:8の順に送信されています。

##write_i2c_block_data(slave_address, command, data[])

write_i2c_block_data(0x3e, 0xaa00, [0x01,0x02,0x03])

image.png

  • データを配列で指定し、一気に送信しています。コマンドは0x00、データは0x01,0x02,0x03の三つになります。

##write_block_data(slave_address, command, data[])

write_block_data(0x3e, 0xaa00, [0x01,0x02,0x03])

image.png

  • 基本的に上のwrite_i2c_block_dataと同じだと思っていたのですが何故か引数で指定していない0x03が入ってしまい、原因不明です。分かるかたいらっしゃったらご教示いただけると助かります。
0
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?