OpenKit 应用指导_Rev0.2
[!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 |
L-CT4IT00-YP00W-01_V04 (Main Board PCB)
24031C12 (LCD+TP)
ZJY096I0400WG01 (OLED)
【准备中】
(Enclosure)
【准备中】
(Battery)
【准备中】
(Camera)
【准备中】
(LCD ADP PCB)
【准备中】
(Speaker)
【准备中】
(Antenna)
主板介绍
NT26FxDx OpenKit 主要器件和接口介绍如下:
主要器件 (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连接器座子 |
USB连接器:请使用支持 USB 2.0 并包含 D+/D- 数据线的线缆(非仅充电线);
麦克风连接器:接口有极性,连接时注意正负线序,接反将无法录音;
摄像头连接器:FPC 连接器为上接触类型(触点朝上),排线金手指需朝下插入;
LCD连接器:连接器为上下双面接触,插入排线时需核对引脚顺序,防止反向;
电池连接器:务必核对电池端子的线序(如正、负、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功能框图如下所示。
供电方式
主板上设计有电源切换电路,可通过以下方法为系统供电:
通过电池供电 设备内部集成3.7V锂电池,按下开关机按键3s开机即可。
通过Type-C口供电 将Type-C口的USB数据线插入USB接口,系统电源自动切换至Type-C供电,开启Charge_DET功能时可以USB插入开机,未开启Charge_DET功能时按下开关机按键3s开机即可。
充电电路
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接口
USB Type-C连接器的CC1/CC2引脚默认分别通过5.1kΩ电阻下拉至地,以将设备配置为仅支持充电功能的受电端(Sink)/上行端口(UFP)。
SIM卡接口
除SIM卡座外,主板上还预留贴片SIM卡封装,两者在PCB上位置重叠,默认使用插拔SIM卡(需用户自备)。
射频接口
射频接口预留IPEX 1代座子,预留π型匹配,如需更换天线可调整匹配。
按键接口
以下按键存在特殊用法:
PWRKEY基础用法是作为开关机按键,在开机后可以调整按下时长用作功能按键,如:短按对话、长按关机
KEY_USER0/KEY_USER1可复用为wakeup的按键,中断优先级更高,也可以复用为AGPIO,在模组休眠时保持
点阵屏接口
点阵屏接口预留2.54mm/4pin焊接位,可选ZJY096I0400WG01配件焊接使用。 请注意点阵屏上电时序必须满足“3V3先上电、I2C后拉高”,否则概率触发上电时序异常导致黑屏无法使用。
LCD接口
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)* |
如需调试双屏功能,需要在R120焊接1颗0R连接LCD_CS2引脚,I2C1_SCL与LCD_CS2不可同时使用(即点阵屏、触控面板不可与双屏同时使用)
LCD_LED作为EN脚控制背光K极,建议预留限流电阻,小板参考电路如下:
使用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 |
RS(Register Select 寄存器选择),也可能命名为DC(Data/Command 数据/命令),在部分主控上并无定义,如主控芯片GC9B72NA,如有,则将未用上的另一个LCD_CS引脚接入复用为GPIO控制
同上SPI屏不再赘述
同上SPI屏不再赘述
使用触控面板(TP)时,可选引脚:
触控面板引脚参考 |
对应网络名 |
|---|---|
VDD |
3V3 |
SDA |
I2C1_SDA |
SCL |
I2C1_SCL |
INT |
TP_INT |
RST |
TP_RST |
GND |
GND |
Camera接口
Camera接口提供SPI(单线)、DSPI(双线)两种接口,推荐主控为GC032A和BF30A2。
音频接口
Codec芯片
Codec芯片ES8311与Cat.1 bis模组通过I2S和I2C接口进行通信和配置。
麦克风接口
主板已有On-Board硅麦,如需外接其他驻极体麦克风请注意端子线序,正负极接反时无法驱动,并拆除R412/R413的0Ω,在R415/R416位置上焊接2.2KΩ。
喇叭接口
功放放大倍数应与前级音频输出峰峰值、喇叭相匹配,避免音量太小或者削顶失真。音频输入建议选用差分输入,提高音频抗干扰能力。
指示灯接口
RGB指示灯
RGB LED通信接口符合WS2812时序。
充电指示灯
充电指示灯在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 当前属于预留入口,后续接入具体功能。
状态栏
状态栏位于屏幕顶部,当前用于显示:
固定标题
Watch AI。当前状态文本,例如
IDLE、CAMERA、GIF等。当前情绪或运行状态指示,例如
ON、AI、REC、ERR。
时间、网络、电量等信息可以在后续接入状态栏数据源后增加,当前不作为已经实现的功能描述。
Camera 预览
Camera 页面用于显示摄像头实时画面。
用户可以看到:
顶部状态栏。
状态栏下面的摄像头预览区域。
摄像头消息或提示文本。
主要行为:
进入页面后启动摄像头会话。
连续采集摄像头帧并显示最新画面。
左滑或右滑退出预览。
退出时停止摄像头会话,释放摄像头帧缓存和显示缓存。
Scan 扫码
Scan 页面用于二维码或条码识别。
用户可以看到:
顶部状态栏。
摄像头预览画面。
扫码提示或扫码结果。
主要行为:
摄像头按扫码配置输出灰度图像。
获取图像后调用扫码解码库。
未识别到码时继续采集和识别。
识别成功后保存结果,并通知应用层更新显示。
左滑或右滑退出扫码。
Scan 与 Camera 共用摄像头会话和页面显示能力,但扫码解码由独立的 Scan 模块负责。
GIF 播放
GIF 页面用于播放演示动画。
用户可以看到:
顶部状态栏。
状态栏下面的 GIF 动画区域。
主要行为:
进入页面时创建 GIF 播放对象并开始播放。
播放过程由 LVGL 显示层和 GIF/VPU 适配层配合完成。
退出页面时停止播放并释放播放对象。
当前 GIF 演示资源以工程资源形式参与编译,后续可以再扩展为从外置 Flash 读取文件。
Player 文件列表
Player 页面用于浏览和选择音频文件。
当前列表支持:
MP3 文件。
WAV 文件。
TTS 入口。
外置 Flash 文件列表。
文件数量较多时的纵向滚动。
TTS 项显示在列表顶部。MP3 和 WAV 项显示文件名、格式和文件大小。
用户操作:
点击文件进入播放页面。
左滑或右滑返回主界面。
Player 播放页面
播放页面用于显示当前播放状态。
用户可以看到:
当前文件名。
文件格式和文件大小。
播放进度条。
播放百分比或进度文本。
Playing、Done或Stopped状态。
TTS 播放时显示 TTS Play,不显示内部 TTS 路径或文本编码。
页面关系:
从
Player List点击文件进入Player Now Playing。左滑或右滑返回
Player List。播放停止、完成或退出时释放当前播放资源。
Recorder 待录音页面
进入 Recorder 后不会立即开始录音,页面先处于待录音状态。
用户可以看到:
录音标题。
当前录音文件名或待生成文件名。
音频采样参数。
录音时长。
文件大小。
电平条。
Start按钮。
Recorder 录音中页面
点击 Start 后开始录音。
用户可以看到:
录音文件名。
录音时长持续增加。
文件大小持续增加。
电平条随输入声音变化。
Stop按钮。
点击 Stop 后停止采集并保存 WAV 文件。保存期间页面显示保存状态,避免用户重复操作。
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
左右滑动统一产生返回动作,应用层按照以下顺序处理:
先停止当前功能 session。
再释放当前功能资源。
根据页面层级返回上一级页面。
更新状态栏和应用状态。
后续扩展规则
后续增加拍照、更多音频格式、录音回放、通话、网络页面、OTA 页面或设置页面时,按以下边界扩展:
在首页增加一个 UI 入口。
在应用层增加对应业务模块。
必要时增加独立的 service 接口。
在 platform 层增加硬件适配。
为功能定义独立页面和 session。
明确进入时申请、退出时释放的资源。
增加页面截图和返回关系说明。
新增功能不应把底层硬件操作直接写入 LVGL 页面,也不应把多个业务功能继续堆到 app_main.c 或一个已有模块中。



























