我们正在尝试将TUSB1210控制器用作USB主机。 控制器将与高速(HS) USB从属设备连接。 在HS协商期间,我们收到以下一致问题(chirp):
当将TUSB1210设备设置为XCVRSelect = 00,TermSelect=0和OpMode =10 (通过将50h写入FuncRegister 4)时,DIR行在3个时钟周期内变为高,然后在1个时钟周期处于低电平状态。 只要功能寄存器配置为在连接从属设备的情况下发出啁啾声,就会持续发生这种情况。 数据值为0C/0D。
下面是这种情况:
因此,啁啾序列已损坏。 正确工作时的50 % (我们看到K chrip后的降噪),如下所示:
您可以看到值"0C",即K啁啾"0E"后的降噪。 但这种情况发生的时间只有一半:
因此,我们得到的是“01”,而不是我们预期从外围看到的“00”。 您还会注意到,在这种情况下,DIR对于3个时钟周期而言较高,而不是2个时钟周期。
我们使用两种不同的HS外设对此进行了测试,但问题仍然存在。 这些外设在PC上工作正常,因此问题似乎是由TUSB1210引起的。 USB总线上没有可见的流量可能导致此问题。 此外,ULPI接口上的正常RX命令只有2个时钟周期长(DIR对于2个时钟周期较高)-而不是3个时钟周期。
有人知道发生了什么事吗?
另一个问题是,在完成K啁啾之后,作为协议的一部分,主机(我们)现在应该向外围发送交替K J的啁啾声。 这是否意味着我们将数据字节"11"发送一个周期,然后发送数据字节"00",或者我们应该发送二进制101.0101万,将其转换为数据字节"55"? 因此,我们应该发送TXCMD NOPID数据“11”,TXCMD NOPID数据“00”还是发送TXCMD NOPID数据“55”?



