2024-04-29 08:26:48 发布
网友
我一直在寻找由Beaglebone Black(BB)支持的UART波特率。我在系统手册中找不到处理器的数据表。我正在使用pyserial和Adafruit BBIO库通过UART进行通信。在
这是否支持合理范围内的任何值,还是更标准(9600、115200等)?在
谢谢你的帮助。在
-更新- 它与PySerial支持的波特率有关。这给出了一个潜在波特率的列表,但没有特定的波特率会或不会与特定的硬件一起工作。在
您可以通过将BBB的UART端口连接到minicom来手动检查。要使其工作,只需短接UART的Tx和Rx。然后打开minicom
$ minicom -s
并设置不同的波特率,看看是否有效。 (按任意键,如果看到字符,就知道波特率在工作)
AM335x技术参考手册(TI文件spruh73)在UART部分给出了UART子系统的波特率限值(spruh73l版第4208页第19.1.1节):
Baud rate from 300 bps up to 3.6864 Mbps
UART模块每个都有一个48MHz时钟来生成它们的定时。它们可以配置为两种模式之一:UART 16x和UART 13x,其中时钟分别除以16和13。然后有一个配置的16位除数,从该时钟生成实际波特率。所以对于300个基点,它将是UART 16x和10000的除数,或者48MHz / 16 / 1000 = 300 bps。在
48MHz / 16 / 1000 = 300 bps
当您告诉omap-serial内核驱动程序(BeagleBone上用于uart的驱动程序)时,它会计算最接近所需速率的模式和除数。实际的速率受其生成方式的限制-例如,如果您要求2998 bps的任意波特率,我想您实际上会得到2997.003 bps,因为48MHz / 16 / 1001 = 2997.003比48 MHz / 16 / 1000 = 3000更接近2998。在
omap-serial
48MHz / 16 / 1001 = 2997.003
48 MHz / 16 / 1000 = 3000
因此,UART模块当然可以生成所有的标准波特率,也可以生成大范围的任意波特率(你必须实际计算一下,看看它能有多接近)。在基于Linux的系统上,PySerial只是通过ioctl调用将您告诉它的波特率发送给内核驱动程序,所以它也不会限制您。在
注意:我刚刚测试了从BeagleBone Black以200 bps的速度发送数据,它工作得很好,但它不能产生110 bps(下一个低于300 bps的较低标准波特率),因此列出的限制实际上是它能产生的最低和最高的标准速率。在
BBB参考手册不包含关于UART波特率的任何信息,但对于串行通信,我通常更喜欢使用波特率值波特率=115200,这在大多数情况下都能正常工作,没有任何问题。在
您可以通过将BBB的UART端口连接到minicom来手动检查。要使其工作,只需短接UART的Tx和Rx。然后打开minicom
并设置不同的波特率,看看是否有效。 (按任意键,如果看到字符,就知道波特率在工作)
AM335x技术参考手册(TI文件spruh73)在UART部分给出了UART子系统的波特率限值(spruh73l版第4208页第19.1.1节):
UART模块每个都有一个48MHz时钟来生成它们的定时。它们可以配置为两种模式之一:UART 16x和UART 13x,其中时钟分别除以16和13。然后有一个配置的16位除数,从该时钟生成实际波特率。所以对于300个基点,它将是UART 16x和10000的除数,或者
48MHz / 16 / 1000 = 300 bps
。在当您告诉
omap-serial
内核驱动程序(BeagleBone上用于uart的驱动程序)时,它会计算最接近所需速率的模式和除数。实际的速率受其生成方式的限制-例如,如果您要求2998 bps的任意波特率,我想您实际上会得到2997.003 bps,因为48MHz / 16 / 1001 = 2997.003
比48 MHz / 16 / 1000 = 3000
更接近2998。在因此,UART模块当然可以生成所有的标准波特率,也可以生成大范围的任意波特率(你必须实际计算一下,看看它能有多接近)。在基于Linux的系统上,PySerial只是通过ioctl调用将您告诉它的波特率发送给内核驱动程序,所以它也不会限制您。在
注意:我刚刚测试了从BeagleBone Black以200 bps的速度发送数据,它工作得很好,但它不能产生110 bps(下一个低于300 bps的较低标准波特率),因此列出的限制实际上是它能产生的最低和最高的标准速率。在
BBB参考手册不包含关于UART波特率的任何信息,但对于串行通信,我通常更喜欢使用波特率值波特率=115200,这在大多数情况下都能正常工作,没有任何问题。在
相关问题 更多 >
编程相关推荐