SMBus shell

Overview

This is a simple SMBus shell sample that allows arbitrary boards with SMBus driver supported exploring the SMBus communication with peripheral devices.

Building and Running

This sample can be found under samples/drivers/smbus in the Zephyr tree. The sample can be built and run as follows for the qemu_x86_64 board:

west build -b qemu_x86_64 samples/drivers/smbus
west build -t run

Sample Output

Output from console when application started:

*** Booting Zephyr OS build zephyr-v3.2.0-804-gfedd72615e82  ***
Start SMBUS shell sample qemu_x86_64
uart:~$

List available SMBus shell commands with:

uart:~$ smbus
smbus - smbus commands
Subcommands:
  quick            :SMBus Quick command
                    Usage: quick <device> <addr>
  scan             :Scan SMBus peripheral devices command
                    Usage: scan <device>
  byte_read        :SMBus: byte read command
                    Usage: byte_read <device> <addr>
  byte_write       :SMBus: byte write command
                    Usage: byte_write <device> <addr> <value>
  byte_data_read   :SMBus: byte data read command
                    Usage: byte_data_read <device> <addr> <cmd>
  byte_data_write  :SMBus: byte data write command
                    Usage: byte_data_write <device> <addr> <cmd> <value>
  word_data_read   :SMBus: word data read command
                    Usage: word_data_read <device> <addr> <cmd>
  word_data_write  :SMBus: word data write command
                    Usage: word_data_write <device> <addr> <cmd> <value>
  block_write      :SMBus: Block Write command
                    Usage: block_write <device> <addr> <cmd> [<byte1>, ...]
  block_read       :SMBus: Block Read command
                    Usage: block_read <device> <addr> <cmd>

Scan for available SMBus devices with command:

uart:~$ smbus scan smbus@fb00
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:             -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 51 52 53 54 55 56 57 -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
8 devices found on smbus@fb00

See also

SMBus Interface