Component: UART (CAL) (Misc): Difference between revisions
Appearance
m Text replacement - "width="10%" align="center" style="background-color:#D8C9D8;" align="center"" to "width="10%" align="center" class="mtx-class-macrohead"" |
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder"" |
||
| (3 intermediate revisions by the same user not shown) | |||
| Line 71: | Line 71: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ControlPin''' | ||
|- | |- | ||
| colspan="2" | Allows direct control over the TX and RTS pins Also allows for reading of the state of the RX and CTS pins. Only available when the UART is uninitialised. | | colspan="2" | Allows direct control over the TX and RTS pins Also allows for reading of the state of the RX and CTS pins. Only available when the UART is uninitialised. | ||
| Line 95: | Line 95: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Delay''' | ||
|- | |- | ||
| colspan="2" | Software UART Bit Delay | | colspan="2" | Software UART Bit Delay | ||
| Line 109: | Line 109: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''GetConsoleHandle''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
| Line 123: | Line 123: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''GetList''' | ||
|- | |- | ||
| colspan="2" | Gets Named property List | | colspan="2" | Gets Named property List | ||
| Line 142: | Line 142: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''GetValue''' | ||
|- | |- | ||
| colspan="2" | Get Value of Named property | | colspan="2" | Get Value of Named property | ||
| Line 161: | Line 161: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Init''' | ||
|- | |- | ||
| colspan="2" | Initialize the component with the specified properties | | colspan="2" | Initialize the component with the specified properties | ||
| Line 175: | Line 175: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Receive''' | ||
|- | |- | ||
| colspan="2" | Receive a Character | | colspan="2" | Receive a Character | ||
| Line 194: | Line 194: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ReceiveByteArray''' | ||
|- | |- | ||
| colspan="2" | Receives an array of bytes and returns the number of bytes received. | | colspan="2" | Receives an array of bytes and returns the number of bytes received. | ||
| Line 223: | Line 223: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ReceiveString''' | ||
|- | |- | ||
| colspan="2" | Receives a string of bytes and returns the number of bytes received. | | colspan="2" | Receives a string of bytes and returns the number of bytes received. | ||
| Line 252: | Line 252: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Send''' | ||
|- | |- | ||
| colspan="2" | Send the Character | | colspan="2" | Send the Character | ||
| Line 271: | Line 271: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SendByteArray''' | ||
|- | |- | ||
| colspan="2" | Transmits an array of bytes via the UART peripheral | | colspan="2" | Transmits an array of bytes via the UART peripheral | ||
| Line 295: | Line 295: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SendNumber''' | ||
|- | |- | ||
| colspan="2" | Transmits a numeric value as an ASCII string | | colspan="2" | Transmits a numeric value as an ASCII string | ||
| Line 314: | Line 314: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SendString''' | ||
|- | |- | ||
| colspan="2" | Transmits a string of bytes via the UART peripheral | | colspan="2" | Transmits a string of bytes via the UART peripheral | ||
| Line 333: | Line 333: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetValue''' | ||
|- | |- | ||
| colspan="2" | set Value of Named property | | colspan="2" | set Value of Named property | ||
| Line 357: | Line 357: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''TestProperty''' | ||
|- | |- | ||
| colspan="2" | A simple macro to allow us to test the value of a single property during runtime. | | colspan="2" | A simple macro to allow us to test the value of a single property during runtime. | ||
| Line 376: | Line 376: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Uninit''' | ||
|- | |- | ||
| colspan="2" | Un-initialize the UART and release the resources | | colspan="2" | Un-initialize the UART and release the resources | ||
| Line 390: | Line 390: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''UpdateBaud''' | ||
|- | |- | ||
| colspan="2" | Changes the UART Baud rate. 0=1200, 1=2400, 2=4800, 3=9600, 4=19200, 5=38400, 6=57600, 7=115200, 8=250000 | | colspan="2" | Changes the UART Baud rate. 0=1200, 1=2400, 2=4800, 3=9600, 4=19200, 5=38400, 6=57600, 7=115200, 8=250000 | ||
| Line 409: | Line 409: | ||
{| class="mtx-class-macrotable 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''' | ||
|- | |- | ||
|- | |- | ||
| Line 418: | Line 418: | ||
| colspan="2" | A global flag to enable or disable the UART component from producing code. Useful for generating components with multiple communications options. | | colspan="2" | A global flag to enable or disable the UART component from producing code. Useful for generating components with multiple communications options. | ||
|- | |- | ||
| 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" | Connections | ||
|- | |- | ||
|- | |- | ||
| Line 432: | Line 432: | ||
| colspan="2" | If set compares to the info section in the FCD to allow for auto connection to the correct channel | | colspan="2" | If set compares to the info section in the FCD to allow for auto connection to the correct 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" | Transmit | ||
|- | |- | ||
|- | |- | ||
| Line 451: | Line 451: | ||
| colspan="2" | Decides what to do if there is more then one byte to send or if the UART is already transmitting data. No: When additional data is transmitted the processor will sit and wait for the data to be sent. Yes: The data to be sent will be placed into a buffer allowing the processor to continue with other things, the buffer will automatically empty itself using a UART TX interrupt. | | colspan="2" | Decides what to do if there is more then one byte to send or if the UART is already transmitting data. No: When additional data is transmitted the processor will sit and wait for the data to be sent. Yes: The data to be sent will be placed into a buffer allowing the processor to continue with other things, the buffer will automatically empty itself using a UART TX interrupt. | ||
|- | |- | ||
| 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" | Receive | ||
|- | |- | ||
|- | |- | ||
| Line 470: | Line 470: | ||
| colspan="2" | Decides what to do when data is received. No: The UART must be regularily polled or the user must enable their own receive interrupt to catch data as it comes in. Yes: The received data will be placed into a buffer using a UART RX interrupt. | | colspan="2" | Decides what to do when data is received. No: The UART must be regularily polled or the user must enable their own receive interrupt to catch data as it comes in. Yes: The received data will be placed into a buffer using a UART RX interrupt. | ||
|- | |- | ||
| 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" | Flow Control | ||
|- | |- | ||
|- | |- | ||
| Line 479: | Line 479: | ||
| colspan="2" | Flow Control (Handshake) enable or disable. On: Two I/O pins are used to control the flow of data in and out of the device. Off: Flow control is disabled. | | colspan="2" | Flow Control (Handshake) enable or disable. On: Two I/O pins are used to control the flow of data in and out of the device. Off: Flow control is disabled. | ||
|- | |- | ||
| 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" | Options | ||
|- | |- | ||
|- | |- | ||
| Line 513: | Line 513: | ||
| colspan="2" | Automatic receive interrupt mode enable or disable. Used on components such as the GSM or GPS where data can come in at any time. Software channel is disabled when interrupt is enabled, for interrupt with a software channel use an I/O edge triggered interrupt. | | colspan="2" | Automatic receive interrupt mode enable or disable. Used on components such as the GSM or GPS where data can come in at any time. Software channel is disabled when interrupt is enabled, for interrupt with a software channel use an I/O edge triggered interrupt. | ||
|- | |- | ||
| 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 TSL |
| Version | 19.3 |
| Category | Misc |
UART component
CAL = Code Abstraction Layer - Allows one code base to run on a wide range of chips. A low level implementation giving direct access to the UART peripheral. Includes simulation functionality to commmunicate via a COM port or an Injector component. Also includes timestamped logging via the console and Data Recorder trace monitoring support.
Version information
Library Version, Component Version, Date, Author, Info 14, 2.2, 04-11-24, BR, Added pin caption to the remap port pin selection property 15, 2.2, 04-11-24, BR, Cleaned up pin caption from none remap port pin property 16, 2.2, 15-11-24, BR, Minor change to reflect changes to I2C CAL component 17, 2.3, 06-05-25, BR, Added filter to allow for automatic channel setup based on FCD and component 18, 2.3, 15-07-25, BR, Sorted the remap pin properties by port pin 19, 2.3, 11-08-25, MW, Changed fcdhelper properties to invisible as text is appearing on other projects
Detailed description
No detailed description exists yet for this component
Examples
No additional examples
Macro reference
ControlPin
Delay
| Delay | |
| Software UART Bit Delay | |
| Return | |
GetConsoleHandle
| GetConsoleHandle | |
| Return | |
GetList
| GetList | |
| Gets Named property List | |
| Name | |
| Return | |
GetValue
| GetValue | |
| Get Value of Named property | |
| Name | |
| Return | |
Init
| Init | |
| Initialize the component with the specified properties | |
| Return | |
Receive
| Receive | |
| Receive a Character | |
| Timeout | |
| Period to wait for the character to be received | |
| Return | |
ReceiveByteArray
ReceiveString
Send
| Send | |
| Send the Character | |
| Char | |
| The Character to send | |
| Return | |
SendByteArray
| SendByteArray | |
| Transmits an array of bytes via the UART peripheral | |
| Data | |
| Data to transmit | |
| NumBytes | |
| Number of bytes to send from the array | |
| Return | |
SendNumber
| SendNumber | |
| Transmits a numeric value as an ASCII string | |
| Number | |
| Numeric value to send | |
| Return | |
SendString
| SendString | |
| Transmits a string of bytes via the UART peripheral | |
| Data | |
| Data String to transmit | |
| Return | |
SetValue
| SetValue | |
| set Value of Named property | |
| Name | |
| Value | |
| Return | |
TestProperty
| TestProperty | |
| A simple macro to allow us to test the value of a single property during runtime. | |
| Property | |
| 0=UseTX, 1=UseRX, 2=UseFlowControl | |
| Return | |
Uninit
| Uninit | |
| Un-initialize the UART and release the resources | |
| Return | |
UpdateBaud
Property reference
Component Source Code
Please click here to download the component source project: FC_Comp_Source_UART.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_UART.fcfx