Component: USB Slave (Comms: USB): Difference between revisions
Appearance
No edit summary |
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder"" |
||
| (9 intermediate revisions by 2 users not shown) | |||
| Line 48: | Line 48: | ||
''<span style="color:red;">No additional examples</span>'' | ''<span style="color:red;">No additional examples</span>'' | ||
| Line 53: | Line 61: | ||
==Macro reference== | ==Macro reference== | ||
{| class="wikitable" | ===CheckRx=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''CheckRx''' | |||
|- | |||
| colspan="2" | Called to check if there is any incoming data waiting to be received. Returns the number of incoming data bytes. Only needed when not running the slave service. | |||
|- | |- | ||
|- | |- | ||
| | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | |||
|} | |||
===GetByte=== | |||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''GetByte''' | |||
|- | |- | ||
| | | colspan="2" | Retreives the byte at location Idx from the incoming data buffer. | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Idx | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Specifies the location in the incoming buffer | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| Line 76: | Line 94: | ||
{| class="wikitable | ===GetString=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''GetString''' | ||
|- | |- | ||
| colspan="2" | Retreives a string of data from the incoming data buffer starting from location 0 and incrementing up to the NumBytes parameter. | | colspan="2" | Retreives a string of data from the incoming data buffer starting from location 0 and incrementing up to the NumBytes parameter. | ||
| Line 94: | Line 113: | ||
{| class="wikitable" style="width | ===Initialise=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''Initialise''' | |||
|- | |||
| colspan="2" | Starts up the USB communications and attempts to enumerate. Returns 0 for a successful startup or 255 for a enumeration timeout. | |||
|- | |||
|- | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | |||
|} | |||
===RunSlaveService=== | |||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''RunSlaveService''' | ||
|- | |- | ||
| colspan="2" | Stalls the microcontroller and waits for an incoming message from the USB, when a message is received the macro defined in the USB Slave properties is automatically run. While the macro is running you can choose to send data back to the PC if you wish. | | colspan="2" | Stalls the microcontroller and waits for an incoming message from the USB, when a message is received the macro defined in the USB Slave properties is automatically run. While the macro is running you can choose to send data back to the PC if you wish. | ||
| Line 107: | Line 141: | ||
{| class="wikitable | ===SendByte=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SendByte''' | ||
|- | |- | ||
| colspan="2" | Adds the byte onto the end of the outgoing data buffer. | | colspan="2" | Adds the byte onto the end of the outgoing data buffer. | ||
| Line 125: | Line 160: | ||
{| class="wikitable | ===SendByteArray=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SendByteArray''' | ||
|- | |- | ||
| colspan="2" | Adds an array of bytes onto the end of the outgoing data buffer. | | colspan="2" | Adds an array of bytes onto the end of the outgoing data buffer. | ||
| Line 148: | Line 184: | ||
{| class="wikitable | ===SendString=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SendString''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Adds a string of bytes onto the end of the outgoing data buffer. | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING | ||
| width="90%" | | width="90%" | Data | ||
|- | |- | ||
| colspan="2" | Data String To Send | |||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Length | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Max number of bytes to try and add to the outgoing buffer. | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| Line 179: | Line 208: | ||
{| class="wikitable | ===StopSlaveService=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''StopSlaveService''' | ||
|- | |- | ||
| colspan="2" | Allows the microcontroller to leave the stalled slave mode and resume its normal independant functionality. Must be called from within the slave service routine to work correctly. | | colspan="2" | Allows the microcontroller to leave the stalled slave mode and resume its normal independant functionality. Must be called from within the slave service routine to work correctly. | ||
| Line 190: | Line 220: | ||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
==Property reference== | ==Property reference== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Properties''' | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | USB Properties | ||
|- | |- | ||
|- | |- | ||
| Line 264: | Line 279: | ||
| colspan="2" | Maximum amount of current the USB host will provide before shutting down the USB channel. | | colspan="2" | Maximum amount of current the USB host will provide before shutting down the USB channel. | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Slave Macro Properties | ||
|- | |- | ||
|- | |- | ||
| Line 278: | Line 293: | ||
| colspan="2" | Defines the parameters for the slave service macro allowing data from the host to be automatically passed into the macro. | | colspan="2" | Defines the parameters for the slave service macro allowing data from the host to be automatically passed into the macro. | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | USB Driver | ||
|- | |- | ||
|- | |- | ||
| Line 297: | Line 312: | ||
| colspan="2" | Generates a driver file when set to Yes, Automatically jumps back to No when complete. | | colspan="2" | Generates a driver file when set to Yes, Automatically jumps back to No when complete. | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Simulation | ||
|- | |- | ||
|- | |- | ||
Latest revision as of 14:37, 13 July 2026
| Author | Matrix Ltd. |
| Version | 1.3 |
| Category | Comms: USB |
USB Slave component
Component to create and communicate using a generic USB communications profile. Has the ability to allow the device to be a slave to the PC. Compatible with simulation and USB enabled microcontroller devices (PIC/dsPIC).
Component Source Code
Please click here to download the component source project: FC_Comp_Source_USBSlave.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_USBSlave.fcfx
Detailed description
No detailed description exists yet for this component
Examples
No additional examples
Macro reference
CheckRx
| CheckRx | |
| Called to check if there is any incoming data waiting to be received. Returns the number of incoming data bytes. Only needed when not running the slave service. | |
| Return | |
GetByte
| GetByte | |
| Retreives the byte at location Idx from the incoming data buffer. | |
| Idx | |
| Specifies the location in the incoming buffer | |
| Return | |
GetString
Initialise
| Initialise | |
| Starts up the USB communications and attempts to enumerate. Returns 0 for a successful startup or 255 for a enumeration timeout. | |
| Return | |
RunSlaveService
SendByte
| SendByte | |
| Adds the byte onto the end of the outgoing data buffer. | |
| Data | |
| Data byte to transmit to the host | |
| Return | |
SendByteArray
SendString
| SendString | |
| Adds a string of bytes onto the end of the outgoing data buffer. | |
| Data | |
| Data String To Send | |
| Length | |
| Max number of bytes to try and add to the outgoing buffer. | |
| Return | |
StopSlaveService