OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7003|回复: 4

FPGA串口调试

[复制链接]

21

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
159
金钱
159
注册时间
2016-11-27
在线时间
15 小时
发表于 2017-3-8 12:40:54 | 显示全部楼层 |阅读模式
1金钱
FPGA自己写了一个串口程序,串口助手能一个8位自己发送,但是在串口中发一连串数据时,不能正常接收,谁能提供一个完好的,经过验证的FPGA串口程序!谢谢,我的邮箱是feixiangzhf@[url=]@163.com[/url]

最佳答案

查看完整内容[请看2#楼]

http://www.fpga4fun.com/SerialInterface.html到这里找,解析得很清晰。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

97

帖子

0

精华

高级会员

Rank: 4

积分
669
金钱
669
注册时间
2015-5-23
在线时间
128 小时
发表于 2017-3-8 12:40:55 | 显示全部楼层
回复

使用道具 举报

58

主题

6289

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11361
金钱
11361
注册时间
2014-4-1
在线时间
1271 小时
发表于 2017-3-8 14:18:11 | 显示全部楼层

以前从网上下载过。


回复

使用道具 举报

21

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
159
金钱
159
注册时间
2016-11-27
在线时间
15 小时
 楼主| 发表于 2017-3-22 19:05:07 | 显示全部楼层
谢谢楼主,最近工作忙,没有及时看,非常感谢!
回复

使用道具 举报

26

主题

1513

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6250
金钱
6250
注册时间
2015-8-25
在线时间
996 小时
发表于 2017-4-8 10:09:33 | 显示全部楼层
晶振50M,接收,波特率9600
module Uart_Recv(
                 sys_clk,
                 sys_rst_n,
                 uart_rxd,
                 LED
                 );

input  sys_clk;
input  sys_rst_n;
input  uart_rxd;

output reg[WIDTH-1:0] LED;
reg[WIDTH-1:0] buff;
reg[WIDTH-1:0] data_out;

reg uart_rxd_dly1;
reg uart_rxd_dly2;
reg uart_rxd_dly3;
reg uart_rxd_dly4;

reg rxd_negdge_sig_dly1;

reg[SIZE-1:0] counter;

wire rxd_negdge_sig;

parameter WIDTH = 8;
parameter SIZE  = 16;

always @(posedge sys_clk or negedge sys_rst_n)
begin
     if(sys_rst_n == 1'b0)
     begin
          uart_rxd_dly1 <= 1'b0;
          uart_rxd_dly2 <= 1'b0;
          uart_rxd_dly3 <= 1'b0;
          uart_rxd_dly4 <= 1'b0;
     end
     else
     begin
          uart_rxd_dly1 <= uart_rxd;
          uart_rxd_dly2 <= uart_rxd_dly1;
          uart_rxd_dly3 <= uart_rxd_dly2;
          uart_rxd_dly4 <= uart_rxd_dly3;
     end
end

assign rxd_negdge_sig = (~uart_rxd_dly3) & uart_rxd_dly4;

always @(posedge sys_clk or negedge sys_rst_n)
begin
     if(sys_rst_n == 1'b0)
         rxd_negdge_sig_dly1 <= 1'b0;
     else
         rxd_negdge_sig_dly1 <= rxd_negdge_sig;
end

always @(posedge sys_clk or negedge sys_rst_n)
begin
     if(sys_rst_n == 1'b0)
         counter <= 16'b0;
     else if( rxd_negdge_sig_dly1 == 1'b1 && counter > 57200 )
         counter <= 16'b0;
     else if(counter <= 57200)
         counter <= counter + 16'b1;
     else ;
end

always @(posedge sys_clk or negedge sys_rst_n)
begin
     if(sys_rst_n == 1'b0)
         buff <= 8'b0;
     else
     begin
          case(counter)
          7800  :buff[0] <= uart_rxd_dly4;
          13000 :buff[1] <= uart_rxd_dly4;
          18200 :buff[2] <= uart_rxd_dly4;
          23400 :buff[3] <= uart_rxd_dly4;
          28600 :buff[4] <= uart_rxd_dly4;
          33800 :buff[5] <= uart_rxd_dly4;
          39000 :buff[6] <= uart_rxd_dly4;
          44200 :buff[7] <= uart_rxd_dly4;
          default:buff <= buff;
          endcase
     end
end

always @(posedge sys_clk or negedge sys_rst_n)
begin
     if(sys_rst_n == 1'b0)
         LED <= 8'b0;
     else
         LED <= buff;  
end

endmodule
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-10-4 12:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表