From dd878ef5e044d79cbb94b70e11ca6c035021c325 Mon Sep 17 00:00:00 2001 From: constmonica Date: Thu, 19 Feb 2026 11:20:13 +0200 Subject: [PATCH 1/3] /ad-swiot1l-sl: update docs for ad-swiot1l-sl Signed-off-by: Monica Constandachi --- .../img_20230912_145550.jpg | 0 .../ad-swiot1l-sl/firmware-guide/index.rst | 99 ++ .../picture1.jpg | 0 .../picture2.jpg | 0 .../picture3.jpg | 0 .../reference-designs/ad-swiot1l-sl/index.rst | 5 +- .../ad-swiot1l-sl/software-guide/1.png | 3 + .../ad-swiot1l-sl/software-guide/2.png | 3 + .../ad-swiot1l-sl/software-guide/3.png | 3 + .../ad-swiot1l-sl/software-guide/4.png | 3 + .../ad-swiot1l-sl/software-guide/5.png | 3 + .../ad-swiot1l-sl/software-guide/6.png | 3 + .../ad-swiot1l-sl/software-guide/index.rst | 943 ++++++++++++++++-- .../ad-swiot1l-sl/software-guide/linux_1.png | 3 + .../ad-swiot1l-sl/software-guide/linux_2.png | 3 + .../ad-swiot1l-sl/software-guide/linux_3.png | 3 + .../ad-swiot1l-sl/software-guide/linux_4.png | 3 + 17 files changed, 1016 insertions(+), 61 deletions(-) rename docs/solutions/reference-designs/ad-swiot1l-sl/{software-guide => firmware-guide}/img_20230912_145550.jpg (100%) create mode 100644 docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/index.rst rename docs/solutions/reference-designs/ad-swiot1l-sl/{software-guide => firmware-guide}/picture1.jpg (100%) rename docs/solutions/reference-designs/ad-swiot1l-sl/{software-guide => firmware-guide}/picture2.jpg (100%) rename docs/solutions/reference-designs/ad-swiot1l-sl/{software-guide => firmware-guide}/picture3.jpg (100%) create mode 100644 docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/1.png create mode 100644 docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/2.png create mode 100644 docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/3.png create mode 100644 docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/4.png create mode 100644 docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/5.png create mode 100644 docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/6.png create mode 100644 docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_1.png create mode 100644 docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_2.png create mode 100644 docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_3.png create mode 100644 docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_4.png diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/img_20230912_145550.jpg b/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/img_20230912_145550.jpg similarity index 100% rename from docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/img_20230912_145550.jpg rename to docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/img_20230912_145550.jpg diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/index.rst b/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/index.rst new file mode 100644 index 00000000000..53979cf17cd --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/index.rst @@ -0,0 +1,99 @@ +Firmware User Guide +=================== + +Required Hardware +~~~~~~~~~~~~~~~~~ + +- **Development kit**: :adi:`AD-SWIOT1L-SL` Software-configurable Analog and Digital I/O with 10BASE-T1L +- **Power supplies**: 24V power supply at minimum 2A +- **Programmer**: :adi:`MAX32625PICO` or any other similar programmer supporting the SWD interface + +System Setup +------------ + +- Connect the AD-SWIOT1L-SL to the AD-T1LUSB2.0-EBZ using the single pair Ethernet cable. +- Connect the AD-T1LUSB2.0-EBZ to your PC using an USB cable. +- Connect the 24 V power supply to the AD-SWIOT1L-SL. + +.. figure:: picture1.jpg + :width: 600 px + :align: center + + AD-SWIOT1L-SL Hardware Setup + +.. figure:: picture3.jpg + :width: 600 px + :align: center + + Connecting the :adi:`MAX32625PICO` Programmer + +.. clear-content:: + :side: both + :break: + + +The system is accompanied by an open-source software stack and associated +collateral, enabling a complete experience from evaluation and prototyping all +the way to production firmware and applications development. + + +.. important:: + + The system comes pre-programmed with a standard firmware. To work with + **Scopy**, you need to flash the specific static IP firmware version. + + **Scopy** will work only with the official + `AD-SWIOT1L-SL firmware releases `_ + +Updating the AD-SWIOT1L-SL Firmware +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To update the firmware on the AD-SWIOT1L-SL, the MAX32625PICO programmer is used as a SWD interface to flash the new firmware image. The MAX32625PICO comes with a default bootloader that we need to replace. + + +#. Download the firmware image: `MAX32625PICO firmware `__ +#. Set the MAX32625PICO in MAINTENANCE mode: + + * Disconnect the MAX32625PICO from the PC and the AD-SWIOT1L-SL board. + * Plug the micro USB cable only in the MAX32625PICO. + * Keep the button on the MAX32625PICO pressed. + * Plug the micro USB cable into the PC. + * Once you see the MAINTENANCE drive being mounted, you may release the button. + + .. figure:: picture2.jpg + :width: 300 px + + MAX32625PICO Button + +#. Drag and drop (to the MAINTENANCE drive) the firmware image you previously downloaded. +#. After a few seconds, the MAINTENANCE drive will disappear and will be replaced + by a drive named DAPLINK. Once this is done, the process is complete, and the + MAX32625PICO may be used to flash the firmware of the AD-SWIOT1L-SL board. + +Programming the AD-SWIOT1L-SL +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- Connect the MAX32625PICO to the PC using the micro USB cable. +- Connect the MAX32625PICO to the AD-SWIOT1L-SL board using the 10-pin ribbon cable. +- Connect the 24 V power supply to the AD-SWIOT1L-SL. Make sure the board is powered up for the next steps. + +.. figure:: img_20230912_145550.jpg + + AD-SWIOT1L-SL Programming Setup + +* A DAPLINK drive should appear as mounted on your PC. +* Drag and drop the new firmware image into the DAPLINK drive. After a few seconds, the drive will be remounted. +* Check the DAPLINK directory and make sure there is no FAIL.TXT file. In case + there is, repeat the drag and drop step. Otherwise, you may disconnect the + MAX32625PICO from the AD-SWIOT1L-SL, since the firmware update is complete. + + +Building Your Own Firmware +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The :git-no-OS:`AD-SWIOT1L-SL firmware ` is +based on Analog Devices’ open-source no-OS framework, which includes all the +tools required for embedded code development and debugging as well as libraries +enabling host-side connectivity for system configuration and data transfer over +the UART or the 10BASE-T1L interfaces. The firmware source code and related +documentation can be found on the Analog Devices GitHub at the link above. \ No newline at end of file diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/picture1.jpg b/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/picture1.jpg similarity index 100% rename from docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/picture1.jpg rename to docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/picture1.jpg diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/picture2.jpg b/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/picture2.jpg similarity index 100% rename from docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/picture2.jpg rename to docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/picture2.jpg diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/picture3.jpg b/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/picture3.jpg similarity index 100% rename from docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/picture3.jpg rename to docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/picture3.jpg diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/index.rst b/docs/solutions/reference-designs/ad-swiot1l-sl/index.rst index 6a20d8ede81..cb74d3e7e02 100644 --- a/docs/solutions/reference-designs/ad-swiot1l-sl/index.rst +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/index.rst @@ -103,9 +103,10 @@ User guides .. toctree:: :titlesonly: - :glob: - */index + hardware-guide/index + firmware-guide/index + software-guide/index Help and Support diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/1.png b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/1.png new file mode 100644 index 00000000000..5da8333aff0 --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b008664cf439d43d872bc1774d3fd6c79721adb7831db0c8e0c897041f89d8c7 +size 14772 diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/2.png b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/2.png new file mode 100644 index 00000000000..a27a1984681 --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b965eda5aa622b96e093db9ff961c342de9b542da22fa077011cb5620566be7b +size 73242 diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/3.png b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/3.png new file mode 100644 index 00000000000..b612acc7dde --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:848fbc5f856e6b85407466ecba58211e55e9a928595245295cfd02ea97439bfb +size 28753 diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/4.png b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/4.png new file mode 100644 index 00000000000..c62194ddcc3 --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90fe5692c2b98f5020ac71d724ce94b0337e5964f187c32ce5e003d3e8d4deeb +size 32963 diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/5.png b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/5.png new file mode 100644 index 00000000000..b3e7712eadb --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be5d6c2e4505bc94d5ce1296b0242279d83b35acec59a59ff087c4c22a1a391f +size 50879 diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/6.png b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/6.png new file mode 100644 index 00000000000..5fcb6d05233 --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96f205042d7fd9f039fe21bf60bb20ba4882a39c9b24a509443a1f6b0b08c6ca +size 26754 diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/index.rst b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/index.rst index 26178e216d0..f7677c8e195 100644 --- a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/index.rst +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/index.rst @@ -15,90 +15,915 @@ System Setup - Connect the AD-T1LUSB2.0-EBZ to your PC using an USB cable. - Connect the 24 V power supply to the AD-SWIOT1L-SL. -.. figure:: picture1.jpg - :width: 600 px +Windows User Guide +------------------ +- Connect the AD-SWIOT1L-SL to your Windows PC using the AD-T1LUSB2.0-EBZ. + +To communicate with the AD-SWIOT1L-SL board, you need to configure your Windows +PC's network adapter with a static IP address in the same subnet as the board e.g 192.168.97.1/24 + +The AD-SWIOT1L-SL board uses the static IP address: **192.168.97.40** + +Configure Windows Network Adapter +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +1. Open the Control Panel and navigate to "Network and Internet" + +.. figure:: 1.png + :width: 400 px + :align: center + +2. Select your ethernet interface and click "Edit" to modify the IP settings + +.. figure:: 2.png + :width: 300 px :align: center - AD-SWIOT1L-SL Hardware Setup +3. Set the IP settings to manual and configure the following values: + + - **IP address**: 192.168.97.1 + - **Subnet mask**: 255.255.255.0 + + .. figure:: 3.png + :width: 300 px + :align: center + + Save the changes and close the network settings. + +.. figure:: 4.png + :width: 450 px + :align: center -.. figure:: picture3.jpg +4. Open a command prompt and verify the new assigned IP address using the command: + + .. code:: bash + + ipconfig + +.. figure:: 5.png :width: 600 px :align: center + +5. Ping the AD-SWIOT1L-SL board to verify connectivity: + + .. code:: bash + + ping 192.168.97.40 + +.. figure:: 6.png + :width: 800 px + :align: center + +.. Add Windows-specific instructions here + +Linux User Guide +---------------- +- Connect the AD-SWIOT1L-SL to your Linux PC using the AD-T1LUSB2.0-EBZ + + +To communicate with the AD-SWIOT1L-SL board, you need to configure your Linux PC’s network +adapter with a static IP address in the same subnet as the board e.g 192.168.97.1/24. + + +Configure Linux Network Adapter +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +1. Identify the network interface corresponding to the AD-T1LUSB2.0-EBZ using the command: + +.. figure:: linux_1.png + :width: 300 px + :align: center + +2. Configure the network interface with a static IP address: + +.. figure:: linux_2.png + :width: 400 px + :align: center + +.. figure:: linux_3.png + :width: 400 px + :align: center + + +3. Verify you can ping the AD-SWIOT1L-SL board: +.. code:: bash + + ping 192.168.97.40 + +.. figure:: linux_4.png + :width: 450 px + :align: center + + + +The Scopy AD-SWIOT1L-SL Plugin +------------------------------ + +For detailed information on how to use the AD-SWIOT1L-SL Scopy plugin, including +configuration, operation modes, and available instruments, please refer to the +comprehensive `Scopy Plugin Documentation `_. + + +Using the IIO interface +------------------------------ + +The firmware is based on a no-OS implementation of the IIO framework from the Linux kernel, which offers similar functionalities. +Thus, the board may be configured through the use of pyadi-iio API. + +In order to get the pyadi-iio drivers follow the next steps: + +#. Clone the pyadi-iio repository: + + .. code-block:: bash + + git clone https://github.com/analogdevicesinc/pyadi-iio + +#. Follow the installation steps provided in the `pyadi-iio README `_. + +#. Update your ``PYTHONPATH`` environment variable to include the pyadi-iio's root directory: - Connecting the :adi:`MAX32625PICO` Programmer + **Windows:** + + Open the Environment Variables window and add (or update) the ``PYTHONPATH`` system variable. -.. clear-content:: - :side: both - :break: + **Linux:** + + Option 1 (temporary, current terminal only): -Software Setup --------------- + .. code-block:: bash -The system is accompanied by an open-source software stack and associated -collateral, enabling a complete experience from evaluation and prototyping all -the way to production firmware and applications development. + export PYTHONPATH=$PYTHONPATH:path/to/pyadi-iio -The :dokuwiki:`Scopy ` PC application -provides system configuration and data visualization tools to enable easy system -evaluation from a PC connected to the AD-SWIOT1L-SL via the 10BASE-T1L -interface. + Option 2 (permanent): -The :git-no-OS:`AD-SWIOT1L-SL firmware ` is -based on Analog Devices’ open-source no-OS framework, which includes all the -tools required for embedded code development and debugging as well as libraries -enabling host-side connectivity for system configuration and data transfer over -the UART or the 10BASE-T1L interfaces. The firmware source code and related -documentation can be found on the Analog Devices GitHub at the link above. + Add the following line to your ``~/.bashrc`` file: + + .. code-block:: bash + + export PYTHONPATH=$PYTHONPATH:path/to/pyadi-iio + + Then reload the configuration: + + .. code-block:: bash + + source ~/.bashrc + + + ### this might need changing once swiot is merged into main + +#. Checkout the `swiot branch `_: + + .. code-block:: bash + + git checkout swiot +#. Install the pyadi-iio package: + + .. code-block:: bash + + pip install -e . + + +SWIOT device configuration overview +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This section provides a high-level overview of how the firmware manages +device configuration. Detailed field device usage information is presented in +the following sections. When powered, the SWIOT1L board operates in one of +two states, each identified by a distinct IIO context: + +- **Config**: All channels are in a high impedance state. Users can configure + channel functions and route each SWIOT1L channel to either the MAX14906 + or AD74413R device using the swiot virtual device. + + .. note:: + + When entering this state from the runtime mode, some of the device + configurations will reset. The configuration selected in this context + will help in generating the runtime IIO context. + +Open the IIO context by running iio_info with the appropriate URI: + +.. code:: bash + + iio_info -u ip:192.168.97.40 + +The iio context should look similar to this: + +.. code:: bash + + Library version: 0.24 (git tag: c4498c2) + Compiled with backends: local xml ip usb serial + IIO context created with network backend. + Backend version: 1.1 (git tag: 0000000) + Backend description string: 192.168.97.40 no-OS swiot-rebase-lwip-eda9f736d-modified + IIO context has 2 attributes: + ip,ip-addr: 192.168.97.40 + uri: ip:192.168.97.40 + IIO context has 2 devices: + iio:device0: swiot + 0 channels found: + 27 device-specific attributes found: + attr 0: reset ERROR: No such file or directory (2) + attr 1: serial_id value: 80a4-44044-1f003-2d8104ff-bf + attr 2: mode value: config + attr 3: mode_available value: config runtime + attr 4: identify ERROR: No such file or directory (2) + attr 5: ext_psu value: 1 + attr 6: signal_mse value: 32 + attr 7: ch0_enable value: 0 + attr 8: ch1_enable value: 0 + attr 9: ch2_enable value: 0 + attr 10: ch3_enable value: 0 + attr 11: ch0_function value: high_z + attr 12: ch1_function value: high_z + attr 13: ch2_function value: high_z + attr 14: ch3_function value: high_z + attr 15: ch0_device value: ad74413r + attr 16: ch1_device value: ad74413r + attr 17: ch2_device value: ad74413r + attr 18: ch3_device value: ad74413r + attr 19: ch0_function_available value: high_z voltage_out + current_out voltage_in current_in_ext current_in_loop + resistance digital_input digital_input_loop + current_in_ext_hart current_in_loop_hart + attr 20: ch1_function_available value: high_z voltage_out + current_out voltage_in current_in_ext current_in_loop + resistance digital_input digital_input_loop + current_in_ext_hart current_in_loop_hart + attr 21: ch2_function_available value: high_z voltage_out + current_out voltage_in current_in_ext current_in_loop + resistance digital_input digital_input_loop + current_in_ext_hart current_in_loop_hart + attr 22: ch3_function_available value: high_z voltage_out + current_out voltage_in current_in_ext current_in_loop + resistance digital_input digital_input_loop + current_in_ext_hart current_in_loop_hart + attr 23: ch0_device_available value: ad74413r max14906 + attr 24: ch1_device_available value: ad74413r max14906 + attr 25: ch2_device_available value: ad74413r max14906 + attr 26: ch3_device_available value: ad74413r max14906 + No trigger assigned to device + trigger0: sw_trig + 0 channels found: + No trigger on this device + +- **Runtime**: All channel functions are configured, and the devices are operational + and out of reset. In this state, the devices can sample or output signals, report + faults, and allow register read/write operations. Channel direction and functions + remain fixed during runtime mode, except for the AD74413R's diagnostic channels, + which can still be modified. + + +Field Device Configuration and Usage +----------------------------------- + +This section details how the IIO interface may be used to configure +and sample data from the field devices. The system has the following +IIO devices: + +SWIOT Virtual Device +^^^^^^^^^^^^^^^^^^^^ + +Field devices must have their channels configured before being used in the runtime context. This is done through the swiot virtual IIO device, which is present in both the config and runtime IIO contexts. + +Device Attributes +""""""""""""""""" + +- **reset**: Write any value to reset the firmware. Cannot be read. +- **serial_id**: Unique ID specific to the microcontroller. Read-only. +- **mode**: Reflects the system's state (config or runtime). Can be written to change state. Possible values are in ``mode_available``. Writing the current state value is a no-op. Invalid values are ignored. +- **mode_available**: Valid mode values: ``config``, ``runtime``. +- **identify**: Write any value to blink LED2. Useful for identifying which board has a specific context (or IP) in a multi-board network. +- **ext_psu**: Mirrors the external power supply switch. A value of 1 does not guarantee power supply connection or 156W capability. Read-only. Possible values: + + - ``0``: Field devices powered only by LT8304 (via 24V terminal block) and/or LTC9111 (via SPoE) + - ``1``: MAX14906 powered directly by external power supply + +- **signal_mse**: Single Pair Ethernet signal quality indicator. Read-only. +- **chX_enable**: Channel-specific enable condition. X refers to the SWIOT1L terminal block channel number (0-based). When set to ``0``, the channel remains in high impedance state regardless of other attributes. Values: ``0`` or ``1``. +- **chX_function**: I/O function for a SWIOT1L terminal block channel. Specific to AD74413R or MAX14906 depending on ``chX_device``. Possible values in ``chX_function_available``. **Important**: Set ``chX_device`` first, as the value is validated when written. Otherwise ``-EINVAL (-22)`` is returned. +- **chX_function_available**: Available values for ``chX_function``. Read-only. +- **chX_device**: Field device controlling the terminal block channel. Possible values in ``chX_device_available``. +- **chX_device_available**: Available values for ``chX_device``: ``ad74413r``, ``max14906``. + +Configuration Example +""""""""""""""""""""" + +In the pyadi-iio example script, channel functions are configured using the ``channel_enable``, ``channel_config``, and ``channel_device`` lists: + +.. code-block:: python + + """ + Possible values: + - max14906 selected as device: input, output + - ad74413r selected as device: voltage_out, current_out, + voltage_in, current_in_ext, current_in_loop, + resistance, digital_input, digital_input_loop, + current_in_ext_hart, current_in_loop_hart + """ + channel_config = ["voltage_in", "current_in_ext", "current_out", "output"] + # Possible values: 0, 1 + channel_enable = [1, 1, 1, 1] + # Possible values: "ad74413r", "max14906" + channel_device = ["ad74413r", "ad74413r", "ad74413r", "max14906"] + +This configuration means: + +- **Channel 1**: Routed to AD74413R channel 1, measuring input voltage +- **Channel 2**: Routed to AD74413R channel 2, measuring input current +- **Channel 3**: Routed to AD74413R channel 3, measuring voltage from current-limited output +- **Channel 4**: Routed to MAX14906 channel 4, configured as digital output + +To ensure config context is selected: + +.. code-block:: python + + swiot.mode = "config" + +Configuration sequence using swiot attributes: + +.. code-block:: python + + swiot.ch0_device = channel_device[0] + swiot.ch0_function = channel_config[0] + swiot.ch0_enable = channel_enable[0] + swiot.ch1_device = channel_device[1] + swiot.ch1_function = channel_config[1] + swiot.ch1_enable = channel_enable[1] + swiot.ch2_device = channel_device[2] + swiot.ch2_function = channel_config[2] + swiot.ch2_enable = channel_enable[2] + swiot.ch3_device = channel_device[3] + swiot.ch3_function = channel_config[3] + swiot.ch3_enable = channel_enable[3] .. important:: - The system comes pre-programmed with a firmware that - works with the **Scopy** application, allowing complete system evaluation. + Set ``chX_device`` before ``chX_function``, otherwise an error will occur. + +The indexes in these lists correspond to the terminal block channel number (0-based). + +When channels are configured, the firmware automatically places the corresponding parallel channel in high impedance to avoid conflicts. + +Switching Contexts +"""""""""""""""""" + +To switch from config to runtime mode: + +.. code-block:: python + + swiot.mode = "runtime" + +After writing this attribute, the IIOD server restarts, causing the connection to drop and the IIO context to be destroyed. The new context must be recreated: + +.. code-block:: python + + ad74413r = adi.ad74413r(uri=dev_uri) + max14906 = adi.max14906(uri=dev_uri) + adt75 = adi.lm75(uri=dev_uri) + swiot = adi.swiot(uri=dev_uri) + +The runtime context also contains the field devices, which can be used to sample data. + +Controlling the MAX14906 +^^^^^^^^^^^^^^^^^^^^^^^^ + +Direct Register Access +"""""""""""""""""""""" + +Device registers can be read or written using the IIO direct register access interface: + +- **Reading**: ``value = max14906.reg_read(0x1)`` +- **Writing**: ``max14906.reg_write(0x1, 0xff)`` + +.. warning:: + + This method should be used with caution as it overwrites firmware settings. Updating an existing value requires a read→apply mask→write sequence. + +Using Channel Attributes +""""""""""""""""""""""""" + +The MAX14906 has the following IIO channels, corresponding to the 4 physical channels: + +**voltageX** (input or output): + +- **raw**: ``0`` or ``1``, representing low/high state. For outputs: + + .. code-block:: python + + max14906.channels["voltage3"].raw = 1 # or 0 + + Can be read in both input and output modes: + + .. code-block:: python + + state = max14906.channels["voltage3"].raw + +- **scale**: Constant value of ``1`` +- **offset**: Constant value of ``0`` +- **current_limit** (output only): Set from predefined values in ``current_limit_available``: + + .. code-block:: python + + max14906.channels["voltage3"].current_limit = 130 + +- **current_limit_available**: ``600``, ``130``, ``300``, ``1200`` (mA) +- **do_mode** (output only): Configure output driver: + + .. code-block:: python + + max14906.channels["voltage3"].do_mode = "High_side" + +- **do_mode_available**: ``High_side``, ``High_side_2x_inrush``, ``Push_pull_clamp``, ``Push_pull`` +- **IEC_type** (input only): Setup digital-IO input type +- **IEC_type_available**: ``Type_1_3``, ``Type_2`` + +.. note:: + + For comprehensive descriptions, refer to the MAX14906 datasheet. + +Controlling the AD74413R +^^^^^^^^^^^^^^^^^^^^^^^^^ + +Direct Register Access +"""""""""""""""""""""" + +Device registers can be read or written using the IIO direct register access interface: + +- **Reading**: ``value = ad74413r.reg_read(0x1)`` +- **Writing**: ``ad74413r.reg_write(0x1, 0xff)`` + +.. warning:: + + This method should be used with caution as it overwrites firmware settings. + +Channel Configurations +"""""""""""""""""""""" + +Each AD74413R channel can be configured with one of these functions: ``voltage_out``, ``current_out``, ``voltage_in``, ``current_in_ext``, ``current_in_loop``, ``resistance``, ``digital_input``, ``digital_input_loop``, ``current_in_ext_hart``, ``current_in_loop_hart``. + +1. Voltage Input +~~~~~~~~~~~~~~~~ + +Creates one IIO channel: + +**Input voltage:** + +.. list-table:: + :header-rows: 1 + :widths: 20 40 15 15 + + * - Attribute + - Description + - Access + - Shared + * - raw + - Value 0-8191 (DAC code). Vout = (raw + offset) × scale (mV) + - R/W + - No + * - scale + - Constant: 1.342 mV/LSB + - R + - No + * - offset + - Constant: 0 + - R + - No + * - sampling_frequency + - Samples per second (divided by enabled channels) + - R/W + - No + * - sampling_frequency_available + - 4800, 1200 (no filter); 20, 10 (filtered) + - R + - Yes + +2. Current Output +~~~~~~~~~~~~~~~~~ + +Creates two IIO channels: + +**Input voltage** (measures voltage output by DAC): + +Same attributes as Voltage Input configuration above. + +**Output current:** + +.. list-table:: + :header-rows: 1 + :widths: 20 40 15 15 + + * - Attribute + - Description + - Access + - Shared + * - raw + - Value 0-8191 (DAC code). Iout = (raw + offset) × scale (mA) + - R/W + - No + * - scale + - Constant: 0.003051 mA/LSB + - R + - No + * - offset + - Constant: 0 + - R + - No + * - slew_en + - Enable slew rate control (uses slew_rate and slew_step) + - R/W + - No + * - slew_rate + - Configure DAC output slew rate + - R/W + - No + * - slew_rate_available + - Available slew_rate values + - R + - Yes + * - slew_step + - Configure DAC output slew step + - R/W + - No + * - slew_step_available + - Available slew_step values + - R + - Yes + +3. Voltage Output +~~~~~~~~~~~~~~~~~ + +Creates two IIO channels: + +**Input current** (measures current output by DAC): + +.. list-table:: + :header-rows: 1 + :widths: 20 40 15 15 + + * - Attribute + - Description + - Access + - Shared + * - raw + - Value 0-65535 (ADC code). I = (raw + offset) × scale (mA). Positive = sourced, negative = sinked + - R/W + - No + * - scale + - Constant: 0.000762951 mA/LSB + - R + - No + * - offset + - Constant: -32768 + - R + - No + * - sampling_frequency + - Samples per second (divided by enabled channels) + - R/W + - No + * - sampling_frequency_available + - 4800, 1200 (no filter); 20, 10 (filtered) + - R + - Yes + +**Output voltage:** + +.. list-table:: + :header-rows: 1 + :widths: 20 40 15 15 + + * - Attribute + - Description + - Access + - Shared + * - raw + - Value 0-8191 (DAC code). Vout = (raw + offset) × scale (mV) + - R/W + - No + * - scale + - Constant: 1.22070 mV/LSB + - R + - No + * - offset + - Constant: 0 + - R + - No + * - slew_en + - Enable slew rate control (uses slew_rate and slew_step) + - R/W + - No + * - slew_rate + - Configure DAC output slew rate + - R/W + - No + * - slew_rate_available + - Available slew_rate values + - R + - Yes + * - slew_step + - Configure DAC output slew step + - R/W + - No + * - slew_step_available + - Available slew_step values + - R + - Yes + +4. Current Input Externally Powered +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Creates one IIO channel: + +**Input current:** + +.. list-table:: + :header-rows: 1 + :widths: 20 40 15 15 + + * - Attribute + - Description + - Access + - Shared + * - raw + - Value 0-65535 (ADC code). I = (raw + offset) × scale (mA) + - R/W + - No + * - scale + - Constant: 0.000381476 mA/LSB + - R + - No + * - offset + - Constant: 0 + - R + - No + * - sampling_frequency + - Samples per second (divided by enabled channels) + - R/W + - No + * - sampling_frequency_available + - 4800, 1200 (no filter); 20, 10 (filtered) + - R + - Yes + +5. Current Input Loop Powered +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Creates two IIO channels: + +**Input current** (measures current sourced by AD74413R): + +.. list-table:: + :header-rows: 1 + :widths: 20 40 15 15 + + * - Attribute + - Description + - Access + - Shared + * - raw + - Value 0-65535 (ADC code). I = (raw + offset) × scale (mA) + - R/W + - No + * - scale + - Constant: 0.000381476 mA/LSB + - R + - No + * - offset + - Constant: 0 + - R + - No + * - sampling_frequency + - Samples per second (divided by enabled channels) + - R/W + - No + * - sampling_frequency_available + - 4800, 1200 (no filter); 20, 10 (filtered) + - R + - Yes + +**Output current** (sets current limit sourced by AD74413R): + +.. list-table:: + :header-rows: 1 + :widths: 20 40 15 15 + + * - Attribute + - Description + - Access + - Shared + * - raw + - Value 0-8191 (DAC code). Iout = (raw + offset) × scale (mA) + - R/W + - No + * - scale + - Constant: 0.003051 mA/LSB + - R + - No + * - offset + - Constant: 0 + - R + - No + * - slew_en + - Enable slew rate control (uses slew_rate and slew_step) + - R/W + - No + * - slew_rate + - Configure DAC output slew rate + - R/W + - No + * - slew_rate_available + - Available slew_rate values + - R + - Yes + * - slew_step + - Configure DAC output slew step + - R/W + - No + * - slew_step_available + - Available slew_step values + - R + - Yes + +6. Current Input Loop Powered with HART Compatibility +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The channels and their attributes are the same as **Current Input Loop Powered** mode. + +7. Current Input Externally Powered with HART Compatibility +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The channels and their attributes are the same as **Current Input Externally Powered** mode. + +8. Resistance +~~~~~~~~~~~~~ + +Creates one IIO channel: + +**Resistance:** + +.. list-table:: + :header-rows: 1 + :widths: 20 40 15 15 + + * - Attribute + - Description + - Access + - Shared + * - raw + - Value 0-65535 (raw ADC result register value) + - R/W + - No + * - sampling_frequency + - Samples per second (divided by enabled channels) + - R/W + - No + * - sampling_frequency_available + - 4800, 1200 (no filter); 20, 10 (filtered) + - R + - Yes + +9. Digital Input +~~~~~~~~~~~~~~~~ + +Creates one IIO channel: + +**Voltage input:** + +.. list-table:: + :header-rows: 1 + :widths: 20 40 15 15 + + * - Attribute + - Description + - Access + - Shared + * - raw + - Value 0 or 1 (comparator output) + - R/W + - No + * - scale + - Constant: 1 + - R + - No + * - offset + - Constant: 0 + - R + - No + * - threshold + - Threshold value in millivolts for comparator + - R/W + - No + * - sampling_frequency + - Samples per second (divided by enabled channels) + - R/W + - No + * - sampling_frequency_available + - 4800, 1200 (no filter); 20, 10 (filtered) + - R + - Yes + +10. Digital Input Loop Powered +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Creates two IIO channels: + +**Voltage input:** + +.. list-table:: + :header-rows: 1 + :widths: 20 40 15 15 - The firmware should be updated only to switch to a newer version or as part of - the software development process. + * - Attribute + - Description + - Access + - Shared + * - raw + - Value 0 or 1 (comparator output) + - R/W + - No + * - scale + - Constant: 1 + - R + - No + * - offset + - Constant: 0 + - R + - No + * - threshold + - Threshold value in millivolts for comparator + - R/W + - No + * - sampling_frequency + - Samples per second (divided by enabled channels) + - R/W + - No + * - sampling_frequency_available + - 4800, 1200 (no filter); 20, 10 (filtered) + - R + - Yes - **Scopy** will work only with the official - :git-no-OS:`AD-SWIOT1L-SL firmware releases ` +**Current output** (sets current limit sourced by AD74413R): -Updating the AD-SWIOT1L-SL Firmware -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. list-table:: + :header-rows: 1 + :widths: 20 40 15 15 -To update the board’s firmware, a new bootloader has to be flashed on the -MAX32625PICO. + * - Attribute + - Description + - Access + - Shared + * - raw + - Value 0-8191 (DAC code). Iout = (raw + offset) × scale (mA) + - R/W + - No + * - scale + - Constant: 0.003051 mA/LSB + - R + - No + * - offset + - Constant: 0 + - R + - No + * - slew_en + - Enable slew rate control (uses slew_rate and slew_step) + - R/W + - No + * - slew_rate + - Configure DAC output slew rate + - R/W + - No + * - slew_rate_available + - Available slew_rate values + - R + - Yes + * - slew_step + - Configure DAC output slew step + - R/W + - No + * - slew_step_available + - Available slew_step values + - R + - Yes -#. Download the firmware image: `MAX32625PICO firmware `__ -#. Set the MAX32625PICO in MAINTENANCE mode: - * Disconnect the MAX32625PICO from the PC and the AD-SWIOT1L-SL board. - * Plug the micro USB cable only in the MAX32625PICO. - * Keep the button on the MAX32625PICO pressed. - * Plug the micro USB cable into the PC. - * Once you see the MAINTENANCE drive being mounted, you may release the button. +Sampling Data from the AD74413R +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - .. figure:: picture2.jpg - :width: 300 px +Example: Sampling Buffered Data +"""""""""""""""""""""""""""""""" - MAX32625PICO Button +The following example demonstrates how to use pyadi-iio to sample buffered data from the AD74413R: -#. Drag and drop (to the MAINTENANCE drive) the firmware image you previously downloaded. -#. After a few seconds, the MAINTENANCE drive will disappear and will be replaced - by a drive named DAPLINK. Once this is done, the process is complete, and the - MAX32625PICO may be used to flash the firmware of the AD-SWIOT1L-SL board. +.. code-block:: python -Programming the AD-SWIOT1L-SL -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ad74413r.rx_enabled_channels = ["voltage0"] + ad74413r.sample_rate = 4800 + ad74413r.rx_buffer_size = 4800 + data = ad74413r.rx() -- Connect the MAX32625PICO to the PC using the micro USB cable. -- Connect the MAX32625PICO to the AD-SWIOT1L-SL board using the 10-pin ribbon cable. -- Connect the 24 V power supply to the AD-SWIOT1L-SL. Make sure the board is powered up for the next steps. +You can change the sampling channel to another input channel: -.. figure:: img_20230912_145550.jpg +.. code-block:: python - AD-SWIOT1L-SL Programming Setup + ad74413r.rx_enabled_channels = ["current0"] -* A DAPLINK drive should appear as mounted on your PC. -* Drag and drop the new firmware image into the DAPLINK drive. After a few seconds, the drive will be remounted. -* Check the DAPLINK directory and make sure there is no FAIL.TXT file. In case - there is, repeat the drag and drop step. Otherwise, you may disconnect the - MAX32625PICO from the AD-SWIOT1L-SL, since the firmware update is complete. +The channel must be configured appropriately in the SWIOT1L configuration. Samples are stored in the ``data`` array. diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_1.png b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_1.png new file mode 100644 index 00000000000..3d18f2e4b0e --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74d8359b14134af6f5acea90df59adf5e9f9f7086f5bc72fc1beae9890f404c1 +size 99565 diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_2.png b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_2.png new file mode 100644 index 00000000000..aaee4ce209d --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4088ac97d3dcab5f74706840df9240a1bae593aeb4b741f2ff3c9190537d027 +size 38179 diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_3.png b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_3.png new file mode 100644 index 00000000000..8f38219c5c7 --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0389c4c0a9d1fc90bcb7ddbaf19a844c496e6c16c4eb87ae5758cdedaa84681 +size 82182 diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_4.png b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_4.png new file mode 100644 index 00000000000..5b2cc8227f7 --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ab52c38cbd56229e09fee81eb419c2636c134b3142135160c620d4be898bb95 +size 87375 From cf0fe91a819f70e0dc732b1859974c099cba5647 Mon Sep 17 00:00:00 2001 From: constmonica Date: Thu, 19 Feb 2026 13:10:12 +0200 Subject: [PATCH 2/3] ad-swiot1l-sl: fix RST heading hierarchy and underline lengths Signed-off-by: Monica Constandachi --- .../ad-swiot1l-sl/software-guide/index.rst | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/index.rst b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/index.rst index f7677c8e195..baea3ad9d70 100644 --- a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/index.rst +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/index.rst @@ -274,7 +274,7 @@ The iio context should look similar to this: Field Device Configuration and Usage ------------------------------------ +---------------------------------------- This section details how the IIO interface may be used to configure and sample data from the field devices. The system has the following @@ -462,7 +462,7 @@ Channel Configurations Each AD74413R channel can be configured with one of these functions: ``voltage_out``, ``current_out``, ``voltage_in``, ``current_in_ext``, ``current_in_loop``, ``resistance``, ``digital_input``, ``digital_input_loop``, ``current_in_ext_hart``, ``current_in_loop_hart``. 1. Voltage Input -~~~~~~~~~~~~~~~~ +'''''''''''''''' Creates one IIO channel: @@ -498,7 +498,7 @@ Creates one IIO channel: - Yes 2. Current Output -~~~~~~~~~~~~~~~~~ +''''''''''''''''' Creates two IIO channels: @@ -550,7 +550,7 @@ Same attributes as Voltage Input configuration above. - Yes 3. Voltage Output -~~~~~~~~~~~~~~~~~ +''''''''''''''''' Creates two IIO channels: @@ -629,7 +629,7 @@ Creates two IIO channels: - Yes 4. Current Input Externally Powered -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +'''''''''''''''''''''''''''''''''''' Creates one IIO channel: @@ -665,7 +665,7 @@ Creates one IIO channel: - Yes 5. Current Input Loop Powered -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +'''''''''''''''''''''''''''''' Creates two IIO channels: @@ -744,17 +744,17 @@ Creates two IIO channels: - Yes 6. Current Input Loop Powered with HART Compatibility -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +'''''''''''''''''''''''''''''''''''''''''''''''''''''' The channels and their attributes are the same as **Current Input Loop Powered** mode. 7. Current Input Externally Powered with HART Compatibility -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' The channels and their attributes are the same as **Current Input Externally Powered** mode. 8. Resistance -~~~~~~~~~~~~~ +''''''''''''' Creates one IIO channel: @@ -782,7 +782,7 @@ Creates one IIO channel: - Yes 9. Digital Input -~~~~~~~~~~~~~~~~ +'''''''''''''''' Creates one IIO channel: @@ -822,7 +822,7 @@ Creates one IIO channel: - Yes 10. Digital Input Loop Powered -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +''''''''''''''''''''''''''''''' Creates two IIO channels: From 28e43bde7211e4b9ea75fa2e28e2597fba74f3a9 Mon Sep 17 00:00:00 2001 From: constmonica Date: Mon, 23 Feb 2026 13:33:08 +0200 Subject: [PATCH 3/3] ad-swiot1l-sl: fix typos Signed-off-by: Monica Constandachi --- .../firmware-guide/MAINTENANCE.jpg | 3 ++ .../ad-swiot1l-sl/firmware-guide/index.rst | 38 +++++++++++-------- .../reference-designs/ad-swiot1l-sl/index.rst | 6 +-- .../ad-swiot1l-sl/software-guide/index.rst | 29 +++++++------- 4 files changed, 43 insertions(+), 33 deletions(-) create mode 100644 docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/MAINTENANCE.jpg diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/MAINTENANCE.jpg b/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/MAINTENANCE.jpg new file mode 100644 index 00000000000..6a0aeeeb75d --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/MAINTENANCE.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0e7d8c508ee1e624870775ed75b78baeff342ebb0e12bfd6a81b3c7d6083669 +size 36686 diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/index.rst b/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/index.rst index 53979cf17cd..507603502f1 100644 --- a/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/index.rst +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/index.rst @@ -6,13 +6,13 @@ Required Hardware - **Development kit**: :adi:`AD-SWIOT1L-SL` Software-configurable Analog and Digital I/O with 10BASE-T1L - **Power supplies**: 24V power supply at minimum 2A -- **Programmer**: :adi:`MAX32625PICO` or any other similar programmer supporting the SWD interface +- **Programmer**: :adi:`MAX32625PICO` or any other similar programmer supporting the swd interface System Setup ------------ - Connect the AD-SWIOT1L-SL to the AD-T1LUSB2.0-EBZ using the single pair Ethernet cable. -- Connect the AD-T1LUSB2.0-EBZ to your PC using an USB cable. +- Connect the AD-T1LUSB2.0-EBZ to your PC using an usb cable. - Connect the 24 V power supply to the AD-SWIOT1L-SL. .. figure:: picture1.jpg @@ -40,7 +40,7 @@ the way to production firmware and applications development. .. important:: The system comes pre-programmed with a standard firmware. To work with - **Scopy**, you need to flash the specific static IP firmware version. + **Scopy**, you need to flash the specific static ip firmware version. **Scopy** will work only with the official `AD-SWIOT1L-SL firmware releases `_ @@ -48,32 +48,37 @@ the way to production firmware and applications development. Updating the AD-SWIOT1L-SL Firmware ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -To update the firmware on the AD-SWIOT1L-SL, the MAX32625PICO programmer is used as a SWD interface to flash the new firmware image. The MAX32625PICO comes with a default bootloader that we need to replace. +To update the firmware on the AD-SWIOT1L-SL, the MAX32625PICO programmer is used as a swd interface to flash the new firmware image. The MAX32625PICO comes with a default bootloader that we need to replace. #. Download the firmware image: `MAX32625PICO firmware `__ #. Set the MAX32625PICO in MAINTENANCE mode: * Disconnect the MAX32625PICO from the PC and the AD-SWIOT1L-SL board. - * Plug the micro USB cable only in the MAX32625PICO. + * Plug the micro usb cable only in the MAX32625PICO. * Keep the button on the MAX32625PICO pressed. - * Plug the micro USB cable into the PC. + * Plug the micro usb cable into the PC. * Once you see the MAINTENANCE drive being mounted, you may release the button. - .. figure:: picture2.jpg - :width: 300 px + .. figure:: MAINTENANCE.jpg + :width: 450 px - MAX32625PICO Button + Maintenance Mode - MAX32625PICO #. Drag and drop (to the MAINTENANCE drive) the firmware image you previously downloaded. + +.. figure:: picture1.jpg + :width: 600 px + :align: center + #. After a few seconds, the MAINTENANCE drive will disappear and will be replaced - by a drive named DAPLINK. Once this is done, the process is complete, and the - MAX32625PICO may be used to flash the firmware of the AD-SWIOT1L-SL board. + by a drive named Daplink. Once this is done, the process is complete, and the + MAX32625PICO may be used to flash the firmware on the AD-SWIOT1L-SL board. Programming the AD-SWIOT1L-SL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- Connect the MAX32625PICO to the PC using the micro USB cable. +- Connect the MAX32625PICO to the PC using the micro usb cable. - Connect the MAX32625PICO to the AD-SWIOT1L-SL board using the 10-pin ribbon cable. - Connect the 24 V power supply to the AD-SWIOT1L-SL. Make sure the board is powered up for the next steps. @@ -81,9 +86,10 @@ Programming the AD-SWIOT1L-SL AD-SWIOT1L-SL Programming Setup -* A DAPLINK drive should appear as mounted on your PC. -* Drag and drop the new firmware image into the DAPLINK drive. After a few seconds, the drive will be remounted. -* Check the DAPLINK directory and make sure there is no FAIL.TXT file. In case +* A Daplink should appear as mounted on your PC. +* Drag and drop the new firmware image into the Daplink drive. After a few + seconds, the drive will be remounted. +* Check the Daplink directory and make sure there is no FAIL.TXT file. In case there is, repeat the drag and drop step. Otherwise, you may disconnect the MAX32625PICO from the AD-SWIOT1L-SL, since the firmware update is complete. @@ -95,5 +101,5 @@ The :git-no-OS:`AD-SWIOT1L-SL firmware ` is based on Analog Devices’ open-source no-OS framework, which includes all the tools required for embedded code development and debugging as well as libraries enabling host-side connectivity for system configuration and data transfer over -the UART or the 10BASE-T1L interfaces. The firmware source code and related +the uart the 10BASE-T1L interfaces. The firmware source code and related documentation can be found on the Analog Devices GitHub at the link above. \ No newline at end of file diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/index.rst b/docs/solutions/reference-designs/ad-swiot1l-sl/index.rst index cb74d3e7e02..0f0ba29fcc3 100644 --- a/docs/solutions/reference-designs/ad-swiot1l-sl/index.rst +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/index.rst @@ -49,9 +49,9 @@ system together and get it up and running in no time. This is what you’ll find in the development kit box: - 1 x :adi:`AD-SWIOT1L-SL` board with enclosure -- 1 x :adi:`AD-T1LUSB-EBZ` 10BASE-T1L to USB adapter board -- 1 x PROFIBUS (1x2x18AWG) cable for Single Pair Ethernet (SPE) connectivity -- 1 x USB 2.0 cable +- 1 x :adi:`AD-T1LUSB-EBZ` 10BASE-T1L to usb adapter board. +- 1 x Profibus (1x2x18AWG) cable for Single Pair Ethernet (SPE) connectivity +- 1 x usb 2.0 cable - 1 x cable connector for the external 24 V power supply - 1 x cable connector for channels connectivity diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/index.rst b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/index.rst index baea3ad9d70..af77168c344 100644 --- a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/index.rst +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/index.rst @@ -12,7 +12,7 @@ System Setup ------------ - Connect the AD-SWIOT1L-SL to the AD-T1LUSB2.0-EBZ using the single pair Ethernet cable. -- Connect the AD-T1LUSB2.0-EBZ to your PC using an USB cable. +- Connect the AD-T1LUSB2.0-EBZ to your PC using an usb cable - Connect the 24 V power supply to the AD-SWIOT1L-SL. Windows User Guide @@ -20,9 +20,9 @@ Windows User Guide - Connect the AD-SWIOT1L-SL to your Windows PC using the AD-T1LUSB2.0-EBZ. To communicate with the AD-SWIOT1L-SL board, you need to configure your Windows -PC's network adapter with a static IP address in the same subnet as the board e.g 192.168.97.1/24 +PC's network adapter with a static ip address in the same subnet as the board e.g 192.168.97.1/24 -The AD-SWIOT1L-SL board uses the static IP address: **192.168.97.40** +The AD-SWIOT1L-SL board uses the static ip address: **192.168.97.40** Configure Windows Network Adapter ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -32,15 +32,15 @@ Configure Windows Network Adapter :width: 400 px :align: center -2. Select your ethernet interface and click "Edit" to modify the IP settings +2. Select your Ethernet interface and click "Edit" to modify the ip settings .. figure:: 2.png :width: 300 px :align: center -3. Set the IP settings to manual and configure the following values: +3. Set the ip settings to manual and configure the following values: - - **IP address**: 192.168.97.1 + - **ip address**: 192.168.97.1 - **Subnet mask**: 255.255.255.0 .. figure:: 3.png @@ -53,7 +53,7 @@ Configure Windows Network Adapter :width: 450 px :align: center -4. Open a command prompt and verify the new assigned IP address using the command: +4. Open a command prompt and verify the new assigned ip address using the command: .. code:: bash @@ -75,16 +75,16 @@ Configure Windows Network Adapter .. Add Windows-specific instructions here -Linux User Guide +linux User Guide ---------------- -- Connect the AD-SWIOT1L-SL to your Linux PC using the AD-T1LUSB2.0-EBZ +- Connect the AD-SWIOT1L-SL to your linux PC using the AD-T1LUSB2.0-EBZ -To communicate with the AD-SWIOT1L-SL board, you need to configure your Linux PC’s network +To communicate with the AD-SWIOT1L-SL board, you need to configure your linux PC's network adapter with a static IP address in the same subnet as the board e.g 192.168.97.1/24. -Configure Linux Network Adapter +Configure linux Network Adapter ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1. Identify the network interface corresponding to the AD-T1LUSB2.0-EBZ using the command: @@ -93,7 +93,7 @@ Configure Linux Network Adapter :width: 300 px :align: center -2. Configure the network interface with a static IP address: +2. Configure the network interface with a static ip address: .. figure:: linux_2.png :width: 400 px @@ -105,9 +105,10 @@ Configure Linux Network Adapter 3. Verify you can ping the AD-SWIOT1L-SL board: + .. code:: bash - ping 192.168.97.40 + ping 192.168.97.40 .. figure:: linux_4.png :width: 450 px @@ -126,7 +127,7 @@ comprehensive `Scopy Plugin Documentation