我已经写过一些关于“商用” USB3 PHY板的文章。并且最近一直在研究Design Gateway AB07-USBFMC模块。事实证明,我的部门似乎有一个令人尴尬的缺陷。
我一直在使用此PHY测试正在进行的USB3网关软件;我一直遇到一个有趣的问题:定期,发送的某些原始值只有一点点偏离。
BC BC BC BC 00 00 4A 4A 4A 4A 4A 4A 4A 4A 4A 4A 4A
BC BC BC BC 00 00 0A 4A0A 4A 0A 4A 0A 4A 0A 4A
错误值(0A)与正确值(4A)相差一位。
果然,修改数据包以发送FF而不是4A可以清楚地显示出丢失的位:
BC BC BC BC 00 00 BF FFBF FF BF FF BF FF FF BF FF
在这一点上,我认为我的引脚排列不正确。并且我一直在写错误的引脚-但是仔细阅读文档和我的FPGA I / O定义表明我做对了。这表明该是时候检查物理层上的内容了。
值得注意的是,在PHY边界处存在着一系列看起来很像终端/信号调理电阻的电阻-看起来总共大约有32个。这很有意义:发送16个,接收16个。
一个快速的探针可以验证它们是〜50R电阻,这对于串联端接非常有意义:
这是一个好消息,因为这意味着可以轻松访问信号而无需“避免我们的保修”,这在与价格相对昂贵的评估板打交道时有点安慰。
因此,作为下一步测试,我让我的FPGA将100MHz时钟信号注入传输总线上的每条线,并探查了其中一个终端电阻的PHY端:
该信号的频率和幅度与您所期望的一致:幅度恰好相当于一个良好的逻辑1.但是,信号在有问题的位上看起来如何?
我调整了FPGA设计,以使它只对有问题的部分产生了影响。并逐行探查,直到找到它为止:
哦,哦。这个信号看起来不那么开心,而衰减了很多。在大约500mV的峰值时,即使您给了它最好的斜视,也很难将其视为逻辑1。这件事在测试环境中是不可能的,这使该电路板似乎不太可能经过测试。
这立刻让我怀疑它旁边的终端电阻。显然有充分的理由:
显然,该电阻为50。尽管干净地坐在一排50Ω电阻的中间,但它显然也不是50Ω,这无疑是我问题的根源。
因此,很自然是时候执行我认为必须在此$ 1.65k板上进行价值数百美元的返工的项目了。幸运的是,我库存了E24 0402s,所以我很快就用合适的值替换了电阻。
替换为适当的值后,一切看起来都会更加幸福–一切都变得更加美好。最后,我们的USB培训套件看起来像他们应该的样子:
我正计划与Design Gateway取得联系-至少让他们知道这在某些板上是个问题。如果/得到回复,我将更新此帖子。