UP Board 串口使用心得

2023-05-16

前言

原创文章,转载引用务必注明链接。

本文使用Markdown写成,为获得更好的阅读体验和正常的图片、链接,请访问我的博客:

http://www.cnblogs.com/sjqlwy/p/up_serial.html

UP Board 关于如何使用串口资源的官方介绍仅有Serial console和Pinout维基页面,后者提供了树莓派40Pin串口通信的示例。整体而言所述较少,官方论坛有零星提及(一、二),所以本文在我个人使用基础上写成,分享给大家,希望能有所帮助。

本文以ubilinux 3系统为例。

UP 板的串口资源

UP默认有两个串口UART0和UART1可供使用,此外USB 3.0 OTG接口可虚拟出一个串口使用。串口常用的有串口通讯(连接其他模块、开发板)和串口终端(Serial Console,可以登录系统)

90fd3da6gw1fbex1qxbz0j20eg0bc769.jpg

10-pin 接口 CN7 (UART0)

使用官方的CN7转接器可以获得额外的串口和两个USB2.0接口,只有该串口可以设置BIOS(开机按ESC)。设备为/dev/ttyS090fd3da6gw1fbex44803oj20jv0bajs8.jpg

【CN7转接器】购买链接,售价9.99刀(不含税不包邮)。另外私以为官方店卖的东西售价略高(老外钱好赚么。。。),另外国内研扬科技也开了官方天猫店,希望尽快能上架相关配件,最好有点优惠或者符合我国消费水平的定价。

将转接器连接到UP板之后,可以在ubilinux里通过minicom、picocom等工具来访问,或在Windows主机下使用putty、Xshell访问。

设置参数如下

  • 波特率(Baud Rate): 115200
  • 数据位(Data Bits): 8
  • 停止位(Stop Bits): 1
  • 检校位(Parity): None|无
  • 硬件流控(Hardware flow control): None|无

关于硬件流控(CTS/RTS)的更多信息可以看这里

接线如下(官方以FTDI Table为例)

90fd3da6gw1fbexq9nv5rj204e03674a.jpg

90fd3da6gw1fbexvq0ba0j20ia06xmxp.jpg

根据官方转接器文档和FTDI Cable线的定义可知:黑色为GND,红色为RX,白色为TX。需要公对公杜邦线连接。

该串口可以设置BIOS和调试系统(Serial Console)。另外安装ubilinux时也支持Install (serial console)安装模式(有屏幕有键盘,为啥还要这个。。。)安装完ubilinux后,UART0可以用来登录系统,UART1用来进行串口通信。

由于我没有CN7转接器,无法进一步测试。但是觉得这样的设计不甚合理。没有显示器的情况下根本无法操作UP,这个可能和其设计理念有关。

40-pin GPIO header (UART1)

该串口无法访问设置BIOS(可能因为UART0是Intel Atom Z8350引出的,,UART1是Max V引出的?)。设备名/dev/ttyS1,为了兼容树莓派,别名/dev/ttyAMA0接线方式参考树莓派引脚顺序即可,前文有过阐述,因为该串口默认不是作为Serial Console的,所以当时并没有显示登录调试信息。我们下面会对该端口进行演示。

90fd3da6gw1fb6o1z9n5wj20bk0i10vn.jpg

USB3.0 OTG 虚拟串口

该串口无法访问设置BIOS(使用USB Gadget 驱动虚拟出来的,系统启动后才会加载该驱动)。

需要在BIOS里面将USB3.0 OTG接口从host模式设置为Device模式:

Chipset > South Bridge > Default DRD ConfigDeviceMode 
Chipset > South Bridge > USB OTG SupportPCI mode

另外要在ubilinux里面加载USB Gadget驱动:

  • sudo modprobe g_serial
  • sudo systemctl start getty@ttyGS0

此时使用Usb 3.0 Type-A转micro Type-B线连接到电脑上即可访问该串口(是不是和Intel Edison很像~)

90fd3da6gw1fbeyq3al30j20m80a60u3.jpg

关于USB Gadget的更多信息请访问我之前写的文章《使用Wyliodrin在 Intel Edison 上轻松远程开发》。文末有提到相关信息。通过USB Gadget驱动可以实现虚拟网卡、虚拟串口、存储设备的功能,有待我们进一步开发。

UART1功能演示

串口通信

根据官方40Pin的介绍,我们一起来看看UART1的串口通信功能。PS:串口通信和串口终端功能是互斥的,无法同时使用。

使用的设备包括:

  1. 串口调试模块(USB2TTL为例)。手头有三款:CMSIS-DAP CDC虚拟串口、FTDI Table、CH340G
  2. 杜邦线

90fd3da6gw1fbf2bsalgdj20io0gm0xh.jpg

正常安装完相关驱动,使用杜邦线与UP板的6/8/10引脚分别连接,我们需要选用一款Windows下的图形界面串口调试工具。这里找到三个(有更好的选择可以推荐给我,不胜感激。当然你也可以去github上找找或者自己编写):

  • 友善串口调试助手——http://www.darkwood.biz/ 共享软件,试用30天,售价19.98元,很不错。
  • common——https://github.com/movsb/common 免费开源,但是没能识别虚拟串口,不支持TCP/UDP调试,不支持硬件流控,由于作者毕业,开发停滞,此外功能不完善且存在BUG。
  • Realterm——https://realterm.sourceforge.io/ 免费软件,功能强大,界面极丑

90fd3da6gw1fbezfqskuwj20jf0e6mz9.jpg

90fd3da6gw1fbezg1co22j20fq0eytay.jpg

90fd3da6gw1fbezgcj938j20ji0cg40g.jpg

从UP板输出信息到UART1

将UART1配置为Raw Data传输,无流控,波特率115200:

stty -F /dev/ttyS1 115200 raw -echo -echoe -echok -crtscts

向主机发送一个字符串:

echo "Hello World from UP Board" > /dev/ttyS1

这时我们就可以在Windows主机这里接收到UP板发送的信息了。

从主机发送信息到UP板UART1

UP板监听UART1:

cat /dev/ttyS1

从Windows主机发送信息和UP板收到信息:

90fd3da6gw1fbf2m6ekbkj20zx0eawmi.jpg

遇到错误?

  1. 排除接线是否正确

  2. 排除USB2TTL模块是否故障

    使用金属短接TX、RX,然后发送数据看看是否能接收。

UP板通过UART1与其他开发板、串口模块通信

图文待补充。表示昨天刚上完24小时,明早要开始上个36小时。。。太累了。

串口终端(Serial Console)

UP Board默认使用UART0才能进行串口登录,而一般大家手中都不会有官方的那种CN7转接器需要额外购买(官方計劃通~),那么我们能否通过设置让UART0可以进行串口登录呢?

相信使用过树莓派的都了解过如何使用串口登录,比如树莓派实验室的这篇文章,其主要是通过修改/boot/cmdline.txt文件来实现的。那么对于UP Board,应该怎么办?这里我们又找到了万能的ArchWiki Working with the serial console 。UP Board使用GRUB2引导+systemd控制系统启动,设置UART1串口登录方法如下:

修改/etc/default/grub文件(nano或vim等,将ttyS0改为ttyS1):

GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS1,115200n8"

并增加以下信息:

## Serial console
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"

重新生成grub.cfg文件:

grub-mkconfig -o /boot/grub/grub.cfg

重启之后即可以通过UART1登录系统啦。

90fd3da6gw1fbf0n7xxklj20j50j6ael.jpg

后记

UP板的GPIO接口使用3.3v电平,一般的Arduino使用5v电平,需要注意。另外可以看到3个可用的串口中,只有UART0具有完整的调试功能,而该接口需要额外购买并不常见的转接器,官方没有像Beaglebone Black那种引出专门的接口原因不得而知,或者为了卖转接器,或者为了控制体积——毕竟Intel也说,在这么小的体积上做出一个采用Atom的小电脑很厉害。

写了很多关于UP基础的东西,而且尽量黑箱测试,以多发现UP板的问题,也因此走了不少弯路。由于UP社区建立不久,相关文档比较匮乏,在我看来,爱板网的这次试用应把大多数精力集中在UP特色与特殊之处,而高级的通用的应用可以放在后面写,毕竟有些东西在多个平台都适用,甚至直接一键脚本就可以了。

转载于:https://www.cnblogs.com/sjqlwy/p/up_serial.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UP Board 串口使用心得 的相关文章

  • pdf文件显示白色

    主要原因是pdf默认关联应用 xff0c 在版本更替时出现了错误 xff0c 重新给pdf设置一下默认关联应用即可 window10步骤如下 xff1a 1 打开我的电脑 选择计算机 打开设置 2 点 应用 3 选择 默认应用 中的 按文件
  • mysql数据库想要保持固定条数数据的操作

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 限定数据库数据条数 xff1a SELECT FROM 表名 order by 字段 desc limit 条数 这样查询到的是倒数几条数据 xff0c 保证了最新的数据
  • Docker容器的创建、启动、和停止

    1 容器是独立运行的一个或一组应用 xff0c 及他们的运行环境 容器是Docker中的一个重要的概念 2 docker容器的启动有三种方式 a 交互方式 xff0c 基于镜像新建容器并启动 例如我们可以启动一个容器 xff0c 打印出当前
  • 每天一个linux命令(4):mkdir命令

    linux mkdir 命令用来 创建指定的 名称的 目录 xff0c 要求创建目录的用户在当前目录中具有写权限 xff0c 并且指定的目录名不能是当前目录中已有的目录 1 xff0e 命令格式 xff1a mkdir 选项 目录 2 xf
  • ansible报错:Failed to connect to the host via ssh: Permission denied

    原因 xff1a 没有在ansible管理节点 xff08 即安装ansible的节点 xff09 上添加目标节点 xff08 即需要管理的节点 xff09 的ssh认证信息 解决办法 xff1a 1 在管理节点生成公钥 ssh keyge
  • 值传递和引用传递-----函数参数传递的两种方式

    回顾 xff1a 在定义函数时函数括号中的变量名成为形式参数 xff0c 简称形参或虚拟参数 xff1b 在主调函数中调用一个函数时 xff0c 该函数括号中的参数名称为实际参数 xff0c 简称实参 xff0c 实参可以是常量 变量或表达
  • Andriod监听支付宝收款实现个人支付宝支付接口!附安卓App

    首先呢 xff0c 我不会开发安卓App xff0c 这款APP是我在酷安网看到的 xff0c 非常简单的一款APP xff0c 安装后填写我们的后端接口 xff08 用于接收收款通知的 xff09 就可以接收收款通知了 所以就算我们没有这
  • 记一次异常排查过程:druid连接池抛出DataSourceDisableException

    为什么80 的码农都做不了架构师 xff1f gt gt gt 先交待下项目背景 xff0c 项目中有个功能是从mysql中获取数据库信息来创建数据库连接 xff0c 用的连接池是druid xff0c jar包版本是1 0 9 1 异常的
  • 3389、135、137、138、139、445等端口解释和关闭方法

    3389端口 xff1a 在服务器中 xff0c 3389端口的开放是必需的 xff0c 因为任何服务器的管理员如果想很好地管理自己的服务器 xff0c 都需要开启这种方便的网络管理服务 不过3389端口一旦开启 xff0c 必然会引来无数
  • 同一个mock 连续多次调用返回不同结果实现方式

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 同一个mock 连续多次调用返回不同结果实现方式 Mockito when methodCall thenReturn 1x thenReturn 2x thenRetur
  • 特别策划:大学毕业生自主创业分析

    转 特别策划 大学毕业生自主创业分析 本期特别策划以 大学毕业生自主创业 为题 xff0c 主要分为两个部分 xff0c 第一部分对大学毕业生自主创业的分布与特点进行了研究分析 xff0c 第二部分为有意向自主创业的大学生提供建议 PART

随机推荐

  • vscode界面上最左边那一栏不见了

    查看 gt 外观 gt 显示活动栏
  • 论文下载&论文阅读方法(吴恩达教你读论文)

    标题 一 论文下载二 吴恩达读论文方法2 1 主体2 2 Math2 3 Coding 三 职业生涯四 给出的建议五 参考 一 论文下载 Source of paper twitter ML subreddit NIPS ICML ICLR
  • 基于有向距离场(SDF)的地图碰撞系统 | Cocos 技术派第15期

    近日 xff0c ID 为 kx dz 的开发者在 Cocos 中文社区分享了一篇名为 介绍一个基于有向距离场 SDF 的地图碰撞系统 的技术文章 xff0c 获得诸多好评 C姐第一时间联系到了作者 xff0c 在获得转载授权的同时 xff
  • SQL 查询当天,本月,本周的记录

    SELECT FROM 表 WHERE CONVERT Nvarchar dateandtime 111 61 CONVERT Nvarchar GETDATE 111 ORDER BY dateandtime DESC 本月记录 SELE
  • VC查找网页源码指定内容

    查找网页源码 xff0c 这段代码也可以作为获取外网IP xff0c 不过获取外网IP只需要前面一部分就行了 xff0c 把网页源码读到缓冲区就行了 CString SiteInfo SiteName 61 http www ip138 c
  • 笔试之内存分配问题

    需要知道的概念 xff1a 1 程序 xff1a 包括代码和数据 xff0c 是静态的概念 2 进程 xff1a 程序的执行过程 xff0c 是指一个程序中的代码在一个数据集合中的运行过程 xff0c 所以说相同代码在不同的数据集合上运行
  • 计算机视觉基础(三)——对极几何中的基本矩阵F和本质矩阵E

    计算机视觉中 xff0c 尤其是双视图几何中 xff0c 基本矩阵F和本质矩阵E扮演着重要角色 xff0c 今天我们就来简单了解一下它们吧 由于公式比较多 xff0c 所以直接在word中编辑好后整个截图过来了 xff08 参考书目 计算机
  • 使用docker搭建开发环境

    我的主力机是windows windows下面有太多提升效率的软件 但是开发的时候不得不使用linux 就单单开发而言 我还是喜欢使用linux 所以就造成了我得在windows下面使用虚拟机 这是最开始的办法 后面得知有vagrant这个
  • ROS的单线程Spinning和多线程Spinning

    单线程Spinning ros spin 是最简单的单线程自旋 它会一直调用直到结束 用法 ros spin 另一个单线程spinning是ros spinOnce 它定期调用等待在那个点上的所有回调 用法 ros spinOnce 简单的
  • antd 的form 表单怎么回显数据_antd Form表单的initialValue问题

    在initial中是有初始值的 xff0c 但是却不显示初始值 xff0c 请大佬解答一下这个问题 const formItem 61 type 3 label 39 柜子编号 39 name 39 ID 39 width 39 150px
  • echarts 与 highcharts

    一 xff0e 简介 echarts echarts是百度公司前端开发的一个图表库 xff0c 2013年发布第一版 xff0c 主要采用canvas画图 xff0c 目前版本3 8 4 xff1b 完全免费 xff1b highchart
  • c语言不同源文件变量,我在哪里可以在c程序中声明全局变量,无论是在头文件还是源文件中...

    本问题已经有最佳答案 xff0c 请猛点这里访问 嗨 xff0c 我是一个C 43 43 开发者 xff0c 现在我正在做C编程 我的问题是 xff0c 在C程序中 xff0c 哪个地方更好地声明全局变量 头文件或源文件 如果我的全局变量未
  • ***网址大全

    网址大全 最全的 国内 基地 http www hackbase com 帝国 http www darkup com 中国 联盟 http www chinahacker com起点 网络 http www qdhack com 边缘 h
  • 监控硬盘容量计算

    如何快速的计算摄像头一天存储量 摄像机的码流即监控视频流的带宽 xff0c 分为主码流和子码流 xff0c 主码流用来存储 xff0c 子码流一般用来预览 xff0c 所以录像回放时大家看到的视频质量要高于预览时看到的 在不同分辨率 帧率以
  • 【原】Hadoop伪分布模式的安装

    Hadoop伪分布模式的安装 环境参数 1 Host OS xff1a Win7 64bit 2 IDE xff1a Eclipse Version Luna Service Release 2 4 4 2 3 虚拟机 xff1a VMwa
  • 背景建模技术(四):视频分析(VideoAnalysis)模块

    视频分析模块主要包含两个函数 xff0c 一个是VideoAnalysis setup xff08 xff09 xff0c 其主要功能就是确定测试的视频是视频文件或摄像头输入亦或是采用命令行参数 xff1b 第二个函数是VideoAnaly
  • ubuntu 安装docker + seagull实现图形化管理

    环境 xff1a ubuntu 14 04 server 通过Docker源安装最新版本 要安装最新的 Docker 版本 xff0c 首先需要安装 apt transport https 支持 xff0c 之后通过添加源来安装 sudo
  • Ethzasl MSF源码阅读(1):程序入口和主题订阅

    关于IMU融合知乎上的一篇问答 xff1a 有哪些开源项目是关于单目 43 imu做slam的 xff1f Ethz的Stephen Weiss的工作 xff0c 是一个IMU松耦合的方法 1 程序入口 xff1a ethzasl msf
  • 自动化运维的5大好处

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 努力解决企业IT日益增长的运维挑战 xff0c 大多数运维团队面临的最核心问题在于 如何用更少的资源完成更多工作 自动化运维则是这一问题的理想解决方案 xff0c 特别是在
  • UP Board 串口使用心得

    前言 原创文章 xff0c 转载引用务必注明链接 本文使用Markdown写成 xff0c 为获得更好的阅读体验和正常的图片 链接 xff0c 请访问我的博客 xff1a http www cnblogs com sjqlwy p up s