Difference between revisions of "Component: FTDI (FT800) (FT800) (Misc)"
Line 17: | Line 17: | ||
==Component Source Code== | ==Component Source Code== | ||
− | Please click here to download the component source project: [https://www.flowcode.co.uk/ | + | Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_FTDI-FT800.fcfx FC_Comp_Source_FTDI-FT800.fcfx] |
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_FTDI-FT800.fcfx FC_Comp_Source_FTDI-FT800.fcfx] | Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_FTDI-FT800.fcfx FC_Comp_Source_FTDI-FT800.fcfx] | ||
==Detailed description== | ==Detailed description== | ||
+ | |||
+ | |||
Line 44: | Line 46: | ||
==Examples== | ==Examples== | ||
+ | |||
+ | |||
Line 66: | Line 70: | ||
==Macro reference== | ==Macro reference== | ||
+ | |||
+ | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
+ | |- | ||
+ | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
+ | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''IncrementCommandOffset''' | ||
+ | |- | ||
+ | | colspan="2" | Adds commandSize to the currentOffset. Checks for 4K ring-buffer offset roll-over | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
+ | | width="90%" | currentOffset | ||
+ | |- | ||
+ | | colspan="2" | graphics processor command list pointer | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | commandSize | ||
+ | |- | ||
+ | | colspan="2" | number of bytes to increment the offset | ||
+ | |- | ||
+ | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT | ||
+ | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
+ | |} | ||
+ | |||
+ | |||
+ | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
+ | |- | ||
+ | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
+ | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MemRead16''' | ||
+ | |- | ||
+ | | colspan="2" | Reads a single unsigned int from the FT800 internal address space | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u32-icon.png]] - ULONG | ||
+ | | width="90%" | Address | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT | ||
+ | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
+ | |} | ||
+ | |||
+ | |||
+ | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
+ | |- | ||
+ | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
+ | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MemRead8''' | ||
+ | |- | ||
+ | | colspan="2" | Reads a single data byte from the FT800 internal address space | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u32-icon.png]] - ULONG | ||
+ | | width="90%" | Address | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | 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'' | ||
+ | |} | ||
+ | |||
+ | |||
+ | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
+ | |- | ||
+ | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
+ | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MemRead32''' | ||
+ | |- | ||
+ | | colspan="2" | Reads a single unsigned long from the FT800 internal address space | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u32-icon.png]] - ULONG | ||
+ | | width="90%" | Address | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u32-icon.png]] - ULONG | ||
+ | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
+ | |} | ||
+ | |||
+ | |||
+ | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
+ | |- | ||
+ | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
+ | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MemWrite16''' | ||
+ | |- | ||
+ | | colspan="2" | Writes a unsigned int value to the FT800 internal address space | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u32-icon.png]] - ULONG | ||
+ | | width="90%" | Address | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
+ | | width="90%" | Data | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | 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'' | ||
+ | |} | ||
+ | |||
+ | |||
+ | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
+ | |- | ||
+ | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
+ | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MemWrite8''' | ||
+ | |- | ||
+ | | colspan="2" | Writes a byte value to the FT800 internal address space | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u32-icon.png]] - ULONG | ||
+ | | width="90%" | Address | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Data | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | 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'' | ||
+ | |} | ||
+ | |||
+ | |||
+ | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
+ | |- | ||
+ | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
+ | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CommandWrite''' | ||
+ | |- | ||
+ | | colspan="2" | Sends FT800 command | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Command | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | 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'' | ||
+ | |} | ||
+ | |||
+ | |||
+ | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
+ | |- | ||
+ | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
+ | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MemWrite32''' | ||
+ | |- | ||
+ | | colspan="2" | Writes a unsigned long value to the FT800 internal address space | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u32-icon.png]] - ULONG | ||
+ | | width="90%" | Address | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u32-icon.png]] - ULONG | ||
+ | | width="90%" | Data | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | 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'' | ||
+ | |} | ||
+ | |||
+ | |||
+ | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
+ | |- | ||
+ | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
+ | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise''' | ||
+ | |- | ||
+ | | colspan="2" | System initialization routines. Executed once on reset. Returns 0 if device not detected or 1 if device is correctly initialised. | ||
+ | |- | ||
+ | |- | ||
+ | | 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'' | ||
+ | |} | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==Property reference== | ||
+ | |||
+ | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
+ | |- | ||
+ | | width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]] | ||
+ | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties''' | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] | ||
+ | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | SPI Properties | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | ||
+ | | width="90%" | Channel | ||
+ | |- | ||
+ | | colspan="2" | SPI Channel selector | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | ||
+ | | width="90%" | Prescale | ||
+ | |- | ||
+ | | colspan="2" | Prescale option selector | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]] | ||
+ | | width="90%" | MOSI | ||
+ | |- | ||
+ | | colspan="2" | SPI Data Out Pin SDO - Also Known as Master Out Slave In (MOSI) when used in Master mode. | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]] | ||
+ | | width="90%" | MISO | ||
+ | |- | ||
+ | | colspan="2" | SPI Data In Pin SDI - Also Known as Master In Slave Out (MISO) when used in Master mode. | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]] | ||
+ | | width="90%" | CLK | ||
+ | |- | ||
+ | | colspan="2" | SPI Clock Pin CLK - The Clock signal is driven by the SPI master. | ||
+ | |- | ||
+ | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] | ||
+ | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Pin Connections | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]] | ||
+ | | width="90%" | Power Pin | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]] | ||
+ | | width="90%" | CS Pin | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] | ||
+ | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Display Properties | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | ||
+ | | width="90%" | Width | ||
+ | |- | ||
+ | | colspan="2" | Active width of LCD display | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | ||
+ | | width="90%" | Height | ||
+ | |- | ||
+ | | colspan="2" | Active height of LCD display | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | ||
+ | | width="90%" | HCycle | ||
+ | |- | ||
+ | | colspan="2" | Total number of clocks per line | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | ||
+ | | width="90%" | HOffset | ||
+ | |- | ||
+ | | colspan="2" | Start of active line | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | ||
+ | | width="90%" | HSync0 | ||
+ | |- | ||
+ | | colspan="2" | Start of horizontal sync pulse | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | ||
+ | | width="90%" | HSync1 | ||
+ | |- | ||
+ | | colspan="2" | End of horizontal sync pulse | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | ||
+ | | width="90%" | VCycle | ||
+ | |- | ||
+ | | colspan="2" | Total number of lines per screen | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | ||
+ | | width="90%" | VOffset | ||
+ | |- | ||
+ | | colspan="2" | Start of active screen | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | ||
+ | | width="90%" | VSync0 | ||
+ | |- | ||
+ | | colspan="2" | Start of vertical sync pulse | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | ||
+ | | width="90%" | VSync1 | ||
+ | |- | ||
+ | | colspan="2" | End of vertical sync pulse | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | ||
+ | | width="90%" | PixelClock | ||
+ | |- | ||
+ | | colspan="2" | Pixel Clock | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | ||
+ | | width="90%" | Swizzle | ||
+ | |- | ||
+ | | colspan="2" | Define RGB output pins | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | ||
+ | | width="90%" | Clock Polarity | ||
+ | |- | ||
+ | | colspan="2" | Define active edge of PCLK | ||
+ | |- | ||
+ | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] | ||
+ | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Simulation | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | ||
+ | | width="90%" | Scope Traces | ||
+ | |- | ||
+ | | colspan="2" | Selects if the scope traces are automatically generated or not | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | ||
+ | | width="90%" | Console Data | ||
+ | |- | ||
+ | | colspan="2" | Selects if the console data is automatically generated or not | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | ||
+ | | width="90%" | API | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |}==Macro reference== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" |
Revision as of 09:56, 27 January 2023
Author | MatrixTSL |
Version | 2.0 |
Category | Misc |
Contents
FTDI (FT800) component
The FT800 provides a powerful feature set in a small package to create dynamic HMI interfaces. The device supports line by line graphics rendering to 1/16 of a pixel on displays with resolution up to 512 x 512 with 262K colours. The chip includes a touch controller for sensing touch feedback from a TFT display with a resistive touch panel as well as a sound synthesizer and audio playback with a PWM output to drive a speaker.
Component Source Code
Please click here to download the component source project: FC_Comp_Source_FTDI-FT800.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_FTDI-FT800.fcfx
Detailed description
No detailed description exists yet for this component
Examples
No additional examples
Macro reference
![]() |
MemRead16 |
Reads a single unsigned int from the FT800 internal address space | |
![]() |
Address |
![]() |
Return |
![]() |
MemRead8 |
Reads a single data byte from the FT800 internal address space | |
![]() |
Address |
![]() |
Return |
![]() |
MemRead32 |
Reads a single unsigned long from the FT800 internal address space | |
![]() |
Address |
![]() |
Return |
![]() |
MemWrite16 |
Writes a unsigned int value to the FT800 internal address space | |
![]() |
Address |
![]() |
Data |
![]() |
Return |
![]() |
MemWrite8 |
Writes a byte value to the FT800 internal address space | |
![]() |
Address |
![]() |
Data |
![]() |
Return |
![]() |
CommandWrite |
Sends FT800 command | |
![]() |
Command |
![]() |
Return |
![]() |
MemWrite32 |
Writes a unsigned long value to the FT800 internal address space | |
![]() |
Address |
![]() |
Data |
![]() |
Return |
![]() |
Initialise |
System initialization routines. Executed once on reset. Returns 0 if device not detected or 1 if device is correctly initialised. | |
![]() |
Return |
Property reference
==Macro reference==
![]() |
MemRead16 |
Reads a single unsigned int from the FT800 internal address space | |
![]() |
Address |
![]() |
Return |
![]() |
MemRead8 |
Reads a single data byte from the FT800 internal address space | |
![]() |
Address |
![]() |
Return |
![]() |
MemRead32 |
Reads a single unsigned long from the FT800 internal address space | |
![]() |
Address |
![]() |
Return |
![]() |
MemWrite16 |
Writes a unsigned int value to the FT800 internal address space | |
![]() |
Address |
![]() |
Data |
![]() |
Return |
![]() |
MemWrite8 |
Writes a byte value to the FT800 internal address space | |
![]() |
Address |
![]() |
Data |
![]() |
Return |
![]() |
CommandWrite |
Sends FT800 command | |
![]() |
Command |
![]() |
Return |
![]() |
MemWrite32 |
Writes a unsigned long value to the FT800 internal address space | |
![]() |
Address |
![]() |
Data |
![]() |
Return |
![]() |
Initialise |
System initialization routines. Executed once on reset. Returns 0 if device not detected or 1 if device is correctly initialised. | |
![]() |
Return |
Property reference
==Macro reference==
![]() |
MemRead16 |
Reads a single unsigned int from the FT800 internal address space | |
![]() |
Address |
![]() |
Return |
![]() |
MemRead8 |
Reads a single data byte from the FT800 internal address space | |
![]() |
Address |
![]() |
Return |
![]() |
MemRead32 |
Reads a single unsigned long from the FT800 internal address space | |
![]() |
Address |
![]() |
Return |
![]() |
MemWrite16 |
Writes a unsigned int value to the FT800 internal address space | |
![]() |
Address |
![]() |
Data |
![]() |
Return |
![]() |
MemWrite8 |
Writes a byte value to the FT800 internal address space | |
![]() |
Address |
![]() |
Data |
![]() |
Return |
![]() |
CommandWrite |
Sends FT800 command | |
![]() |
Command |
![]() |
Return |
![]() |
MemWrite32 |
Writes a unsigned long value to the FT800 internal address space | |
![]() |
Address |
![]() |
Data |
![]() |
Return |
![]() |
Initialise |
System initialization routines. Executed once on reset. Returns 0 if device not detected or 1 if device is correctly initialised. | |
![]() |
Return |
Property reference
==Macro reference==
![]() |
MemRead16 |
Reads a single unsigned int from the FT800 internal address space | |
![]() |
Address |
![]() |
Return |
![]() |
MemRead8 |
Reads a single data byte from the FT800 internal address space | |
![]() |
Address |
![]() |
Return |
![]() |
MemRead32 |
Reads a single unsigned long from the FT800 internal address space | |
![]() |
Address |
![]() |
Return |
![]() |
MemWrite16 |
Writes a unsigned int value to the FT800 internal address space | |
![]() |
Address |
![]() |
Data |
![]() |
Return |
![]() |
MemWrite8 |
Writes a byte value to the FT800 internal address space | |
![]() |
Address |
![]() |
Data |
![]() |
Return |
![]() |
CommandWrite |
Sends FT800 command | |
![]() |
Command |
![]() |
Return |
![]() |
MemWrite32 |
Writes a unsigned long value to the FT800 internal address space | |
![]() |
Address |
![]() |
Data |
![]() |
Return |
![]() |
Initialise |
System initialization routines. Executed once on reset. Returns 0 if device not detected or 1 if device is correctly initialised. | |
![]() |
Return |