我最近在用USB驱动USB3317 ULPI的PHY遇到点问题,我用高云的usb device controller IP,它支持ULPI接口,不过IP的ulpi_data是一个ulpi_rxdata_i和一个ulpi_txdata_o两个单向口。
USB3317的ulpi_data是一个双向口,我是FPGA新手,不知道这部分应该怎么处理,尝试使用下边的方式通过ulpi_dir来管理data方向,但是运行后电脑没有反应,不知道问题是不是出在这里,有高手希望能指点一下,非常感谢。
assign ulpi_data_oe = ~ulpi_dir;
assign ulpi_data = ulpi_data_oe ? ulpi_data_o : 8'hz;
//------接口类型inout
USB接口使用属于inout接口控制。
看你的模块例化代码,应该是USB2.0的接口。
建议优先学习一下verilog里面inout的用法,再找一下USB接口的仿真。
//------USB接口仿真参考帖子
【中科亿海微EQ6HL45开发平台测评体验】+07.USB测试与仿真(zmj) - 国产芯片交流 - 电子工程世界-论坛 (eeworld.com.cn)
//------问题定位思路
1.首先明确功能需求、芯片控制与verilog代码的连接关系/数据流方向;
2.尝试添加debug信号(Altera和Xilinx都可以添加debug信息);
3.“ulpi_dir来管理data方向”的思路没有问题,但是要确认逻辑状态与数据流方向是否一致。
引用: 卿小小 发表于 2023-10-25 12:57 //------接口类型inout USB接口使用属于inout接口控制。 看你的模块例化代码,应该是USB2.0的接口。 ...
感谢回复,我在下边这个帖子里找到了参考代码
usb3300 与 fpga 连接的ip core, - Altera SoC
方向是用ULPI_DIR控制的
assign PHY_DATA_I = PHY_DATA_IO;
assign PHY_DATA_IO = PHY_DIR ? 8'hzz : PHY_DATA_O;
我按照这个代码的方式写了,还是不好用。
我用的是高云官方的USB测试代码,原代码里使用的USB2.0 SoftPHY,我把控制器的接口改成了ULPI然后驱动开发板上的USB3317,但是USB连接电脑一直没反应,本来改动就比较小,感觉能改的都改了,就是不好用。
引用: littleshrimp 发表于 2023-10-26 12:38 找到问题了,代码没问题,问题出在烧好比特文件后电脑可能没有反应过来(因为前期是没有安装驱动的)。
电脑的锅,咋发现的