关于树莓派Zero的串口

栏目: 服务器 · 发布时间: 4年前

内容简介:没错,还是关于树莓派的文章。今天整串口的时候发现,ttl 板子连到 GPIO 14 和 15 上没有输出,但内核参数已经有了于是去在

没错,还是关于树莓派的文章。今天整串口的时候发现,ttl 板子连到 GPIO 14 和 15 上没有输出,但内核参数已经有了 console=ttyAMA0 相关的设置,这就令人不解了。

于是去 raspberrypi.org 上找了一下关于串口的资料。

https://www.raspberrypi.org/documentation/configuration/uart.md 这里可以看到树莓派的 SoC 有两个内建的 UART, 一个叫做 PL011 , 一个叫做 mini UART

Linux 中, PL011 的串口是 /dev/ttyAMA0 设备, 而 mini UART 则是 /dev/ttyS0 设备。

同时有 wifi与蓝牙模块的设备上,比如 pi 3 和 zero, PL011ttyAMA0 默认是和蓝牙模块连接着的, 在这种情况下, ttyS0 则是默认被禁用状态的,在 /dev 下是不会出现 ttyS0 设备的,并且板子上的 GPIO 14 和 15 实际上应该算是空置状态的

ttyS0 禁用的原因是, mini UART 的波特率是和 VPU 有关系的,由于动态频率的原因,波特率也会随着变化的,因此默认情况下这个 UART 实际上是没什么多大用处的。

而在没有蓝牙的设备上, ttyS0 则会出现在 /dev 设备上,但 GPIO 14 和 15 是连接到 ttyS0 还是 ttyAMA0 上由于手上没有设备,暂时无法确定。不过根据文档推算应该是 ttyAMA0 连接到了 14 和 15 接口上。

回到开头的问题上,由于我用的是给树莓派1代用的系统,我们知道1代是没有蓝牙的,因此一代的 ttyAMA0 是连接到 14 和 15上的,这样配置 console 参数并没有问题,然而这个镜像用在 zero 上就有问题了。 ttyS0 默认关闭, ttyAMA0 又是连接了蓝牙。那么有什么办法解决呢?

在文档里面还提到了一个 enable_uart 参数,通过在 /boot/config.txt 里设置这个参数为1, 我们可以启用 ttyS0 串口, 并且将这个串口连接到 GPIO 上. 并且将内核参数 console 改到 ttyS0 上. 但这样做将会导致CPU核心被限制, 无法进行动态睿频. 这显然不是我们想要的结果.

继续往下翻可以看到, 我们还可以通过加载不同的 device tree 来改变蓝牙和串口的功能. 提供了两张解决方案.

pi3-disable-bt:

在这种方案下, 将完全禁用板载的蓝牙功能, 作为回报, ttyAMA0 将会被释放出来, 并且会连接到 GPIO 14 和 15上

pi3-miniuart-bt:

这种方案则是将蓝牙连接到 mini UART 上, 同时释放 ttyAMA0 , 并且会把 ttyAMA0 连接到 GPIO 14 和 15上.

似乎看起来既能让 CPU 不被限制频率, 还能有蓝牙, 还能有串口的方案就只有 pi3-miniuart-bt 了. 通过添加 dtoverlay=pi3-miniuart-btconfig.txt 里面就可以启用这个功能了.


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

PERL學習手札.

PERL學習手札.

簡信昌 / 上奇科技 / 20040816 / NT$ 390

1. 關於Perl 當你翻開這本書的時候,你也就進入了一個奇幻的世界。Perl確實是一種非常吸引人的程式語言,而之所以這麼引人入勝的原因不單單在於他的功能,也在於他寫作的方式,或說成為一種程式寫作的藝術。即使你只是每天埋首於程式寫作的程式設計師,也不再讓生活過份單調,至少你可以嘗試在程式碼中多一些變化。而且許多Perl的程式設計師已經這麼作了,這也是Perl的理念-「There is mor......一起来看看 《PERL學習手札.》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

html转js在线工具
html转js在线工具

html转js在线工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具