波特率和时钟频率

时间:2019-03-07 12:10:07

标签: uart serial-communication

我希望我的2个设备与UART通信。我没有任何时间要求

  1. 这是否意味着我可以选择任何波特率,只要接收者和发射者的波特率匹配并且在我芯片的可用范围内?
  2. 芯片的频率和UART的波特率是否需要相同?我读到芯片的频率需要比UART的波特率高16倍。但是在其他一些地方,人们说只要您的MCU的时钟频率高于波特率就可以了。 (即:对于9600 kbps,MCU需要高于9.6 khz。)
  3. 我可以为两个设备使用不同的频率吗? (例如,接收机20 MHz,发射机8 MHz。)

1 个答案:

答案 0 :(得分:1)

  

这是否意味着只要接收方和发送方的波特率匹配并且在我芯片的可用范围内,我就可以选择任何波特率?

恐怕答案不是那么简单。您设备的UART波特率生成器必须能够生成所述波特率,通常,《用户手册/参考手册》中包含一个公式来驱动可能达到的波特率。

两个设备都在同一PCB上吗?如果不是这样的话,我建议您引入一个像MAX3232这样的电平转换器,并以RS-232电平发送/接收信号,以避免通信问题。

还请记住,轨道/导线的电容和电感也会在高速下发挥作用。

  

芯片的频率和UART的波特率是否需要相同?我有   读取芯片的频率需要比芯片的频率高16倍   UART的波特率。但是在其他一些地方,人们说很好   只要您的MCU的时钟频率高于波特率。   (即:对于9600 kbps,MCU需要高于9.6 khz。

您正在使用哪个微控制器?现代微控制器的工作频率远高于典型的波特率。许多现代的高性能微控制器工作在数百兆赫兹。每个现代微控制器都趋向于为外围设备配备一个时钟分频器,并进一步配备一个波特率发生器以实现适当的波特率。该问题的答案取决于您所使用的MCU。对于相当现代的MCU,您既不需要芯片的频率,也不需要UART的波特率,也不需要芯片的频率比UART的波特率高16倍。

  

两个设备可以使用不同的频率吗? (例如20 MHz   用于接收器,用于发射器为8 MHz。

是的,您可以为两个设备使用不同的频率。只需确保其波特率以及其他参数(如奇偶校验,数据长度等)即可。