Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Benjamin Cabé 25fa25a5a9 doc: :zephyr-app: should point to existing in-tree folders 10 months ago
..
src samples, tests: Switch main return type from void to int 2 years ago
CMakeLists.txt tests: smbus: Cleanup CMakeLists files 2 years ago
README.rst doc: :zephyr-app: should point to existing in-tree folders 10 months ago
prj.conf shell: do not enable subsystem/driver shell modules by default 2 years ago
sample.yaml boards: x86: Add intel_ prefix to Elkhart Lake boards 2 years ago

README.rst

.. zephyr:code-sample:: smbus-shell
:name: SMBus shell
:relevant-api: smbus_interface

Interact with SMBus peripherals using shell commands.

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 :zephyr_file:`samples/drivers/smbus` in the
Zephyr tree.
The sample can be built and run as follows for the ``qemu_x86_64`` board:

.. zephyr-app-commands::
:zephyr-app: samples/drivers/smbus
:host-os: unix
:board: qemu_x86_64
:goals: run
:compact:

Sample Output
*************

Output from console when application started:

.. code-block:: console

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

List available SMBus shell commands with:

.. code-block:: console

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:

.. code-block:: console

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