[求助] 求助usb phy ulpi_data inout应该怎么处理?

littleshrimp   2023-10-24 21:22 楼主

我最近在用USB驱动USB3317 ULPI的PHY遇到点问题,我用高云的usb device controller IP,它支持ULPI接口,不过IP的ulpi_data是一个ulpi_rxdata_i和一个ulpi_txdata_o两个单向口。

image.png  

USB3317的ulpi_data是一个双向口,我是FPGA新手,不知道这部分应该怎么处理,尝试使用下边的方式通过ulpi_dir来管理data方向,但是运行后电脑没有反应,不知道问题是不是出在这里,有高手希望能指点一下,非常感谢。

assign ulpi_data_oe = ~ulpi_dir;
assign ulpi_data = ulpi_data_oe ? ulpi_data_o : 8'hz;

虾扯蛋,蛋扯虾,虾扯蛋扯虾

回复评论 (5)

//------接口类型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
引用: 卿小小 发表于 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连接电脑一直没反应,本来改动就比较小,感觉能改的都改了,就是不好用。

虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2023-10-25 17:12

找到问题了,代码没问题,问题出在烧好比特文件后电脑可能没有反应过来(因为前期是没有安装驱动的)。

虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2023-10-26 12:38

5楼 nmg 

引用: littleshrimp 发表于 2023-10-26 12:38 找到问题了,代码没问题,问题出在烧好比特文件后电脑可能没有反应过来(因为前期是没有安装驱动的)。

电脑的锅,咋发现的

点赞  2023-10-26 13:47
引用: nmg 发表于 2023-10-26 13:47 电脑的锅,咋发现的

突然有一次发现硬件了,装好驱动后就每次都正常了。

虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2023-10-26 14:34
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复