用lattice 的machXO3L-2100E实现MIPI DSI的转发接口,RX侧HS数据接收很顺利,RX和TX的LP数据发送/接收也顺利,但是TX侧的HS数据一致抓不到,RTL做网表(不带时序)仿真是通过的,怀疑是管脚配置问题,请各位大神帮忙看下我的管脚约束是否OK?先谢谢各位了。。。
(第一次玩FPGA,以前都是直接做IC设计的,FPGA方面很多都是小白)
再详细描述下问题:
现在的目的是想通过MIPI DSI接收图像数据处理后再通过DSI发送给下游的屏,但是发出的数据屏无显示,RTL的前后仿真都做了没问题,但通过DSI去写读屏的寄存器,回读回来第一个BTA之后报DSI sot sync错误或者checksum错误,之后再通过去读就只返回一个ACK了,通过一个比较烂的示波器抓取到DSI的振幅只有100mV左右,所以怀疑是管脚设置有问题,想请教下大家看看管脚设置是否有地方是需要特别注意能影响到输出电流的。
问题已经解决了,虽然我还是不太明白是如何解决的,但是至少高速读写OK,图像也能正常发送到屏了。。。贴上我的最终管脚设置,顺便说一下解决的过程吧:
1.在网上找了一篇华为的FPGA代码规范,把自己的代码重新撸了一遍
2.撸一遍后的代码在active HDL上跑后仿,调整TX的输出约束,保证至少仿真波形看到的hs高速输出时钟边沿一定在数据中间
3.在调节管脚电压和驱动时,由于没啥经验一直怎么调都不OK,示波器上看到的高速振幅一直不够,一气之下,把所有管脚电压和驱动调到最大。。。然后就通了。。。通了。。。。
贴上我的约束:
欢迎各位大神继续指点。。。。
谢谢你解决之后还能贴上你的解决办法,点个赞!
通过这句看,是不是你的SOT这里处理得不对,或者是你的数据包的checksum是错的。
我来贴一个我的约束吧。
你的LP管脚约束是错的,应该用LVCMOS12,也就是1.2V的IO。我看你有的是1.2有的是2.5很混乱。
LP虽然有1.2和2.5,但是不影响Lp,不过现在看来影响到了HS。。。
是的,我也觉得他和LP电平设置是错误 的。
我不跟没有头像的人聊天! ^~^, …………
看这楼歪的,你们能不能好好聊聊技术,坐等你们的回复被折叠。
@Charlie_Jade 就你这月入十万的主,根本不用跑到这里来勾搭妹子啊,当然我想说的是大师,拉我入伙好不好?约约问一句,你现在在做什么机型?
@Charlie_Jade 你显然是在赤果果地勾搭我们的@brianway妹子,但是我觉得这不是重点,重点是你说的那个月入十万的灰色产业到底是什么行业?能拉我入行不?
@brianway 我也觉得LATTICE官网的MIPI参考设计很多都是有问题的,不知道为什么有些连编译都编译不过,我打开工程发现里面好些信号根本就没定义,难道发到官网来都先不验证的吗?感觉好奇怪!也不知道是不是故意的,毕竟MIPI这一部分涉及到一个灰色产业,里面金钱滚滚,搞得好仅工程师月入十万不成问题,不过今年这波行情好像不行了。
不知道你看的是哪一个MIPI的参考设计,一般是RD1184和RD1185,前者是发,后者是收,这些参考设计里面有一部是可以正常使用的,有一些根本就是有问题,甚至都不能编译通过。
我感觉你的问题似乎描述得不是很清楚。
TX的HS部分你只能抓D-PHY并行输入部分的数据,不能抓端口输出的,因为端口输出的部分REVEAL是没有办法插寄存器进去的,而且你FPGA内也没有那么高的采样时钟可以去采这个信号,最好的办法要么是用MIPI分析仪,要么用RX端看是否有收到数据。
我就说之前怎么就是采不到ODDR的输出,谢谢,讲解得很透彻。