自制VGA控制器的高速数据串扰
21ic 2024-06-14

片间传输--高速数据串扰

这几天调试一个东东,STM32的FSMC传输数据给Bingo自制的VGA控制器,由于没有直接打板,板间用了杜邦线连接。FMSC传输模式为最快的速度,FSMC写时序如下图所示,最快达到了72M(HCLK)的速度。但是我用了杜邦线,,没办法。。。神奇的事情不断地发生,幽灵一直在身边,以此分享给大家点滴心得,虽然我也只是知道皮毛。


下图是我项目中STM32与FPGA间,杜邦线连接的图,杜邦线20cm,FSMC 最高HCLK=72MHz。从右到左分别为D0-D15,CS,RS,WR,RD

先贴一下贵人相助时的聊天记录,众人经验总结,精华部分,值得分享:

高速偏见传输,总结如下:

(1)杜邦线不能太长

(2)干扰大了,可以加电容,来避免数据的串扰

(3)供电需要稳定,加退耦电容

(4)电磁干扰

(5)跳变巨大的时候,会有干扰,将数据线与信号线隔离或者分开

(6)异步数据,首先要D触发器锁存

(7)Ffff到0000跳板太大了,干扰太大了

解决方案:

开始相信是STM32代码的问题,我测试代码,以下是我写入的测试代码,1024*768个数据。

void LCD_ColorTest2(void)

{

u16 i,j;

LCD_Write_Address(0,0);//reset ram addr

LCD_WriteData_Begin();//Begin to Write data

for(i=0;i<768;i++)

{

for(j=0;j<1024;j++)

LCD_WriteData(i*j);

}

LCD_WriteData_End();

}


每次都会在屏幕2/3的时候挂掉,最后发现,2/3屏幕的时候,DATA=512*1024-1=ffff,下一个数据位0000,问题正在这里,因为跳变,干扰太大了,正如聊天记录说的那样,于是我将WR与RS分离连接到功能相同的边上的引脚(幸亏边上IO也预留了FSCM的IO)。这样眼睁睁的分离了信号线与数据线,奇怪的是,这样竟然真的图像传输完整,数据没有缺失了。如下图所示,黄色为更改为之后的WR与RS信号线。


记得以前在实验室画板子的时候,高速的通信,以太网,RFID等,信号线都要用GND来隔离,杜邦线是最可恶的东西。记得当年那个900M的射频板子,那真的是吃过亏的。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 工业
  • 安防
  • 航空
  • CAN
下载排行榜
更多
评测报告
更多
EE直播间
更多
广告