分类
电脑/技术

ZCU106 MacBook UART VCP 终端调试 波特率

前言

查询:
ls -l /dev/tty.* 

设置:
screen /dev/tty.SLAB_USBtoUART 115200 

Zynq UltraScale+ MPSoC ZCU106 评估套件做开发的时候,会有需要用到终端来调试的时候。Windows和Linux的话,有Xilinx 软件开发套件 (XSDK)可用,安装以后只要直接插入USB连接就可以了。而macOS系统,接入USB却发现不了。

困恼了许久,网上相应的教程也甚少。线插上后毫无反应,怀疑过接口和线材有问题,各种测试后确认可能是没有相关驱动。最后チョウさん帮忙,在Google搜【macos cu baute rate】才解决。

关于波特率的介绍

简介

(チョウさん提醒,加上波特率的介绍)

在电子通讯领域,波特(Baud)即调制速率,指的是有效数据讯号调制载波的速率,即单位时间内载波调制状态变化的次数。它是对符号传输速率的一种度量,1波特即指每秒传输1个符号,而透过不同的调制方式,可以在一个码元符号上负载多个bit位讯号。

注意以下两点常见错误:
1 “波特”(Baud)本身已是速率,所以不需要写成 Baud Rate(Rate 是赘字)。
2 单位“波特”本身就已经是代表每秒的调制数,以“波特每秒”(Baud per second)为单位是一种常见的错误,但是在一般中文口语化的沟通上还是常以“波特率”来描述“波特”(Baud)。

波特率的计算

波特率有时候会同比特率混淆,实际上后者是对信息传输速率(传信率)的度量。波特率可以被理解为单位时间内传输符号的个数(传符号率),通过不同的调制方法可以在一个符号上负载多个比特信息。因此信息传输速率即比特率在数值上和波特率有这样的关系:
$$I=S\cdot \log {{2}}{N}$$
其中$I$ 为传信率,$S$ 为波特率,$N$ 为每个符号负载的信息量,而${\displaystyle \log
{2}{N}}\log _{{2}}{N}$以比特为单位。因此只有在每个符号只代表一个比特信息的情况、或一些简单的调制方式下,例如基带二进制信号、或Bell 103或CCITT V.21(左列两种均为FSK)调制方式等,波特率与比特率才在数值上相等,但是它们的意义并不相同。

ZCU106 板子

ZCU106

步骤1 查询

连接zcu106板子的 USB UART 接口(上图标示左下往上第五行),后输入以下代码,查询已连接USB的接口。

ls -l /dev/tty.* 

image-20200518143550130

lhc:~ lhc$ ls -l /dev/tty.* 
crw-rw-rw-  1 root  wheel   18,   0  5  4 11:54 /dev/tty.Ama-WirelessiAP
crw-rw-rw-  1 root  wheel   18,   4  5  4 11:54 /dev/tty.Bluetooth-Incoming-Port
crw-rw-rw-  1 root  wheel   18,   6  5  4 11:54 /dev/tty.X9-SerialPort
crw-rw-rw-  1 root  wheel   18,   2  5  4 11:54 /dev/tty.ganwangtao-WirelessiAPv2-1

记住上面列出的数据。我电脑里总共发现了0 2 4 6 ,4个已连接的口

步骤2 安装

CP210x USB 至 UART 桥 VCP 驱动器下载软件。

image-00020516175201357

下载之后,打开【Mac_OSX_VCP_Driver】文件夹,进入【SiLabsUSBDriverDisk.dmg】,双击【 Install Disk/Install CP210x VCP Driver】安装。

image-00020516180200585

点击【打开】。

image-00020516180359464

image-00020516180507863

image-00020516180628602

image-00020516180814310

image-00020516181233502

image-00020516181733354

image-00020516181837282

image-00020516181905675

image-00020516182113443

步骤3 连接并设置波特率

主要用到以下的代码,在终端命令行里输入

ls -l /dev/tty.*

image-20200518143451585


lhc:~ lhc$ ls -l /dev/tty.*
crw-rw-rw-  1 root  wheel   18,   0  5  4 11:54 /dev/tty.Ama-WirelessiAP
crw-rw-rw-  1 root  wheel   18,   4  5  4 11:54 /dev/tty.Bluetooth-Incoming-Port
crw-rw-rw-  1 root  wheel   18,   8  5 18 14:25 /dev/tty.SLAB_USBtoUART
crw-rw-rw-  1 root  wheel   18,  10  5 18 14:25 /dev/tty.SLAB_USBtoUART5
crw-rw-rw-  1 root  wheel   18,  12  5 18 14:25 /dev/tty.SLAB_USBtoUART6
crw-rw-rw-  1 root  wheel   18,  14  5 18 14:25 /dev/tty.SLAB_USBtoUART7
crw-rw-rw-  1 root  wheel   18,   6  5  4 11:54 /dev/tty.X9-SerialPort
crw-rw-rw-  1 root  wheel   18,   2  5  4 11:54 /dev/tty.ganwangtao-WirelessiAPv2-1

安装了驱动之后,电脑里新发现了8 10 12 14 四个接口。

连接到A-core CPU到终端

复制第新发现的第一个接口,也就是(8)的这一行,/dev/tty.SLAB_USBtoUART 。然后在终端里输入以下:

$ screen /dev/tty.SLAB_USBtoUART 115200 

image-20200518144154744

这样就是连接上了,虽然看起来是空的,只要你在板子上操作CPU A-core 的话,相应的数据就会显示在你的终端页面上。

连接到R-core CPU到终端

新建一个终端窗口,

image-20200518144911584

和之前的一样,先输入查看列表的代码

ls -l /dev/tty.*

image-20200518145136039

这次复制第(10)的这一行,/dev/tty.SLAB_USBtoUART5 。然后在终端里输入以下:

$ screen /dev/tty.SLAB_USBtoUART5 115200

image-20200518145333225

显示空列表,就是成功连接上R-core了。只要 R5 CPU 有任何动作,都可以在这个终端里查看调试。

以上。