找回密码
 立即注册

使用微信账号登录

只需一步,快速开始

查看: 25|回复: 0

[Nordic] 使用nRF54L15移植LVGL驱动ST7789屏幕

[复制链接]
连续签到天数:1天
签到总天数:8天
签到总奖励:36金币
发表于 昨天 09:08 | 显示全部楼层 |阅读模式
nRF54L15作为Nordic新的旗舰芯片,支持最大32M的SPI和64M的sQSPI,今天分享一下使用32M的SPI添加LVGL组件驱动ST7789芯片
一、使用的外设
驱动是使用 nRF54L15 的高速SPI00 ,速率可以达到32M
需要注意的是,使用SPI00,
第一点,GPIO一点需要是使用P2的特定引脚,具体可以看我的博客
Nordic随笔】nRF54L15的引脚说明
第二点,需要使用高驱动模式
&pinctrl {    spi21_default: spi21_default {        group1 {            psels = <NRF_PSEL(SPIM_MISO, 1, 14)>,                    <NRF_PSEL(SPIM_MOSI, 1, 13)>,                    <NRF_PSEL(SPIM_SCK, 1, 11)>;            nordic,drive-mode = <NRF_DRIVE_H0H1>;        };    };    spi21_sleep: spi21_sleep {        group1 {            psels = <NRF_PSEL(SPIM_MISO, 1, 14)>,                    <NRF_PSEL(SPIM_MOSI, 1, 13)>,                    <NRF_PSEL(SPIM_SCK, 1, 11)>;            low-power-enable;        };    };}二、使用的初始代码
v3.1.0\zephyr\samples\subsys\display\lvgl
需要需要在这个例程添加驱动屏幕的设备树即可
三、修改设备树
添加spi设备
添加st7789节点
将display的节点改成st7789
/ {        /delete-node/ leds;        /delete-node/ buttons;        /delete-node/ aliases;    chosen {        zephyr,display = &st7789v;        // nordic,pm-ext-flash = &zd26q16;        // user,ext-flash = &zd26q16;    };    mipi_dbi    {    compatible = "zephyr,mipi-dbi-spi";    // spi-dev = <&spi21>;                          /* 你的 SPI 控制器 */    spi-dev = <&spi00>;                          /* 你的 SPI 控制器 */    dc-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;    reset-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;        #address-cells = <1>;    #size-cells = <0>;    write-only;    st7789v: st7789v@0 {        compatible = "sitronix,st7789v";        reg = <0>;        mipi-max-frequency = <32000000>;        mipi-mode = "MIPI_DBI_MODE_SPI_4WIRE";   /* 必须添加 */        width  = <240>;        height = <320>;        x-offset = <0>;        y-offset = <0>;        vcom  = <0x3f>;        gctrl = <0x35>;        vrhs  = <0x12>;        vdvs  = <0x20>;        mdac  = <0x00>;        gamma = <0x01>;        colmod = <0x05>;     /* 16‑bit RGB565,对应你写的 COLMOD 0x55 */        lcm   = <0x2c>;        porch-param  = [0c 0c 00 33 33];        cmd2en-param = [5a 69 02 01];        pwctrl1-param = [a4 a1];        pvgam-param   = [D0 04 0D 11 13 2B 3F 54 4C 18 0D 0B 1F 23];        nvgam-param   = [D0 04 0C 11 13 2C 3F 44 51 2F 1F 1F 20 23];        ram-param     = [00 F0];        rgb-param     = [CD 08 14];        };    };        control_pins {                compatible = "dev-gpios";                backlight_pin: backlight_pin {                        gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;                        label = "back light pin";                };    };};
SPI:
&spi00 {    //cs-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;      cs-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;    pinctrl-0 = <&spi00_default>;    pinctrl-1 = <&spi00_sleep>;    max-frequency = <DT_FREQ_M(32)>;};四、测试
屏幕是320*240的,刷新率有点低,大屏估计得用QSPI

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册  

×
楼主热帖
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

小黑屋|手机版|我爱蓝牙网 - 52Bluetooth

GMT+8, 2026-1-5 12:38 , Processed in 0.069593 second(s), 9 queries , Gzip On, MemCached On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表