跳转至

Air780EPM LCD 硬件电路说明

Air780EPM 支持 SPI 接口 LCD,如下表所示;

一、硬件支持

1. LCD 接口类型

Air780EPM 通过 SPI 接口连接 LCD 屏幕,支持多种驱动 IC;

目前已经调试支持的有:ST7735/ST7735S/ST7789/ST7796/ILI9341/ILI9486/GC9306/NV3037;

Air780EPM 开发板配件 LCD 当前使用的是 ST7796 ,大家可以灵活选择相应的 LCD 模组和供应商。

Air780EPM 的 LCD 具体接口引脚如下:

  • SPI 信号:

    • CLK(时钟线):GPIO34(VDD_EXT 电压域)。
    • SDA(数据):GPIO37(VDD_EXT 电压域)。
    • 片选(CS):可通过任意 GPIO(如 GPIO35)控制。
    • 数据/命令选择(RS):可通过任意 GPIO(如 GPIO38)控制。
    • 复位控制(RST):

    • 需通过 GPIO(如 GPIO36)控制,注意电路设计时需加上拉电阻,不然影响低功耗表现驱动能力。

    • 背光控制(BL):

    • 需通过 GPIO(如 GPIO30)控制,注意电路设计时需加上拉电阻,不然影响低功耗表现驱动能力。

2. 电源与信号设计

  • 电压匹配:

    • LCD 模块通常为 3.3V 电平,与 Air780EPM 直接兼容;
    • 背光供电:

    • 部分供应商提供的 LCD 模组的背光需独立供电,避免与 LCD 驱动 IC 共用电源导致电流冲击。

    • Air780EPM 配套使用的 LCD 模组,背光不需要独立供电,可与 LCD 用同一电源。
    • 参考设计:
LCD模块引脚 | Air780EPM GPIO
---------------------------
CLK           → GPIO34
SDA           → GPIO37
CS            → GPIO35
RS            → GPIO38
RST           → GPIO36,注意电路设计时需加上拉电阻,不然影响低功耗表现驱动能力。
BL            → GPIO30,注意电路设计时需加上拉电阻,不然影响低功耗表现驱动能力。


二、软件开发

1. LuatOS API 与驱动

local blk = gpio.setup(30, 1) 
-- LCD背光BL脚,高电平关闭背光,电平开启背光

local rtos_bsp = rtos.bsp()
-- local chip_type = hmeta.chip()
-- 根据不同的BSP返回不同的值
-- spi_id,pin_reset,pin_dc,pin_cs,bl
local function lcd_pin()
    local rtos_bsp = rtos.bsp()
    if string.find(rtos_bsp, "780EPM") then
        return lcd.HWID_0, 36, 0xff, 0xff, 25 
        -- 注意:Air780EPM有专用的硬件LCD接口,无需再按照SPI接口API从头开始写驱动
    else
        log.info("main", "你用的不是Air780EPM,请更换demo测试", rtos_bsp)
        return
    end
end

local spi_id, pin_reset, pin_dc, pin_cs, bl = lcd_pin()
if spi_id ~= lcd.HWID_0 then
    spi_lcd = spi.deviceSetup(spi_id, pin_cs, 0, 0, 8, 20 * 1000 * 1000, spi.MSB, 1, 0)
    port = "device"
else
    port = spi_id
end

lcd.init("st7796", {
    port = port,
    pin_dc = pin_dc,
    pin_pwr = bl,
    pin_rst = pin_reset,
    direction = 0,
    -- direction0 = 0x00,
    w = 320,
    h = 480,
    xoffset = 0,
    yoffset = 0,
    sleepcmd = 0x10,
    wakecmd = 0x11
})

-- Air780EPM开发板配套使用的LCD模组驱动IC为ST7796
  • LCD 驱动库:
    • LuatOS 提供 LCD 驱动库(如 lcd 模块),请参考官方文档或示例代码。
    • 若无现成库,需根据 LCD 驱动 IC 的手册编写初始化命令和操作函数,看 demo/lcd_custom 。

三、注意事项

1. 电源与低功耗

  • 休眠模式影响:
    • RST 型号:注意电路设计时需加上拉电阻,不然影响低功耗表现驱动能力。
    • 背光控制:需在休眠前关闭,避免持续耗电。

2. 驱动 IC 适配

  • 初始化命令:

    • 根据 LCD 驱动 IC 的数据手册编写精确的初始化序列(如 ST7796、ILI9341 命令不同)。
    • 分辨率与格式:

    • 确保设置的分辨率(如 240x320)与 LCD 物理尺寸匹配,避免显示错位。

3. 示例代码参考

  • 摄像头与 LCD 联动:
-- 通过摄像头捕获图像并显示到LCD(以下代码仅为简单逻辑示例)
require("camera")
require("lcd")
camera.init()  -- 初始化摄像头
lcd.init()     -- 初始化LCD
while true do
  local img = camera.capture()
  lcd.showImage()  -- 显示图像
  sys.wait(1000)
end

四、典型应用场景

1. 物联网显示终端:如温湿度监测屏、设备状态指示。

2. 摄像头预览:结合 Air780EPM 的摄像头模块,实时显示图像或二维码解析结果。


五、参考资料

1. LCD 驱动 IC 手册:如 ST7796、ILI9341 数据手册。

2. LuatOS 官方文档:https://docs.openluat.com/air780epm/luatos/api/

3. Air780EPM 开发板手册:获取 GPIO 复用表和硬件设计建议。