文章 ID: 000085649 内容类型: 故障排除 上次审核日期: 2021 年 08 月 27 日

使用 UART(RS-232 串行端口)时,为什么我的包率不正确?

环境

  • 英特尔® Quartus® II 订阅版
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    说明

    在搭载 Quartus® II 软件版本 11.0 的 Qsys 设计中使用 UART(RS-232 串行端口)组件时,您可能会遇到这样的问题。  这可能会导致 UART 不与其他端同步或通信。

    要解决此问题,计算正确的divisor_constant,通过将分配给 UART 的 UART 输入时钟频率分配给 UART,然后按分配的 Baud rate (es) ,然后验证此值已分配给 Qsys 生成的_uart_0文件中的divor_constant模拟。 如果需要更改指定值以匹配您的计算。

    例如,Qsys UART 的输入时钟为 83MHz。 分配的 Baud 速率(数据包)= 115200。 管理程序应为 83,000,000 / 115200 = 720。 在_uart_0文件中验证此值时,您会找到以下代码行:

    合成translate_on
    合成read_comments_as_HDL开启
    分配divisor_constant = 434;
    合成read_comments_as_HDL关闭

    更改divor_constant = 720,如下所示。

    分配divisor_constant = 720;

    Quartus® II 软件版本 11.0 SP1 解决了此问题。

    相关产品

    本文适用于 1 产品

    英特尔® 可编程设备

    本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。