.. _SLM_AT_TWI: TWI AT commands *************** .. contents:: :local: :depth: 2 This page describes AT commands related to the Two-Wire Interface (TWI). List TWI instances #XTWILS ========================== The ``#XTWILS`` command lists all available TWI instances. Set command ----------- The set command allows you to list all available TWI instances. Response syntax ~~~~~~~~~~~~~~~ :: #XTWILS: [[[,],],] The ```` parameter corresponds to the following TWI instances: * ``0`` - TWI0 (``i2c0``). * ``1`` - TWI1 (``i2c1``). * ``2`` - TWI2 (``i2c2``). * ``3`` - TWI3 (``i2c3``). See :ref:`zephyr:dtbinding_nordic_nrf_twi`. Example ~~~~~~~ The following example is meant for Thingy:91. It shows that TWI2 (``i2c2``) is available. :: AT#XTWILS #XTWILS: 2 OK Read command ------------ The read command is not supported. Test command ------------ The test command is not supported. Write to TWI peripheral device #XTWIW ===================================== The ``#XTWIW`` command writes data to a TWI peripheral device. Set command ----------- The set command allows you to write data to a TWI peripheral device. Syntax ~~~~~~ :: #XTWIW=,, * The ```` parameter accepts the following integer values: * ``0`` - Use TWI0 (``i2c0``). * ``1`` - Use TWI1 (``i2c1``). * ``2`` - Use TWI2 (``i2c2``). * ``3`` - Use TWI3 (``i2c3``). See :ref:`zephyr:dtbinding_nordic_nrf_twi`. * The ```` parameter is a hexadecimal string. It represents the peripheral device address to write to. The maximum length is 2 characters (for example, "DE" for 0xDE). * The ```` parameter is a hexadecimal string. It represents the data to be written to the peripheral device. The maximum length is 255 characters (for example, "DEADBEEF" for 0xDEADBEEF). Response syntax ~~~~~~~~~~~~~~~ There is no response. Example ~~~~~~~ The following example is meant for Thingy:91. It performs a write operation to the device address ``0x76`` (BME680), and it writes ``D0`` to the device. :: AT#XTWIW=2,"76","D0" OK Read command ------------ The read command is not supported. Test command ------------ The test command is not supported. Read from TWI peripheral device #XTWIR ====================================== The ``#XTWIR`` command reads data from a TWI peripheral device. Set command ----------- The set command allows you to read data from a TWI peripheral device. Syntax ~~~~~~ :: #XTWIR=,, * The ```` parameter accepts the following integer values: * ``0`` - Use TWI0 (``i2c0``). * ``1`` - Use TWI1 (``i2c1``). * ``2`` - Use TWI2 (``i2c2``). * ``3`` - Use TWI3 (``i2c3``). * The ```` parameter is a hexadecimal string. It represents the peripheral device address to read from. The maximum length is 2 characters (for example, "DE" for 0xDE). * The ```` parameter is an unsigned 8-bit integer. It represents the amount of data to read from the peripheral device. The available range is from 0 to 255 bytes. Response syntax ~~~~~~~~~~~~~~~ :: #XTWIR: * The ```` parameter is a hexadecimal string. It represents the data read from the peripheral device. Example ~~~~~~~ The following example is meant for Thingy:91. It performs a read operation to the device address ``0x76`` (BME680), and it reads 1 byte from the device. The value returned (``61``) indicates ``0x61`` as the ``CHIP ID``. :: AT#XTWIR=2,"76",1 #XTWIR: 61 OK Read command ------------ The read command is not supported. Test command ------------ The test command is not supported. Write data and read from TWI peripheral device #XTWIWR ====================================================== The ``#XTWIWR`` command writes data to a TWI peripheral device and then reads data from the device. Set command ----------- The set command allows you to first write data to a TWI peripheral device and then read the returned data. Syntax ~~~~~~ :: #XTWIW=,,, * The ```` parameter accepts the following integer values: * ``0`` - Use TWI0 (``i2c0``). * ``1`` - Use TWI1 (``i2c1``). * ``2`` - Use TWI2 (``i2c2``). * ``3`` - Use TWI3 (``i2c3``). See :ref:`zephyr:dtbinding_nordic_nrf_twi`. * The ```` parameter is a hexadecimal string. It represents the peripheral device address to write to. The maximum length is 2 characters (for example, "DE" for 0xDE). * The ```` parameter is a hexadecimal string. It represents the data to be written to the peripheral device. The maximum length is 255 characters (for example, "DEADBEEF" for 0xDEADBEEF). * The ```` parameter is an unsigned 8-bit integer. It represents the amount of data to read from the peripheral device. The available range is from 0 to 255 bytes. Response syntax ~~~~~~~~~~~~~~~ :: #XTWIWR: * The ```` parameter is a hexadecimal string. It represents the data read from the peripheral device. Examples ~~~~~~~~ * The following example is meant for Thingy:91. It performs a write-then-read operation to the device address ``0x76`` (BME680) to get the ``CHIP ID`` of the device. The value returned (``61``) indicates ``0x61`` as the ``CHIP ID``. :: AT#XTWIWR=2,"76","D0",1 #XTWIWR: 61 OK * The following example is meant for Thingy:91. It performs a write-then-read operation to the device address ``0x38`` (BH1749) to get the ``MANUFACTURER ID`` of the device. The value returned (``E0``) indicates ``0xE0`` as the ``MANUFACTURER ID`` of the device. :: AT#XTWIWR=2,"38","92",1 #XTWIWR: E0 OK Read command ------------ The read command is not supported. Test command ------------ The test command is not supported.