OpenKit 应用指导_Rev0.2

English

变更履历

[!NOTE] 备注 请拆除外壳查看主板上的丝印型号和版本,以确认您的开发板版本能与应用指导文档对应。

NT26FxDx OpenKit 是一款基于 Cat.1 通信模组的嵌入式开发套件,面向利尔达 NT26F 系列 OpenCPU SDK 的快速评估与开发。该套件集蜂窝联网、语音交互、摄像头、触摸屏、LCD 显示及外设扩展能力于一体,方便客户快速熟悉模组功能并开展应用验证。

开发板内置 NT26FxDx 模组,板载 ES8311 音频编解码芯片、AB/D 类功放、摄像头接口、LCD/点阵屏接口,同时集成锂电池充电管理和多路稳压供电电路。基于该套件,用户可实现联网通信、语音采集与播放、屏幕显示、图像采集等功能,适用于智能终端、语音交互、图像采集及物联网设备等场景的原型开发与功能验证。

本应用指导将帮助您快速上手 NT26FxDx OpenKit ,并提供该款开发板的详细信息。

【结构出爆炸图】

本指南包括如下内容:


硬件版本

该文档仅适用NT26FxDx OpenKit的主板型号:L-CT4IT00-YP00W-01_V04。

PCB型号

PCB版本

修改记录

L-CT4IT00-YP00W-01

V04

/


入门指南

本小节将简要介绍 NT26FxDx OpenKit ,说明如何在 NT26FxDx OpenKit 上烧录固件及相关准备工作。

组件介绍

组件型号

描述

L-CT4IT00-YP00W-01_V04

Main Board PCB

24031C12

LCD+TP

ZJY096I0400WG01

OLED

【准备中】

Battery

【准备中】

Enclosure

【准备中】

Camera

【准备中】

LCD ADP PCB

【准备中】

Speaker

【准备中】

Antenna

../../_images/file-20260515102137676.png

L-CT4IT00-YP00W-01_V04 (Main Board PCB)

../../_images/file-20260520191200192.png

24031C12 (LCD+TP)

../../_images/file-20260515112202467.png

ZJY096I0400WG01 (OLED)

【准备中】

(Enclosure)

【准备中】

(Battery)

【准备中】

(Camera)

【准备中】

(LCD ADP PCB)

【准备中】

(Speaker)

【准备中】

(Antenna)

主板介绍

NT26FxDx OpenKit 主要器件和接口介绍如下:

../../_images/file-20260515102137670.png

主要器件 (TOP)

描述

Pwrkey 按键

Pwrkey ,用于模组开关机

USB 连接器*(1)*

Type-C 接口连接器,用于供电、充电、通信、下载

充电指示灯

红绿两个指示灯,充电中红灯常亮,充满电时绿灯常亮

Reset 按键

Reset,用于复位模组

CL4056D

充电管理芯片,适用4.2V电池

天线座子

IPEX-1 代座子

RGB LED

RGB指示灯,指示模组工作状态

板载硅麦

与麦克风连接器二选一即可

麦克风连接器*(2)*

1.25mm/2PIN 连接器座子,用于连接驻极体麦克风

Boot按键

用于强制进入下载模式

NT26F6D0 模组

Cat.1 bis 模组,支持 OPEN 应用开发

点阵屏连接器

用于连接 SSD1306 点阵屏 (12864/12832)

Key0/1/2 按键

3个用户自定义按键

主要器件 (BOT)

描述

摄像头连接器*(3)*

0.5mm/24PIN FPC连接器,用于连接摄像头模组

ES8311

高性能语音编解码芯片

LDO28

2.8V/300mA低压差线性稳压器

Nor flash

Nor flash芯片,32Mbit,适用于3.3V系统

SIM卡座

Nano-SIM卡座连接器,用于插入SIM卡

CST8302A

AB/D类功放

LDO33

3.3V/300mA低压差线性稳压器

扬声器连接器

1.5mm/2PIN连接器座子,用于连接4Ω/3W喇叭

LCD连接器*(4)*

0.5mm/20PIN FPC连接器,用于连接屏幕转接板

电池连接器*(5)*

1.5mm/3PIN连接器座子

  1. USB连接器:请使用支持 USB 2.0 并包含 D+/D- 数据线的线缆(非仅充电线);

  2. 麦克风连接器:接口有极性,连接时注意正负线序,接反将无法录音;

  3. 摄像头连接器:FPC 连接器为上接触类型(触点朝上),排线金手指需朝下插入;

  4. LCD连接器:连接器为上下双面接触,插入排线时需核对引脚顺序,防止反向;

  5. 电池连接器:务必核对电池端子的线序(如正、负、NTC)与板端连接器定义一致,接错可能损坏设备;

外壳接口

外壳关键接口介绍如下:

【准备中】

开始使用

上电前目视检查产品外观是否完好,无明显缺损。

必备硬件

  • NT26FxDx OpenKit整机

  • Type-C数据线*

  • 电脑(Windows、Linux 或 macOS)

[!NOTE] 备注 部分 USB 数据线仅支持供电、充电,无法通信、下载,请确保使用的 USB 数据线可以下载固件。

硬件开机

需要USB数据线供电、通信和烧录,使用USB数据线连接PC和NT26FxDx OpenKit,长按开关机按键3秒以上。

安装驱动

驱动安装请参考Lierda 移芯Cat.1 bis模组USB驱动安装指导说明,安装完成后可从设备管理器中看到Lierda的USB端口。

指示灯

NT26FxDx OpenKit通过充电指示灯、RGB指示灯指示充电和运行状态。

充电指示灯

  • 未插入USB时,充电指示灯不亮

  • 插入USB时,充电指示灯亮红灯,正常充电中

  • 插入USB时,充电指示灯亮绿灯,已充满电

RGB指示灯

  • 关机时,RGB指示灯不亮

  • 开机时,正常运行状态下RGB指示灯绿灯常亮

  • 开机时,语音交互状态下RGB指示灯蓝灯闪烁

  • 开机时,异常状态下RGB指示灯红灯常亮(如网络异常)

  • 开机时,关机前RGB指示灯绿灯闪3下


硬件参考

功能框图

NT26FxDx OpenKit功能框图如下所示。

../../_images/file-20260520192538907.png

供电方式

主板上设计有电源切换电路,可通过以下方法为系统供电:

  1. 通过电池供电 设备内部集成3.7V锂电池,按下开关机按键3s开机即可。

  2. 通过Type-C口供电 将Type-C口的USB数据线插入USB接口,系统电源自动切换至Type-C供电,开启Charge_DET功能时可以USB插入开机,未开启Charge_DET功能时按下开关机按键3s开机即可。

充电电路

../../_images/file-20260520193959703.png

CL4056D最高充电电压4.2V,NTC建议选用R25=100KΩ,B25/50=4250的电池,可搭配53.6KΩ/920KΩ设计的充电范围为0.14℃~45.17℃,R25=10KΩ时可设计的充电范围为0~50℃。如参考电路所示,搭配103040电池(R25=10KΩ,B25/50=3435),设计的充电温度范围为0.46℃~50.22℃。具体计算方式见下表:NTC计算工具(XLSX)

USB接口

../../_images/file-20260520194337753.png

USB Type-C连接器的CC1/CC2引脚默认分别通过5.1kΩ电阻下拉至地,以将设备配置为仅支持充电功能的受电端(Sink)/上行端口(UFP)。

SIM卡接口

../../_images/file-20260520194418494.png

除SIM卡座外,主板上还预留贴片SIM卡封装,两者在PCB上位置重叠,默认使用插拔SIM卡(需用户自备)。

射频接口

../../_images/file-20260520194825110.png

射频接口预留IPEX 1代座子,预留π型匹配,如需更换天线可调整匹配。

按键接口

../../_images/file-20260520195641297.png

以下按键存在特殊用法:

  1. PWRKEY基础用法是作为开关机按键,在开机后可以调整按下时长用作功能按键,如:短按对话、长按关机

  2. KEY_USER0/KEY_USER1可复用为wakeup的按键,中断优先级更高,也可以复用为AGPIO,在模组休眠时保持

点阵屏接口

../../_images/file-20260521100330164.png

点阵屏接口预留2.54mm/4pin焊接位,可选ZJY096I0400WG01配件焊接使用。 请注意点阵屏上电时序必须满足“3V3先上电、I2C后拉高”,否则概率触发上电时序异常导致黑屏无法使用。

LCD接口

../../_images/file-20260521145256019.png

LCD接口提供SPI(单线)、QSPI(四线)两种接口,可选触控面板、双屏。 请注意:由于不同屏幕接口线序、接口位置均存在差异,如需调试屏幕建议搭配转接小板使用!NT26FxDx OpenKit中提供【转接小板型号,未立项】可接24031C12屏。

使用SPI屏时,可选引脚:

屏幕引脚参考

对应网络名

VCC

3V3

IOVCC

VDD_EXT

TE

LCD_TE

SDA

LCD_D0

DC

LCD_D1

SCL

LCD_CLK

CS

LCD_CS1/LCD_CS2*(1)*

RST

LCD_RST

GND

GND

A

3V3

K

LCD_LED控NPN*(2)*

  1. 如需调试双屏功能,需要在R120焊接1颗0R连接LCD_CS2引脚,I2C1_SCL与LCD_CS2不可同时使用(即点阵屏、触控面板不可与双屏同时使用)

  2. LCD_LED作为EN脚控制背光K极,建议预留限流电阻,小板参考电路如下:

../../_images/file-20260521175534668.png

使用QSPI屏时,可选引脚:

屏幕引脚参考

对应网络名

GND

3V3

LCD_RS

NC*(1)*

LCD_CS

LCD_CS1/LCD_CS2*(2)*

LCD_CLK

LCD_CLK

LCD_D3

LCD_D3

LCD_D2

LCD_D2

LCD_D1

LCD_D1

LCD_D0

LCD_D0

LCD_RT

LCD_RST

VDD3.3

3V3

VDD3.3

3V3

LEDA

3V3

LEDK

LCD_LED控NPN*(3)*

LCD_TE

LCD_TE

GND

3V3

  1. RS(Register Select 寄存器选择),也可能命名为DC(Data/Command 数据/命令),在部分主控上并无定义,如主控芯片GC9B72NA,如有,则将未用上的另一个LCD_CS引脚接入复用为GPIO控制

  2. 同上SPI屏不再赘述

  3. 同上SPI屏不再赘述

使用触控面板(TP)时,可选引脚:

触控面板引脚参考

对应网络名

VDD

3V3

SDA

I2C1_SDA

SCL

I2C1_SCL

INT

TP_INT

RST

TP_RST

GND

GND

Camera接口

../../_images/file-20260522143152880.png

Camera接口提供SPI(单线)、DSPI(双线)两种接口,推荐主控为GC032A和BF30A2。

音频接口

Codec芯片

../../_images/file-20260521092017678.png

Codec芯片ES8311与Cat.1 bis模组通过I2S和I2C接口进行通信和配置。

麦克风接口

../../_images/file-20260522145108008.png

主板已有On-Board硅麦,如需外接其他驻极体麦克风请注意端子线序,正负极接反时无法驱动,并拆除R412/R413的0Ω,在R415/R416位置上焊接2.2KΩ。

喇叭接口

../../_images/file-20260522145701885.png

功放放大倍数应与前级音频输出峰峰值、喇叭相匹配,避免音量太小或者削顶失真。音频输入建议选用差分输入,提高音频抗干扰能力。

指示灯接口

RGB指示灯

../../_images/file-20260522145834658.png

RGB LED通信接口符合WS2812时序。

充电指示灯

../../_images/file-20260522145912417.png

充电指示灯在USB插入时亮起,正常充电中亮红灯,充满电时亮绿灯。


软件参考

OpenKit demo_watch 功能与模块说明

文档目的

demo_watch 是基于 LIOT、LVGL 和应用框架实现的手表应用示例。

本文只说明两部分内容:

  • 用户可以看到和操作的功能页面。

  • 各模块的职责边界和资源管理原则。

本文不展开具体函数实现、任务内部流程和调试日志。后续新增功能时,优先补充对应的 UI 入口、功能模块、资源和返回关系。

UI 总览

页面结构

当前页面关系如下:

Home
├── Camera Preview
├── Scan Preview
├── GIF
├── Player List
│   └── Player Now Playing
└── Recorder

页面返回规则:

  • Camera Preview、Scan Preview、GIF、Recorder 返回 Home。

  • Player Now Playing 返回 Player List。

  • Player List 返回 Home。

  • Home 是根页面,不继续返回。

  • Camera、Scan、GIF、Player、Recorder 等功能退出时,应先停止业务,再返回页面。

用户可见功能

主界面

主界面采用白色背景,顶部保留状态栏,下面显示 3 x 3 九宫格功能按钮。

当前九宫格入口包括:

  • Camera

  • Scan

  • Player

  • Recorder

  • GIF

  • Settings

  • Tools

  • OTA

  • About

其中 Settings、Tools、OTA 和 About 当前属于预留入口,后续接入具体功能。

../../_images/image_1.png
状态栏

状态栏位于屏幕顶部,当前用于显示:

  • 固定标题 Watch AI。

  • 当前状态文本,例如 IDLE、CAMERA、GIF 等。

  • 当前情绪或运行状态指示,例如 ON、AI、REC、ERR。

时间、网络、电量等信息可以在后续接入状态栏数据源后增加,当前不作为已经实现的功能描述。

Camera 预览

Camera 页面用于显示摄像头实时画面。

用户可以看到:

  • 顶部状态栏。

  • 状态栏下面的摄像头预览区域。

  • 摄像头消息或提示文本。

主要行为:

  • 进入页面后启动摄像头会话。

  • 连续采集摄像头帧并显示最新画面。

  • 左滑或右滑退出预览。

  • 退出时停止摄像头会话,释放摄像头帧缓存和显示缓存。

../../_images/image_2.png
Scan 扫码

Scan 页面用于二维码或条码识别。

用户可以看到:

  • 顶部状态栏。

  • 摄像头预览画面。

  • 扫码提示或扫码结果。

主要行为:

  • 摄像头按扫码配置输出灰度图像。

  • 获取图像后调用扫码解码库。

  • 未识别到码时继续采集和识别。

  • 识别成功后保存结果,并通知应用层更新显示。

  • 左滑或右滑退出扫码。

Scan 与 Camera 共用摄像头会话和页面显示能力,但扫码解码由独立的 Scan 模块负责。

../../_images/image_3.png
../../_images/image_4.png
GIF 播放

GIF 页面用于播放演示动画。

用户可以看到:

  • 顶部状态栏。

  • 状态栏下面的 GIF 动画区域。

主要行为:

  • 进入页面时创建 GIF 播放对象并开始播放。

  • 播放过程由 LVGL 显示层和 GIF/VPU 适配层配合完成。

  • 退出页面时停止播放并释放播放对象。

当前 GIF 演示资源以工程资源形式参与编译,后续可以再扩展为从外置 Flash 读取文件。

../../_images/image_5.png
Player 文件列表

Player 页面用于浏览和选择音频文件。

当前列表支持:

  • MP3 文件。

  • WAV 文件。

  • TTS 入口。

  • 外置 Flash 文件列表。

  • 文件数量较多时的纵向滚动。

TTS 项显示在列表顶部。MP3 和 WAV 项显示文件名、格式和文件大小。

用户操作:

  • 点击文件进入播放页面。

  • 左滑或右滑返回主界面。

../../_images/image_6.png
Player 播放页面

播放页面用于显示当前播放状态。

用户可以看到:

  • 当前文件名。

  • 文件格式和文件大小。

  • 播放进度条。

  • 播放百分比或进度文本。

  • Playing、Done 或 Stopped 状态。

TTS 播放时显示 TTS Play,不显示内部 TTS 路径或文本编码。

页面关系:

  • 从 Player List 点击文件进入 Player Now Playing。

  • 左滑或右滑返回 Player List。

  • 播放停止、完成或退出时释放当前播放资源。

../../_images/image_7.png
Recorder 待录音页面

进入 Recorder 后不会立即开始录音,页面先处于待录音状态。

用户可以看到:

  • 录音标题。

  • 当前录音文件名或待生成文件名。

  • 音频采样参数。

  • 录音时长。

  • 文件大小。

  • 电平条。

  • Start 按钮。

../../_images/image_8.png
Recorder 录音中页面

点击 Start 后开始录音。

用户可以看到:

  • 录音文件名。

  • 录音时长持续增加。

  • 文件大小持续增加。

  • 电平条随输入声音变化。

  • Stop 按钮。

点击 Stop 后停止采集并保存 WAV 文件。保存期间页面显示保存状态,避免用户重复操作。

../../_images/image_9.png
Recorder 保存完成

保存完成后,页面显示最终录音信息和 Saved 状态。

存储空间不足或保存失败时,页面显示对应提示,不继续向文件写入数据。

功能模块职责

Camera

Camera 模块负责摄像头预览业务:

  • 初始化和关闭摄像头。

  • 管理摄像头会话。

  • 获取摄像头图像。

  • 将图像交给显示模块。

  • 退出预览时停止采集并释放缓存。

Camera 不负责扫码解码,也不负责页面控件创建。

Scan

Scan 模块负责二维码或条码识别:

  • 使用扫码所需的灰度摄像头配置。

  • 接收摄像头采集数据。

  • 调用扫码解码库。

  • 保存识别结果。

  • 通知应用层显示结果。

Scan 可以复用 Camera 的采集会话,但解码逻辑保持独立,便于后续增加其他识别算法。

GIF

GIF 模块负责动画播放业务:

  • 启动和停止 GIF 播放。

  • 管理 GIF 播放对象。

  • 使用显示层提供的 GIF/VPU 适配能力。

  • 页面退出时释放解码和播放资源。

GIF 业务不直接处理 LCD 或 LVGL 底层刷新细节。

Player

Player 模块负责音频播放业务和文件列表:

  • 枚举外置 Flash 中的 MP3/WAV 文件。

  • 管理 TTS 播放入口。

  • 处理文件选择、播放、停止和完成状态。

  • 更新播放进度和页面状态。

  • 退出时释放文件列表、播放任务和播放缓冲。

Player 后续可以扩展 AMR、AAC 等格式。新增格式时,优先增加文件类型和对应平台播放适配,不改变页面返回和 session 管理规则。

Player 不负责公共通话链路,也不负责录音。

Recorder

Recorder 模块负责录音、保存和录音状态:

  • 创建录音文件名。

  • 开始和停止录音。

  • 接收音频采集数据。

  • 生成 WAV 文件头并写入外置 Flash。

  • 更新时长、文件大小和电平条。

  • 处理存储空间不足。

  • 保存完成或退出时释放录音资源。

Recorder 后续可以增加录音文件列表和回放,但录音采集与 Player 播放仍保持职责分离。

Audio

watch_audio 只保留公共音频能力:

  • 音频硬件初始化。

  • 播放和录音底层接口。

  • Audio codec 生命周期管理。

  • 采样率切换。

  • 播放或录音停止后的底层 deinit。

具体业务由上层模块管理:

  • MP3、WAV、TTS:由 Player 管理。

  • 录音:由 Recorder 管理。

  • 公共语音输入、通话等:由 Audio 或后续独立的 Call 模块管理。

软件分层

应用层

目录:

apps/watch_ai_app/

应用层负责:

  • 应用启动和初始化。

  • 用户操作分发。

  • 页面切换。

  • 功能 session 管理。

  • 协调 Camera、Scan、Player、Recorder、GIF 等模块。

主要模块:

watch_display
watch_camera
watch_scan
watch_player
watch_recorder
watch_gif
watch_audio
watch_page
watch_session
watch_action
服务层

目录:

framework/services/

服务层定义通用能力和数据接口,例如:

  • Display Service

  • Camera Service

  • Scan Service

  • Player Service

  • Recorder Service

  • Storage Service

服务层不直接绑定具体 LCD、摄像头、音频 codec 或外置 Flash 芯片。

平台适配层

目录:

framework/platform/

平台层将通用服务连接到 LIOT 和具体硬件:

  • camera/:摄像头适配。

  • display/:LCD、LVGL、TP 和 GIF 显示适配。

  • player/:MP3、WAV、TTS 播放适配。

  • recorder/:录音适配。

  • scan/:扫码解码适配。

  • board/:板级硬件初始化。

  • osal/:任务、内存、延时等操作系统适配。

核心框架

目录:

framework/core/

核心框架负责:

  • 应用事件。

  • 应用状态。

  • 基础错误定义。

  • 核心初始化和事件处理。

页面栈和功能 session 由应用层模块维护,核心层不绑定具体业务页面。

生命周期和资源原则

功能资源采用"进入时申请,退出时释放"的方式管理。

主要资源包括:

  • 摄像头帧缓存。

  • LVGL 预览缓存。

  • 扫码解码缓存。

  • GIF 解码和播放资源。

  • 音频播放缓存。

  • 录音缓存。

  • 外置 Flash 文件句柄。

  • 功能专用任务。

  • 功能专用同步对象。

页面退出时的基本顺序:

停止业务
    ↓
等待任务或数据处理结束
    ↓
关闭文件、设备或解码器
    ↓
释放缓存和同步对象
    ↓
关闭 session
    ↓
返回上一级页面

板级初始化和系统级服务可以常驻;Camera、Scan、GIF、Player、Recorder 等功能专用资源不应无条件长期占用。

页面、Session 与返回关系

页面负责显示和用户操作,功能模块负责业务,session 负责保证同一时间只有一个独占功能运行。

示例关系:

Home
  └─ Camera Preview
       └─ Camera Session

Home
  └─ Scan Preview
       └─ Camera Session + Scan

Home
  └─ Player List
       └─ Player Now Playing
            └─ Player Session

Home
  └─ Recorder
       └─ Recorder Session

Home
  └─ GIF
       └─ GIF Session

左右滑动统一产生返回动作,应用层按照以下顺序处理:

  1. 先停止当前功能 session。

  2. 再释放当前功能资源。

  3. 根据页面层级返回上一级页面。

  4. 更新状态栏和应用状态。

后续扩展规则

后续增加拍照、更多音频格式、录音回放、通话、网络页面、OTA 页面或设置页面时,按以下边界扩展:

  1. 在首页增加一个 UI 入口。

  2. 在应用层增加对应业务模块。

  3. 必要时增加独立的 service 接口。

  4. 在 platform 层增加硬件适配。

  5. 为功能定义独立页面和 session。

  6. 明确进入时申请、退出时释放的资源。

  7. 增加页面截图和返回关系说明。

新增功能不应把底层硬件操作直接写入 LVGL 页面,也不应把多个业务功能继续堆到 app_main.c 或一个已有模块中。


相关资源