CN / EN
文档反馈
感谢关注汇顶文档,期待您的宝贵建议!
感谢您的反馈,祝您愉快!

APP DC驱动

该驱动仅适用于GR5526。

宏定义

GRAPHICS_DC_LAYER_0

表 478 GRAPHICS_DC_LAYER_0宏定义
描述
图层0 0u

详细信息请参考文件:SDK_Folder\drivers\inc\app_graphics_dc.h

GRAPHICS_DC_LAYER_1

表 479 GRAPHICS_DC_LAYER_1宏定义
描述
图层1 1u

详细信息请参考文件:SDK_Folder\drivers\inc\app_graphics_dc.h

GDC_IRQ_EVT_FRAME_TRANSMITION_END

表 480 GDC_IRQ_EVT_FRAME_TRANSMITION_END宏定义
描述
帧传输完成 0x01

详细信息请参考文件:SDK_Folder\drivers\inc\app_graphics_dc.h

GDC_IRQ_EVT_CMD_TRANSMITION_END

表 481 GDC_IRQ_EVT_CMD_TRANSMITION_END宏定义
描述
命令传输完成 0x02

详细信息请参考文件:SDK_Folder\drivers\inc\app_graphics_dc.h

GRAPHICS_DC_BASEADDR

表 482 GRAPHICS_DC_BASEADDR宏定义
描述
DC寄存器基地址 0xA3FF4000

详细信息请参考文件:SDK_Folder\drivers\inc\app_graphics_dc.h

结构体

app_graphics_dc_params_t

结构体定义如下:

表 483 app_graphics_dc_params_t结构体成员
成员 描述 取值

graphics_dc_mspi_e mspi_mode

DC SPI工作模式

该参数的取值可以是下列值中的任意一个:

  • GDC_MODE_SPI = 0
  • GDC_MODE_DSPI
  • GDC_MODE_QSPI

graphics_dc_clock_freq_e clock_freq

DC时钟频率

该参数的取值可以是下列值中的任意一个:

  • GDC_CLOCK_FREQ_48MHz = 0x00
  • GDC_CLOCK_FREQ_24MHz = 0x03
  • GDC_CLOCK_FREQ_12MHz = 0x05
  • GDC_CLOCK_FREQ_6MHz = 0x09
  • GDC_CLOCK_FREQ_3MHz = 0x11

graphics_dc_clock_mode_e clock_mode

DC时钟模式

该参数的取值可以是下列值中的任意一个:

  • GDC_CLOCK_MODE_0 = 0x00
  • GDC_CLOCK_MODE_1 = 0x01
  • GDC_CLOCK_MODE_2 = 0x02
  • GDC_CLOCK_MODE_3 = 0x03

graphics_dc_tcsu_cycle_e tcsu_cycle

DC Tcsu延时

该参数的取值可以是下列值中的任意一个:

  • GDC_TCSU_CYCLE_0 = 0x00
  • GDC_TCSU_CYCLE_1 = 0x01
  • GDC_TCSU_CYCLE_2 = 0x02
  • GDC_TCSU_CYCLE_3 = 0x03
  • GDC_TCSU_CYCLE_4 = 0x04

graphics_dc_layer_mode_e layer_mode

DC渲染图层

该参数的取值可以是下列值中的任意一个:

  • GDC_ONE_LAYER_MODE = 0x00
  • GDC_TWO_LAYER_MODE = 0x01

graphics_dc_mipi_format_e mipicfg_format

图像数据编码格式

该参数的取值可以是下列值中的任意一个:

  • GDC_MIPICFG_SPI_RGB565_OPT0 =MIPICFG_1RGB565_OPT0
  • GDC_MIPICFG_SPI_RGB888_OPT0= MIPICFG_1RGB888_OPT0
  • GDC_MIPICFG_DSPI_RGB565_OPT0 = MIPICFG_2RGB565_OPT0
  • GDC_MIPICFG_DSPI_RGB888_OPT0= MIPICFG_2RGB888_OPT1
  • GDC_MIPICFG_DSPI_RGB888_OPT1= MIPICFG_2RGB888_OPT0
  • GDC_MIPICFG_QSPI_RGB565_OPT0= MIPICFG_4RGB565_OPT0
  • GDC_MIPICFG_QSPI_RGB888_OPT0= MIPICFG_4RGB888_OPT0

uint16_t resolution_x

水平分辨率,单位:Pixel

uint16_t resolution_y

垂直分辨率,单位:Pixel

app_graphics_dc_pins_t pins_cfg

引脚配置

参考结构体app_graphics_dc_pins_t

详细信息请参考文件:SDK_Folder\drivers\inc\app_graphics_dc.h

app_graphics_dc_pins_t

结构体定义如下:

表 484 app_graphics_dc_pins_t结构体成员
成员 描述 取值

app_graphics_dc_pin_t csn

片选引脚

参考app_graphics_dc_pin_t结构体

app_graphics_dc_pin_t clk

CLK引脚

参考app_graphics_dc_pin_t结构体

app_graphics_dc_pin_t io0

IO0

参考app_graphics_dc_pin_t结构体

app_graphics_dc_pin_t io1

IO1

参考app_graphics_dc_pin_t结构体

app_graphics_dc_pin_t io2

IO2

参考app_graphics_dc_pin_t结构体

app_graphics_dc_pin_t io3

IO3

参考app_graphics_dc_pin_t结构体

app_graphics_dc_pin_t dcx

数据/命令控制脚

参考app_graphics_dc_pin_t结构体

详细信息请参考文件:SDK_Folder\drivers\inc\app_graphics_dc.h

app_graphics_dc_pin_t

结构体定义如下:

表 485 app_graphics_dc_pin_t结构体成员
成员 描述 取值

app_io_pull_t pull

设置IO上拉/下拉/浮空

app_io_init_t结构体中的描述

uint8_t enable

引脚使能/不使能

  • true:使能

  • false:不使能

详细信息请参考文件:SDK_Folder\drivers\inc\app_graphics_dc.h

app_graphics_dc_framelayer_t

结构体定义如下:

表 486 app_graphics_dc_framelayer_t结构体成员
成员 描述 取值

void * frame_baseaddr

Frame Buffer地址

SRAM地址、Flash地址、PSRAM地址等;用户装载图片数据的内存地址,可以为Flash、PSRAM或SRAM,根据实际情况决定

uint32_t resolution_x

水平分辨率

根据实际刷屏分辨率决定

uint32_t resolution_y

垂直分辨率

根据实际刷屏分辨率决定

int32_t row_stride

行步长,单位字节

resolution_x乘以每个像素的字节数,不确定时可以传-1,驱动会辅助计算

int32_t start_x

开始渲染x坐标

一般从0开始

int32_t start_y

开始渲染y坐标

一般从0开始

uint32_t size_x

水平渲染范围

resolution_x

uint32_t size_y

垂直渲染范围

resolution_y

uint8_t alpha

透明度控制(Alpha)

默认0xff

uint8_t blendmode

混合模式

默认HAL_GDC_BL_SRC

graphics_dc_data_format_e data_format

图像数据编码格式

该参数的取值可以是下列值中的任意一个:

  • GDC_DATA_FORMAT_RGB565 = HAL_GDC_RGB565
  • GDC_DATA_FORMAT_RGBA8888 = HAL_GDC_RGBA8888
  • GDC_DATA_FORMAT_ABGR8888 = HAL_GDC_ABGR8888
  • GDC_DATA_FORMAT_ARGB8888 = HAL_GDC_ARGB8888
  • GDC_DATA_FORMAT_BGRA8888 = HAL_GDC_BGRA8888
  • GDC_DATA_FORMAT_TSC4 = HAL_GDC_TSC4
  • GDC_DATA_FORMAT_TSC6 = HAL_GDC_TSC6
  • GDC_DATA_FORMAT_TSC6A = HAL_GDC_TSC6A

详细信息请参考文件:SDK_Folder\drivers\inc\app_graphics_dc.h

app_graphics_dc_cmd_t

结构体定义如下:

表 487 app_graphics_dc_cmd_t结构体成员
成员 描述 取值

uint8_t command

Timing解析命令

根据外接屏幕配置

uint32_t address

Timing值地址

根据外接屏幕配置

app_graphics_dc_frame_address_width_e address_width

地址宽度

该参数的取值可以是下列值中的任意一个:

  • GDC_FRAME_ADDRESS_WIDTH_NONE = 0xFF
  • GDC_FRAME_ADDRESS_WIDTH_08BIT = MIPI_CMD08
  • GDC_FRAME_ADDRESS_WIDTH_16BIT = MIPI_CMD16
  • GDC_FRAME_ADDRESS_WIDTH_24BIT = MIPI_CMD24

app_graphics_dc_frame_timing_e frame_timing

帧时序

该参数的取值可以是下列值中的任意一个:

  • GDC_SPI_FRAME_TIMING_0 = 0x00
  • GDC_DSPI_FRAME_TIMING_0
  • GDC_QSPI_FRAME_TIMING_0
  • GDC_QSPI_FRAME_TIMING_1

详细信息请参考文件:SDK_Folder\drivers\inc\app_graphics_dc.h

枚举

graphics_dc_mspi_e

枚举定义如下:

表 488 graphics_dc_mspi_e枚举成员
成员 描述

GDC_MODE_SPI = 0

使用MIPI Type-C SPI模式

GDC_MODE_DSPI

使用MIPI Type-C Dual SPI模式

GDC_MODE_QSPI

使用MIPI Type-C Quad SPI模式

graphics_dc_clock_freq_e

枚举定义如下:

表 489 graphics_dc_clock_freq_e枚举成员
成员 描述

GDC_CLOCK_FREQ_48MHz = 0x00

DC时钟频率48 MHZ

GDC_CLOCK_FREQ_24MHz = 0x03

DC时钟频率24 MHZ

GDC_CLOCK_FREQ_12MHz = 0x05

DC时钟频率12 MHZ

GDC_CLOCK_FREQ_6MHz = 0x09

DC时钟频率6 MHZ

GDC_CLOCK_FREQ_3MHz = 0x11

DC时钟频率3 MHZ

graphics_dc_clock_mode_e

枚举定义如下:

表 490 graphics_dc_clock_mode_e枚举成员
成员 描述

GDC_CLOCK_MODE_0 = 0x00

时钟模式0,空闲状态下的时钟极性是逻辑低电平,数据在上升沿采样

GDC_CLOCK_MODE_1 = 0x01

时钟模式1,空闲状态下的时钟极性是逻辑低电平,数据在下降沿采样

GDC_CLOCK_MODE_2 = 0x02

时钟模式2,空闲状态下的时钟极性是逻辑高电平,数据在下降沿采样

GDC_CLOCK_MODE_3 = 0x03

时钟模式3,空闲状态下的时钟极性是逻辑高电平,数据在上升沿采样

graphics_dc_tcsu_cycle_e

枚举定义如下:

表 491 graphics_dc_tcsu_cycle_e枚举成员
成员 描述

GDC_TCSU_CYCLE_0 = 0x00

配置CS Setup Delay为默认(0.5时钟周期)

GDC_TCSU_CYCLE_1 = 0x01

配置CS Setup Delay增加1个时钟周期延时

GDC_TCSU_CYCLE_2 = 0x02

配置CS Setup Delay增加2个时钟周期延时

GDC_TCSU_CYCLE_3 = 0x03

配置CS Setup Delay增加3个时钟周期延时

GDC_TCSU_CYCLE_4 = 0x04

配置CS Setup Delay增加4个时钟周期延时

详细信息请参考文件:SDK_Folder\drivers\inc\app_graphic_dc.h

graphics_dc_data_format_e

枚举定义如下:

表 492 graphics_dc_data_format_e枚举成员
成员 描述

GDC_DATA_FORMAT_RGB565 = HAL_GDC_RGB565

RGB565编码,一个像素16 bits,没有Alpha通道

GDC_DATA_FORMAT_RGBA8888 = HAL_GDC_RGBA8888

RGBA8888编码,一个像素32 bits,有Alpha通道

GDC_DATA_FORMAT_ABGR8888 = HAL_GDC_ABGR8888

ABGR8888编码,一个像素32 bits,有Alpha通道

GDC_DATA_FORMAT_ARGB8888 = HAL_GDC_ARGB8888

ARGB8888编码,一个像素32 bits,有Alpha通道

GDC_DATA_FORMAT_BGRA8888 = HAL_GDC_BGRA8888

BGRA8888编码,一个像素32 bits,有Alpha通道

GDC_DATA_FORMAT_TSC4 = HAL_GDC_TSC4

TSC4编码格式,压缩后4 bits表示一个像素

GDC_DATA_FORMAT_TSC6 = HAL_GDC_TSC6

TSC6编码格式,压缩后6 bits表示一个像素

GDC_DATA_FORMAT_TSC6A = HAL_GDC_TSC6A

TSC6A编码格式,压缩后6 bits表示一个像素,并包含alpha信息

详细信息请参考文件:SDK_Folder\drivers\inc\app_graphic_dc.h

graphics_dc_mipi_format_e

枚举定义如下:

表 493 graphics_dc_mipi_format_e枚举成员
成员 描述

GDC_MIPICFG_SPI_RGB565_OPT0 = MIPICFG_1RGB565_OPT0

SPI模式,RGB565色彩格式,时序样式为option0

GDC_MIPICFG_SPI_RGB888_OPT0 = MIPICFG_1RGB888_OPT0

SPI模式,RGB888色彩格式,时序样式为option0

GDC_MIPICFG_DSPI_RGB565_OPT0 = MIPICFG_2RGB565_OPT0

Dual SPI模式,RGB565色彩格式,时序样式为option0

GDC_MIPICFG_DSPI_RGB888_OPT0 = MIPICFG_2RGB888_OPT1

Dual SPI模式,RGB888色彩格式,时序样式为option0

GDC_MIPICFG_DSPI_RGB888_OPT1 = MIPICFG_2RGB888_OPT0

Dual SPI模式,RGB888色彩格式,时序样式为option1

GDC_MIPICFG_QSPI_RGB565_OPT0 = MIPICFG_4RGB565_OPT0

Quad SPI模式,RGB565色彩格式,时序样式为option0

GDC_MIPICFG_QSPI_RGB888_OPT0 = MIPICFG_4RGB888_OPT0

Quad SPI模式,RGB888色彩格式,时序样式为option0

详细信息请参考文件:SDK_Folder\drivers\inc\app_graphic_dc.h

graphics_dc_out_pixel_bits_e

枚举定义如下:

表 494 graphics_dc_out_pixel_bits_e枚举成员
成员 描述

GDC_OUT_PIXEL_BITS_16 = 16

输出数据像素16 bits

GDC_OUT_PIXEL_BITS_24 = 24

输出数据像素24 bits

GDC_OUT_PIXEL_BITS_NOT_SUPPORT = 0xFF

不支持

详细信息请参考文件:SDK_Folder\drivers\inc\app_graphic_dc.h

app_graphics_dc_frame_timing_e

枚举定义如下:

表 495 app_graphics_dc_frame_timing_e枚举成员
成员 描述

GDC_SPI_FRAME_TIMING_0 = 0x00

时序构成为8 bits控制命令+24 bits控制地址+若干字节数据,全部通过SPI模式发出

GDC_DSPI_FRAME_TIMING_0

时序构成为8 bits控制命令+无地址+若干字节数据,均通过4线SPI模式发出,并且启用DCX信号

GDC_QSPI_FRAME_TIMING_0

时序构成为8 bits控制命令+24 bits控制地址+若干字节数据,均通过Quad SPI模式发出

GDC_QSPI_FRAME_TIMING_1

时序构成为8 bits控制命令+24 bits控制地址+若干字节数据。其中命令使用SPI模式发出,地址和数据部分通过Quad SPI模式发出

详细信息请参考文件:SDK_Folder\drivers\inc\app_graphic_dc.h

app_graphics_dc_frame_address_width_e

枚举定义如下:

表 496 app_graphics_dc_frame_address_width_e枚举成员
成员 描述

GDC_FRAME_ADDRESS_WIDTH_NONE = 0xFF

无控制地址

GDC_FRAME_ADDRESS_WIDTH_08BIT = MIPI_CMD08

控制地址宽度为8 bits

GDC_FRAME_ADDRESS_WIDTH_16BIT = MIPI_CMD16

控制地址宽度为16 bits

GDC_FRAME_ADDRESS_WIDTH_24BIT = MIPI_CMD24

控制地址宽度为24 bits

详细信息请参考文件:SDK_Folder\rivers\inc\app_graphic_dc.h

app_graphics_dc_access_type_e

枚举定义如下:

表 497 app_graphics_dc_access_type_e枚举成员
成员 描述

GDC_ACCESS_TYPE_SYNC = 0

接口使用同步方式工作,等到刷屏完成接口才返回

GDC_ACCESS_TYPE_ASYNC

接口使用异步方式工作,通过回调函数获取刷屏结果

详细信息请参考文件:SDK_Folder\drivers\inc\app_graphic_dc.h

app_graphics_dc_frame_result_e

枚举定义如下:

表 498 app_graphics_dc_frame_result_e枚举成员
成员 描述

GDC_FRAME_RES_SUCCESS = 0x00

帧数据发送成功

GDC_FRAME_RES_ASYNC_WAIT

发送一帧数据,等待应答信号

GDC_FRAME_RES_FAIL

帧数据发送失败

GDC_FRAME_RES_UNSUPPORT

帧格式或者命令不支持

详细信息请参考文件:SDK_Folder\drivers\inc\app_graphic_dc.h

graphics_dc_power_state_e

枚举定义如下:

表 499 graphics_dc_power_state_e枚举成员
成员 描述

GDC_POWER_STATE_SLEEP = 0

DC睡眠状态

GDC_POWER_STATE_ACTIVE = 1

DC激活状态

详细信息请参考文件:SDK_Folder\drivers\inc\app_graphic_dc.h

graphics_dc_layer_mode_e

枚举定义如下:

表 500 graphics_dc_layer_mode_e枚举成员
成员 描述
GDC_ONE_LAYER_MODE = 0 图层1
GDC_TWO_LAYER_MODE = 1 图层2

详细信息请参考文件:SDK_Folder\drivers\inc\app_graphics_dc.h

接口函数

表 501 DC驱动接口函数
API 芯片
GR551x/GR5x25/GR533x/GR5405 GR5526

graphics_dc_init

N

Y

app_graphics_dc_spi_send

N

Y

app_graphics_dc_dspi_send_cmd_in_3wire_1lane

N

Y

app_graphics_dc_dspi_send_cmd_data_in_3wire_1lane

N

Y

app_graphics_dc_dspi_send_cmd_data_in_4wire_2lane

N

Y

app_graphics_dc_dspi_send_cmd_datas_in_4wire_2lane

N

Y

app_graphics_dc_send_single_frame

N

Y

app_graphics_dc_set_power_state N Y
app_graphics_dc_freq_set N Y

graphics_dc_init

表 502 graphics_dc_init接口
函数原型

uint16_t graphics_dc_init(app_graphics_dc_params_t * dc_params, graphics_dc_irq_event_notify_cb evt_cb)

功能说明

初始化DC

输入参数
  • p_params:初始化参数的结构体指针

  • evt_cb:用户自定义回调函数

返回值

APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义

备注

app_graphics_dc_spi_send

表 503 app_graphics_dc_spi_send接口
函数原型

void app_graphics_dc_spi_send(uint8_t cmd_8bit, uint32_t address_24bit, uint8_t * data, uint32_t length)

功能说明

DC通过标准SPI协议发送1 byte命令,3 bytes地址,N bytes数据

输入参数
  • cmd_8bit:需要发送的命令
  • address_24bit:需要发送的地址

  • data:需要发送的N bytes数据指针

  • length:数据长度,以Byte为单位

返回值
备注

app_graphics_dc_dspi_send_cmd_in_3wire_1lane

表 504 app_graphics_dc_dspi_send_cmd_in_3wire_1lane接口
函数原型

void app_graphics_dc_dspi_send_cmd_in_3wire_1lane(uint8_t cmd)

功能说明

DC通过DSPI 3W1L模式发送1 byte命令,未使用DCX线,时序上会在最高位添加1 bit命令指示位

输入参数

cmd:1 byte命令

返回值
备注

app_graphics_dc_dspi_send_cmd_data_in_3wire_1lane

表 505 app_graphics_dc_dspi_send_cmd_data_in_3wire_1lane接口
函数原型

void app_graphics_dc_dspi_send_cmd_data_in_3wire_1lane(uint8_t cmd, uint8_t data)

功能说明

DC通过DSPI 3W1L模式发送1 byte命令和1 byte数据,未使用DCX线,时序上会在命令和数据的最高位添加1 bit指示位,表示命令还是数据

输入参数
  • cmd:1 byte命令

  • data:1 byte数据

返回值
备注

app_graphics_dc_dspi_send_cmd_data_in_4wire_2lane

表 506 app_graphics_dc_dspi_send_cmd_data_in_4wire_2lane接口
函数原型

void app_graphics_dc_dspi_send_cmd_data_in_4wire_2lane(uint16_t cmd, uint16_t data)

功能说明

DC通过DSPI 4W2L模式发送2 bytes命令和2 bytes数据,DCX信号线作为数据传输,时序上会在命令和数据的最高位添加1 bit指示位,表示命令还是数据

输入参数
  • cmd:2 bytes命令
  • data:2 bytes数据
返回值
备注 数据线1传输高字节,DCX信号线传输低字节

app_graphics_dc_dspi_send_cmd_datas_in_4wire_2lane

表 507 app_graphics_dc_dspi_send_cmd_datas_in_4wire_2lane接口
函数原型

void app_graphics_dc_dspi_send_cmd_datas_in_4wire_2lane(uint16_t cmd, uint16_t * data , int length);

功能说明

在4-Wire SPI模式下发送1个命令字和多个数据,主要用于屏幕的初始化配置

输入参数
  • cmd:命令字,低8位补0扩展为16-bit
  • data: 数据指针,各个数据低8位补0扩展为16-bit
  • length :数据个数
返回值

备注

单次传输数据个数不超过8个

app_graphics_dc_send_single_frame

表 508 app_graphics_dc_send_single_frame接口
函数原型

app_graphics_dc_frame_result_e app_graphics_dc_send_single_frame(uint32_t which_layer, app_graphics_dc_framelayer_t * frame_layer, app_graphics_dc_cmd_t * dc_cmd, app_graphics_dc_access_type_e access_type)

功能说明

DC发送一帧图像数据

输入参数
  • which_layer:DC渲染图层(目前暂只支持GRAPHICS_DC_LAYER_0)

  • frame_layer: 输入帧缓冲区配置

  • dc_cmd:DC输出控制命令

  • access_type: 接口调用类型 (异步/同步传输)

返回值

DC模块帧数据传输结果

备注

app_graphics_dc_set_power_state

表 509 app_graphics_dc_set_power_state接口
函数原型

void app_graphics_dc_set_power_state(graphics_dc_power_state_e state)

功能说明

设置DC的工作状态

输入参数 state:DC的工作状态,参考graphics_dc_power_state_e
返回值
备注

app_graphics_dc_freq_set

表 510 app_graphics_dc_freq_set接口
函数原型

void app_graphics_dc_freq_set(graphics_dc_clock_freq_e clock_freq)

功能说明

设置DC的输出时钟频率

输入参数 clock_freq:时钟频率,参考graphics_dc_clock_freq_e
返回值
备注

扫描关注

打开微信,使用“扫一扫”即可关注。