Component: UART (CAL) (Misc): Difference between revisions
Appearance
m Text replacement - "class="wikitable" style="width:60%; background-color:#FFFFFF;"" to "class="mtx-class-macrotable wikitable"" |
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder"" |
||
| (4 intermediate revisions by the same user not shown) | |||
| Line 70: | Line 70: | ||
{| class="mtx-class-macrotable wikitable" | {| 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" | '''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 94: | Line 94: | ||
{| class="mtx-class-macrotable wikitable" | {| 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" | '''Delay''' | ||
|- | |- | ||
| colspan="2" | Software UART Bit Delay | | colspan="2" | Software UART Bit Delay | ||
| Line 108: | Line 108: | ||
{| class="mtx-class-macrotable wikitable" | {| 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" | '''GetConsoleHandle''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
| Line 122: | Line 122: | ||
{| class="mtx-class-macrotable wikitable" | {| 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" | '''GetList''' | ||
|- | |- | ||
| colspan="2" | Gets Named property List | | colspan="2" | Gets Named property List | ||
| Line 141: | Line 141: | ||
{| class="mtx-class-macrotable wikitable" | {| 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" | '''GetValue''' | ||
|- | |- | ||
| colspan="2" | Get Value of Named property | | colspan="2" | Get Value of Named property | ||
| Line 160: | Line 160: | ||
{| class="mtx-class-macrotable wikitable" | {| 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" | '''Init''' | ||
|- | |- | ||
| colspan="2" | Initialize the component with the specified properties | | colspan="2" | Initialize the component with the specified properties | ||
| Line 174: | Line 174: | ||
{| class="mtx-class-macrotable wikitable" | {| 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" | '''Receive''' | ||
|- | |- | ||
| colspan="2" | Receive a Character | | colspan="2" | Receive a Character | ||
| Line 193: | Line 193: | ||
{| class="mtx-class-macrotable wikitable" | {| 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" | '''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 222: | Line 222: | ||
{| class="mtx-class-macrotable wikitable" | {| 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" | '''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 251: | Line 251: | ||
{| class="mtx-class-macrotable wikitable" | {| 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" | '''Send''' | ||
|- | |- | ||
| colspan="2" | Send the Character | | colspan="2" | Send the Character | ||
| Line 270: | Line 270: | ||
{| class="mtx-class-macrotable wikitable" | {| 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" | Transmits an array of bytes via the UART peripheral | | colspan="2" | Transmits an array of bytes via the UART peripheral | ||
| Line 294: | Line 294: | ||
{| class="mtx-class-macrotable wikitable" | {| 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" | '''SendNumber''' | ||
|- | |- | ||
| colspan="2" | Transmits a numeric value as an ASCII string | | colspan="2" | Transmits a numeric value as an ASCII string | ||
| Line 313: | Line 313: | ||
{| class="mtx-class-macrotable wikitable" | {| 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" | Transmits a string of bytes via the UART peripheral | | colspan="2" | Transmits a string of bytes via the UART peripheral | ||
| Line 332: | Line 332: | ||
{| class="mtx-class-macrotable wikitable" | {| 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" | '''SetValue''' | ||
|- | |- | ||
| colspan="2" | set Value of Named property | | colspan="2" | set Value of Named property | ||
| Line 356: | Line 356: | ||
{| class="mtx-class-macrotable wikitable" | {| 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" | '''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 375: | Line 375: | ||
{| class="mtx-class-macrotable wikitable" | {| 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" | '''Uninit''' | ||
|- | |- | ||
| colspan="2" | Un-initialize the UART and release the resources | | colspan="2" | Un-initialize the UART and release the resources | ||
| Line 389: | Line 389: | ||
{| class="mtx-class-macrotable wikitable" | {| 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" | '''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