中科蓝讯 BT8918C 驱屏示例

哈喽,大家好。

今天用中科蓝讯 BT8918C 做一个驱动屏幕的示例。 本示例用到的屏幕的驱动芯片为 ST7789V,屏幕的尺寸为 1.69 寸。 希望对大家做屏幕驱动移植时有所帮助。

下面先对驱动芯片做个大致了解,参考驱动芯片 ST7789V 资料,可知 ST7789V 是一个单芯片 TFT-LCD 驱动器。 该芯片可以直接连接到外部 MCU,支持并行 8080 系列的8位/9位/16位/18位接口,也支持SPI串行通讯接口。 显示数据可以存储在 240x320x18bits 的片上显示数据RAM中。 它可以在没有外部操作时钟的情况下执行显示数据 RAM 读写操作,以尽量减少功耗。

中科蓝讯 BT8918C 的芯片引脚数量无法支持占用 MCU 引脚资源较多的并行接口,因此驱动该屏幕将使用 SPI 串行通讯接口。 屏幕每个像素点可选择 16bits 控制,RGB 三种颜色控制的位数分别为 5:6:5。

接着介绍下中科蓝讯 BT8918C 与 ST7789V 屏幕驱动芯片进行 SPI 串行通讯所需使用到的引脚,下图是屏幕引出来的引脚:
    

1)cs:SPI 片选

2)RS:命令/数据选择脚

3)reset:屏幕复位

4)K:背景光控制

5)SDA:SPI 数据传输脚  

6)SCK:SPI 时钟信号        

7)VCC:屏幕供电正极

8)GND:屏幕供电负极

注意,图中的 TP 相关的四个引脚是屏幕触控芯片的控制引脚,如果不用屏幕触控功能可以不连接。 cs、RS、reset、k 选用 BT8918C 的普通 GPIO 连接即可;  SDA、SCK 负责 SPI 串行通信,可选择 BT8918C 的 SPI1 引脚 PA7(SDA)、PA6(SCK),注意,不可以配置 BT8918C 的 SPI0,因为 SPI0 已被配置来读取内部 Flash; 最后连接供电脚即完成连接。

接下来即可配置 BT8918C 与 ST7789V 的 SPI 通信,可以直接找找到 spi_lcd_init()函数,这个函数默认已经做好了 SPI 的配置,默认配置系统时钟为 160M,时钟极性、时钟相位、高位先行的配置需与屏幕驱动芯片 ST7789V 要求一致,需要注意的是默认配置的引脚是不是前面选取的 PA7(SDA)、PA6(SCK), 配置完成可直接用 lcd_id_read()函数发送 0x04 读取屏幕 ID,若成功读取则说明 SPI 通讯成功。



    

SPI 通讯成功后,即可通过 BT8918C 向 ST7789V 发送屏幕相关的初始化指令,完成之后就可以正常显示中科蓝讯默认的屏幕 UI 了。

中科蓝讯开发了非常便捷的表盘设计工具,可用于表盘的各种控件类型的生成,生成的资源文件,可在 SDK 中的 api_gui.h 文件找到相应的接口函数来做显示。 具体资料可联系 WPI。

本文的介绍就到这里,希望对大家有所帮助。 如有错误欢迎大家批评指正。 如果大家还有什么其他的问题或者功能想要询问,亦可以在评论区中提出,可以共同探讨,一起进步。

参考文档:

1、ST7789V datasheet

2、中科蓝讯蓝皮书

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★博文作者未开放评论功能