Difference between revisions of "Unit ST77XX"

From Ultibo.org
Jump to: navigation, search
 
(4 intermediate revisions by the same user not shown)
Line 10: Line 10:
  
 
Instantiate the ST77XX driver by calling ST77XXFramebufferCreate() with the required parameters:
 
Instantiate the ST77XX driver by calling ST77XXFramebufferCreate() with the required parameters:
+
 
 
SPI: The SPI device that this ST77XX is connected to
 
SPI: The SPI device that this ST77XX is connected to
 +
 
ChipSelect: The SPI chip select to use when communicating with this device
 
ChipSelect: The SPI chip select to use when communicating with this device
 +
 
Name: The text description of this device which will show in the device list (Optional)
 
Name: The text description of this device which will show in the device list (Optional)
 +
 
Rotation: The rotation value for the framebuffer device (eg FRAMEBUFFER_ROTATION_180)
 
Rotation: The rotation value for the framebuffer device (eg FRAMEBUFFER_ROTATION_180)
 +
 
Width: The width of the framebuffer in pixels
 
Width: The width of the framebuffer in pixels
 +
 
Height: The height of the framebuffer in pixels
 
Height: The height of the framebuffer in pixels
ColStart:  
+
 
 +
ColStart:
 +
 
RST: GPIO pin information for the Reset pin (Optional)
 
RST: GPIO pin information for the Reset pin (Optional)
 +
 
DC: GPIO pin information for the Data/Command pin
 
DC: GPIO pin information for the Data/Command pin
 +
 
BL: GPIO pin information for the Backlight pin (Optional)
 
BL: GPIO pin information for the Backlight pin (Optional)
  
Line 25: Line 34:
 
----
 
----
  
''To be documented''
+
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''ST77XX specific constants''' <code> ST77XX_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>ST77XX_FRAMEBUFFER_DESCRIPTION = 'ST77XX TFT LCD DRIVER';</code>
 +
| Description of ST77XX device
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''ST77XX SPI''' <code> ST77XX_SPI_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>ST77XX_SPI_RATE = 32000000;</code>
 +
| Default SPI clock rate
 +
|-
 +
| <code>ST_CMD_DELAY = $80;</code>
 +
| Special signifier for command lists
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''ST77XX control command''' <code> ST77XX_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>ST77XX_NOP = $00;</code>
 +
| 8.2.1. NOP: No Operation
 +
|-
 +
| <code>ST77XX_SWRESET = $01;</code>
 +
| 8.2.2. SWRESET: Software Reset
 +
|-
 +
| <code>ST77XX_RDDID = $04;</code>
 +
| new_cmd
 +
|-
 +
| <code>ST77XX_RDDST = $09;</code>
 +
| new_cmd
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>ST77XX_SLPIN = $10;</code>
 +
| new_cmd
 +
|-
 +
| <code>ST77XX_SLPOUT = $11;</code>
 +
| 8.2.12. SLPOUT: Sleep Out (This command turns off sleep mode)
 +
|-
 +
| <code>ST77XX_PTLON = $12;</code>
 +
| new_cmd
 +
|-
 +
| <code>ST77XX_NORON = $13;</code>
 +
| new_cmd
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>ST77XX_INVOFF = $20;</code>
 +
| new_cmd
 +
|-
 +
| <code>ST77XX_INVON = $21;</code>
 +
| new_cmd
 +
|-
 +
| <code>ST77XX_GAMSET = $26;</code>
 +
| 8.2.17. GAMSET: Gamma Set (This command is used to select the desired Gamma curve for the current display)
 +
|-
 +
| <code>ST77XX_DISPOFF = $28;</code>
 +
| 8.2.18. DISPOFF: Display OFF (This command is used to enter into DISPLAY OFF mode. In this mode, the output from Frame Memory is disabled and blank page inserted)
 +
|-
 +
| <code>ST77XX_DISPON = $29;</code>
 +
| 8.2.19. DISPON: Display ON (This command is used to recover from DISPLAY OFF mode. Output from the Frame Memory is enabled)
 +
|-
 +
| <code>ST77XX_CASET = $2A;</code>
 +
| 8.2.20. CASET: Column Address Set (This command is used to define area of frame memory where MCU can access)
 +
|-
 +
| <code>ST77XX_RASET = $2B;</code>
 +
| 8.2.21. PASET: Page Address Set (This command is used to define area of frame memory where MCU can access)
 +
|-
 +
| <code>ST77XX_RAMWR = $2C;</code>
 +
| 8.2.22. Memory Write (This command is used to transfer data from MCU to frame memory)
 +
|-
 +
| <code>ST77XX_RGBSET = $2D;</code>
 +
| Color setting for 4096, 64K and 262K colors
 +
|-
 +
| <code>ST77XX_RAMRD = $2E;</code>
 +
| new_cmd
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>ST77XX_RDDPM = $0A;</code>
 +
| Read display power mode
 +
|-
 +
| <code>ST77XX_RDD_MADCTL = $0B;</code>
 +
| Read display MADCTL
 +
|-
 +
| <code>ST77XX_RDD_COLMOD = $0C;</code>
 +
| Read display pixel format
 +
|-
 +
| <code>ST77XX_RDDIM = $0D;</code>
 +
| Read display image mode
 +
|-
 +
| <code>ST77XX_RDDSM = $0E;</code>
 +
| Read display signal mode
 +
|-
 +
| <code>ST77XX_RDDSR = $0F;</code>
 +
| Read display self-diagnostic result (ST7789V)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>ST77XX_PTLAR = $30;</code>
 +
| new_cmd
 +
|-
 +
| <code>ST77XX_VSCRDEF = $33;</code>
 +
| Vertical scrolling definition (ST7789V)
 +
|-
 +
| <code>ST77XX_TEOFF = $34;</code>
 +
| Tearing effect line off
 +
|-
 +
| <code>ST77XX_TEON = $35;</code>
 +
| Tearing effect line on
 +
|-
 +
| <code>ST77XX_MADCTL = $36;</code>
 +
| 8.2.29. MADCTL: Memory Access Control (This command defines read/write scanning direction of frame memory)
 +
|-
 +
| <code>ST77XX_IDMOFF = $38;</code>
 +
| Idle mode off
 +
|-
 +
| <code>ST77XX_IDMON = $39;</code>
 +
| Idle mode on
 +
|-
 +
| <code>ST77XX_RAMWRC = $3C;</code>
 +
| Memory write continue (ST7789V)
 +
|-
 +
| <code>ST77XX_RAMRDC = $3E;</code>
 +
| Memory read continue (ST7789V)
 +
|-
 +
| <code>ST77XX_COLMOD = $3A;</code>
 +
| 8.2.33. COLMOD: Pixel Format Set (This command sets the pixel format for the RGB image data used by the interface)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''ST77XX memory access control''' <code> ST77XX_*CTL_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''See ST77XX datasheet 8.2.29. Memory Access Control''
 +
|-
 +
| <code>ST77XX_MADCTL_MY = $80;</code>
 +
| Row Address Order
 +
|-
 +
| <code>ST77XX_MADCTL_MX = $40;</code>
 +
| Column Address Order
 +
|-
 +
| <code>ST77XX_MADCTL_MV = $20;</code>
 +
| Row / Column Exchange
 +
|-
 +
| <code>ST77XX_MADCTL_ML = $10;</code>
 +
| Row / Column Exchange
 +
|-
 +
| <code>ST77XX_MADCTL_MH = $04;</code>
 +
| Horizontal Refresh Order
 +
|-
 +
| <code>ST77XX_MADCTL_RGB = $00;</code>
 +
| Colour selector switch control (0=RGB colour filter panel, 1=BGR colour filter panel)
 +
|-
 +
| <code>ST77XX_MADCTL_BGR = $08;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>ST77XX_RAMCTRL = $B0;</code>
 +
| RAM control
 +
|-
 +
| <code>ST77XX_RGBCTRL = $B1;</code>
 +
| RGB control
 +
|-
 +
| <code>ST77XX_PORCTRL = $B2;</code>
 +
| Porch control
 +
|-
 +
| <code>ST77XX_FRCTR1 = $B3;</code>
 +
| 8.3.2. FRCTR1: Frame Rate Control (In Normal Mode/Full Colors)
 +
|-
 +
| <code>ST77XX_PARCTRL = $B5;</code>
 +
| Partial mode control
 +
|-
 +
| <code>ST77XX_GCTRL = $B7;</code>
 +
| Gate control
 +
|-
 +
| <code>ST77XX_GTADJ = $B8;</code>
 +
| Gate on timing adjustment
 +
|-
 +
| <code>ST77XX_DGMEN = $BA;</code>
 +
| Digital gamma enable
 +
|-
 +
| <code>ST77XX_VCOMS = $BB;</code>
 +
| VCOMS setting
 +
|-
 +
| <code>ST77XX_DISCTRL = $B6;</code>
 +
| 8.3.7. DISCTRL: Display Function Control
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>ST77XX_LCMCTRL = $C0;</code>
 +
| LCM control
 +
|-
 +
| <code>ST77XX_IDSET = $C1;</code>
 +
| ID setting
 +
|-
 +
| <code>ST77XX_VDVVRHEN = $C2;</code>
 +
| VDV and VRH command enable
 +
|-
 +
| <code>ST77XX_VRHS = $C3;</code>
 +
| VRH set
 +
|-
 +
| <code>ST77XX_VDVSET = $C4;</code>
 +
| VDV setting
 +
|-
 +
| <code>ST77XX_VCMOFSET = $C5;</code>
 +
| VCOMS offset set
 +
|-
 +
| <code>ST77XX_FRCTR2 = $C6;</code>
 +
| FR Control 2
 +
|-
 +
| <code>ST77XX_CABCCTRL = $C7;</code>
 +
| CABC control
 +
|-
 +
| <code>ST77XX_REGSEL1 = $C8;</code>
 +
| Register value section 1
 +
|-
 +
| <code>ST77XX_REGSEL2 = $CA;</code>
 +
| Register value section 2
 +
|-
 +
| <code>ST77XX_PWMFRSEL = $CC;</code>
 +
| PWM frequency selection
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>ST77XX_PWCTRL1 = $D0;</code>
 +
| 8.3.16. PWCTRL1: Power Control 1
 +
|-
 +
| <code>ST77XX_VAPVANEN = $D2;</code>
 +
| Enable VAP/VAN signal output
 +
|-
 +
| <code>ST77XX_CMD2EN = $DF;</code>
 +
| Command 2 enable
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>ST77XX_VMCTRL1 = $C5;</code>
 +
| 8.3.21. VMCTRL1: VCOM Control 1
 +
|-
 +
| <code>ST77XX_VMCTRL2 = $C7;</code>
 +
| 8.3.22. VMCTRL2: VCOM Control 2
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>ST77XX_PGAMCTRL = $E0;</code>
 +
| Positive voltage gamma control
 +
|-
 +
| <code>ST77XX_NGAMCTRL = $E1;</code>
 +
| Negative voltage gamma control
 +
|-
 +
| <code>ST77XX_DGMLUTR = $E2;</code>
 +
| Digital gamma look-up table for red
 +
|-
 +
| <code>ST77XX_DGMLUTB = $E3;</code>
 +
| Digital gamma look-up table for blue
 +
|-
 +
| <code>ST77XX_GATECTRL = $E4;</code>
 +
| Gate control
 +
|-
 +
| <code>ST77XX_SPI2EN = $E7;</code>
 +
| SPI2 enable
 +
|-
 +
| <code>ST77XX_PWCTRL2 = $E8;</code>
 +
| Power control 2
 +
|-
 +
| <code>ST77XX_EQCTRL = $E9;</code>
 +
| Equalize time control
 +
|-
 +
| <code>ST77XX_PROMCTRL = $EC;</code>
 +
| Program control
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>ST77XX_PROMEN = $FA;</code>
 +
| Program mode enable
 +
|-
 +
| <code>ST77XX_NVMSET = $FC;</code>
 +
| NVM setting
 +
|-
 +
| <code>ST77XX_PROMACT = $FE;</code>
 +
| Program action
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>ST77XX_COLOR_MODE_16bit =$55;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ST77XX_COLOR_MODE_18bit =$66;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
  
 
=== Type definitions ===
 
=== Type definitions ===
 
----
 
----
  
''To be documented''
+
 
 +
'''ST77XX specific types'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PST77XXFramebuffer = ^TST77XXFramebuffer;</code>
 +
 
 +
<code>TST77XXFramebuffer = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''TFT Properties''
 +
|-
 +
| <code>TFT:TTFTFramebuffer;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
  
 
=== Public variables ===
 
=== Public variables ===
Line 40: Line 374:
 
----
 
----
  
''To be documented''
 
  
 +
'''ST77XX functions'''
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function ST77XXFramebufferCreate(SPI:PSPIDevice; ChipSelect:Word; const Name:String; Rotation,Width,Height,ColStart:LongWord; RST,DC,BL:PGPIOInfo):PFramebufferDevice;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Create, register and allocate a new ST77XX Framebuffer device which can be accessed using the framebuffer API</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! SPI
 +
| The SPI device that this ST77XX is connected to
 +
|-
 +
! ChipSelect
 +
| The SPI chip select to use when communicating with this device
 +
|-
 +
! Name
 +
| The text description of this device which will show in the device list (Optional)
 +
|-
 +
! Rotation
 +
| The rotation value for the framebuffer device (eg FRAMEBUFFER_ROTATION_180)
 +
|-
 +
! Width
 +
| The width of the framebuffer in pixels
 +
|-
 +
! Height
 +
| The height of the framebuffer in pixels
 +
|-
 +
! RST
 +
| GPIO pin information for the Reset pin (Optional)
 +
|-
 +
! DC
 +
| GPIO pin information for the Data/Command pin
 +
|-
 +
! BL
 +
| GPIO pin information for the Backlight pin (Optional)
 +
|-
 +
! Return
 +
| Pointer to the new Framebuffer device or nil if the framebuffer device could not be created
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function ST77XXFramebufferDestroy(Framebuffer:PFramebufferDevice):LongWord;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Release, deregister and destroy an ST77XX Framebuffer device created by this driver</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Framebuffer
 +
| The Framebuffer device to destroy
 +
|-
 +
! Return
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''ST77XX framebuffer functions'''
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function ST77XXFramebufferBlank(Framebuffer:PFramebufferDevice; Blank:Boolean):LongWord;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Implementation of FramebufferDeviceBlank API for ST77XX</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| Not intended to be called directly by applications, use FramebufferDeviceBlank instead
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function ST77XXFramebufferSetBacklight(Framebuffer:PFramebufferDevice; Brightness:LongWord):LongWord;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Implementation of FramebufferDeviceSetBacklight API for ST77XX</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| Not intended to be called directly by applications, use FramebufferDeviceSetBacklight instead
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''ST77XX TFTFramebuffer functions'''
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function ST77XXTFTFramebufferInitialize(Framebuffer:PTFTFramebuffer; Defaults:PFramebufferProperties):LongWord;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Implementation of TFTFramebufferInitialize API for ST77XX</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| Not intended to be called directly by applications
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function ST77XXTFTFramebufferDeinitialize(Framebuffer:PTFTFramebuffer):LongWord;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Implementation of TFTFramebufferDeinitialize API for ST77XX</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| Not intended to be called directly by applications
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function ST77XXTFTFramebufferGetDefaults(Framebuffer:PTFTFramebuffer; Properties,Defaults:PFramebufferProperties):LongWord;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Implementation of TFTFramebufferGetDefaults API for ST77XX</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| Not intended to be called directly by applications
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function ST77XXTFTFramebufferSetWriteAddress(Framebuffer:PTFTFramebuffer; X1,Y1,X2,Y2:LongWord):LongWord;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Implementation of TFTFramebufferSetWriteAddress API for ST77XX</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| Not intended to be called directly by applications
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function ST77XXTFTFramebufferWriteMemory(Framebuffer:PTFTFramebuffer; Address:PtrUInt; Size:LongWord):LongWord;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Implementation of TFTFramebufferWriteMemory API for ST77XX</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| Not intended to be called directly by applications
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''ST77XX helper functions'''
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function ST77XXWriteCommand(Framebuffer:PTFTFramebuffer; Value:Byte):LongWord;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Write a single command value to the ST77XX</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function ST77XXWriteCommandEx(Framebuffer:PTFTFramebuffer; const Values:array of Byte):LongWord;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Write multiple command values to the ST77XX</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function ST77XXWriteData(Framebuffer:PTFTFramebuffer; Value:Byte):LongWord;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Write a single data value to the ST77XX</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function ST77XXWriteDataEx(Framebuffer:PTFTFramebuffer; const Values:array of Byte):LongWord;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Write multiple data values to the ST77XX</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
  
 
Return to [[Unit_Reference|Unit Reference]]
 
Return to [[Unit_Reference|Unit Reference]]

Latest revision as of 05:29, 14 November 2023

Return to Unit Reference


Description


Sitronix ST77XX TFT LCD Driver unit

The ST77XX is a family of single-chip controllers/drivers for color, graphic type TFT-LCD display.

Instantiate the ST77XX driver by calling ST77XXFramebufferCreate() with the required parameters:

SPI: The SPI device that this ST77XX is connected to

ChipSelect: The SPI chip select to use when communicating with this device

Name: The text description of this device which will show in the device list (Optional)

Rotation: The rotation value for the framebuffer device (eg FRAMEBUFFER_ROTATION_180)

Width: The width of the framebuffer in pixels

Height: The height of the framebuffer in pixels

ColStart:

RST: GPIO pin information for the Reset pin (Optional)

DC: GPIO pin information for the Data/Command pin

BL: GPIO pin information for the Backlight pin (Optional)

Constants



[Expand]
ST77XX specific constants ST77XX_*


[Expand]
ST77XX SPI ST77XX_SPI_*


[Expand]
ST77XX control command ST77XX_*


[Expand]
ST77XX memory access control ST77XX_*CTL_*


Type definitions



ST77XX specific types

[Expand]

PST77XXFramebuffer = ^TST77XXFramebuffer;

TST77XXFramebuffer = record


Public variables


None defined

Function declarations



ST77XX functions

[Expand]
function ST77XXFramebufferCreate(SPI:PSPIDevice; ChipSelect:Word; const Name:String; Rotation,Width,Height,ColStart:LongWord; RST,DC,BL:PGPIOInfo):PFramebufferDevice;
Description: Create, register and allocate a new ST77XX Framebuffer device which can be accessed using the framebuffer API


[Expand]
function ST77XXFramebufferDestroy(Framebuffer:PFramebufferDevice):LongWord;
Description: Release, deregister and destroy an ST77XX Framebuffer device created by this driver


ST77XX framebuffer functions

[Expand]
function ST77XXFramebufferBlank(Framebuffer:PFramebufferDevice; Blank:Boolean):LongWord;
Description: Implementation of FramebufferDeviceBlank API for ST77XX


[Expand]
function ST77XXFramebufferSetBacklight(Framebuffer:PFramebufferDevice; Brightness:LongWord):LongWord;
Description: Implementation of FramebufferDeviceSetBacklight API for ST77XX


ST77XX TFTFramebuffer functions

[Expand]
function ST77XXTFTFramebufferInitialize(Framebuffer:PTFTFramebuffer; Defaults:PFramebufferProperties):LongWord;
Description: Implementation of TFTFramebufferInitialize API for ST77XX


[Expand]
function ST77XXTFTFramebufferDeinitialize(Framebuffer:PTFTFramebuffer):LongWord;
Description: Implementation of TFTFramebufferDeinitialize API for ST77XX


[Expand]
function ST77XXTFTFramebufferGetDefaults(Framebuffer:PTFTFramebuffer; Properties,Defaults:PFramebufferProperties):LongWord;
Description: Implementation of TFTFramebufferGetDefaults API for ST77XX


[Expand]
function ST77XXTFTFramebufferSetWriteAddress(Framebuffer:PTFTFramebuffer; X1,Y1,X2,Y2:LongWord):LongWord;
Description: Implementation of TFTFramebufferSetWriteAddress API for ST77XX


[Expand]
function ST77XXTFTFramebufferWriteMemory(Framebuffer:PTFTFramebuffer; Address:PtrUInt; Size:LongWord):LongWord;
Description: Implementation of TFTFramebufferWriteMemory API for ST77XX


ST77XX helper functions

[Expand]
function ST77XXWriteCommand(Framebuffer:PTFTFramebuffer; Value:Byte):LongWord;
Description: Write a single command value to the ST77XX


[Expand]
function ST77XXWriteCommandEx(Framebuffer:PTFTFramebuffer; const Values:array of Byte):LongWord;
Description: Write multiple command values to the ST77XX


[Expand]
function ST77XXWriteData(Framebuffer:PTFTFramebuffer; Value:Byte):LongWord;
Description: Write a single data value to the ST77XX


[Expand]
function ST77XXWriteDataEx(Framebuffer:PTFTFramebuffer; const Values:array of Byte):LongWord;
Description: Write multiple data values to the ST77XX


Return to Unit Reference