62 lines
2.0 KiB
ReStructuredText
62 lines
2.0 KiB
ReStructuredText
.. zephyr:code-sample:: modbus-rtu-client
|
|
:name: Modbus RTU client
|
|
:relevant-api: modbus
|
|
|
|
Communicate with a Modbus RTU server.
|
|
|
|
Overview
|
|
********
|
|
|
|
This is a simple application demonstrating a Modbus RTU client implementation
|
|
in Zephyr RTOS.
|
|
|
|
Requirements
|
|
************
|
|
|
|
This sample has been tested with the nRF52840-DK and FRDM-K64F boards,
|
|
but it should work with any board that has a free UART interface.
|
|
|
|
RTU client example is running on an evaluation board and communicates
|
|
with another board running the :zephyr:code-sample:`modbus-rtu-server` sample.
|
|
|
|
In addition to the evaluation board a RS-485 shield may be used.
|
|
The shield converts UART TX, RX signals to RS-485.
|
|
An Arduino header compatible shield like `joy-it RS-485 shield for Arduino`_
|
|
can be used. This example uses DE signal, which is controlled by pin D9
|
|
on the JOY-IT shield. For other shields, ``de-gpios`` property must be adapted
|
|
or removed in the application overlay file
|
|
:zephyr_file:`samples/subsys/modbus/rtu_client/app.overlay`
|
|
|
|
The A+, B- lines of the RS-485 shields should be connected together.
|
|
|
|
Alternatively UART RX,TX signals of two boards can be connected crosswise.
|
|
|
|
Building and Running
|
|
********************
|
|
|
|
This sample can be found under
|
|
:zephyr_file:`samples/subsys/modbus/rtu_client` in the Zephyr tree.
|
|
|
|
The following commands build and flash RTU client sample.
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/subsys/modbus/rtu_client
|
|
:board: frdm_k64f
|
|
:goals: build flash
|
|
:compact:
|
|
|
|
The example communicates with the RTU server and lets the LEDs light up
|
|
one after the other.
|
|
|
|
.. code-block:: console
|
|
|
|
*** Booting Zephyr OS build zephyr-v2.3.0-1993-g07e8d80ae028 ***
|
|
[00:00:00.005,000] <inf> mb_rtu: RTU timeout 2005 us
|
|
[00:00:00.050,000] <inf> mbc_sample: WR|RD holding register:
|
|
48 00 65 00 6c 00 6c 00 6f 00 00 00 00 00 00 00 |H.e.l.l. o.......
|
|
[00:00:00.062,000] <inf> mbc_sample: Coils state 0x00
|
|
[00:00:00.864,000] <inf> mbc_sample: Coils state 0x07
|
|
|
|
|
|
.. _`joy-it RS-485 shield for Arduino`: https://joy-it.net/en/products/ARD-RS485
|