Component: SPI (CAL) (Misc): Difference between revisions
Appearance
No edit summary |
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder"" |
||
| (16 intermediate revisions by 2 users not shown) | |||
| Line 5: | Line 5: | ||
|- | |- | ||
| width="20%" style="color:gray;" | Version | | width="20%" style="color:gray;" | Version | ||
| | | 21.21 | ||
|- | |- | ||
| width="20%" style="color:gray;" | Category | | width="20%" style="color:gray;" | Category | ||
| Line 15: | Line 15: | ||
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 Serial Peripheral Interface peripheral. | 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 Serial Peripheral Interface peripheral. | ||
== | ==Version information== | ||
Library Version, Component Version, Date, Author, Info | |||
15, 2.1, 04-11-24, BR, Added pin caption to the remap port pin selection property | |||
16, 2.2, 04-11-24, BR, Cleaned up pin caption from none remap port pin property | |||
17, 2.2, 04-11-24, BR, Minor change to source to reflect change to I2C | |||
21, 21.0, 28-04-25, MW, Minor change sim only to prevent chars FCD Helper from appearing on the display | |||
==Detailed description== | ==Detailed description== | ||
| Line 33: | Line 43: | ||
''<span style="color:red;">No additional examples</span>'' | |||
==Macro reference== | |||
{| class="wikitable | ===GetConsoleHandle=== | ||
{| 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" | Returns a handle to the console used by this component | | colspan="2" | Returns a handle to the console used by this component | ||
| Line 202: | Line 83: | ||
{| class="wikitable | ===GetList=== | ||
{| 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" | | | colspan="2" | returns Named property list | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9- | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING | ||
| width="90%" | | | width="90%" | Name | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-string-icon.png]] - STRING | ||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===GetValue=== | ||
{| 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" | | | colspan="2" | Reads Named property Value. | ||
|- | |- | ||
|- | |- | ||
| Line 246: | Line 116: | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-string-icon.png]] - STRING | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===Master_Byte=== | ||
{| 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" | '''Master_Byte''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Sends and receives a data byte | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | DataOut | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | | 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'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===Master_Disable_CS=== | ||
{| 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" | '''Master_Disable_CS''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Outputs a high signal to the chip select pin to deselect the remote slave device. | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===Master_Enable_CS=== | ||
{| 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" | '''Master_Enable_CS''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Outputs a low signal to the chip select pin to select the remote slave device. | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
===Master_Init=== | |||
{| class="mtx-class-macrotable wikitable" | |||
== | |||
{| class="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" | '''Master_Init''' | ||
|- | |- | ||
| colspan="2" | Initialise the Master | |||
|- | |- | ||
|- | |- | ||
| | | 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'' | |||
|} | |||
===Master_Transaction=== | |||
{| 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" | '''Master_Transaction''' | ||
|- | |- | ||
| colspan="2" | Sends and receives data bytes via the SPI channel. The Buffer is to contain the data to be sent, and is overwritten by the retuning data from the device. Returns 1 for success, 0 for failure | |||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9- | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | Buffer | |||
| width="90%" | | |||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
| width="10%" align="center | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
| width="90% | | width="90%" | Length | ||
|- | |- | ||
| colspan="2" | Number of bytes to transfer | |||
|- | |- | ||
| 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- | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===Master_Uninit=== | ||
{| 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" | '''Master_Uninit''' | ||
|- | |- | ||
| colspan="2" | Uninitialise the | | colspan="2" | Uninitialise the Master | ||
|- | |- | ||
|- | |- | ||
| Line 434: | Line 220: | ||
{| class="wikitable | ===Prv_TextConsole=== | ||
{| 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" | '''Prv_TextConsole''' | ||
|- | |- | ||
| colspan="2" | Send text to the SPI console. Exposed as part of the CAL_SPI component to allow none AutoCS pins and other. | | colspan="2" | Send text to the SPI console. Exposed as part of the CAL_SPI component to allow none AutoCS pins and other. | ||
| Line 462: | Line 249: | ||
{| class="wikitable | ===SetPrescaler=== | ||
{| 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" | '''SetPrescaler''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Sets the prescaler value for the clock divider chain | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Prescaler | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===SetValue=== | ||
{| 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" | | | colspan="2" | Change Named property to new Value. | ||
|- | |- | ||
|- | |- | ||
| Line 498: | Line 282: | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
| width="10%" align="center | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING | ||
| width="90% | | width="90%" | Value | ||
|- | |- | ||
| colspan="2" | | |||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 516: | Line 292: | ||
{| class="wikitable | ===Slave_Init=== | ||
{| 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" | '''Slave_Init''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Initialise the Slave | ||
|- | |- | ||
|- | |- | ||
| Line 529: | Line 306: | ||
{| class="wikitable | ===Slave_RxByte=== | ||
{| 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" | '''Slave_RxByte''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Returns the data received from the SPI Master | ||
|- | |- | ||
|- | |- | ||
| 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 560: | Line 320: | ||
===Slave_TxByte=== | |||
{| class="mtx-class-macrotable wikitable" | |||
| | |||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="10%" align="center" | | width="90%" class="mtx-class-macrohead" | '''Slave_TxByte''' | ||
| width="90%" | |||
|- | |- | ||
| colspan="2" | Sets the data to be transmitted to the SPI master. | | colspan="2" | Sets the data to be transmitted to the SPI master. | ||
| Line 591: | Line 339: | ||
{| class="wikitable | ===Slave_Uninit=== | ||
{| 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" | '''Slave_Uninit''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Uninitialise the Slave | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| 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''' | ||
|- | |- | ||
|- | |- | ||
| Line 691: | Line 366: | ||
| colspan="2" | A global flag to enable or disable the SPI component from producing code. Useful for generating components with multiple communications options. | | colspan="2" | A global flag to enable or disable the SPI 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 730: | Line 405: | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
| 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 759: | Line 434: | ||
| colspan="2" | Data bit read sample point | | colspan="2" | Data bit read sample point | ||
|- | |- | ||
| 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 | ||
|- | |- | ||
|- | |- | ||
| Line 778: | Line 453: | ||
| colspan="2" | Selects the API Slave to use to send and receive real world SPI data during simulation. | | colspan="2" | Selects the API Slave to use to send and receive real world SPI data during simulation. | ||
|} | |} | ||
==Component Source Code== | |||
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_SPI.fcfx FC_Comp_Source_SPI.fcfx] | |||
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_SPI.fcfx FC_Comp_Source_SPI.fcfx] | |||
Latest revision as of 14:37, 13 July 2026
| Author | Matrix TSL |
| Version | 21.21 |
| Category | Misc |
SPI 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 Serial Peripheral Interface peripheral.
Version information
Library Version, Component Version, Date, Author, Info 15, 2.1, 04-11-24, BR, Added pin caption to the remap port pin selection property 16, 2.2, 04-11-24, BR, Cleaned up pin caption from none remap port pin property 17, 2.2, 04-11-24, BR, Minor change to source to reflect change to I2C 21, 21.0, 28-04-25, MW, Minor change sim only to prevent chars FCD Helper from appearing on the display
Detailed description
No detailed description exists yet for this component
Examples
No additional examples
Macro reference
GetConsoleHandle
| GetConsoleHandle | |
| Returns a handle to the console used by this component | |
| Return | |
GetList
| GetList | |
| returns Named property list | |
| Name | |
| Return | |
GetValue
| GetValue | |
| Reads Named property Value. | |
| Name | |
| Return | |
Master_Byte
| Master_Byte | |
| Sends and receives a data byte | |
| DataOut | |
| Return | |
Master_Disable_CS
| Master_Disable_CS | |
| Outputs a high signal to the chip select pin to deselect the remote slave device. | |
| Return | |
Master_Enable_CS
| Master_Enable_CS | |
| Outputs a low signal to the chip select pin to select the remote slave device. | |
| Return | |
Master_Init
| Master_Init | |
| Initialise the Master | |
| Return | |
Master_Transaction
Master_Uninit
| Master_Uninit | |
| Uninitialise the Master | |
| Return | |
Prv_TextConsole
SetPrescaler
| SetPrescaler | |
| Sets the prescaler value for the clock divider chain | |
| Prescaler | |
| Return | |
SetValue
| SetValue | |
| Change Named property to new Value. | |
| Name | |
| Value | |
| Return | |
Slave_Init
| Slave_Init | |
| Initialise the Slave | |
| Return | |
Slave_RxByte
| Slave_RxByte | |
| Returns the data received from the SPI Master | |
| Return | |
Slave_TxByte
| Slave_TxByte | |
| Sets the data to be transmitted to the SPI master. | |
| Data | |
| Return | |
Slave_Uninit
| Slave_Uninit | |
| Uninitialise the Slave | |
| Return | |
Property reference
Component Source Code
Please click here to download the component source project: FC_Comp_Source_SPI.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_SPI.fcfx