esp32s3-gc9a01-lvgl

前言

近期做了一个项目是使用esp32s3 + 准亿科技的TFT屏幕

该屏幕使用的驱动IC为:GC9A01

通讯方式是:4线SPI ,

三线spi和四线SPI区别在于:是否使用D/C信号线
在这里插入图片描述

开发LCD屏幕驱动, 可以参考乐鑫官网LCD显示屏指南

SPI 一共有4种工作模式. 根据接线 , 驱动方式的不同.

可分3 , 4 线SPI , 还可分接口类型I , 接口类型II

这里我们使用:
在这里插入图片描述


4 line SPI 时序图如下:
在这里插入图片描述

乐鑫组件库

下载后打开;esp_lcd_gc9a01.h 文件

#define GC9A01_PANEL_IO_SPI_CONFIG(cs, dc, callback, callback_ctx)  \
    {                                                               \
        .cs_gpio_num = cs,                                          \
        .dc_gpio_num = dc,                                          \
        .spi_mode = 0,                                              \
        .pclk_hz = 80 * 1000 * 1000,                                \
        .trans_queue_depth = 10,                                    \
        .on_color_trans_done = callback,                            \
        .user_ctx = callback_ctx,                                   \
        .lcd_cmd_bits = 8,                                          \
        .lcd_param_bits = 8,                                        \
    }

// trans_queue_depth  spi设备传输数据的队列深度
// EPS芯片驱动SPI屏幕推荐使用整数频率(eg: 20 \ 40 \60)
// lcd_cmd_bits spi 接口数据传输的位数

打开路径:E:\ESP32_File\esp-idf\esp-idf\components\esp_lcd\include

esp_lcd_panel_commands.h
查看驱动芯片的LCD命令和idf中的LCD命令是否一致,如果有欠缺,则在
include\esp_lcd_gc9a01.h中添加补充

确认命令地址被正确使用。具体可参考:移植驱动组件

配置SPI屏

  • 从idf中复制一个空白的sample_project作为模板

ESP系列芯片SPI的传输位数一般是8bit、
所以像素颜色位数,最好使用8 的倍数,比如8、16、24bit
GC9A01,支持 : 12bit , 16bit , 18bit 的颜色像素bit
如果使用lvgl 库,数据传输一般都是8bit , 16bit , 32bit 、
综合下来16bit是最合适的选择

SPI lcd驱动流程

初始化接口设备需要先初始化总线,再创建接口设备。

  • 若 LCD 驱动 IC 配置为 Interface-I 接口模式,软件仅需设置 ·mosi_io_num 为其数据线 IO,而设置 miso_io_num 为 -1

  • SPI 驱动 在传输数据前会对输入数据量的大小进行判断,若单次传输的字节数超过 max_transfer_sz 则会报错。但是, SPI 单次 DMA 传输允许的最大字节数 不仅取决于 ·max_transfer_sz ,而且受限于 ESP-IDF 中的 SPI_LL_DATA_MAX_BIT_LEN (不同系列 ESP 的值不同),即满足 最大字节数<= MIN(max_transfer_sz, (SPI_LL_DATA_MAX_BIT_LEN / 8))。由于 esp_lcd 驱动 会提前判断输入的数据量是否超过限制,如果超过则进行 分包处理 后才控制 SPI 进行多次传输, 因此 max_transfer_sz 通常设为全屏大小即可

初始化接口设备、

移植驱动组件

初始化 LCD 设备

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值