UP Board 串口使用心得

时间:2023-01-23 23:06:34

前言

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

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

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

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

本文以ubilinux 3系统为例。

UP 板的串口资源

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

UP Board 串口使用心得

10-pin 接口 CN7 (UART0)

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

【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为例)

UP Board 串口使用心得

UP Board 串口使用心得

根据官方转接器文档和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的,所以当时并没有显示登录调试信息。我们下面会对该端口进行演示。

UP Board 串口使用心得

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很像~)

UP Board 串口使用心得

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

UART1功能演示

串口通信

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

使用的设备包括:

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

UP Board 串口使用心得

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

UP Board 串口使用心得

UP Board 串口使用心得

UP Board 串口使用心得

从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板收到信息:

UP Board 串口使用心得

遇到错误?

  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登录系统啦。

UP Board 串口使用心得

后记

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

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

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

  1. 移植u-boot.2012.04.01

    /*************************************************** *u-boot版本:u-boot2012.04.01 *gcc版本:arm-linux-gcc ...

  2. UP Board 妄图启动ubilinux失败

    前言 原创文章,转载引用务必注明链接. 经历了上次的上电开机失败,我们终于发现需要手动为UP板安装系统,因为没有显示器的Headless模式时,使用Linux比较方便,另外熟悉Debian系的,所以选 ...

  3. UP Board 人若有大胆,板子就很惨:首次上电开机失败

    前言 原创文章,转载引用务必注明链接. 注意:拍照自带抖动功能,画质大家凑合着看.冬日天气干燥,手触摸板子前建议流水洗手或者握持大体积导电体将静电放走. 本文使用Markdown写成,为获得更好的阅读 ...

  4. UP Board 超详细开箱评测

    前言 原创文章,转载引用务必注明链接. 江浙沪就是好,昨天发货今天收到.另外爱板太省了,外包装小纸箱还是6s钢化膜的重复利用. 注意:拍照自带抖动功能,画质大家凑合着看.冬日天气干燥,手触摸板子前建议 ...

  5. UP board 漫谈(1)——从Atom到UP Board

    title: UP board 漫谈(1)--从Atom到UP Board date: 2016-12-26 12:33:03 tags: UP board categories: 开发板 perma ...

  6. RT-Thread下的串口驱动程序分析【转载】

    编写本文稿的目的,在于通过分析stm32平台上的串口中断源码,学习 RTT中如何编写中断处理程序 如何编写RTT设备驱动接口代码 了解串行设备的常见处理机制 先以RTT官方源码中的STM32 BSP包 ...

  7. 1、CC2541蓝牙4.0芯片中级教程——基于OSAL操作系统的运行流程了解+定时器和串口例程了解

    本文根据一周CC2541笔记汇总得来—— 适合概览和知识快速索引—— 全部链接: 中级教程-OSAL操作系统\OSAL操作系统-实验01 OSAL初探 [插入]SourceInsight-工程建立方法 ...

  8. am335x 更改调试串口

    /********************************************************************* * am335x 更改调试串口 * * am335x的调试 ...

  9. u-boot启动流程分析(2)_板级(board)部分

    转自:http://www.wowotech.net/u-boot/boot_flow_2.html 目录: 1. 前言 2. Generic Board 3. _main 4. global dat ...

随机推荐

  1. CLR via C#(06)- 构造器

    最近忙着看新还珠,好几天不学习了.玩物丧志啊,罪过罪过. 今天总结的是类构造器的知识,其实这方面的文章蛮多的,可还是觉得亲自写一下对自己的思考和认识会有提高. 对于构造器,大家应该都不陌生,它主要是用 ...

  2. MVC中的视图

    视图的作用: 检查由路由器提交的模型对象, 将其内容转换为HTML格式. 指定视图的两种方式, 代码如下: return View("NotIndex"); return View ...

  3. SRM 399(1-250pt)

    DIV1 250pt 题意:给出一个size不超过50的数组a和整数n,求x,y,z使得|n - x*y*z|最小,且x,y,z均不再数组a中.若有多组xyz使得|n-x*y*z|最小,输出字典序最小 ...

  4. python——python3.6环境搭建(Windows10,64位)

    1.python软件资源下载 1.1 打开python官网地址:https://www.python.org 1.2 根据自己电脑的设置选择下载合适的python3.6.2 1.3 此处选择windo ...

  5. 【编程语言】extern "C"让C++与C进行混合编程

    最近工作不算轻松,现在作为一个项目的负责人统一管理着前端.后端.设计.产品,身上肩负着不小责任,虽然有压力但是对于自己也是一种锻炼.同时自己也在负责整个后端的架构设计,虽然后端经验不是很多,但是自己正 ...

  6. Trailing Zeroes (III) LightOJ - 1138(二分)

    You task is to find minimal natural number N, so that N! contains exactly Q zeroes on the trail in d ...

  7. Hbuilder用ajax连接阿里服务器上的servlet以及注意事项

    Hbuiler连接服务器上的servlet的步骤与连接本地项目中的servlet基本一致,详细内容参考上一片博客:https://www.cnblogs.com/ljysy/p/10294640.ht ...

  8. YII2常用数据库操作

    //1.简单查询 $admin=Admin::model()->findAll($condition,$params); $admin=Admin::model()->findAll(&q ...

  9. [原创]chromium源码阅读-进程间通信IPC.消息的接收与应答

    chromium源码阅读-进程间通信IPC.消息的接收与应答   chromium源码阅读-进程间通信IPC.消息的接收与应答 介绍 chromium进程间通信在win32下是通过命名管道的方式实现的 ...

  10. Spark入门(Python)

    Hadoop是对大数据集进行分布式计算的标准工具,这也是为什么当你穿过机场时能看到”大数据(Big Data)”广告的原因.它已经成为大数据的操作系统,提供了包括工具和技巧在内的丰富生态系统,允许使用 ...