Modules
.. autosummary:: :template: autosummary/module.rst :toctree: _autosummary :recursive: verylittlewire
The Little Wire USB device firmware version 1.2 supports the following Control Transfer sequences. In the Setup Packet of the Setup Stage only the bmRequestType = 0xC0
will be accepted. That means:
D7 Data Phase Transfer Direction: | 1 = Device to Host |
---|---|
D6…5 Type: | 2 = Vendor |
D4…0 Recipient: | 0 = Device |
The number of bytes to transfer have to be constant wLength = 8
for each Setup Packet. That means that each Setup Stage follows a Data Stage.
USB Control Transfer Requests Overview
.. flat-table:: Little Wire Firmware all well known Control Transfer Requests :header-rows: 2 :stub-columns: 1 :widths: 1 7 1 1 :name: lwfw12-usbctr-overview * - :cspan:`1` `Setup Packet`_ - :rspan:`1` Functional Classification - :rspan:`1` Firmware Status * - :code:`bRequest` - Name * - :ref:`|UCTR_ECHO|` - |ENUM_ECHO| - :rspan:`4` :cspan:`1` |UCTR_USBTINY| * - :ref:`|UCTR_READ|` - |ENUM_READ| * - :ref:`|UCTR_WRITE|` - |ENUM_WRITE| * - :ref:`|UCTR_CLR|` - |ENUM_CLR| * - :ref:`|UCTR_SET|` - |ENUM_SET| * - :ref:`|UCTR_POWERUP|` - |ENUM_POWERUP| - :rspan:`7` :cspan:`1` |UCTR_USBTINY_ISPSPI| * - :ref:`|UCTR_POWERDOWN|` - |ENUM_POWERDOWN| * - :ref:`|UCTR_SPI|` - |ENUM_SPI| * - :ref:`|UCTR_POLL_BYTES|` - |ENUM_POLL_BYTES| * - :ref:`|UCTR_FLASH_READ|` - |ENUM_FLASH_READ| * - :ref:`|UCTR_FLASH_WRITE|` - |ENUM_FLASH_WRITE| * - :ref:`|UCTR_EEPROM_READ|` - |ENUM_EEPROM_READ| * - :ref:`|UCTR_EEPROM_WRITE|` - |ENUM_EEPROM_WRITE| * - :ref:`|UCTR_PIN_SET_INPUT|` - |ENUM_PIN_SET_INPUT| - :rspan:`1` |UCTR_LWFW_GPIO| - |STATE_PIN_SET_INPUT| * - :ref:`|UCTR_PIN_SET_OUTPUT|` - |ENUM_PIN_SET_OUTPUT| - |STATE_PIN_SET_OUTPUT| * - :ref:`|UCTR_READ_ADC|` - |ENUM_READ_ADC| - |UCTR_LWFW_ADC| - |STATE_READ_ADC| * - :ref:`|UCTR_SETUP_PWM|` - |ENUM_SETUP_PWM| - :rspan:`1` |UCTR_LWFW_PWM| - |STATE_SETUP_PWM| * - :ref:`|UCTR_UPDATE_PWM_COMPARE|` - |ENUM_UPDATE_PWM_COMPARE| - |STATE_UPDATE_PWM_COMPARE| * - :ref:`|UCTR_PIN_SET_HIGH|` - |ENUM_PIN_SET_HIGH| - :rspan:`2` |UCTR_LWFW_GPIO| - |STATE_PIN_SET_HIGH| * - :ref:`|UCTR_PIN_SET_LOW|` - |ENUM_PIN_SET_LOW| - |STATE_PIN_SET_LOW| * - :ref:`|UCTR_PIN_READ|` - |ENUM_PIN_READ| - |STATE_PIN_READ| * - :ref:`|UCTR_SINGLE_SPI|` - |ENUM_SINGLE_SPI| - |UCTR_LWFW_SPI| - |STATE_SINGLE_SPI| * - :ref:`|UCTR_CHANGE_PWM_PRESCALE|` - |ENUM_CHANGE_PWM_PRESCALE| - |UCTR_LWFW_PWM| - |STATE_CHANGE_PWM_PRESCALE| * - :ref:`|UCTR_SETUP_SPI|` - |ENUM_SETUP_SPI| - |UCTR_LWFW_SPI| - |STATE_SETUP_SPI| * - :ref:`|UCTR_SETUP_I2C|` - |ENUM_SETUP_I2C| - :rspan:`3` |UCTR_LWFW_I2C| - |STATE_SETUP_I2C| * - :ref:`|UCTR_I2C_BEGIN_TX|` - |ENUM_I2C_BEGIN_TX| - |STATE_I2C_BEGIN_TX| * - :ref:`|UCTR_I2C_ADD_BUFFER|` - |ENUM_I2C_ADD_BUFFER| - |STATE_I2C_ADD_BUFFER| * - :ref:`|UCTR_I2C_SEND_BUFFER|` - |ENUM_I2C_SEND_BUFFER| - |STATE_I2C_SEND_BUFFER| * - :ref:`|UCTR_SPI_ADD_BUFFER|` - |ENUM_SPI_ADD_BUFFER| - :rspan:`1` |UCTR_LWFW_SPI| - |STATE_SPI_ADD_BUFFER| * - :ref:`|UCTR_SPI_SEND_BUFFER|` - |ENUM_SPI_SEND_BUFFER| - |STATE_SPI_SEND_BUFFER| * - :ref:`|UCTR_I2C_REQUEST_FROM|` - |ENUM_I2C_REQUEST_FROM| - |UCTR_LWFW_I2C| - |STATE_I2C_REQUEST_FROM| * - :ref:`|UCTR_SPI_UPDATE_DELAY|` - |ENUM_SPI_UPDATE_DELAY| - |UCTR_LWFW_SPI| - |STATE_SPI_UPDATE_DELAY| * - :ref:`|UCTR_STOP_PWM|` - |ENUM_STOP_PWM| - |UCTR_LWFW_PWM| - |STATE_STOP_PWM| * - :ref:`|UCTR_DEBUG_SPI|` - |ENUM_DEBUG_SPI| - |UCTR_LWFW_SPI| - |STATE_DEBUG_SPI| * - :ref:`|UCTR_VERSION_QUERY|` - |ENUM_VERSION_QUERY| - |UCTR_LWFW| - |STATE_VERSION_QUERY| * - :ref:`|UCTR_SETUP_ADC|` - |ENUM_SETUP_ADC| - |UCTR_LWFW_ADC| - |STATE_SETUP_ADC| * - 36 - :rspan:`3` :cspan:`2` **GAP** – spare Control Transfer Requests – * - 37 * - 38 * - 39 * - :ref:`|UCTR_READ_RESULT|` - |ENUM_READ_RESULT| - |UCTR_LWFW| - |STATE_READ_RESULT| * - :ref:`|UCTR_OW_RESET_PULSE|` - |ENUM_OW_RESET_PULSE| - :rspan:`2` |UCTR_LWFW_OW| - |STATE_OW_RESET_PULSE| * - :ref:`|UCTR_OW_WRITE_BYTE|` - |ENUM_OW_WRITE_BYTE| - |STATE_OW_WRITE_BYTE| * - :ref:`|UCTR_OW_READ_BYTE|` - |ENUM_OW_READ_BYTE| - |STATE_OW_READ_BYTE| * - :ref:`|UCTR_I2C_INIT|` - |ENUM_I2C_INIT| - :rspan:`2` |UCTR_LWFW_I2C| - |STATE_I2C_INIT| * - :ref:`|UCTR_I2C_START|` - |ENUM_I2C_START| - |STATE_I2C_START| * - :ref:`|UCTR_I2C_READ|` - |ENUM_I2C_READ| - |STATE_I2C_READ| * - :ref:`|UCTR_SOFT_PWM_INIT|` - |ENUM_SOFT_PWM_INIT| - :rspan:`1` |UCTR_LWFW_SOFT_PWM| - |STATE_SOFT_PWM_INIT| * - :ref:`|UCTR_SOFT_PWM_UPDATE|` - |ENUM_SOFT_PWM_UPDATE| - |STATE_SOFT_PWM_UPDATE| * - :ref:`|UCTR_I2C_UPDATE_DELAY|` - |ENUM_I2C_UPDATE_DELAY| - |UCTR_LWFW_I2C| - |STATE_I2C_UPDATE_DELAY| * - :ref:`|UCTR_OW_READ_BIT|` - |ENUM_OW_READ_BIT| - :rspan:`1` |UCTR_LWFW_OW| - |STATE_OW_READ_BIT| * - :ref:`|UCTR_OW_WRITE_BIT|` - |ENUM_OW_WRITE_BIT| - |STATE_OW_WRITE_BIT| * - :ref:`|UCTR_PIC24F_PROG|` - |ENUM_PIC24F_PROG| - :rspan:`1` |UCTR_LWFW_EXP| - |STATE_PIC24F_PROG| * - :ref:`|UCTR_PIC24F_SENDSIX|` - |ENUM_PIC24F_SENDSIX| - |STATE_PIC24F_SENDSIX| * - :ref:`|UCTR_WS2812_EXEC|` - |ENUM_WS2812_EXEC| - |UCTR_LWFW_WS2812| - |STATE_WS2812_EXEC| * - :ref:`|UCTR_SERNUM_CHANGE|` - |ENUM_SERNUM_CHANGE| - |UCTR_LWFW| - |STATE_SERNUM_CHANGE| * - 56 - :rspan:`3` :cspan:`2` **GAP** – spare Control Transfer Requests – * - 57 * - 58 * - … … … * - :ref:`|UCTR_PIC24F_TRANSFER|` - |ENUM_PIC24F_TRANSFER| - |UCTR_LWFW_EXP| - |STATE_PIC24F_TRANSFER| * - :ref:`|UCTR_I2C_TRANSFER|` - |ENUM_I2C_TRANSFER| - |UCTR_LWFW_I2C| - |STATE_I2C_TRANSFER| * - :ref:`|UCTR_SPI_TRANSFER|` - |ENUM_SPI_TRANSFER| - |UCTR_LWFW_SPI| - |STATE_SPI_TRANSFER|
.. flat-table:: Little Wire Firmware USBtiny Generic Control Transfer Requests :header-rows: 4 :stub-columns: 2 :widths: 1 2 2 5 :name: lwfw12-usbctr-usbtiny * - :cspan:`2` `Setup Packet`_ - :rspan:`2` Description / Notes * - :rspan:`1` :code:`bRequest` - :cspan:`1` Name * - :code:`wValue` - :code:`wIndex` * - :cspan:`3` Implementation / Interfaces * - :rspan:`1` .. _|UCTR_ECHO|: .. rubric:: |UCTR_ECHO| - :cspan:`1` |ENUM_ECHO| - :rspan:`1` echo all content in **Data Stage** back to host * - .. wValue not used - .. wIndex not used * - :cspan:`1` - .. productionlist:: ECHO OUTPUT: INPUT: * - :cspan:`1` Implementation - .. rubric:: |LWFW| * |LWFW_ECHO| – :code:`bRequest` changed hard to :code:`0x21` in response * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_ECHO| .. rubric:: |PYAPI| * |PYAPI_ECHO| * - :rspan:`1` .. _|UCTR_READ|: .. rubric:: |UCTR_READ| - :cspan:`1` |ENUM_READ| - :rspan:`1` read :token:`READ:value` from memory :token:`READ:address` * - .. wValue not used - :token:`READ:address` * - :cspan:`1` - .. productionlist:: READ OUTPUT: `value` INPUT: `address` value: (uint8)0…0xFF address: (uint16)0…0xFFFF * - :cspan:`1` Implementation - .. rubric:: |LWFW| * |LWFW_READ| – ignores :token:`READ:address`, uses the I/O port instead * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_READ| .. rubric:: |PYAPI| * |PYAPI_READ| * - :rspan:`1` .. _|UCTR_WRITE|: .. rubric:: |UCTR_WRITE| - :cspan:`1` |ENUM_WRITE| - :rspan:`1` write :token:`WRITE:value` to memory :token:`WRITE:address` * - :token:`WRITE:value` - :token:`WRITE:address` * - :cspan:`1` - .. productionlist:: WRITE OUTPUT: INPUT: `address` & `value` value: (uint8)0…0xFF address: (uint16)0…0xFFFF * - :cspan:`1` Implementation - .. rubric:: |LWFW| * |LWFW_WRITE| – ignores :token:`WRITE:address`, uses the I/O port instead * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_WRITE| .. rubric:: |PYAPI| * |PYAPI_WRITE| * - :rspan:`1` .. _|UCTR_CLR|: .. rubric:: |UCTR_CLR| - :cspan:`1` |ENUM_CLR| - :rspan:`1` clear bit :token:`CLR:bitno` on memory :token:`CLR:address` * - :token:`CLR:bitno` - :token:`CLR:address` * - :cspan:`1` - .. productionlist:: CLR OUTPUT: INPUT: `address` & `bitno` bitno: (uint8)0…7 address: (uint16)0…0xFFFF * - :cspan:`1` Implementation - .. rubric:: |LWFW| * |LWFW_CLR| – ignores :token:`CLR:address`, uses the I/O port instead * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_CLR| .. rubric:: |PYAPI| * |PYAPI_CLR| * - :rspan:`1` .. _|UCTR_SET|: .. rubric:: |UCTR_SET| - :cspan:`1` |ENUM_SET| - :rspan:`1` set bit :token:`SET:bitno` on memory :token:`SET:address` * - :token:`SET:bitno` - :token:`SET:address` * - :cspan:`1` - .. productionlist:: SET OUTPUT: INPUT: `address` & `bitno` bitno: (uint8)0…7 address: (uint16)0…0xFFFF * - :cspan:`1` Implementation - .. rubric:: Firmware * |LWFW_SET| – ignores :token:`SET:address`, uses the I/O port instead * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_SET| .. rubric:: |PYAPI| * |PYAPI_SET|
.. flat-table:: Little Wire Firmware USBtiny Generic Control Transfer Requests :header-rows: 4 :stub-columns: 2 :widths: 1 2 2 5 :name: lwfw12-usbctr-usbtiny-isbspi * - :cspan:`2` `Setup Packet`_ - :rspan:`2` Description / Notes * - :rspan:`1` :code:`bRequest` - :cspan:`1` Name * - :code:`wValue` - :code:`wIndex` * - :cspan:`3` Implementation / Interfaces * - :rspan:`1` .. _|UCTR_POWERUP|: .. rubric:: |UCTR_POWERUP| - :cspan:`1` |ENUM_POWERUP| - :rspan:`1` * - :token:`POWERUP:period` - :token:`POWERUP:reset` * - :cspan:`1` - .. productionlist:: POWERUP OUTPUT: INPUT: `period` & `reset` period: reset: * - :cspan:`1` Implementation - .. rubric:: |LWFW| * |LWFW_POWERUP| .. rubric:: |AVRD| * |AVRD_POWERUP_1| * |AVRD_POWERUP_2| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_POWERUP| .. rubric:: |PYAPI| * |PYAPI_POWERUP| * - :rspan:`1` .. _|UCTR_POWERDOWN|: .. rubric:: |UCTR_POWERDOWN| - :cspan:`1` |ENUM_POWERDOWN| - :rspan:`1` * - .. wValue not used - .. wIndex not used * - :cspan:`1` - .. productionlist:: POWERDOWN OUTPUT: INPUT: * - :cspan:`1` Implementation - .. rubric:: |LWFW| * |LWFW_POWERDOWN| .. rubric:: |AVRD| * |AVRD_POWERDOWN| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_POWERDOWN| .. rubric:: |PYAPI| * |PYAPI_POWERDOWN| * - :rspan:`1` .. _|UCTR_SPI|: .. rubric:: |UCTR_SPI| - :cspan:`1` |ENUM_SPI| - :rspan:`1` * - :token:`SPI:c1c0` - :token:`SPI:c3c2` * - :cspan:`1` - .. productionlist:: SPI OUTPUT: INPUT: `c1c0` & `c3c2` c1c0: c3c2: * - :cspan:`1` Implementation - .. rubric:: |LWFW| * |LWFW_SPI| .. rubric:: |AVRD| * |AVRD_SPI_1| * |AVRD_SPI_2| * |AVRD_SPI_3| * |AVRD_SPI_4| * |AVRD_SPI_5| * |AVRD_SPI_6| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_SPI| .. rubric:: |PYAPI| * |PYAPI_SPI| * - :rspan:`1` .. _|UCTR_POLL_BYTES|: .. rubric:: |UCTR_POLL_BYTES| - :cspan:`1` |ENUM_POLL_BYTES| - :rspan:`1` * - :token:`POLL_BYTES:p1p2` - .. wIndex not used * - :cspan:`1` - .. productionlist:: POLL_BYTES OUTPUT: INPUT: `p1p2` p1p2: * - :cspan:`1` Implementation - .. rubric:: |LWFW| * |LWFW_POLL_BYTES| .. rubric:: |AVRD| * |AVRD_POLL_BYTES| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_POLL_BYTES| .. rubric:: |PYAPI| * |PYAPI_POLL_BYTES| * - :rspan:`1` .. _|UCTR_FLASH_READ|: .. rubric:: |UCTR_FLASH_READ| - :cspan:`1` |ENUM_FLASH_READ| - :rspan:`1` * - .. wValue not used - :token:`FLASH_READ:address` * - :cspan:`1` - .. productionlist:: FLASH_READ OUTPUT: INPUT: `address` address: * - :cspan:`1` Implementation - .. rubric:: |LWFW| * |LWFW_FLASH_READ| .. rubric:: |AVRD| * |AVRD_FLASH_READ| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_FLASH_READ| .. rubric:: |PYAPI| * |PYAPI_FLASH_READ| * - :rspan:`1` .. _|UCTR_FLASH_WRITE|: .. rubric:: |UCTR_FLASH_WRITE| - :cspan:`1` |ENUM_FLASH_WRITE| - :rspan:`1` * - :token:`FLASH_WRITE:timeout` - :token:`FLASH_WRITE:address` * - :cspan:`1` - .. productionlist:: FLASH_WRITE OUTPUT: INPUT: `timeout` & `address` timeout: address: * - :cspan:`1` Implementation - .. rubric:: |LWFW| * |LWFW_FLASH_WRITE| .. rubric:: |AVRD| * |AVRD_FLASH_WRITE| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_FLASH_WRITE| .. rubric:: |PYAPI| * |PYAPI_FLASH_WRITE| * - :rspan:`1` .. _|UCTR_EEPROM_READ|: .. rubric:: |UCTR_EEPROM_READ| - :cspan:`1` |ENUM_EEPROM_READ| - :rspan:`1` * - .. wValue not used - :token:`EEPROM_READ:address` * - :cspan:`1` - .. productionlist:: EEPROM_READ OUTPUT: INPUT: `address` address: * - :cspan:`1` Implementation - .. rubric:: |LWFW| * |LWFW_EEPROM_READ| .. rubric:: |AVRD| * |AVRD_EEPROM_READ| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_EEPROM_READ| .. rubric:: |PYAPI| * |PYAPI_EEPROM_READ| * - :rspan:`1` .. _|UCTR_EEPROM_WRITE|: .. rubric:: |UCTR_EEPROM_WRITE| - :cspan:`1` |ENUM_EEPROM_WRITE| - :rspan:`1` * - :token:`EEPROM_WRITE:timeout` - :token:`EEPROM_WRITE:address` * - :cspan:`1` - .. productionlist:: EEPROM_WRITE OUTPUT: INPUT: `timeout` & `address` timeout: address: * - :cspan:`1` Implementation - .. rubric:: |LWFW| * |LWFW_EEPROM_WRITE| .. rubric:: |AVRD| * |AVRD_EEPROM_WRITE| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_EEPROM_WRITE| .. rubric:: |PYAPI| * |PYAPI_EEPROM_WRITE|
.. flat-table:: Little Wire Firmware Generic Control Transfer Requests :header-rows: 4 :stub-columns: 2 :widths: 1 2 2 5 :name: lwfw12-usbctr-lwfw * - :cspan:`2` `Setup Packet`_ - :rspan:`2` Description / Notes * - :rspan:`1` :code:`bRequest` - :cspan:`1` Name * - :code:`wValue` - :code:`wIndex` * - :cspan:`3` Implementation / Interfaces * - :rspan:`1` .. _|UCTR_VERSION_QUERY|: .. rubric:: |UCTR_VERSION_QUERY| - :cspan:`1` |ENUM_VERSION_QUERY| - :rspan:`1` * - .. wValue not used - .. wIndex not used * - :cspan:`1` - .. productionlist:: VERSION_QUERY OUTPUT: INPUT: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_VERSION_QUERY| * |LWFW_VERSION_QUERY| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_VERSION_QUERY| .. rubric:: |PYAPI| * |PYAPI_VERSION_QUERY| * - :rspan:`1` .. _|UCTR_READ_RESULT|: .. rubric:: |UCTR_READ_RESULT| - :cspan:`1` |ENUM_READ_RESULT| - :rspan:`1` * - .. wValue not used - .. wIndex not used * - :cspan:`1` - .. productionlist:: READ_RESULT OUTPUT: INPUT: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_READ_RESULT| * |LWFW_READ_RESULT| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_READ_RESULT_1| * |CAPI_READ_RESULT_2| * |CAPI_READ_RESULT_3| * |CAPI_READ_RESULT_4| * |CAPI_READ_RESULT_5| * |CAPI_READ_RESULT_6| * |CAPI_READ_RESULT_7| .. rubric:: |PYAPI| * |PYAPI_READ_RESULT| * - :rspan:`1` .. _|UCTR_SERNUM_CHANGE|: .. rubric:: |UCTR_SERNUM_CHANGE| - :cspan:`1` |ENUM_SERNUM_CHANGE| - :rspan:`1` * - :token:`SERNUM_CHANGE:snb1snb0` - :token:`SERNUM_CHANGE:snb2` * - :cspan:`1` - .. productionlist:: SERNUM_CHANGE OUTPUT: INPUT: `snb1snb0` & `snb2` snb1snb0: snb2: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_SERNUM_CHANGE| * |LWFW_SERNUM_CHANGE| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_SERNUM_CHANGE| .. rubric:: |PYAPI| * |PYAPI_SERNUM_CHANGE|
.. flat-table:: Little Wire Firmware GPIO Control Transfer Requests :header-rows: 4 :stub-columns: 2 :widths: 1 2 2 5 :name: lwfw12-usbctr-lwfw-gpio * - :cspan:`2` `Setup Packet`_ - :rspan:`2` Description / Notes * - :rspan:`1` :code:`bRequest` - :cspan:`1` Name * - :code:`wValue` - :code:`wIndex` * - :cspan:`3` Implementation / Interfaces * - :rspan:`1` .. _|UCTR_PIN_SET_INPUT|: .. rubric:: |UCTR_PIN_SET_INPUT| - :cspan:`1` |ENUM_PIN_SET_INPUT| - :rspan:`1` * - :token:`PIN_SET_INPUT:pin` - .. wIndex not used * - :cspan:`1` - .. productionlist:: PIN_SET_INPUT OUTPUT: INPUT: `pin` pin: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_PIN_SET_INPUT| * |LWFW_PIN_SET_INPUT| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_PIN_SET_INPUT| .. rubric:: |PYAPI| * |PYAPI_PIN_SET_INPUT| * - :rspan:`1` .. _|UCTR_PIN_SET_OUTPUT|: .. rubric:: |UCTR_PIN_SET_OUTPUT| - :cspan:`1` |ENUM_PIN_SET_OUTPUT| - :rspan:`1` * - :token:`PIN_SET_OUTPUT:pin` - .. wIndex not used * - :cspan:`1` - .. productionlist:: PIN_SET_OUTPUT OUTPUT: INPUT: `pin` pin: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_PIN_SET_OUTPUT| * |LWFW_PIN_SET_OUTPUT| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_PIN_SET_OUTPUT| .. rubric:: |PYAPI| * |PYAPI_PIN_SET_OUTPUT| * - :rspan:`1` .. _|UCTR_PIN_SET_HIGH|: .. rubric:: |UCTR_PIN_SET_HIGH| - :cspan:`1` |ENUM_PIN_SET_HIGH| - :rspan:`1` * - :token:`PIN_SET_HIGH:pin` - .. wIndex not used * - :cspan:`1` - .. productionlist:: PIN_SET_HIGH OUTPUT: INPUT: `pin` pin: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_PIN_SET_HIGH| * |LWFW_PIN_SET_HIGH| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_PIN_SET_HIGH_1| * |CAPI_PIN_SET_HIGH_2| .. rubric:: |PYAPI| * |PYAPI_PIN_SET_HIGH_1| * |PYAPI_PIN_SET_HIGH_2| * - :rspan:`1` .. _|UCTR_PIN_SET_LOW|: .. rubric:: |UCTR_PIN_SET_LOW| - :cspan:`1` |ENUM_PIN_SET_LOW| - :rspan:`1` * - :token:`PIN_SET_LOW:pin` - .. wIndex not used * - :cspan:`1` - .. productionlist:: PIN_SET_LOW OUTPUT: INPUT: `pin` pin: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_PIN_SET_LOW| * |LWFW_PIN_SET_LOW| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_PIN_SET_LOW_1| * |CAPI_PIN_SET_LOW_2| .. rubric:: |PYAPI| * |PYAPI_PIN_SET_LOW_1| * |PYAPI_PIN_SET_LOW_2| * - :rspan:`1` .. _|UCTR_PIN_READ|: .. rubric:: |UCTR_PIN_READ| - :cspan:`1` |ENUM_PIN_READ| - :rspan:`1` * - :token:`PIN_READ:pin` - .. wIndex not used * - :cspan:`1` - .. productionlist:: PIN_READ OUTPUT: `state` INPUT: `pin` pin: state: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_PIN_READ| * |LWFW_PIN_READ| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_PIN_READ| .. rubric:: |PYAPI| * |PYAPI_PIN_READ|
.. flat-table:: Little Wire Firmware ADC Control Transfer Requests :header-rows: 4 :stub-columns: 2 :widths: 1 2 2 5 :name: lwfw12-usbctr-lwfw-adc * - :cspan:`2` `Setup Packet`_ - :rspan:`2` Description / Notes * - :rspan:`1` :code:`bRequest` - :cspan:`1` Name * - :code:`wValue` - :code:`wIndex` * - :cspan:`3` Implementation / Interfaces * - :rspan:`1` .. _|UCTR_SETUP_ADC|: .. rubric:: |UCTR_SETUP_ADC| - :cspan:`1` |ENUM_SETUP_ADC| - :rspan:`1` * - :token:`SETUP_ADC:vref` - .. wIndex not used * - :cspan:`1` - .. productionlist:: SETUP_ADC OUTPUT: INPUT: `vref` vref: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_SETUP_ADC| * |LWFW_SETUP_ADC| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_SETUP_ADC| .. rubric:: |PYAPI| * |PYAPI_SETUP_ADC| * - :rspan:`1` .. _|UCTR_READ_ADC|: .. rubric:: |UCTR_READ_ADC| - :cspan:`1` |ENUM_READ_ADC| - :rspan:`1` * - :token:`READ_ADC:channel` - .. wIndex not used * - :cspan:`1` - .. productionlist:: READ_ADC OUTPUT: `value` INPUT: `channel` channel: value: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_READ_ADC| * |LWFW_READ_ADC| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_READ_ADC| .. rubric:: |PYAPI| * |PYAPI_READ_ADC|
.. flat-table:: Little Wire Firmware PWM Control Transfer Requests :header-rows: 4 :stub-columns: 2 :widths: 1 2 2 5 :name: lwfw12-usbctr-lwfw-pwm * - :cspan:`2` `Setup Packet`_ - :rspan:`2` Description / Notes * - :rspan:`1` :code:`bRequest` - :cspan:`1` Name * - :code:`wValue` - :code:`wIndex` * - :cspan:`3` Implementation / Interfaces * - :rspan:`1` .. _|UCTR_SETUP_PWM|: .. rubric:: |UCTR_SETUP_PWM| - :cspan:`1` |ENUM_SETUP_PWM| - :rspan:`1` * - .. wValue not used - .. wIndex not used * - :cspan:`1` - .. productionlist:: SETUP_PWM OUTPUT: INPUT: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_SETUP_PWM| * |LWFW_SETUP_PWM| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_SETUP_PWM| .. rubric:: |PYAPI| * |PYAPI_SETUP_PWM| * - :rspan:`1` .. _|UCTR_UPDATE_PWM_COMPARE|: .. rubric:: |UCTR_UPDATE_PWM_COMPARE| - :cspan:`1` |ENUM_UPDATE_PWM_COMPARE| - :rspan:`1` * - :token:`UPDATE_PWM:chAcomp` - :token:`UPDATE_PWM:chBcomp` * - :cspan:`1` - .. productionlist:: UPDATE_PWM OUTPUT: INPUT: `chAcomp` & `chBcomp` chAcomp: chBcomp: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_UPDATE_PWM_COMPARE| * |LWFW_UPDATE_PWM_COMPARE| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_UPDATE_PWM_COMPARE| .. rubric:: |PYAPI| * |PYAPI_UPDATE_PWM_COMPARE| * - :rspan:`1` .. _|UCTR_CHANGE_PWM_PRESCALE|: .. rubric:: |UCTR_CHANGE_PWM_PRESCALE| - :cspan:`1` |ENUM_CHANGE_PWM_PRESCALE| - :rspan:`1` * - :token:`CHANGE_PWM:prescale` - .. wIndex not used * - :cspan:`1` - .. productionlist:: CHANGE_PWM OUTPUT: INPUT: `prescale` prescale: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_CHANGE_PWM_PRESCALE| * |LWFW_CHANGE_PWM_PRESCALE| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_CHANGE_PWM_PRESCALE| .. rubric:: |PYAPI| * |PYAPI_CHANGE_PWM_PRESCALE| * - :rspan:`1` .. _|UCTR_STOP_PWM|: .. rubric:: |UCTR_STOP_PWM| - :cspan:`1` |ENUM_STOP_PWM| - :rspan:`1` * - .. wValue not used - .. wIndex not used * - :cspan:`1` - .. productionlist:: STOP_PWM OUTPUT: INPUT: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_STOP_PWM| * |LWFW_STOP_PWM| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_STOP_PWM| .. rubric:: |PYAPI| * |PYAPI_STOP_PWM|
.. flat-table:: Little Wire Firmware SPI Control Transfer Requests :header-rows: 4 :stub-columns: 2 :widths: 1 2 2 5 :name: lwfw12-usbctr-lwfw-spi * - :cspan:`2` `Setup Packet`_ - :rspan:`2` Description / Notes * - :rspan:`1` :code:`bRequest` - :cspan:`1` Name * - :code:`wValue` - :code:`wIndex` * - :cspan:`3` Implementation / Interfaces * - :rspan:`1` .. _|UCTR_SINGLE_SPI|: .. rubric:: |UCTR_SINGLE_SPI| - :cspan:`1` |ENUM_SINGLE_SPI| - :rspan:`1` * - .. wValue not used - .. wIndex not used * - :cspan:`1` |STATE_SINGLE_SPI| - .. productionlist:: SINGLE_SPI OUTPUT: INPUT: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_SINGLE_SPI| * |LWFW_SINGLE_SPI| .. rubric:: last time supported by firmware V1.1 * :lwfw11:`427` * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_SINGLE_SPI| .. rubric:: |PYAPI| * |PYAPI_SINGLE_SPI| * - :rspan:`1` .. _|UCTR_SETUP_SPI|: .. rubric:: |UCTR_SETUP_SPI| - :cspan:`1` |ENUM_SETUP_SPI| - :rspan:`1` * - .. wValue not used - .. wIndex not used * - :cspan:`1` |STATE_SETUP_SPI| - .. productionlist:: SETUP_SPI OUTPUT: INPUT: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_SETUP_SPI| * |LWFW_SETUP_SPI| .. rubric:: last time implemented by firmware V1.1 * :lwfw11:`480` * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_SETUP_SPI| .. rubric:: |PYAPI| * |PYAPI_SETUP_SPI| * - :rspan:`1` .. _|UCTR_SPI_ADD_BUFFER|: .. rubric:: |UCTR_SPI_ADD_BUFFER| - :cspan:`1` |ENUM_SPI_ADD_BUFFER| - :rspan:`1` * - .. wValue not used - .. wIndex not used * - :cspan:`1` |STATE_SPI_ADD_BUFFER| - .. productionlist:: SPI_ADD_BUFFER OUTPUT: INPUT: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_SPI_ADD_BUFFER| * |LWFW_SPI_ADD_BUFFER| .. rubric:: last time supported by firmware V1.1 * :lwfw11:`513` * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_SPI_ADD_BUFFER| .. rubric:: |PYAPI| * |PYAPI_SPI_ADD_BUFFER| * - :rspan:`1` .. _|UCTR_SPI_SEND_BUFFER|: .. rubric:: |UCTR_SPI_SEND_BUFFER| - :cspan:`1` |ENUM_SPI_SEND_BUFFER| - :rspan:`1` * - .. wValue not used - .. wIndex not used * - :cspan:`1` |STATE_SPI_SEND_BUFFER| - .. productionlist:: SPI_SEND_BUFFER OUTPUT: INPUT: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_SPI_SEND_BUFFER| * |LWFW_SPI_SEND_BUFFER| .. rubric:: last time supported by firmware V1.1 * :lwfw11:`522` * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_SPI_SEND_BUFFER| .. rubric:: |PYAPI| * |PYAPI_SPI_SEND_BUFFER| * - :rspan:`1` .. _|UCTR_SPI_UPDATE_DELAY|: .. rubric:: |UCTR_SPI_UPDATE_DELAY| - :cspan:`1` |ENUM_SPI_UPDATE_DELAY| - :rspan:`1` * - :token:`SPI_UPDATE:duration` - .. wIndex not used * - :cspan:`1` - .. productionlist:: SPI_UPDATE OUTPUT: INPUT: `duration` duration: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_SPI_UPDATE_DELAY| * |LWFW_SPI_UPDATE_DELAY| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_SPI_UPDATE_DELAY| .. rubric:: |PYAPI| * |PYAPI_SPI_UPDATE_DELAY| * - :rspan:`1` .. _|UCTR_DEBUG_SPI|: .. rubric:: |UCTR_DEBUG_SPI| - :cspan:`1` |ENUM_DEBUG_SPI| - :rspan:`1` * - .. wValue not used - .. wIndex not used * - :cspan:`1` - .. productionlist:: DEBUG_SPI OUTPUT: INPUT: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_DEBUG_SPI| * |LWFW_DEBUG_SPI| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_DEBUG_SPI| .. rubric:: |PYAPI| * |PYAPI_DEBUG_SPI| * - :rspan:`1` .. _|UCTR_SPI_TRANSFER|: .. rubric:: |UCTR_SPI_TRANSFER| - :cspan:`1` |ENUM_SPI_TRANSFER| - :rspan:`1` * - :token:`SPI_TRANSFER:c1c0` - :token:`SPI_TRANSFER:c3c2` * - :cspan:`1` - .. productionlist:: SPI_TRANSFER OUTPUT: INPUT: `c1c0` & `c3c2` c1c0: c3c2: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_SPI_TRANSFER| * |LWFW_SPI_TRANSFER| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_SPI_TRANSFER| .. rubric:: |PYAPI| * |PYAPI_SPI_TRANSFER|
.. flat-table:: Little Wire Firmware I²C Control Transfer Requests :header-rows: 4 :stub-columns: 2 :widths: 1 2 2 5 :name: lwfw12-usbctr-lwfw-i2c * - :cspan:`2` `Setup Packet`_ - :rspan:`2` Description / Notes * - :rspan:`1` :code:`bRequest` - :cspan:`1` Name * - :code:`wValue` - :code:`wIndex` * - :cspan:`3` Implementation / Interfaces * - :rspan:`1` .. _|UCTR_SETUP_I2C|: .. rubric:: |UCTR_SETUP_I2C| - :cspan:`1` |ENUM_SETUP_I2C| - :rspan:`1` * - .. wValue not used - .. wIndex not used * - :cspan:`1` |STATE_SETUP_I2C| - .. productionlist:: SETUP_I2C OUTPUT: INPUT: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_SETUP_I2C| * |LWFW_SETUP_I2C| .. rubric:: last time supported by firmware V1.1 * :lwfw11:`489` * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_SETUP_I2C| .. rubric:: |PYAPI| * |PYAPI_SETUP_I2C| * - :rspan:`1` .. _|UCTR_I2C_BEGIN_TX|: .. rubric:: |UCTR_I2C_BEGIN_TX| - :cspan:`1` |ENUM_I2C_BEGIN_TX| - :rspan:`1` * - .. wValue not used - .. wIndex not used * - :cspan:`1` |STATE_I2C_BEGIN_TX| - .. productionlist:: I2C_BEGIN_TX OUTPUT: INPUT: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_I2C_BEGIN_TX| * |LWFW_I2C_BEGIN_TX| .. rubric:: last time supported by firmware V1.1 * :lwfw11:`494` * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_I2C_BEGIN_TX| .. rubric:: |PYAPI| * |PYAPI_I2C_BEGIN_TX| * - :rspan:`1` .. _|UCTR_I2C_ADD_BUFFER|: .. rubric:: |UCTR_I2C_ADD_BUFFER| - :cspan:`1` |ENUM_I2C_ADD_BUFFER| - :rspan:`1` * - .. wValue not used - .. wIndex not used * - :cspan:`1` |STATE_I2C_ADD_BUFFER| - .. productionlist:: I2C_ADD_BUFFER OUTPUT: INPUT: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_I2C_ADD_BUFFER| * |LWFW_I2C_ADD_BUFFER| .. rubric:: last time supported by firmware V1.1 * :lwfw11:`500` * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_I2C_ADD_BUFFER| .. rubric:: |PYAPI| * |PYAPI_I2C_ADD_BUFFER| * - :rspan:`1` .. _|UCTR_I2C_SEND_BUFFER|: .. rubric:: |UCTR_I2C_SEND_BUFFER| - :cspan:`1` |ENUM_I2C_SEND_BUFFER| - :rspan:`1` * - .. wValue not used - .. wIndex not used * - :cspan:`1` |STATE_I2C_SEND_BUFFER| - .. productionlist:: I2C_SEND_BUFFER OUTPUT: INPUT: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_I2C_SEND_BUFFER| * |LWFW_I2C_SEND_BUFFER| .. rubric:: last time supported by firmware V1.1 * :lwfw11:`505` * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_I2C_SEND_BUFFER| .. rubric:: |PYAPI| * |PYAPI_I2C_SEND_BUFFER| * - :rspan:`1` .. _|UCTR_I2C_REQUEST_FROM|: .. rubric:: |UCTR_I2C_REQUEST_FROM| - :cspan:`1` |ENUM_I2C_REQUEST_FROM| - :rspan:`1` * - .. wValue not used - .. wIndex not used * - :cspan:`1` |STATE_I2C_REQUEST_FROM| - .. productionlist:: I2C_REQUEST_FROM OUTPUT: INPUT: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_I2C_REQUEST_FROM| * |LWFW_I2C_REQUEST_FROM| .. rubric:: last time supported by firmware V1.1 * :lwfw11:`541` * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_I2C_REQUEST_FROM| .. rubric:: |PYAPI| * |PYAPI_I2C_REQUEST_FROM| * - :rspan:`1` .. _|UCTR_I2C_INIT|: .. rubric:: |UCTR_I2C_INIT| - :cspan:`1` |ENUM_I2C_INIT| - :rspan:`1` * - .. wValue not used - .. wIndex not used * - :cspan:`1` - .. productionlist:: I2C_INIT OUTPUT: INPUT: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_I2C_INIT| * |LWFW_I2C_INIT| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_I2C_INIT| .. rubric:: |PYAPI| * |PYAPI_I2C_INIT| * - :rspan:`1` .. _|UCTR_I2C_START|: .. rubric:: |UCTR_I2C_START| - :cspan:`1` |ENUM_I2C_START| - :rspan:`1` * - :token:`I2C_START:diraddr` - .. wIndex not used * - :cspan:`1` - .. productionlist:: I2C_START OUTPUT: INPUT: `diraddr` diraddr: `direction` | `address` direction: address: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_I2C_START| * |LWFW_I2C_START| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_I2C_START| .. rubric:: |PYAPI| * |PYAPI_I2C_START| * - :rspan:`1` .. _|UCTR_I2C_READ|: .. rubric:: |UCTR_I2C_READ| - :cspan:`1` |ENUM_I2C_READ| - :rspan:`1` * - :token:`I2C_READ:length` - :token:`I2C_READ:stop` * - :cspan:`1` - .. productionlist:: I2C_READ OUTPUT: INPUT: `length` & `stop` length: stop: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_I2C_READ| * |LWFW_I2C_READ| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_I2C_READ| .. rubric:: |PYAPI| * |PYAPI_I2C_READ| * - :rspan:`1` .. _|UCTR_I2C_UPDATE_DELAY|: .. rubric:: |UCTR_I2C_UPDATE_DELAY| - :cspan:`1` |ENUM_I2C_UPDATE_DELAY| - :rspan:`1` * - :token:`I2C_UPDATE:duration` - .. wIndex not used * - :cspan:`1` - .. productionlist:: I2C_UPDATE OUTPUT: INPUT: `duration` duration: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_I2C_UPDATE_DELAY| * |LWFW_I2C_UPDATE_DELAY| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_I2C_UPDATE_DELAY| .. rubric:: |PYAPI| * |PYAPI_I2C_UPDATE_DELAY| * - :rspan:`1` .. _|UCTR_I2C_TRANSFER|: .. rubric:: |UCTR_I2C_TRANSFER| - :cspan:`1` |ENUM_I2C_TRANSFER| - :rspan:`1` * - :token:`I2C_TRANSFER:c1c0` - :token:`I2C_TRANSFER:c3c2` * - :cspan:`1` - .. productionlist:: I2C_TRANSFER OUTPUT: INPUT: `c1c0` & `c3c2` c1c0: c3c2: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_I2C_TRANSFER| * |LWFW_I2C_TRANSFER| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_I2C_TRANSFER| .. rubric:: |PYAPI| * |PYAPI_I2C_TRANSFER|
.. flat-table:: Little Wire Firmware Soft-PWM Control Transfer Requests :header-rows: 4 :stub-columns: 2 :widths: 1 2 2 5 :name: lwfw12-usbctr-lwfw-soft-pwm * - :cspan:`2` `Setup Packet`_ - :rspan:`2` Description / Notes * - :rspan:`1` :code:`bRequest` - :cspan:`1` Name * - :code:`wValue` - :code:`wIndex` * - :cspan:`3` Implementation / Interfaces * - :rspan:`1` .. _|UCTR_SOFT_PWM_INIT|: .. rubric:: |UCTR_SOFT_PWM_INIT| - :cspan:`1` |ENUM_SOFT_PWM_INIT| - :rspan:`1` * - :token:`SWPWM_INIT:state` - .. wIndex not used * - :cspan:`1` - .. productionlist:: SWPWM_INIT OUTPUT: INPUT: `state` state: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_SOFT_PWM_INIT| * |LWFW_SOFT_PWM_INIT| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_SOFT_PWM_INIT| .. rubric:: |PYAPI| * |PYAPI_SOFT_PWM_INIT| * - :rspan:`1` .. _|UCTR_SOFT_PWM_UPDATE|: .. rubric:: |UCTR_SOFT_PWM_UPDATE| - :cspan:`1` |ENUM_SOFT_PWM_UPDATE| - :rspan:`1` * - :token:`SWPWM_UPDATE:ch2ch1` - :token:`SWPWM_UPDATE:ch3` * - :cspan:`1` - .. productionlist:: SWPWM_UPDATE OUTPUT: INPUT: `ch2ch1` & `ch3` ch2ch1: ch3: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_SOFT_PWM_UPDATE| * |LWFW_SOFT_PWM_UPDATE| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_SOFT_PWM_UPDATE| .. rubric:: |PYAPI| * |PYAPI_SOFT_PWM_UPDATE|
.. flat-table:: Little Wire Firmware One-Wire Control Transfer Requests :header-rows: 4 :stub-columns: 2 :widths: 1 2 2 5 :name: lwfw12-usbctr-lwfw-ow * - :cspan:`2` `Setup Packet`_ - :rspan:`2` Description / Notes * - :rspan:`1` :code:`bRequest` - :cspan:`1` Name * - :code:`wValue` - :code:`wIndex` * - :cspan:`3` Implementation / Interfaces * - :rspan:`1` .. _|UCTR_OW_RESET_PULSE|: .. rubric:: |UCTR_OW_RESET_PULSE| - :cspan:`1` |ENUM_OW_RESET_PULSE| - :rspan:`1` * - .. wValue not used - .. wIndex not used * - :cspan:`1` - .. productionlist:: OW_RESET_PULSE OUTPUT: INPUT: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_OW_RESET_PULSE| * |LWFW_OW_RESET_PULSE| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_OW_RESET_PULSE| .. rubric:: |PYAPI| * |PYAPI_OW_RESET_PULSE| * - :rspan:`1` .. _|UCTR_OW_WRITE_BYTE|: .. rubric:: |UCTR_OW_WRITE_BYTE| - :cspan:`1` |ENUM_OW_WRITE_BYTE| - :rspan:`1` * - :token:`OW_WRITE_BYTE:message` - .. wIndex not used * - :cspan:`1` - .. productionlist:: OW_WRITE_BYTE OUTPUT: INPUT: `message` message: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_OW_WRITE_BYTE| * |LWFW_OW_WRITE_BYTE| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_OW_WRITE_BYTE| .. rubric:: |PYAPI| * |PYAPI_OW_WRITE_BYTE| * - :rspan:`1` .. _|UCTR_OW_READ_BYTE|: .. rubric:: |UCTR_OW_READ_BYTE| - :cspan:`1` |ENUM_OW_READ_BYTE| - :rspan:`1` * - .. wValue not used - .. wIndex not used * - :cspan:`1` - .. productionlist:: OW_READ_BYTE OUTPUT: `message` INPUT: message: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_OW_READ_BYTE| * |LWFW_OW_READ_BYTE| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_OW_READ_BYTE| .. rubric:: |PYAPI| * |PYAPI_OW_READ_BYTE| * - :rspan:`1` .. _|UCTR_OW_READ_BIT|: .. rubric:: |UCTR_OW_READ_BIT| - :cspan:`1` |ENUM_OW_READ_BIT| - :rspan:`1` * - .. wValue not used - .. wIndex not used * - :cspan:`1` - .. productionlist:: OW_READ_BIT OUTPUT: `bitval` INPUT: bitval: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_OW_READ_BIT| * |LWFW_OW_READ_BIT| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_OW_READ_BIT| .. rubric:: |PYAPI| * |PYAPI_OW_READ_BIT| * - :rspan:`1` .. _|UCTR_OW_WRITE_BIT|: .. rubric:: |UCTR_OW_WRITE_BIT| - :cspan:`1` |ENUM_OW_WRITE_BIT| - :rspan:`1` * - :token:`OW_WRITE_BIT:bitval` - .. wIndex not used * - :cspan:`1` - .. productionlist:: OW_WRITE_BIT OUTPUT: INPUT: `bitval` bitval: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_OW_WRITE_BIT| * |LWFW_OW_WRITE_BIT| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_OW_WRITE_BIT| .. rubric:: |PYAPI| * |PYAPI_OW_WRITE_BIT|
.. flat-table:: Little Wire Firmware WS2812 Control Transfer Requests :header-rows: 4 :stub-columns: 2 :widths: 1 2 2 5 :name: lwfw12-usbctr-lwfw-ws2812 * - :cspan:`2` `Setup Packet`_ - :rspan:`2` Description / Notes * - :rspan:`1` :code:`bRequest` - :cspan:`1` Name * - :code:`wValue` - :code:`wIndex` * - :cspan:`3` Implementation / Interfaces * - :rspan:`1` .. _|UCTR_WS2812_EXEC|: .. rubric:: |UCTR_WS2812_EXEC| - :cspan:`1` |ENUM_WS2812_EXEC| - :rspan:`1` * - :token:`WS2812_EXEC:cGpincmd` - :token:`WS2812_EXEC:cBcR` * - :cspan:`1` - .. productionlist:: WS2812_EXEC OUTPUT: INPUT: `cGpincmd` & `cBcR` cGpincmd: `cG` + `pin` + `cmd` cBcR: `cB` + `cR` pin: cmd: cR: cG: cB: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_WS2812_EXEC| * |LWFW_WS2812_EXEC| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_WS2812_EXEC_1| * |CAPI_WS2812_EXEC_2| * |CAPI_WS2812_EXEC_3| .. rubric:: |PYAPI| * |PYAPI_WS2812_EXEC|
.. flat-table:: Little Wire Firmware Experimental Control Transfer Requests :header-rows: 4 :stub-columns: 2 :widths: 1 2 2 5 :name: lwfw12-usbctr-lwfw-exp * - :cspan:`2` `Setup Packet`_ - :rspan:`2` Description / Notes * - :rspan:`1` :code:`bRequest` - :cspan:`1` Name * - :code:`wValue` - :code:`wIndex` * - :cspan:`3` Implementation / Interfaces * - :rspan:`1` .. _|UCTR_PIC24F_PROG|: .. rubric:: |UCTR_PIC24F_PROG| - :cspan:`1` |ENUM_PIC24F_PROG| - :rspan:`1` * - .. wValue not used - .. wIndex not used * - :cspan:`1` |STATE_PIC24F_PROG| - .. productionlist:: PIC24F_PROG OUTPUT: INPUT: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_PIC24F_PROG| * |LWFW_PIC24F_PROG| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_PIC24F_PROG| .. rubric:: |PYAPI| * |PYAPI_PIC24F_PROG| * - :rspan:`1` .. _|UCTR_PIC24F_SENDSIX|: .. rubric:: |UCTR_PIC24F_SENDSIX| - :cspan:`1` |ENUM_PIC24F_SENDSIX| - :rspan:`1` * - .. wValue not used - .. wIndex not used * - :cspan:`1` |STATE_PIC24F_SENDSIX| - .. productionlist:: PIC24F_SENDSIX OUTPUT: INPUT: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_PIC24F_SENDSIX| * |LWFW_PIC24F_SENDSIX| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_PIC24F_SENDSIX| .. rubric:: |PYAPI| * |PYAPI_PIC24F_SENDSIX| * - :rspan:`1` .. _|UCTR_PIC24F_TRANSFER|: .. rubric:: |UCTR_PIC24F_TRANSFER| - :cspan:`1` |ENUM_PIC24F_TRANSFER| - :rspan:`1` * - :token:`PIC24F_TRANSFER:c1c0` - :token:`PIC24F_TRANSFER:c3c2` * - :cspan:`1` |STATE_PIC24F_TRANSFER| - .. productionlist:: PIC24F_TRANSFER OUTPUT: INPUT: `c1c0` & `c3c2` c1c0: c3c2: * - :cspan:`1` Implementation - .. rubric:: |LWFW| – |STATE_PIC24F_TRANSFER| * |LWFW_PIC24F_TRANSFER| * - :cspan:`1` Interfaces - .. rubric:: |CAPI| * |CAPI_PIC24F_TRANSFER| .. rubric:: |PYAPI| * |PYAPI_PIC24F_TRANSFER|
.. spelling:: GPIO ADC PWM SPI I2C I²C Soft-PWM One-Wire WS2812 PIC24F