KDocs 研发资料库
  • 视频技术应用资料与文档入口汇总
  • Window下使用Makefile编译代码教程
  • AC52系列PWM使用说明文档
  • AC57系列PWM使用说明文档
  • 52 系列_串口外设的使用说明
  • 57 系列_串口外设的使用说明
  • AC52系列SPI使用说明文档
  • AC57系列SPI使用说明文档
  • AC52系列外部中断使用说明文档
  • AC57系列外部中断使用说明文档
  • AC54&56外部中断使用说明文档
  • AC52 红外捕获中断demo使用说明文档
  • 视频系列SDK汇总及获取方法
  • AC52系列软件典型问题整理文档获取
  • AC791N开发-入门到进阶开发指导文档(完善ing)
  • AC792N开发-入门到进阶开发指导文档(完善ing)
  • 792 littlefs文件系统配置
  • 792N系列 U盘单备份升级说明
  • 792x串口uart升级说明参考

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开发板
本文档以该开发板为例进行开发说明
开发板购买首页首页-杰理科技-淘宝网
image

  1. 准备一台 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
image

进入工程路径里面包含scan_box , wifi_camera, wifi_ipc以及wifi_story_machine工程(具体代码工程支持哪类产品开发,可和杰理工程人员沟通确认)
我们以wifi_camera工程为列
image

进入.cbp所在的工程路径 双击打开AC792N_WIFI_CAMERA.cbp工程
image

点击如下选项进行编译即可
image

至此编译完成,可进行烧录程序
image

2.1.2.1 vscode 编译

image vscode打开后选择terminal中的Run Task
image 选择对应的工程进行编译
image

如下即编译完成,当设备进入烧录模式时,也可以直接进行编译和烧录
image

若工程中有新增减文件,可按照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工程。
image 进入后会看到如下所示的页面
image 要在工程中使用LY风格的UI,需要在app_config.h下打开宏CONFIG_UI_STYLE_LY_ENABLE,如下
image 工程中LY风格UI代码在如下路径下
custom文件夹:是各页面的UI业务代码,是由用户编写并最终在JieLiGuiBuilder UI工具中打包拷贝到如下工程路径中;
generated文件夹:是由JieLiGuiBuilder UI工具生成的各页面lvgl初始化代码,该部分代码绝大多数是JieLiGuiBuilder UI工具自动生成,其中有一些事件回调中的代码是用户在JieLiGuiBuilder UI工具中添加。
image 按键操作UI时,需要将设备的按键消息跟LVGL的按键消息映射起来,这部分的对应关系在custom.c文件中。例如设备的MODE键消息是对应LVGL中的RIGHT消息等,具体关系如下:
image 详细的按键消息流程,可查看下面文档
AC792x按键消息流程.docx

3.1.2 usb_slave页面 - 行车记录仪USB页面

   usb_slave页面是当设备通过usb接到电脑时,弹出显示出来的一个页面,该有3个选项,分别可进入存储器模式、PC摄像头模式和录像模式。  

关键应用层代码:ui_action_usb.c,主要包含usb页面显示隐藏逻辑、USB页面加载卸载回调函数(显示隐藏之后要实现的动作)
usb_slave页面下按键进入选项的流程,下面以进入存储器为例
imageimage Q:什么时候显示和隐藏usb界面?
A:当792检测到usb上线或者下线事件的时候。以WiFicamera工程举例,如图:
image Q:USB页面加载卸载回调函数(显示隐藏),需要appcore切换模式应该如何做?。
A:公版ui_action_usb.c有代码演示,如图
image

3.1.3 video_rec页面 - 行车记录仪录像模式页面

video_rec页面主要有预览下的状态图标、设置菜单等。在预览界面下按设备的MENU键打开录像设置菜单,打开录像设置菜单的UI动作如下
imageimage

打开设置菜单后,显示如下界面。在这个界面下按设备的UP和DOWN键可上下选中设置项,再OK键就进入设置项的子菜单,按MENU键则打开系统设置菜单界面。
image 所有设置项都是在这个容器里面
image

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工程。
    image

进入后会看到如下所示的页面
image 其中记录仪主要页面组成如下:
image

要在工程中使用JL风格的UI,需要在app_config.h下打开宏CONFIG_UI_STYLE_JL_ENABLE,如下
image

工程中JL风格UI代码在如下路径下
custom文件夹:是各页面的UI业务代码,是由用户编写并最终在JieLiGuiBuilder UI工具中打包拷贝到如下工程路径中;
generated文件夹:是由JieLiGuiBuilder UI工具生成的各页面lvgl初始化代码,该部分代码绝大多数是JieLiGuiBuilder UI工具自动生成,其中有一些事件回调中的代码是用户在JieLiGuiBuilder UI工具中添加。
image

3.2.2 usb_slave页面-行车记录仪USB界面

   usb_slave页面是当设备通过usb接到电脑时,弹出显示出来的一个页面,该有3个选项,分别设置792机器可进入massstorage存储器从机模式、uvc从机摄像头模式和行车记录仪录像模式。  

关键应用层代码:ui_action_usb.c,主要包含usb页面显示隐藏逻辑、USB页面加载卸载回调函数(显示隐藏之后要792实现的逻辑动作)
📌以792如何进入massstorage模式为例子(uvc从机摄像头模式类似),相关代码逻辑和UI回调机制如图:
imageimage

📌何时显示和隐藏usb界面
当792检测到usb上线或者下线事件的时候。以WiFicamera工程举例,如图:
image

📌显示USB界面,利用页面的加载函数回调,退出当前的appcore模式,只执行对应的USB任务。
公版ui_action_usb.c有代码演示,如图
image

📌usb页面切换到行车记录仪录像模式
image

ui_action_video_rec.c 利用页面的加载函数回调,让792 切换模式为录像模式:
image

3.2.3 video_rec页面-行车记录仪录像模式

行车记录仪录像模式,主要是记录仪方案的录像功能,UI页面涉及的功能包含如下:

  • 录像模式界面切换到拍照模式。
  • 录像模式界面切换到系统主界面。
  • 录像模式菜单设置页面及相关交互。
  • 录像模式录像参数的UI状态显示(日期时间、车牌、录像参数等UI状态)。

📌录像模式界面切换到拍照模式。
image

📌录像模式界面切换到系统主界面
image

📌录像模式菜单设置页面及相关交互
页面主要控件容器:

  1. view_video_set为录像模式菜单的控件容器,放置着录像模式的所有可配置菜单项的控件对象及相关UI逻辑。
  2. view_subpage为子菜单的控件容器,放置着菜单项配置的控件对象及相关UI逻辑。 view_subpage与view_video_set同一时刻只有一个容器在显示。
    imageimage 当设置按钮img_video_set被按下将根据view_subpage显示状态隐藏或者显示view_video_set
    image

四: SDK代码讲解说明

4.1.1 工程代码配置讲解

codeblock 打开对应工程 以 AC791N_WIFI_CAMERA.cbp 工程为列
截取常用部分,求他功能看如下codeblcok代码文件命名, 顾名思义
image

  1. 针对开发板配置对应板级board和外设定义 头文件board_config.h中定义芯片型号为 :#define CONFIG_BOARD_AC7926A
    板级型号为:#define CONFIG_BOARD_DEVELOP // 开发板
    如下
    image

//芯片型号sdram和flash配置文件
#include "chip_cfg.h"
image

board_develop.c中则为整个设备硬件的外设配置,具体定义 在board_develop_AC7926A.h 头文件中
若客户用的是其他芯片型号,可按上述方式配置对应的型号 如CONFIG_BOARD_AC7922A,CONFIG_BOARD_AC7925B等,如代码中未看到对应型号,客户需要了解自己手头拿到的主控是什么型号,内存大小,以及板子贴的flash 大小, 则可在现有型号上进行内存,flash大小修改,外设则可按照实际板子定义进行灵活修改。
问题:(配置完后烧录无打印,跑不起来,参考章节七 常见问题说明)

4.1.2 代码流程讲解

  1. 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(按键风格) image 系统上电主控 maskrom--> uboot--> main( main入口函数)--> 创建app 应用--> 初始化lvgl ui界面显示
    其中main函数 对系统看门狗,clk时钟,中断,串口等外设的初始化,以及对rtos系统的初始化
    image 最终从app_task_handler线程 启动app应用, 客户可自行查看代码逻辑。
    image 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存储等用法

  1. flash区域分uboot ,code代码区域,res 资源区域,vm系统配置项存储区域,以及reserved区域, vm区域长度可在isd_config_rule.c文件中进行配置 image 存储区域有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 头文件说明
  2. 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 链路。
    image

流程和接口使用说明参考
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模式下去连接的 路由等热点名
image

4.内存优化 wifi 库选择

某些用户拿到的主控内存很小,如内部2MB 的sdram ,内部ram 为128KB
当内存不够用时,可评估更换小内存的wifi 驱动库以及lwip,同时需要评估wifi 吞吐率是否满足当下产品性能,目前该方式适用于791X 系列, 792根据实际情况咨询杰理团队。

image

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
image

5.3 RGB屏软件配置、调试步骤及注意事项

以下章节我们专门介绍AC792N 平台上点RGB屏软件配置、调试步骤及注意事项说明,用户可参考此章节了解点屏RGB屏的过程与方法。

5.3.1 RGB屏软件配置步骤说明

以下配置以AC791N_WIFI_CAMERA工程为例子配置RGB屏,用户在其它工程的点RGB屏配置也可以类似参考部分。
步骤1:在对应的板子头文件里面配置使能TCFG_LCD_ENABLE宏定义,如下图5-3-1-1所示:
image 图5-3-1-1 LCD宏使能
步骤2:配置对应的RGB屏幕驱动使能和对应的IO口等基本信息的配置,如下图5-3-1-2所示:
image 图5-3-1-2 RGB屏幕驱动使能
步骤3:在lcd_config.h里面,定义RGB屏幕的宽&高,如下图5-3-1-3所示:
image 图5-3-1-4 定义RGB屏宽高
步骤4:将RGB屏的驱动添加参编译,我们以Makefile为例子添加驱动(codeblock直接add文件即可),如下图5-3-1-4所示:
image 图5-3-1-4 将RGB屏驱添加参与编译
步骤5:确认板级添加了屏相关的注册信息,如下图5-3-1-5所示:
image 图5-3-1-5 板级注册屏结构体
步骤6:确认屏复位时序(若屏不使用硬件复位情况下)是否正确,如下图5-3-1-6所示:
image 图5-3-1-6 RGB屏软件复位
步骤6:修改RGB屏驱初始化内容,将屏厂提供的初始化序列写入到初始化序列函数里面(有些RGB屏初始化固化在屏里面。此类RGB屏不写初始化即可),如下图5-3-1-6所示:
image 图5-2-6 添加RGB屏初始化序列
步骤7:根据RGB屏的数据格式,配置主控输出RGB格式,如下图5-3-1-7所示:
image 图5-3-1-7 配置RGB格式
步骤8:配置硬件信号线、data数据口、数据位宽和时钟等,配置如下图5-3-1-8所示:
image 图5-3-1-8 配置硬件口和时钟
步骤9:根据屏幕的实际分辨率,配置推屏时序,以480X800为例子,参考配置如下图5-3-1-9所示:
image 图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所示:
image 图5-3-2-1 配置主控推出纯色模式
步骤2:打开USE_TEST_MODE宏后,若RGB屏上没有推出纯色,需要先排查硬件原理设计、电源、复位脚等信号是否正常。一般推荐使用逻辑分析仪抓取初始化的序列是否写入正常,并同时确保每个data数据信号正常。

步骤3:若写入的初始化序列逻辑分析仪抓出来是对的,且各个信号示波器显示都正常;但是RGB屏不显示纯色,则需要联系屏厂确认初始化序列是否正常,有条件的情况下,请屏厂提供测试架进行对抓数据比。
步骤4:纯色模式正常后,关闭USE_TEST_MODE宏,若系统能正常推出UI,则说明RGB点屏已经正常。

5.3.4 RGB屏常见问题及注意事项

  1. 如何根据不同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参数的配置:
image 图5-3-1-1 配置像素时钟

2.18位硬件接口的屏,按照RGB565的的硬件方式去推屏,推出来的屏有锯齿装?

锯齿和正常的现象对比如下图5-3-1-2所示:
image 图5-3-1-2 RGB565推屏有锯齿
解决方法为修改如下时序,如下图5-3-1-3所示:
image 图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所示:
image 图5-3-1-1 LCD宏使能
步骤2:配置对应的MCU屏幕驱动使能和对应的IO口等基本信息的配置,如下图5-3-1-2所示:
image 图5-3-1-2 MCU屏幕驱动使能
步骤3:在lcd_config.h里面,定义MCU屏幕的宽&高,如下图5-3-1-3所示:
image 图5-3-1-3 定义MCU屏宽高
步骤4:将MCU屏的驱动添加参编译,我们以Makefile为例子添加驱动(codeblock直接add文件即可),如下图5-3-1-4所示:
image 图5-3-1-4 将MCU屏驱添加参与编译
步骤5:确认板级添加了屏相关的注册信息,如下图5-3-1-5所示:
image 图5-2-5 板级注册屏结构体

5.5 SPI屏软件配置、调试步骤及注意事项

六:AC791N 单线DVP摄像头配置说明

6.1注意事项

  1. AC79最大支持 96Mhz-pclk 输入(考虑稳定性,不建议pclk大于60Mhz)
  2. 硬件连接DVP单线采用硬件接收数据格式为BT656
  3. sensor初始化配置成spi 1bit格式
  4. 目前实际应用有bf20a6 640*480 dvp 1bit 15fps

6.2 sensor硬件原理图

image sensor接线按照spi接线不需要hsync vsync信号线

6.3 sensor io口配置-两组sensor

image 以下io口需要硬件对应,mclk和reset,pwdn未做要求,详情请查看datasheet
sensor驱动配置和板级配置举例说明
imageimageimage

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 板子烧录后无打印信息,跑不起来

  1. 测量电流是否有10mA及以上,电流稳定有起来,检查串口是否有配置正确 比如拉IO 电平确定系统是否有真正跑起来
  2. 若电流未起来, 内存未配置正确, 或flash 问题等未兼容到
  3. 以上还不行,反馈杰理同学协助排查

7.1.2 UI工程编译报错问题

  1. 先仔细阅读 fw-AC792_SDK\ui_prj\UI工具使用指南.md 文档 获取UI工程
  2. 确保当前sdk版本是否和UI工程版本对应,若没有需要更新工具版本以及从GUI市场 市场项目中下载获取相应UI版本 image
  3. UI 风格是否选择正确 app_config.h中
    image
  4. UI打包后,代码编译报错 imageimage

找不到对应文件,由于generated文件夹下的ui 为GUI工具生成,有些文件原生sdk有,当工具重新生成后文件对应不上,可在codeblock去掉该对应文件,其他vscode编译则需要相应修改makefile 是否有差异。

7.1.3 点屏异常情况

7.1.4 AC792N WIFI认证

JL792X_WiFi蓝牙认证.rar

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

本文档包含以下子页面

  • AC792x按键消息流程
  • 792 littlefs文件系统配置
  • 792X接MIPI摄像头打印imc_err问题分析
  • AC79系列测试WiFi吞吐率步骤
  • AC79NN 如何定位异常死机问题
  • AC79NN 查看详细版本号方法
Prev
AC52系列软件典型问题整理文档获取
Next
AC792N开发-入门到进阶开发指导文档(完善ing)