Jump to content

Component: FTDI (FT800) (FT800) (Misc): Difference between revisions

From Flowcode Help
No edit summary
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder""
 
(18 intermediate revisions by 2 users not shown)
Line 14: Line 14:
==FTDI (FT800) component==
==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.
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: [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]


==Detailed description==
==Detailed description==




Line 24: Line 48:


==Examples==
==Examples==




Line 31: Line 73:
''<span style="color:red;">No additional examples</span>''
''<span style="color:red;">No additional examples</span>''


==Downloadable macro reference==


{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
 
 
 
 
 
 
 
 
==Macro reference==
 
===CommandWrite===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''CommandWrite'''
|-
| colspan="2" | Sends FT800 command&nbsp;
|-
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''IncrementCommandOffset'''
| width="90%" | Command
|-
| colspan="2" | &nbsp;
|-
| 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''
|}
 
 
===IncrementCommandOffset===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''IncrementCommandOffset'''
|-
|-
| colspan="2" | Adds commandSize to the currentOffset. Checks for 4K ring-buffer offset roll-over  &nbsp;
| colspan="2" | Adds commandSize to the currentOffset. Checks for 4K ring-buffer offset roll-over  &nbsp;
Line 56: Line 128:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===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" | System initialization routines.  Executed once on reset. Returns 0 if device not detected or 1 if device is correctly initialised.&nbsp;
|-
|-
| 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''
|}
 
 
===MemRead16===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MemRead16'''
| width="90%" class="mtx-class-macrohead" | '''MemRead16'''
|-
|-
| colspan="2" | Reads a single unsigned int from the FT800 internal address space&nbsp;
| colspan="2" | Reads a single unsigned int from the FT800 internal address space&nbsp;
Line 74: Line 161:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===MemRead32===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MemRead8'''
| width="90%" class="mtx-class-macrohead" | '''MemRead32'''
|-
|-
| colspan="2" | Reads a single data byte from the FT800 internal address space&nbsp;
| colspan="2" | Reads a single unsigned long from the FT800 internal address space&nbsp;
|-
|-
|-
|-
Line 87: Line 175:
| colspan="2" | &nbsp;
| colspan="2" | &nbsp;
|-
|-
| 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-u32-icon.png]] - ULONG
| width="90%" style="border-top: 2px solid #000;" | ''Return''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===MemRead8===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MemRead32'''
| width="90%" class="mtx-class-macrohead" | '''MemRead8'''
|-
|-
| colspan="2" | Reads a single unsigned long from the FT800 internal address space&nbsp;
| colspan="2" | Reads a single data byte from the FT800 internal address space&nbsp;
|-
|-
|-
|-
Line 105: Line 194:
| colspan="2" | &nbsp;
| colspan="2" | &nbsp;
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u32-icon.png]] - ULONG
| 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" style="width:60%; background-color:#FFFFFF;"
===MemWrite16===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MemWrite16'''
| width="90%" class="mtx-class-macrohead" | '''MemWrite16'''
|-
|-
| colspan="2" | Writes a unsigned int value to the FT800 internal address space&nbsp;
| colspan="2" | Writes a unsigned int value to the FT800 internal address space&nbsp;
Line 133: Line 223:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===MemWrite32===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MemWrite8'''
| width="90%" class="mtx-class-macrohead" | '''MemWrite32'''
|-
|-
| colspan="2" | Writes a byte value to the FT800 internal address space&nbsp;
| colspan="2" | Writes a unsigned long value to the FT800 internal address space&nbsp;
|-
|-
|-
|-
Line 146: Line 237:
| colspan="2" | &nbsp;
| colspan="2" | &nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u32-icon.png]] - ULONG
| width="90%" | Data
| width="90%" | Data
|-
|-
Line 156: Line 247:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===MemWrite8===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CommandWrite'''
| width="90%" class="mtx-class-macrohead" | '''MemWrite8'''
|-
|-
| colspan="2" | Sends FT800 command&nbsp;
| colspan="2" | Writes a byte value to the FT800 internal address space&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Command
|-
| colspan="2" | &nbsp;
|-
| 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&nbsp;
|-
|-
|-
|-
Line 187: Line 261:
| colspan="2" | &nbsp;
| colspan="2" | &nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u32-icon.png]] - ULONG
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Data
| width="90%" | Data
|-
|-
Line 197: Line 271:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
==Property reference==
 
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
| width="90%" class="mtx-class-macrohead" | '''Properties'''  
|-
|-
| colspan="2" | System initialization routines.  Executed once on reset. Returns 0 if device not detected or 1 if device is correctly initialised.&nbsp;
|-
|-
|-
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" class="mtx-class-propfolder" | SPI Properties
| 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'''
|-
|-
|-
|-
Line 244: Line 307:
|-
|-
| colspan="2" | SPI Clock Pin CLK - The Clock signal is driven by the SPI master.&nbsp;
| colspan="2" | SPI Clock Pin CLK - The Clock signal is driven by the SPI master.&nbsp;
|-
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" class="mtx-class-propfolder" | Pin Connections
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
Line 254: Line 321:
|-
|-
| colspan="2" | &nbsp;
| colspan="2" | &nbsp;
|-
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" class="mtx-class-propfolder" | Display Properties
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
Line 320: Line 391:
| colspan="2" | Define active edge of PCLK &nbsp;
| colspan="2" | Define active edge of PCLK &nbsp;
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-conn-icon.png]]
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Connections'''
| width="90%" class="mtx-class-propfolder" | Simulation
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Simulations'''
|-
|-
|-
|-

Latest revision as of 14:37, 13 July 2026

Author MatrixTSL
Version 2.0
Category Misc


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

CommandWrite

CommandWrite
Sends FT800 command 
- BYTE Command
 
- VOID Return


IncrementCommandOffset

IncrementCommandOffset
Adds commandSize to the currentOffset. Checks for 4K ring-buffer offset roll-over  
- UINT currentOffset
graphics processor command list pointer 
- BYTE commandSize
number of bytes to increment the offset 
- UINT Return


Initialise

Initialise
System initialization routines. Executed once on reset. Returns 0 if device not detected or 1 if device is correctly initialised. 
- BYTE Return


MemRead16

MemRead16
Reads a single unsigned int from the FT800 internal address space 
- ULONG Address
 
- UINT Return


MemRead32

MemRead32
Reads a single unsigned long from the FT800 internal address space 
- ULONG Address
 
- ULONG Return


MemRead8

MemRead8
Reads a single data byte from the FT800 internal address space 
- ULONG Address
 
- BYTE Return


MemWrite16

MemWrite16
Writes a unsigned int value to the FT800 internal address space 
- ULONG Address
 
- UINT Data
 
- VOID Return


MemWrite32

MemWrite32
Writes a unsigned long value to the FT800 internal address space 
- ULONG Address
 
- ULONG Data
 
- VOID Return


MemWrite8

MemWrite8
Writes a byte value to the FT800 internal address space 
- ULONG Address
 
- BYTE Data
 
- VOID Return


Property reference

Properties
SPI Properties
Channel
SPI Channel selector 
Prescale
Prescale option selector 
MOSI
SPI Data Out Pin SDO - Also Known as Master Out Slave In (MOSI) when used in Master mode. 
MISO
SPI Data In Pin SDI - Also Known as Master In Slave Out (MISO) when used in Master mode. 
CLK
SPI Clock Pin CLK - The Clock signal is driven by the SPI master. 
Pin Connections
Power Pin
 
CS Pin
 
Display Properties
Width
Active width of LCD display 
Height
Active height of LCD display 
HCycle
Total number of clocks per line 
HOffset
Start of active line 
HSync0
Start of horizontal sync pulse 
HSync1
End of horizontal sync pulse 
VCycle
Total number of lines per screen 
VOffset
Start of active screen 
VSync0
Start of vertical sync pulse 
VSync1
End of vertical sync pulse 
PixelClock
Pixel Clock  
Swizzle
Define RGB output pins 
Clock Polarity
Define active edge of PCLK  
Simulation
Scope Traces
Selects if the scope traces are automatically generated or not 
Console Data
Selects if the console data is automatically generated or not 
API