AC791N开发-入门到进阶开发指导文档(完善ing)
📎 原始文档:https://www.kdocs.cn/l/caMqmZTWDyYv AC791N开发-入门到进阶开发指导文档(完善ing)
📌杰理工具说明文档:
(程序开发工具、固件处理工具、量产相关工具)
欢迎使用杰理工具文档 — JL Project Documentation
📌AC791N文档
https://doc.zh-jieli.com/AC79/zh-cn/master/index.html
一 : 硬件以及工具相关
1.1.1 硬件环境搭建
1.准备一块杰理 AC791N开发板
本文档以该开发板为例进行开发说明
开发板购买首页首页-杰理科技-淘宝网
- 准备一台 PC 主机(运行 Windows )
windows 建议64位系统
3.准备一根带数据线的公对公 USB 线(例如TYPE-A 转 TYPE-C)
硬件调试步骤可参考如下文档
二: 软件环境搭建
2.1.1 编译器获取
杰理编译器 和vscode
CodeBlocks 集成开发环境 (建议 Windows 7 以上版本)
CodeBlocks既可以从官方网站下载,也可以直接从杰理网站镜像的地址下载。
- 杰理工具管理网站安装。
- 在浏览器中打开链接:http://pkgman.jieliapp.com/s/codeblocks
- 双击下载后的 codeblocks-latest.exe ,按照提示进行安装即可 CodeBlocks官方网站安装。
- 首先打开网址:http://www.codeblocks.org/downloads/ ,点击如图所示的 Download the binary release Visual Studio Code 方式
下载网址: https://ruanjian.bzyinxiao6.com/soft/90656.html
安装方式请查找网上说明
2.1.2 sdk编译和下载
2.1.2.0 codeblock方式编译
从gitee上拉取所需要的版本 https://gitee.com/Jieli-Tech/fw-AC79_AIoT_SDK
进入工程路径里面包含scan_box , wifi_camera, wifi_ipc以及wifi_story_machine工程(具体代码工程支持哪类产品开发,可和杰理工程人员沟通确认)
我们以wifi_camera工程为列
进入.cbp所在的工程路径 双击打开AC792N_WIFI_CAMERA.cbp工程
点击如下选项进行编译即可
至此编译完成,可进行烧录程序
2.1.2.1 vscode 编译
vscode打开后选择terminal中的Run Task
选择对应的工程进行编译
如下即编译完成,当设备进入烧录模式时,也可以直接进行编译和烧录
若工程中有新增减文件,可按照Makefile规则去编辑
2.1.3 固件SDK配套sdk_tools下载链接
固件SDK配套sdk_tools下载链接:
https://doc.zh-jieli.com/AC79/sdk_tools/AC79NN_SDK_V1.2.0/sdk_tools.rar
三: UI工具以及使用说明
获取ui相关模版
固件SDK配套ui_project下载链接:
https://doc.zh-jieli.com/AC79/ui_project/AC79NN_SDK_V1.2.0/ui_project.rar
注意:本章节基于WiFicamera工程讲解UI。
3.1 杰理JL风格公版UI说明
3.1.1 简介
LY UI工程是按键操作的UI工程,跟之前AC57xx、AC52xx和AC56xx中用的LY风格的UI类似,大部分UI操作跟之前LY风格UI一样。
在JieLiGuiBuilder UI工具中,点击下面dvr_ly_800x480项目进入LY风格UI工程。
进入后会看到如下所示的页面
要在工程中使用LY风格的UI,需要在app_config.h下打开宏CONFIG_UI_STYLE_LY_ENABLE,如下
工程中LY风格UI代码在如下路径下
custom文件夹:是各页面的UI业务代码,是由用户编写并最终在JieLiGuiBuilder UI工具中打包拷贝到如下工程路径中;
generated文件夹:是由JieLiGuiBuilder UI工具生成的各页面lvgl初始化代码,该部分代码绝大多数是JieLiGuiBuilder UI工具自动生成,其中有一些事件回调中的代码是用户在JieLiGuiBuilder UI工具中添加。
按键操作UI时,需要将设备的按键消息跟LVGL的按键消息映射起来,这部分的对应关系在custom.c文件中。例如设备的MODE键消息是对应LVGL中的RIGHT消息等,具体关系如下:
详细的按键消息流程,可查看下面文档
AC792x按键消息流程.docx
3.1.2 usb_slave页面 - 行车记录仪USB页面
usb_slave页面是当设备通过usb接到电脑时,弹出显示出来的一个页面,该有3个选项,分别可进入存储器模式、PC摄像头模式和录像模式。
关键应用层代码:ui_action_usb.c,主要包含usb页面显示隐藏逻辑、USB页面加载卸载回调函数(显示隐藏之后要实现的动作)
usb_slave页面下按键进入选项的流程,下面以进入存储器为例
Q:什么时候显示和隐藏usb界面?
A:当792检测到usb上线或者下线事件的时候。以WiFicamera工程举例,如图:
Q:USB页面加载卸载回调函数(显示隐藏),需要appcore切换模式应该如何做?。
A:公版ui_action_usb.c有代码演示,如图
3.1.3 video_rec页面 - 行车记录仪录像模式页面
video_rec页面主要有预览下的状态图标、设置菜单等。在预览界面下按设备的MENU键打开录像设置菜单,打开录像设置菜单的UI动作如下

打开设置菜单后,显示如下界面。在这个界面下按设备的UP和DOWN键可上下选中设置项,再OK键就进入设置项的子菜单,按MENU键则打开系统设置菜单界面。
所有设置项都是在这个容器里面
3.2 开源LVGL UI说明
3.2.1 简介
JL UI工程是同时支持触摸屏和按键操作的记录仪UI工程。主要涉及的UI页面有:
- USB界面
- VIDEO_REC录像模式界面
- 主页面
- 顶层系统信息提示框
- 系统设置界面
- VIDEO_PHOTO拍照模式界面
- VIDEO_DEC回放模式界面
- 倒车界面
- 车道偏移预警设置界面
- 回放模式文件删除提示界面 在JieLiGuiBuilder UI工具中,点击下面dvr_ly_800x480项目进入JL风格UI工程。

进入后会看到如下所示的页面
其中记录仪主要页面组成如下:
要在工程中使用JL风格的UI,需要在app_config.h下打开宏CONFIG_UI_STYLE_JL_ENABLE,如下
工程中JL风格UI代码在如下路径下
custom文件夹:是各页面的UI业务代码,是由用户编写并最终在JieLiGuiBuilder UI工具中打包拷贝到如下工程路径中;
generated文件夹:是由JieLiGuiBuilder UI工具生成的各页面lvgl初始化代码,该部分代码绝大多数是JieLiGuiBuilder UI工具自动生成,其中有一些事件回调中的代码是用户在JieLiGuiBuilder UI工具中添加。
3.2.2 usb_slave页面-行车记录仪USB界面
usb_slave页面是当设备通过usb接到电脑时,弹出显示出来的一个页面,该有3个选项,分别设置792机器可进入massstorage存储器从机模式、uvc从机摄像头模式和行车记录仪录像模式。
关键应用层代码:ui_action_usb.c,主要包含usb页面显示隐藏逻辑、USB页面加载卸载回调函数(显示隐藏之后要792实现的逻辑动作)
📌以792如何进入massstorage模式为例子(uvc从机摄像头模式类似),相关代码逻辑和UI回调机制如图:

📌何时显示和隐藏usb界面
当792检测到usb上线或者下线事件的时候。以WiFicamera工程举例,如图:
📌显示USB界面,利用页面的加载函数回调,退出当前的appcore模式,只执行对应的USB任务。
公版ui_action_usb.c有代码演示,如图
📌usb页面切换到行车记录仪录像模式
ui_action_video_rec.c 利用页面的加载函数回调,让792 切换模式为录像模式:
3.2.3 video_rec页面-行车记录仪录像模式
行车记录仪录像模式,主要是记录仪方案的录像功能,UI页面涉及的功能包含如下:
- 录像模式界面切换到拍照模式。
- 录像模式界面切换到系统主界面。
- 录像模式菜单设置页面及相关交互。
- 录像模式录像参数的UI状态显示(日期时间、车牌、录像参数等UI状态)。
📌录像模式界面切换到拍照模式。
📌录像模式界面切换到系统主界面
📌录像模式菜单设置页面及相关交互
页面主要控件容器:
- view_video_set为录像模式菜单的控件容器,放置着录像模式的所有可配置菜单项的控件对象及相关UI逻辑。
- view_subpage为子菜单的控件容器,放置着菜单项配置的控件对象及相关UI逻辑。 view_subpage与view_video_set同一时刻只有一个容器在显示。

当设置按钮img_video_set被按下将根据view_subpage显示状态隐藏或者显示view_video_set
四: SDK代码讲解说明
4.1.1 工程代码配置讲解
codeblock 打开对应工程 以 AC791N_WIFI_CAMERA.cbp 工程为列
截取常用部分,求他功能看如下codeblcok代码文件命名, 顾名思义
- 针对开发板配置对应板级board和外设定义 头文件board_config.h中定义芯片型号为 :#define CONFIG_BOARD_AC7926A
板级型号为:#define CONFIG_BOARD_DEVELOP // 开发板
如下
//芯片型号sdram和flash配置文件
#include "chip_cfg.h"
board_develop.c中则为整个设备硬件的外设配置,具体定义 在board_develop_AC7926A.h 头文件中
若客户用的是其他芯片型号,可按上述方式配置对应的型号 如CONFIG_BOARD_AC7922A,CONFIG_BOARD_AC7925B等,如代码中未看到对应型号,客户需要了解自己手头拿到的主控是什么型号,内存大小,以及板子贴的flash 大小, 则可在现有型号上进行内存,flash大小修改,外设则可按照实际板子定义进行灵活修改。
问题:(配置完后烧录无打印,跑不起来,参考章节七 常见问题说明)
4.1.2 代码流程讲解
- app和ui 独立分开,系统app有video_rec, video_photo, video_dec, video_system 等app,基本每个app单独一个 xxx.c文件, ui 则在 apps\wifi_camera\lvgl_v8_ui_app 文件夹下, 目前公版提供两套ui,style_JL(触摸风格)的以及style_LY(按键风格)
系统上电主控 maskrom--> uboot--> main( main入口函数)--> 创建app 应用--> 初始化lvgl ui界面显示
其中main函数 对系统看门狗,clk时钟,中断,串口等外设的初始化,以及对rtos系统的初始化
最终从app_task_handler线程 启动app应用, 客户可自行查看代码逻辑。
app 状态机的切换可参考 sdk\apps\common\example\system\app_state_machine 路径列子
实际公版AC792N_WIFI_CAMERA.cbp 项目中有几个app模式, video_rec, video_photo, video_dec ,video_system 等app, 当触摸或者按键触发进行app 切换。 有些客户开发,模式单一,可能只用到一个app应用,无需切换,可以不关注app 的切换。
4.1.3 flash VM存储等用法
- flash区域分uboot ,code代码区域,res 资源区域,vm系统配置项存储区域,以及reserved区域, vm区域长度可在isd_config_rule.c文件中进行配置
存储区域有3个 1)VM区域; 2)sys_cfg.bin; 3)BTIF区域 ,
配置项ID号分配如下: //
[0]: 配置项ID号0为配置项工具保留ID号; //
[ 1 ~ 59]: 共59项, 预留给用户自定义, 只存于VM区域; //
[ 60 ~ 99]: 共40项, sdk相关配置项, 只存于VM区域; //
[100 ~ 255]: 共156项, sdk相关配置项, 可以存于VM区域, sys_cfg.bin(作为默认值)和BTIF区域;//
[512 ~ 700]: 共188项, sdk相关配置项, 只存于sys_cfg.bin;
可参考syscfg_id.h 头文件说明 - wifi camera 工程中 app_database.c中idex用到了1-59 项,预留给用户自定义的,存了一些菜单参数 int syscfg_write(u16 item_id, void *buf, u16 len);
int syscfg_read(u16 item_id, void *buf, u16 len); 接口进行读写,注意只针对索引号方式读写,长度最大一次4095字节
如果客户需要进行大数量读写,该方式不建议用,可用littlefs 文件系统接口第三方开源库方式实现,该方式替代extflash,效率会高些。
792 littlefs文件系统配置.otl
另外有些客户可能会用到自定义flash 区域,存一些特定信息, 该部分空间与系统,工具毫无相关,分配给系统的flash 大小不是flash 实际的物理空间大小。可参考如下文档说明
https://doc.zh-jieli.com/AC792/zh-cn/wifi_video_master/module_example/peripherals/flash_space.html
4.1.4 wifi 功能的用法
1. 792N系列支持的功能协议
- 兼容IEEE802.11b/g/n标准
- 支持802.11N MCS0~7,数据传输率最高到72.2Mbps
- 支持仅 station 模式(即 STA 模式或 Wi-Fi 客户端模式),此时 AC79 连接到接入点 (AP)
- 支持仅 AP 模式(即 Soft-AP 模式或接入点模式),此时基站连接到 AC79
- 支持WPA/WPA2/WPA3-Personal
- 支持 AMPDU、HT40(AC792N系列支持)、QoS
- station 模式下支持低功耗休眠
- 扫描接入点(包括主动扫描及被动扫描)
- 支持混杂模式监听 IEEE802.11 Wi-Fi 数据包 初始化wifi 线程 在wifi_app_task,c中,屏蔽掉该线程 则关闭整个wifi 链路。

流程和接口使用说明参考
https://doc.zh-jieli.com/AC792/zh-cn/wifi_video_master/module_example/wifi/wifi_instruction.html
用户在使用wifi 过程中若经常断开,吞吐率不够 最好找杰理硬件同事确认射频指标是否达标。
2. wifi 性能吞吐率测试
固件SDK配套sdk_tools下载链接 该连接有很多其他测试工具:
https://doc.zh-jieli.com/AC79/sdk_tools/AC79NN_SDK_V1.2.0/sdk_tools.rar
代码配置方式参考如下方式配置
https://doc.zh-jieli.com/AC792/zh-cn/wifi_video_master/module_example/wifi/wifi_iperf_test.html
3. wifi模式配置
以wifi camera 工程为列,app_config中配置了上电的wifi 的模式, ap 热点ssid和pwd 以及STA模式下去连接的 路由等热点名
4.内存优化 wifi 库选择
某些用户拿到的主控内存很小,如内部2MB 的sdram ,内部ram 为128KB
当内存不够用时,可评估更换小内存的wifi 驱动库以及lwip,同时需要评估wifi 吞吐率是否满足当下产品性能,目前该方式适用于791X 系列, 792根据实际情况咨询杰理团队。

4.1.5 系统升级分类
4.1.6 低功耗模式配置
五:点LCD屏讲解
5.1 点屏硬件说明及注意事项
792系列芯片目前可支持MIPI屏、RGB屏、MCU屏和SPI屏接口。
MIPI屏硬件接口支持1/2/4lane的设计接法,满足大部分的设计需求
RGB屏硬件接口支持3/6/8/9/16/18/24位接法,支持多种数据格式输出显示。
MCU屏接口支持8/16位的接法。
SPI屏接口支持1/2/4线接法,支持任意GPIO映射,灵活设计。
792系列芯片屏硬件设计,请严格按照AC792N系列屏接口说明;如不按照参考接法,会导致存无法点亮情况。参考资料链接:
https://gitee.com/Jieli-Tech/fw-AC792_SDK/tree/release/AC792N_SDK_V1/doc/%E7%A1%AC%E4%BB%B6%E8%B5%84%E6%96%99
5.3 RGB屏软件配置、调试步骤及注意事项
以下章节我们专门介绍AC792N 平台上点RGB屏软件配置、调试步骤及注意事项说明,用户可参考此章节了解点屏RGB屏的过程与方法。
5.3.1 RGB屏软件配置步骤说明
以下配置以AC791N_WIFI_CAMERA工程为例子配置RGB屏,用户在其它工程的点RGB屏配置也可以类似参考部分。
步骤1:在对应的板子头文件里面配置使能TCFG_LCD_ENABLE宏定义,如下图5-3-1-1所示:
图5-3-1-1 LCD宏使能
步骤2:配置对应的RGB屏幕驱动使能和对应的IO口等基本信息的配置,如下图5-3-1-2所示:
图5-3-1-2 RGB屏幕驱动使能
步骤3:在lcd_config.h里面,定义RGB屏幕的宽&高,如下图5-3-1-3所示:
图5-3-1-4 定义RGB屏宽高
步骤4:将RGB屏的驱动添加参编译,我们以Makefile为例子添加驱动(codeblock直接add文件即可),如下图5-3-1-4所示:
图5-3-1-4 将RGB屏驱添加参与编译
步骤5:确认板级添加了屏相关的注册信息,如下图5-3-1-5所示:
图5-3-1-5 板级注册屏结构体
步骤6:确认屏复位时序(若屏不使用硬件复位情况下)是否正确,如下图5-3-1-6所示:
图5-3-1-6 RGB屏软件复位
步骤6:修改RGB屏驱初始化内容,将屏厂提供的初始化序列写入到初始化序列函数里面(有些RGB屏初始化固化在屏里面。此类RGB屏不写初始化即可),如下图5-3-1-6所示:
图5-2-6 添加RGB屏初始化序列
步骤7:根据RGB屏的数据格式,配置主控输出RGB格式,如下图5-3-1-7所示:
图5-3-1-7 配置RGB格式
步骤8:配置硬件信号线、data数据口、数据位宽和时钟等,配置如下图5-3-1-8所示:
图5-3-1-8 配置硬件口和时钟
步骤9:根据屏幕的实际分辨率,配置推屏时序,以480X800为例子,参考配置如下图5-3-1-9所示:
图5-3-1-9 配置RGB屏时序
5.3.2 主控RGB参数说明
关于AC792N主控RGB屏参数的详细说明,参考如下的注释说明:
REGISTER_IMD_DEVICE_BEGIN(lcd_480x800_st7701s_dev) = {
.info = {
#ifdef USE_TEST_MODE
.test_mode = true, //打开推纯色测试模式
#else
.test_mode = false, //关闭推纯色测试模式
#endif
.test_mode_color = 0xff0000, //纯色测试模式颜色
.bg_color = 0x00ff00, //背景颜色
.xres = __LCD_W, //插值前显存水平分辨率
.yres = __LCD_H, //插值前显存垂直分辨率
.target_xres = __LCD_W, //插值后屏水平分辨率
.target_yres = __LCD_H, //插值后屏垂直分辨率
.sample = SAMP_YUV420, //采样方式 YUV420/YUV422/YUV444
.format = FORMAT_RGB888, //图层数据格式
.interlaced_1st_filed = EVEN_FILED, //首场是奇场or偶场,INTERLACED_DATA 时有效
.interlaced_mode = INTERLACED_NONE, //隔行模式
.len = LEN_256, //访问的块长度
.rotate = ROTATE_0, // 旋转配置,旋转角度(90.0 / 180.0 / 270.0)
.adjust = { //颜色校正参数,一般可以默认,可通过屏效工具来调节
.r_gain = 1.0,
.g_gain = 1.0,
.b_gain = 1.0,
.bright_gain = 1.0,
.contrast_gain = 1.0,
.saturation_gain = 1.0,
.mean = 128,
.angle = 0,
.mode = 0,
},
.in_rbs = false, //输入数据RB交换
.out_rbs = false, //输出数据RB交换
.in_fmt = TCFG_LCD_INPUT_FORMAT, //输入数据格式
.out_fmt = LCD_OUT_RGB888, //输出数据格式
.dither_en = false, //使能dither 0低位截断 1dither
.in_bt601 = false, //yuv422输入 转换0 bt601, 1 bt709
.out_bt601 = false, //yuv422输出 转换0 bt601, 1 bt709
},
.data_out_endian = MODE_LE, //RGB565模式生效 RGB888调节swap
.dclk_set = CLK_EN | CLK_NEGATIVE, //dclk使能以及极性配置
.sync0_set = SIGNAL_DEN | CLK_EN, //DE/HSYNC/VSYNC
.sync1_set = SIGNAL_HSYNC | CLK_EN, //DE/HSYNC/VSYNC
.sync2_set = SIGNAL_VSYNC | CLK_NEGATIVE | CLK_EN, //DE/HSYNC/VSYNC
.set_io_hd = TCFG_LCD_RGB_IO_HD_LEVEL, //数据脚gpio_hd
.lcd_group = PORT_GROUP_AA, //数据口输出端口选择
.ncycle = CYCLE_ONE, //推一个像素时钟数
.data_width = PORT_24BITS, //硬件数据位宽
.dclk_cfg = DPI_CLK_STD_48M | DIVA_1 | DIVB_2, //dclk时钟配置
.timing = { //RGB推屏时序配置
//下面的时间均指多少个时钟周期 调整de 或者行间隔可以调屏的大概效果
#define HBP 15 //行同步信号后肩 单位:clk
#define HFP 2 //行同步信号前肩 单位:clk
#define HSPW 1 //水平信号宽度 单位:clk
#define VSPW 2 //垂直信号宽度 单位:行
#define VBP 16 //帧同步信号后肩 单位:行
#define VFP 1 //帧同步信号前肩 单位:行
//以下信号均为高有效1 以下为固定公式勿动
.hori_total = 480 * 1 + HBP + HFP + HSPW, //行总长 : 行像素*3 + 行同步信号后肩 + 行同步信号前肩 + 水平信号宽度
.hori_sync = 480 * 1 + HBP + HFP, //行同步时间: 行像素*3 + 行同步信号后肩 + 行同步信号前肩
.hori_back_porth = HBP, //行同步信号后肩 (+HSPW?)
.vert_total = VSPW + VBP + 800 + VFP, //帧总长: 垂直信号宽度 + 帧同步信号后肩 + 像素高 + 帧同步信号后肩
.vert_sync = VSPW, //帧于帧之间间隔多少个行中断:?
.vert_back_porth_odd = VBP + VSPW, //帧信号开始的时候经过多少个行中断开始de: 帧同步信号后肩 + 水平信号宽度
.hori_pixel = 480, //像素宽 480*3 = 1440
.vert_pixel = 800, //像素高
.vert_back_porth_even = 0, //推隔行数据才需要配置
},
},
REGISTER_IMD_DEVICE_END()
5.3.3 RGB屏调试步骤
在配置完RGB驱动的软件之后,一般参照如下步骤debug调试屏驱,步骤如下:
步骤1:打开USE_TEST_MODE宏,配置主控输出纯色模式,如下图5-2-3-1所示:
图5-3-2-1 配置主控推出纯色模式
步骤2:打开USE_TEST_MODE宏后,若RGB屏上没有推出纯色,需要先排查硬件原理设计、电源、复位脚等信号是否正常。一般推荐使用逻辑分析仪抓取初始化的序列是否写入正常,并同时确保每个data数据信号正常。
步骤3:若写入的初始化序列逻辑分析仪抓出来是对的,且各个信号示波器显示都正常;但是RGB屏不显示纯色,则需要联系屏厂确认初始化序列是否正常,有条件的情况下,请屏厂提供测试架进行对抓数据比。
步骤4:纯色模式正常后,关闭USE_TEST_MODE宏,若系统能正常推出UI,则说明RGB点屏已经正常。
5.3.4 RGB屏常见问题及注意事项
- 如何根据不同rgb格式:RGB565/RGB888和不同的数据位宽配置推屏时序? 我们以8bit硬件接口,推RGB565的屏为例子,说明如何配置(其它位宽、RGB格式的配置思路也是类似的)。
首先,要根据rgb格式配置.format 和.out_fmt参数;
其次,配置ncycle和data_width,原理为:推一个rgb565格式像素,位宽为8位的情况下,需要推两个周期;如下代码段所示:
.format = FORMAT_RGB565,
.out_fmt = LCD_OUT_RGB565,
.ncycle = CYCLE_TWO,
.data_width = PORT_8BITS,
最后,我们配置时序根据一个RGB565像素需要两个时钟周期,修改如下图5-3-4-1参数的配置:
图5-3-1-1 配置像素时钟
2.18位硬件接口的屏,按照RGB565的的硬件方式去推屏,推出来的屏有锯齿装?
锯齿和正常的现象对比如下图5-3-1-2所示:
图5-3-1-2 RGB565推屏有锯齿
解决方法为修改如下时序,如下图5-3-1-3所示:
图5-3-1-3 推屏时序修改
5.3 MCU屏软件配置、调试步骤及注意事项
以下章节我们专门介绍AC792N 平台上点MCU屏软件配置、调试步骤及注意事项说明,用户可参考此章节了解点MCU屏的过程和方法。
5.3.1 MCU屏软件配置步骤说明
以下配置以AC791N_WIFI_CAMERA工程为例子配置MCU屏,用户在其它工程的点MCU屏配置也可以类似参考部分。
步骤1:在对应的板子头文件里面配置使能TCFG_LCD_ENABLE宏定义,如下图5-3-1-1所示:
图5-3-1-1 LCD宏使能
步骤2:配置对应的MCU屏幕驱动使能和对应的IO口等基本信息的配置,如下图5-3-1-2所示:
图5-3-1-2 MCU屏幕驱动使能
步骤3:在lcd_config.h里面,定义MCU屏幕的宽&高,如下图5-3-1-3所示:
图5-3-1-3 定义MCU屏宽高
步骤4:将MCU屏的驱动添加参编译,我们以Makefile为例子添加驱动(codeblock直接add文件即可),如下图5-3-1-4所示:
图5-3-1-4 将MCU屏驱添加参与编译
步骤5:确认板级添加了屏相关的注册信息,如下图5-3-1-5所示:
图5-2-5 板级注册屏结构体
5.5 SPI屏软件配置、调试步骤及注意事项
六:AC791N 单线DVP摄像头配置说明
6.1注意事项
- AC79最大支持 96Mhz-pclk 输入(考虑稳定性,不建议pclk大于60Mhz)
- 硬件连接DVP单线采用硬件接收数据格式为BT656
- sensor初始化配置成spi 1bit格式
- 目前实际应用有bf20a6 640*480 dvp 1bit 15fps
6.2 sensor硬件原理图
sensor接线按照spi接线不需要hsync vsync信号线
6.3 sensor io口配置-两组sensor
以下io口需要硬件对应,mclk和reset,pwdn未做要求,详情请查看datasheet
sensor驱动配置和板级配置举例说明


6.4 日志报错总结
6.4.1 IIC读取ID不匹配
驱动里面的 iic 设备不对应("iic0"还是"iic1"),原因为:.isp_dev = xx 不对;
board.c 的 iic 的 IO 不对;
摄像头的 xmclk 引脚没有时钟输入,检查 board.c 的 xclk 时钟引脚;
摄像头的 power_down 引脚的电平没接对,一般正常工作低电平(要看数据手册,看看是低电平还是高电平)
摄像头的 reset 引脚的电平是否正确;
检查Device Address、Sensor_ID配置是否正确。
6.4.2 出现video_ioct: err = 11 或 yuv recv timeout
硬件没有收到时钟,检查 pclk 的有没有时钟输出(示波器看下有没有时钟);
pclk频率配置过高,镜头输出时钟不稳定,尝试降低频率;
接线问题:确定 PCLK 和 DATA 数据正确接对在对应 IO,连接没有断线可能;
VDDIO电压错误;
协议不正确:逻辑分析仪 100M 采样率抓数据进行解析帧头帧尾、行头行尾;
ISC 接收情况下检查帧协议是否正确:帧头:ff0000ab,帧尾:ff0000b6,行头:ff000080, 行尾:ff00009d。
6.4.3 报错isc line err 行出错,原因可能有:
初始化 bt656 分辨率和实际摄像头输出的分辨率不一致;
在 2/4/8bit 模式下,可能因为数据位 IO 反接(isc line err 打印很猛下大部分因为这个原因);
协议不符合。
6.4.4 报错 isc bandwith err,带宽不够,原因可能有:
性能带宽不足,如果能正常出图可忽略。
6.4.5 使用 SPI 接收,出现—->SPI_FSTART = 0x%x , 0x%x ,recv data err , reinit spi camera :
数据头出现问题,用逻辑分析仪解析spi数据是否正确。若数据不正确,检查接线及数据格式配置;若数据正确,spi接收不正确,则大部分原因为:配置的边沿采样不符合,尝试更换边沿采样配置。
6.4.6 图像显示异常
数据瑕疵
出现大片绿色:YUV格式顺序错误,在摄像头驱动.c中配置YUV格式顺序;
出现图像条纹、显示分格:采样边沿出错、分辨率设置与镜头实际输出分辨率不一致;
出现蓝色条纹、噪点:检查电源供电
以上报错可能来源于电压不稳定、数据线时钟线毛刺,请确保硬件的稳定性。
七: 常见问题说明(FAQ)
7.1.1 板子烧录后无打印信息,跑不起来
- 测量电流是否有10mA及以上,电流稳定有起来,检查串口是否有配置正确 比如拉IO 电平确定系统是否有真正跑起来
- 若电流未起来, 内存未配置正确, 或flash 问题等未兼容到
- 以上还不行,反馈杰理同学协助排查
7.1.2 UI工程编译报错问题
- 先仔细阅读 fw-AC792_SDK\ui_prj\UI工具使用指南.md 文档 获取UI工程
- 确保当前sdk版本是否和UI工程版本对应,若没有需要更新工具版本以及从GUI市场 市场项目中下载获取相应UI版本

- UI 风格是否选择正确 app_config.h中

- UI打包后,代码编译报错


找不到对应文件,由于generated文件夹下的ui 为GUI工具生成,有些文件原生sdk有,当工具重新生成后文件对应不上,可在codeblock去掉该对应文件,其他vscode编译则需要相应修改makefile 是否有差异。
7.1.3 点屏异常情况
7.1.4 AC792N WIFI认证
7.1.5 接mipi镜头打印出现imc_err 打印
图像表现为闪或花的情况,参考如下文档调试,如未有改善可联系杰理技术同事
792X接MIPI摄像头打印imc_err问题分析.pdf
7.1.6 WIFI性能的测试
进入STA模式。连接实验室的热点,启动测试
AC79系列测试WiFi吞吐率步骤.pdf
7.1.7 如何定位死机跑飞问题
参考如下文档
AC79NN 如何定位异常死机问题.otl
7.1.8 如何查询自己sdk 所用的版本号
参考如下文档
AC79NN 查看详细版本号方法.otl