前言
上手教程
初次使用
串口调试
更新固件
使用TF卡升级系统固件
新旧系统固件的升级与降级
Linux 开发
驱动开发
GPIO 使用
LED 使用
RELAY 使用
SATA 使用
RTC 使用
UART 使用
配件
串口模块
12V 电源适配器
常见问题解答
硬件资料
接口定义
硬件文档
资料下载
iCore-1684XQ
产品规格书

前言

概述

本文档主要介绍基于 iCore-1684XQ 平台的开发方法。

OS 版本

OS 名称 内核版本 支持情况 维护情况
Ubuntu 20.04 5.4 主要维护

文档当前版本

  当前版本
文档名称 iCore-1684XQ 开发手册
版本号 V1.0.0
作者 Firefly Team
修改日期 2023-07-22

修订记录

  • V1.0.0

    • 更新时间:2023-07-22

    • 更新内容:

      • 初版发布

上手教程

初次使用

产品概述

iCore-1684XQ 核心板采用 SOPHON 算能 AI 处理器 BM1684X,可配置 16GB 大内存以及 64GB eMMC ; 支持 32TOPS( INT8 ) 峰 值 算 力,16TFLOPS (FP16/BF16)算力,2TFLOPS(FP32)高精度算力;支持 32 路 H.265/H.264 1080p@25fps 视频解码; 核心板 BTB 接口,拥有PCIe3.0、GMAC、SDIO3.0、I2C、PWM、UART、GPIO接口,易集成入各类边缘嵌入式产品;支持主流编程框架,工具链完备易用度高,算法迁移代价小;提供底板参考设计资料,用户可自主深度化定制;高效适配市场上所有AI算法,为视觉计算、边缘计算、通用算力服务、人工智能、智慧工地/交通/课堂/超市/监控/安防等行业进行AI赋能。

iCore-1684XQ 核心板正面:

_images/iCore-1684XQ_front.jpg

iCore-1684XQ 核心板反面:

_images/iCore-1684XQ_back.jpg

AIO-1684XQ 主板由核心板 iCore-1684XQ 底板 SM7-SBASE-EN4 组成,AIO-1684XQ 板载 M.2(5G)、Mini PCIe、SATA3. 0、Gigabit Ethernet、USB3.0、RS485、RELAY、GPIO 等丰富接口。

_images/AIO-1684XQ.jpg

产品参数:

配件清单

收到开发板后就检查配件清单是否齐全:

  • 带壳的整机,或核心板 iCore-1684XQ 和底板 SM7-SBASE-EN4 各一块及散热风扇

  • 12V-5A 电源适配器一个

选购的配件有:

  • Firefly 串口模块

另外,在使用过程中,你可能需要以下配件:

  • 显示设备

    • 带 HDMI 接口的显示器或电视,及 HDMI 连接线

  • 网络

    • 100M/1000M 以太网线缆,有线路由器

    • WiFi 路由器

  • 升级固件

    • TF 卡,4GB/Class 10 以上

  • 调试

    • USB 转串口适配器

网络远程登录

_images/ethernet_interfaces.png

网口 0 (位于上层)设置了动态 IP,可通过 DHCP 自动获取 IP。

而网口1 (位于下层)设置了静态 IP 192.168.150.1,子网掩码 255.255.255.0,可以将 PC 设置成 192.168.150.2/24 来做初次访问。

PC 如果能成功 ping 通网口 IP 地址,接着就可以用 ssh 登录了,端口号为 22,用户名密码同样均为 linaro:


 

连上开发板后,可以对网络配置进行修改,方法跟 Debian/Ubuntu 桌面版类似,在 /etc/netplan/ 目录下进行配置即可。

串口终端访问

请看《串口调试》

关机

关机请尽量不要直接断开电源,要先运行 sudo poweroff,然后才断电,避免损坏文件系统数据。

另外,如果已经成功进入 Linux 系统,也可以长按电源键,系统会检测到并安全地关闭系统和开发板电源。

 

串口调试

USB 转串口适配器,是 USB 转串口 TTL 适配器的简称。

使用 DEBUG 口调试

如果要进行 U-Boot 或内核开发,需要使用 DEBUG 口进行调试,操作与 RS232 调试是一致的,需要注意的是适配器及其驱动问题。

选购适配器

网店上有许多 USB 转串口的适配器,按芯片来分,有以下几种:

串口 最高波特率 是否推荐 评价 购买链接
CP2104 2Mbps 推荐 支持高波特率通信,稳定性好耐用 点击购买
CH340 2Mbps 不推荐 实际使用中发现,市面上很多 CH340 的实际波特率达不到 1.5 Mbps  
PL2303 1.2Mbps 不推荐 最高波特率达不到 1.5Mbps  

 

一般来说,采用 CH340 芯片的适配器,性能比较稳定,价格上贵一些。

注意: iCore-1684XQ 默认的波特率是 115200。

硬件连接

USB 转串口适配器,有四个引脚:

  • 3.3V 电源(NC),不需要连接

  • GND,串口的地线,接开发板串口的 GND 针

  • TXD,串口的输出线,接开发板串口的 TX 针

  • RXD,串口的输入线,接开发板串口的 RX 针

注意: 如使用其它串口适配器遇到 TX 和 RX 不能输入和输出的问题,可以尝试对调 TX 和 RX 的连接。

AIO-1684XQ DEBUG 口:

_images/debug_connection.png

驱动安装

Windows 系统需要安装适配器驱动(Linux 则不需要):

下载驱动并安装:

如果在 Windows 系统上安装官网的 CP210X 驱动,使用 PUTTY 或 SecureCRT 等工具设置串口波特率为 115200,如果出现设置不了或无效的问题,可以下载旧版本驱动

插入适配器后,系统会提示发现新硬件,并初始化,之后可以在设备管理器找到对应的 COM 口:

_images/debug_find_com.jpg

 

更新固件

使用 TF 卡升级系统固件

准备工具

  • iCore-1684XQ

  • PC 机

  • USB 读卡器

  • TF 卡(建议 Class10 或更高规格, 并根据固件大小选择 8/16/32 GB 容量)

  • 升级固件(请到下载中心下载)

升级步骤

  1. 格式化 TF 卡,使用 MBR 分区 和 FAT32 格式。

  2. 将升级固件压缩包里的全部文件直接解压到 TF 卡上(TF 卡内无文件夹)。

  3. TF 卡插入开发板的 TF 卡卡槽,然后上电开机。

  4. 等待机器升级完成后,取下 TF 卡,断开电源。

  5. 重新上电开机,完成升级的全部操作步骤。

升级状态

  1. 升级过程中,LED 灯会短暂闪烁,表示升级正在进行。

  2. 如果升级成功,绿色 LED 灯会一直闪烁。

  3. 如果升级失败,所有 LED 灯都会灭掉。

注意事项:

  • TF 卡如果超过 32GB,可能因 Windows 系统的限制而无法格式化成 FAT32 格式,故最好选择 32GB 以下大小的 TF 卡。

  • 升级时间有点长,大概要六分钟左右,请耐心等待。

  • 散热风扇一定要确保正确装上。

注意:

  • 仅 1684X 的机器需要更新 MCU 固件,1684 的机器不需要!

  • 升/降级 MCU 固件后才可升/降级 SOC 固件。

如果 AIO-1684X-JD4 (SE7) 或 ICORE-1684XQ (SM7) 当前的固件版本是 20230501,需要降级为 20230301 或 20221201 的旧固件,就需要降级 MCU 固件,反之则需要升级 MCU 固件。MCU 固件和 SOC 固件请到下载中心获取。

怎样判断 MCU 固件是新还是旧?

在板子上运行以下命令:

降级 MCU 固件

方法1: 安装 MCU deb 包

此方法适合普通用户。

升/降级 SOC 固件

升级需下载 Public-1684-Ubuntu2004-Sdk230501-Build20230915.zip,降级需下载 EC-A1684XJD4-Ubuntu2004-20230317.zip,按照使用 TF 卡升级系统固件的说明去制作 TF 升级卡,完成 SOC 固件的升级。

Sophon SDK 开发

Sophon SDK

Sophon SDK是算能科技基于其自主研发的 AI 芯片所定制的深度学习 SDK,涵盖了神经网络推理阶段所需的模型优化、高效运行支持等能力,为深度学习应用开发和部署提供易用、高效的全栈式解决方案。

Sophon SDK既兼容第三代BM1684芯片,也支持第四代BM1684X芯片。

Sophon SDK 包组成

Sophon SDK 包括基础工具包与高阶工具包。

基础工具包

包括:

  • tpu-nntc 负责对第三方深度学习框架下训练得到的神经网络模型进行离线编译和优化,生成最终运行时需要的BModel。目前支持Caffe、Darknet、MXNet、ONNX、PyTorch、PaddlePaddle、TensorFlow等。

  • libsophon 提供BMCV、BMRuntime、BMLib等库,用来驱动VPP、TPU等硬件,完成图像处理、张量运算、模型推理等操作,供用户进行深度学习应用开发。

  • sophon-mw 封装了BM-OpenCV、BM-FFmpeg等库,用来驱动VPU、JPU等硬件,支持RTSP流、GB28181流的解析,视频图像编解码加速等,供用户进行深度学习应用开发。

  • sophon-sail 提供了支持Python/C 的高级接口,是对BMRuntime、BMCV、BMDecoder、BMLib等底层库接口的封装,供用户进行深度学习应用开发。

高阶工具包

包括:

  • tpu-mlir 为TPU编译器工程提供一套完整的工具链,可以将不同框架下预训练的神经网络,转化为可以在算能TPU上高效运行的二进制文件BModel。目前直接支持的框架包括tflite、onnx和Caffe。

  • tpu-perf 为模型性能和精度验证提供了一套完整工具包。

  • tpu-kernel 是芯片底层开发接口,既可以调用专用指令实现深度学习业务逻辑的加速,又可以调用通用指令实现客制的各种算法加速。

https://doc.sophgo.com/sdk-docs/v23.05.01/docs_latest_release/docs/SophonSDK_doc/zh/html/_images/new_SophonSDK.png../_images/new_SophonSDK.png

Sophon SDK 目录

Sophon SDK 提供了十一个文件夹模块,具体如下表所示:

文件夹名 备注
libsophon 支持sophon设备硬件加速的图像处理、张量运算、模型推理等库
sophon-mw 支持sophon设备硬件加速的多媒体库
tpu-kernel 底层开发接口
tpu-nntc TPU编译器工具链
tpu-mlir TPU编译器工具链
tpu-perf 模型性能和精度验证工具包
sophon-pipeline 基于pipeline的高性能推理框架
sophon-img SoC模式安装包
sophon-demo 针对单模型或者场景的综合例程
sophon-sail 对底层接口进行C /Python API封装的接口库
sophon-rpc 在PCIe卡产品上将一些计算任务offload到卡上的ARM CPU 上进行

注:sophon-sail 的安装包可从下载中心获取。

Sophon SDK 解压后的目录

解压后的 SDK 文件结构如下:


SDK主要模块

  • 硬件驱动及运行时库 LIBSOPHON : 包含BMCV、BMRuntime、BMLib等库,用来驱动VPP、TPU等硬件,完成图像处理、张量运算、模型推理等操作。

  • 多媒体库 SOPHON-MW : 支持Sophon设备硬件加速的BM-OpenCV和BM-FFmpeg,支持RTSP流、GB28181流的解析,视频及图片的编解码。

  • 模型编译量化工具链 TPU-NNTC : 支持Caffe、Tensorflow、Pytorch、MXNet、 Darknet、Paddle Paddle、ONNX等框架模型的模型转换;支持模型量化:原始模型 -> FP32 UModel -> INT8 UModel -> INT8 BModel, 同时提供 auto-cali 自动量化工具。

  • 张量运算及图像处理库 BMCV : 色彩空间转换、尺度变换、仿射变换、投射变换、线性变换、画框、JPEG编码、BASE64编码、NMS、排序、特征匹配。

  • 设备管理 BMLib : 基础接口:设备Handle的管理,内存管理、数据搬运、API的发送和同步、A53使能等

  • 算丰AI加速库 SAIL : 支持Python/C 的高级接口,是对BMRuntime、BMCV、BMDecoder等底层库接口的封装。

  • 自定义算子高级编程库 BMLang:基于C 的面向Sophon TPU的高级编程库,与硬件信息解耦,无需了解硬件架构,使用张量数据(bmlang::Tensor)和计算操作(bmlang::Operator)编写代码,最后使用bmlang::compile或bmlang::compile_with_check来生成TPU可以运行的BModel;此外也支持使用BM168X中的arm cpu来实现TPU尚不支持的算子。

  • 算法并行加速编程库 TPUKernel:基于Sophon芯片底层原子操作接口的底层编程接口,需要熟悉硬件架构和指令集。

  • 模型性能和精度验证工具 TPUPerf : 可对模型进行性能分析和精度验证。

驱动开发

GPIO 使用

BM1684X 芯片包含 3 组 GPIO 控制器,每个控制 32 根 GPIO,与 Linux 的设备节点对应如下:

GPIO控制器 Linux设备节点 GPIO 物理编号 GPIO 逻辑编号
#0 /sys/class/gpio/gpiochip480 0到31 480到511
#1 /sys/class/gpio/gpiochip448 32到63 448到479
#2 /sys/class/gpio/gpiochip416 64到95 416到447

比如要操作 GPIO6,则需要:

有以下注意事项:

  • 如果 GPIO 已经被其他驱动申请了的话,是无法导出 (export) 成功的,也就无法进行后续的读写操作。

同时 AIO-1684XQ 通过双层的接线端子预先注册了 4 个 GPIO 可供用户直接操作。 

_images/gpio.png

例如操作 GPIO5


LED 使用

AIO-1684XQ 开发板上有 2 个 LED 灯:

    颜色               位置         标号       描述
黄色 DIY_LED 用户控制
绿色 左(靠近电源口) WORK_LED 上电打开

控制 LED 灯状态的命令示例(需要 root 权限):


AIO-1684XQ 开发板上有 2 个 RELAY 控制单元:

_images/relay.png

每个 RELAY 单元的参数为:

_images/relay_parameter.png


AIO-1684XQ 开发板上有 1 个 SATA3.0 接口:

_images/sata.png

硬件连接好 SATA 硬盘之后,待系统上电后,通过控制以下端口做到 SATA 设备的动态识别以及断开(需要 root 权限):


RTC 使用

AIO-1684XQ 开发板上有 DS1307 的 RTC (Real Time Clock) 芯片,可通过该芯片去设置系统时钟。

以下是常见的 RTC 操作:


UART 使用

简介

AIO-1684XQ 支持 3 个 UART 设备:

设备名称 接口功能 波特率 是否全双工 电平
/dev/ttyS0 调试串口 115200 TTL
/dev/ttyS1 RS485 9600 RS485
/dev/ttyS2 RS485 9600 RS485

AIO-1684XQ 开发板的 RS485 接口图如下:

_images/rs485_connection.png

调试方法

用户可以根据不同的接口使用不同的主机的 USB 转串口适配器向开发板的串口收发数据,例如 RS485 的调试步骤如下:

(1) 连接硬件

将开发板的 RS485B-A、RS485B-B 以及 GND 引脚分别和主机串口适配器(USB 转 485 转串口模块)的 A、B、GND 引脚相连。

(2) 打开主机的串口终端

在终端打开 kermit,并设置波特率:


然后在主机的串口终端输入字符串 “Firefly RS485 test…”,设备端即可见到相同的字符串。

配件

串口模块

USB转TTL串口模块

产品参数

  • 品牌:Firefly

  • 尺寸:25mm*15.5mm

实物图

_images/module_serial_list.png

连接方法

USB 转串口适配器,有四个引脚:

  • 3.3V 电源(NC),不需要连接

  • GND,串口的地线,接开发板串口的 GND 针

  • TXD,串口的输出线,接开发板串口的 TX 针

  • RXD,串口的输入线,接开发板串口的 RX 针

注意: 如使用其它串口适配器遇到 TX 和 RX 不能输入和输出的问题,可以尝试对调 TX 和 RX 的连接。

AIO-1684XQ DEBUG 口:

_images/debug_connection.png

12V 电源适配器

产品参数

  • 产品:电源适配器(桌面式)

  • 规格:美规/欧规

  • 输入标准:AC100-240V 50/60Hz

  • 输出标准:12V-5A

注意: iCore-1684XQ 一体机正常工作需要电源 12V/5A,电流低于 5A 可能会因电流过小而异常重启,为了保证开发板的正常工作,请使用电压为 12V,电流为 5A 的电源,推荐使用 Firefly 官网电源配件。

实物图

_images/module_power_adapter3.png

常见问题解答

FAQs

个别 USB3 不支持 USB2.0 设备

_images/usb20_no.png

如上图所示,在 4 个 USB3.0 中,位于左上角的 USB3.0 接口是不支持 USB2.0 设备的,而其余 3 个 USB 接口则支持 USB2.0 设备的。

5G 与 USB3.0 、SATA 复用的问题

在硬件上:

  • SATA3.0 接口以及 USB3.0 由同一路 PCIE0 扩展出来

  • 5G 的M.2 座子由 PCIE1 扩展出来

而 PCIE0 以及 PCIE1 皆由硬件内部的 RC_PCIEX 扩展出来,但是两者不能同时使用,不是 HUB 的概念。

所以当你在使用 USB3.0 或者 SATA 硬盘的时候,5G 是无法使用的。

同理但你在使用 5G 的时候, USB3.0 以及 SATA 硬盘也是无法使用的。

以太网接口的 IP 配置

_images/ethernet_interfaces.png

  • 网口 0 (位于上层)设置了动态 IP,可通过 DHCP 自动获取 IP。

  • 而网口1 (位于下层)设置了静态 IP 192.168.150.1,子网掩码 255.255.255.0,可以将 PC 设置成 192.168.150.2/24 来做初次访问。

PC 如果能成功 ping 通网口 IP 地址,接着就可以用 ssh 登录了,端口号为 22,用户名密码同样均为 linaro:


连上开发板后,可以对网络配置进行修改,方法跟 Debian/Ubuntu 桌面版类似,在 /etc/netplan/ 目录下进行配置即可。

系统默认的用户名和密码是什么?

  • 用户名:linaro

  • 密码:linaro

  • 切换超级用户: sudo -s

开机异常并循环重启怎么办?

有可能是电源电流不够,请使用电压为 12V,电流为 5A 以上的电源。

接口定义

整机接口定义

AIO-1684XQ 提供了丰富的接口,主要包括:

  • 12V 电源接口(5.5*2.5mm)

  • 4 x USB 3.0

  • 2 x 千兆以太网

  • TF 卡槽

  • SIM 卡槽 x 3

  • 风扇接口

  • Power 按键

  • Reset 按键

  • 调试串口(即图中 Debug 口)

  • 工业级串口 (RS485, TTL)

  • Mini PCIe 接口(4G LTE)

  • M.2 接口(5G Module)

  • SATA 接口(SATA3.0 HD)

具体如下图:

_images/interface_front.png

_images/interface_side.png

4G 模组天线连接

天线规格:胶棒天线 4GLTE-5db;圆头

_images/4g_antenna_connection.jpg

硬件文档

资料下载

资源下载

 

电话咨询
微信咨询
留言