Skip to content

Z210核心板使用指引

我们以核心板 + 底板为例,讲解基础的使用问题。

  • 如何与电脑连接?
  • 如何运行程序?
  • 如果接的其他屏幕,如何调屏?

调试串口

调试串口是一组专用的串口,连接该串口,就是一个 Shell 终端。
可以直接执行命令,控制整个系统。
在没有其他的连接方式时,这是一个可以连接设备的保留方案。

使用PuTTY连接调试串口

PuTTY 是一款免费、开源的远程连接软件,也可以基于串口连接Linux设备。

  1. 先将核心板供电,可以选择5V的电源,或者直接利用底板上的Type-C USB口,用USB数据线与电脑连接,完成供电。

  2. 准备一个USB转TTL的串口板。

  3. 找到底板上的DEBUG_TXDEBUG_RXGND脚(底板背面有标注脚位),使用杜邦线,分别连接到串口板上的RXDTXDGND

  4. 最终连接状态如下图。

  5. 通过设备管理器,确定串口板在电脑上对应的串口号。
    如果你正在使用Windwos系统,按一下键盘上的Win键,会弹出搜索框,输入设备管理器,会自动搜索,再点击搜索结果,即可进入电脑的设备管理器界面。
    展开端口节点,如果串口板工作正常,可以看到对应的串口号,我这里显示串口号是COM5

  6. 点此下载 PuTTY软件。

  7. 运行PuTTY软件,选择串口连接类型,输入串口号COM5(改为你电脑上的串口号),波特率设置为115200,最后点击打开

  8. 如果以上步骤都正常,能看到一个黑底白字的窗口。
    这时候,多次输入键盘的Enter键, 如果你看到这样的输出,说明连接正常。
    这个状态下,可以输入想要执行的命令,再按Enter键执行。

  9. 我们可以先尝试执行查看日志的命令,记住这条指令,后续开发中,会经常使用它。

    shell
    logcat -v threadtime

  10. 刚才的指令会实时显示程序的日志(也会显示已缓存的日志)。
    如果按 Ctrl-C 组合键,可以中止刚才执行的命令,中止后,又会回到可以输入命令的状态。

注意

调试串口不能用作协议通信。
协议通讯请使用普通串口,如TXD2、RXD2。

USB

底板上,有一个Type-C的USB口,可以根据需求,切换为不同的功能(只能三选一)。

  • ADB
    常用于调试,传输速度快,建议调屏时,开启此功能。
  • U盘
    可以接一个U盘,读取U盘内的文件。
  • WIFI
    如果开启Wi-Fi功能,这个USB口会失效,既不能作为U盘,也不能作为ADB使用。

USB ADB功能

使用USB线与电脑连接,可以使用ADB功能。
ADB 也是一种与设备的连接方案。
与调试串口相比,ADB拥有更快的传输速度,使用起来也更灵活。在后续的开发中,可以通过这个模式快速运行程序。
在有条件的情况下,我们更愿意使用这个方案连接设备。

使用USB ADB连接设备

  1. 底板上,有一个Type-C的USB口,使用数据线与电脑连接,同时数据线也可以为核心板供电。

  2. 默认情况下,设备是U盘模式,U盘模式下,只能用来接U盘,用于读取U盘。

    注意

    U盘模式下,即使设备与电脑的USB线连接,电脑也是看不到任何USB设备的。

    连接调试串口,在PuTTY软件中,依次输入以下命令。

    shell
    rm -rf /data/*
    shell
    reboot

    第一条命令的作用是删除所有的配置。确保下次开机时,Wi-Fi不会自动开启(Wi-Fi和USB 功能只能二选一)。
    第二条命令是控制设备重启(重新上电是同样的效果)。
    等待几秒,设备重启完成后,在PuTTY中,继续执行以下命令。

    shell
    cat /sys/devices/soc0/soc/soc:usbotg/usb_device

    如果一切正常,这时候电脑会识别到一个USB设备,表示成功开启USB ADB功能。

    注意

    如果是默认的程序,USB ADB 不会记忆,设备重启后,需要再次设置。

USB U盘功能

底板上,有一个Type-C的USB口,使用转接线与U盘连接,可以在设备里读取U盘上的文件。

开启USB U盘功能

  1. 连接调试串口,在PuTTY软件中,依次输入以下命令。

    shell
    rm -rf /data/*  
    reboot

    第一条命令的作用是删除所有的配置,确保下次开机时,Wi-Fi不会自动开启(Wi-Fi和USB功能只能二选一)。
    第二条命令是控制设备重启。

  2. 等待几秒,设备重启完成后,在PuTTY中,继续执行以下命令。

    shell
    cat /sys/devices/soc0/soc/soc:usbotg/usb_host

    如果一切正常,这时候电脑应该会识别到一个USB设备,表示成功开启USB U盘功能。

    注意

    仅支持FAT32格式的U盘。

如何调屏 / 设置屏参

如果你没有选用配套的屏,直接接上自己的屏,应该不能正常工作,需要你进一步调屏,屏幕才能正常显示。
调屏前,推荐开启USB ADB功能,调试时会更加方便。

然后具体的调屏步骤请参考调屏工具文档

在代码中切换USB功能

Z210核心板的USB有两种工作模式:host和device,也可称为U盘模式和adb模式。设备默认是U盘模式,用来读取U盘中的文件。如果要使用USB下载调试应用,需要将USB接口切换到adb模式。切换模式通过以下代码实现:

注意:切到模式需要等wifi完全关闭,否则可能导致死机,adb模式下需要关闭wifi

  • U盘模式:可以读取U盘中的文件。
    c
        //切换到U盘模式
        system("cat /sys/devices/soc0/soc/soc:usbotg/usb_host");
  • adb模式:将USB接口作为调试接口,供调试程序使用。调试程序可参考adb调试查看打印日志
    c
        //切换到adb模式
        system("cat /sys/devices/soc0/soc/soc:usbotg/usb_device");
  • 查看模式:查看当前USB接口的工作模式。
    shell
        //查看当前USB接口的工作模式
        cat /sys/devices/soc0/soc/soc:usbotg/otg_role

这些命令都可以在flythings下进行输入运行,示例:

在默认应用的设置中,可以看到USB接口的工作模式, 如下图:

打开adb调试模式后,可以进行调试程序的下载。注意:打开为adb模式,关闭为u盘模式,adb模式下无法打开wifi。

下载调试

USB下载调试

由于默认的模式是U盘模式,如果我们想要使用USB接口进行下载调试软件,就需要将其转成adb模式,先按照USB ADB功能切换到adb模式。切换完成后,打开FlyThings IDE开发工具,在菜单栏上,依次选择菜单 调试配置 -> ADB配置->USB,选择确定,开始下载调试。
1. 在IDE菜单栏中,选择调试配置下拉菜单中的ADB配置

2. 连接方式选择USB,设置完成后应用并关闭。
3. 右击项目文件,选择快速运行,开始下载调试,快捷键为 Ctrl + Alt + R

网络调试

  • 如果选用WIFI,需要先进入设备的WIFI设置界面,将机器连接到与电脑相同的网络,也就是说,电脑与机器必须接入同一个WIFI(如果网络不同,将无法连接)。

    网络连接成功之后,点击WIFI设置界面右上角菜单按钮查看设备的IP地址。

  • 如果选用以太网,先进入机器的以太网设置界面,点击界面右上角按钮查看设备的IP地址

得到设备的IP地址后,打开FlyThings IDE开发工具,在菜单栏上,依次选择菜单调试配置 -> ADB配置->网络, 将机器IP填入,选择确定。工具将尝试与机器连接,如果提示连接成功,则表示正常。如果提示失败,则需要检查IP是否正确?机器连接WIFI是否正常?

  • 完成上一步后,就可以直接下载程序了。在项目资源管理器中,选中项目名,右键,在弹出菜单中选择下载调试菜单, 选择后,它会先自动编译一次,编译成功后,再将程序下载到机器中,如果没有提示错误,那么你就可以看到机器程序已经得到了更新。同样,在选中项目后,你还可以使用快捷键 Ctrl + Alt + R 下载调试。

软件升级

软件下载调试只是临时将程序下载到设备中,如果想永久保存,需要进行固化升级。固化升级首先需要制作升级包,然后通过USB线或网络的方式进行升级。升级包需要通过IDE编译生成,在IDE工具栏中找到下图所示的按钮,点击箭头按钮设置升级包的保存路径,点击圆形按钮进行编译,编译成功后,它会在设置的路径下会生成一个名为update.img的文件,这个文件就是升级包。

通过USB线升级

首先将设备切换到adb调试模式,用数据线连接电脑和机器的USB口,在终端输入命令:

  • 此处adb命令是在IDE工具中打开的系统命令行中输入,并不是调试串口的终端。

  • 将升级包update.img推送到机器的/mnt/extsd/路径中

        adb push /path/update.img /mnt/extsd/
  • 将自动升级zkautoupgrade文件推送到机器的/mnt/extsd/路径中,此文件为空白文件不要后缀名,作用是告诉机器需要自动升级。

        adb push /path/zkautoupgrade /mnt/extsd/
  • 将logo图片boot_logo.JPG推送到机器的/mnt/extsd/路径中,此图片为开机启动logo图片,可以替换掉原来的图片。

        adb push /path/boot_logo.JPG /mnt/extsd/
  • 重启应用

        adb shell setprop ctl.restart zkswe

通过网络升级

通过网络升级不需要接线,需要知道机器的IP,在终端输入命令:

  • 连接机器的IP地址,例如IP为:192.168.1.4

        adb connect 192.168.1.4

    回车运行出现connect 192.168.1.4:5555代表连接成功

  • 将升级包update推到/mnt/extsd/路径中

        adb push update.img /mnt/extsd/
  • 将自动升级zkautoupgrade文件推到/mnt/extsd/路径中,

        adb push zkautoupgrade /mnt/extsd/
  • 将logo图片推到/mnt/extsd/路径中

        adb push boot_logo.JPG /mnt/extsd/
  • 重启应用

        adb shell setprop ctl.restart zkswe

通过插U盘升级

由于usb接口需要插U盘,所以要外接5V电源。必须将USB接口切换到U盘模式,同时wifi也需要关闭,才能进行插U盘升级。具体步骤如下:

  1. 外接5V电源,并连接调试串口,在终端输入命令。

        rm -rf /data/*  
        reboot
    • 第一条命令的作用是删除所有的配置,确保下次开机时,Wi-Fi不会自动开启(Wi-Fi和USB功能只能二选一)。
    • 第二条命令是控制设备重启,重启后在应用不设置的情况下,USB接口默认是U盘模式。
  2. 等待设备重启完成,将升级包update.img放到U盘中。

    • 自动升级文件为空白文件不要后缀名,作用是告诉机器需要自动升级。
    • 可放入logo图片为开机启动logo图片,替换掉原来的logo。
  3. 将U盘插入设备,设备会自动识别到U盘,如果U盘中有自动升级文件,将开始自动升级。

  4. 完成升级后,将U盘拔出,设备会自动重启。

更多升级请参考固化升级

插U盘通过调试串口刷机

如果升级过程当中不小心断电了,可以通过插U盘刷机的方式恢复,由于此方法USB接口需要插U盘,所以要外接5V电源,而且必须将USB接口切换到U盘模式。具体步骤如下:

  • 通过调试串口刷机电脑需要通过USB转TTL串口模块连接板子的调试串口。

  • 将刷机文件名字改为full_update.zk放入U盘插入板子。 注意:此处刷机文件是指系统包并不是应用的update.img文件,一般z210_xxx_zkswe.sd文件,sd文件需重命名为full_update.zk。

  • 在将命令输入界面按回车然后上电,进入UBOOT命令操作模式(如果没出现就反复操作),如下图:

  • 进入UBOOT命令操作模式输入zkupdate 0x21000000 0xb1 1回车就会开始刷入数据。输入数据过程中会有操作进度的日志输出(如下图),界面上有的机器也会显示刷机进度条。等待升级完成拔出U盘重启机器即可。

通讯串口

Z210核心板除了调试串口外还有一个功能串口(/dev/ttyS2),对应引脚为TXD2RXD2,用户可用它进行串口通讯。

使用SSCOM串口调试助手

SSCOM是一款开源的串口调试工具,支持多种串口通讯协议。

  1. 先将核心板供电,可以选择5V的电源,或者直接利用底板上的Type-C USB口,用USB数据线与电脑连接,完成供电。

  2. 准备一个USB转TTL的串口板。

  3. 找到底板上的TX2RX2GND脚(底板背面有标注脚位),使用杜邦线,分别连接到串口板上的RXDTXDGND

  4. 最终连接状态如下图。

  5. 点击设置按钮,选择demo样例,进入通讯串口测试界面。

  6. 下载并安装SSCOM工具,点此下载

  7. 打开SSCOM工具,选择端口号COM3(选择自己的USB转TTL串口板对应的端口号),波特率设置为115200

  8. 点击打开串口按钮,连接成功后从上图可以看到设备发送的串口数据。

    //串口调试助手上收到的串口数据
    [10:30:53.778]收←◆FF 55 00 00 01 44 67 
    [10:30:56.754]收←◆FF 55 00 00 01 47 64 
    [10:30:59.755]收←◆FF 55 00 00 01 AD FE 
    [10:31:02.755]收←◆FF 55 00 00 01 83 28 
    [10:31:05.755]收←◆FF 55 00 00 01 51 5A
  9. 点击发送按钮,可以向设备发送数据。

  1. 核心板上收到串口调试助手的数据,数据0x51对应的十进制为81。

  2. 短接TX2RX2脚,可以实现串口数据的自发自收。

此处使用的核心板软件,在本文末尾Z210出厂样例代码中。 串口更多的使用方法,请前往开发文档中串口通讯章节,具体请参考Linux串口编程

ADC使用

z210核心板支持ADC功能,需要用户自行设计ADC外围电路,下面是获取ADC值代码示例:

c++
    #include "utils/AdcHelper.h"
    static void testAdc() {
        
    /*
    *设置adc通道,默认是0,可再0-5之间设置
    *当获取的adc值不正确时可尝试设置通道
    */
    AdcHelper::setChannel(0);
        /**
    * 设置adc使能状态
    *
    * @param true 使能
    *        false 禁止   
    *         默认是使能状态
    */
    AdcHelper::setEnable(true);

    for (int i = 0; i < 10; i++) {
        // 读取adc值
        int val = AdcHelper::getVal();
        LOGD("adc val = %d\n", val);
    }
    }

更多ADC使用方法,请参考ADC使用

播放音频

Z210核心板支持播放音频文件,具体流程请参考播放音频

样例下载

z210出厂样例代码下载点此下载

样例包含了控件demo、mqtt协议、http协议等等,具体请参考样例代码