打印

FPGA串口接收的波特率时钟满足条件但没有输出

[复制链接]
8700|6
手机看帖
扫描二维码
随时随地手机跟帖
沙发
kljujbygiyug|  楼主 | 2024-9-18 22:59 | 只看该作者
这是仿真波形和代码图

ASH93V}8AQ)H8)2U@ZG74L9.png (32.2 KB )

ASH93V}8AQ)H8)2U@ZG74L9.png

W99_X`S9(Z8L_]13X0J0PT2.png (270.06 KB )

W99_X`S9(Z8L_]13X0J0PT2.png

使用特权

评论回复
板凳
kljujbygiyug|  楼主 | 2024-9-19 01:05 | 只看该作者
问题已经解决了

使用特权

评论回复
评论
xionghaoyun 2024-9-19 11:39 回复TA
兄弟 要说这么解决的啊 
地板
kljujbygiyug|  楼主 | 2024-9-19 01:05 | 只看该作者
问题解决了

使用特权

评论回复
5
mbutterfly| | 2024-9-19 08:08 | 只看该作者
div_cnt前面有个+号,你点看看看

使用特权

评论回复
6
tpgf| | 2024-9-20 17:03 | 只看该作者

FPGA串口接收的波特率时钟满足条件但没有输出

在使用FPGA进行串口通信时,如果波特率时钟满足条件但没有输出,可能涉及多个方面的问题。以下是一些可能的原因和相应的解决方法:

  • 时钟分频问题:

    • FPGA内部工作频率通常远高于串口波特率,需要使用分频器将时钟降低到与波特率匹配。如果分频系数设置不正确,可能导致接收时钟不准确,从而无法正确接收数据。
    • 确保分频计数器的设计正确,并且能够生成与所需波特率相匹配的时钟信号。例如,如果系统时钟频率是50MHz,而所需的波特率是9600bps,那么每传送一位数据需要的时钟周期数应为5208.33个。
  • 数据同步问题:

    • 在串口通信中,数据同步至关重要。通过边沿检测识别起始位,可以同步接收时钟和数据流。如果同步机制出现问题,可能导致无法正确接收数据。
    • 检查边沿检测逻辑是否正确实现,并确保能够准确识别起始位和停止位。
  • 数据采集问题:

    • 根据数据位的长度,从接收时钟中采样数据。如果采样逻辑有误,或者采样点选择不当,也可能导致无法正确接收数据。
    • 确保采样逻辑正确实现,并根据具体的串口传输格式(如起始位、数据位、停止位等)进行适当的调整。
  • 硬件连接问题:

    • 检查FPGA与串口设备的硬件连接是否正确。包括TX、RX引脚的连接是否正确,以及是否存在短路或断路等问题。
    • 如果可能的话,使用示波器等工具检查信号线上的实际信号,看是否符合预期的工作模式。
  • 软件配置问题:

    • 检查FPGA内部的寄存器配置是否正确。特别是与串口通信相关的寄存器,如波特率寄存器、控制寄存器等。
    • 确保FPGA的固件或驱动程序已正确加载,并且配置参数与实际需求相匹配。
  • 调试和测试:

    • 尝试编写一个简单的串口通信测试程序,先在已知的波特率下进行测试,然后逐步调整到目标波特率。
    • 使用串口调试助手或其他工具发送已知的数据包,并观察FPGA是否能正确接收和解析这些数据包。
  • 其他潜在问题:

    • 考虑是否存在电磁干扰、电源噪声等外部因素对串口通信的影响。
    • 如果问题仍然存在,建议查阅更多的技术文档或寻求专业的技术支持。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

6

帖子

0

粉丝