最大Beaglebone Black UART波特率?

时间:2015-08-05 21:03:42

标签: python pyserial beagleboneblack uart baud-rate

我一直在寻找Beaglebone Black(BB)支持的UART波特率。我无法在BB系统参考手册或sitara处理器本身的数据表中找到它。我正在使用pyserial和Adafruit BBIO库通过UART进行通信。

这是否支持任何合理的价值或更标准(9600,115200等)?

感谢您的帮助。

-UPDATE- 它与PySerial支持的波特率有关。这给出了一个潜在的波特率列表,但不是特定硬件的特定硬件列表。

3 个答案:

答案 0 :(得分:4)

AM335x技术参考手册(TI文档spruh73)给出了UART部分中UART子系统的波特率限制(版本spruh73l中的第19.1.1节,第4208页):

  
      
  • 波特率从300 bps到3.6864 Mbps
  •   

每个UART模块都有48MHz的时钟来产生时序。它们可以配置为两种模式之一:UART 16x和UART 13x,其中该时钟分别由16和13分频。然后配置一个16位除数,从该时钟生成实际波特率。因此,对于300 bps,它将是UART 16x和10000的除数,或48MHz / 16 / 1000 = 300 bps

当您告诉omap-serial内核驱动程序(BeagleBone上用于UART的驱动程序)时,它会计算最接近您想要的速率的模式和除数。您获得的实际费率受其生成方式的限制 - 例如,如果您要求任意波特率为2998 bps,我认为您实际得到2997.003 bps,因为{{1 }}比48MHz / 16 / 1001 = 2997.003更接近2998。

因此,UART模块当然可以生成所有标准波特率,以及大量任意波特率(您必须实际进行数学运算才能看到它的接近程度)。在基于Linux的系统上,PySerial只是通过ioctl调用向你通过内核驱动程序发送波特,所以它不会限制你。

注意:我刚测试过以200 bps从BeagleBone Black发送数据并且工作正常,但它不会产生110 bps(下一个较低的标准波特率低于300 bps ),因此列出的限制实际上是它可以生成的最低和最高标准费率。

答案 1 :(得分:0)

BBB参考手册不包含有关UART波特率的任何信息,但对于串行通信,我通常更喜欢使用 BAUDRATE = 115200 的值,这在大多数情况下都有效,没有任何问题。

答案 2 :(得分:0)

您可以通过将BBB的UART端口与minicom连接来手动检查。为此,只需缩短UART的Tx和Rx即可。然后使用

打开minicom
$ minicom -s

并设置波特不同的速率,看它是否有效。 (按任意键,如果看到该字符,则表示波特率正常工作)