主题中讨论的其他器件: TUSB2036
在这里认真检查我的发现。 最近、我在几种设计型号中使用了 PCM2901、大多数情况下它都没有出现问题。 但是、我偶尔会遇到器件无法枚举的问题。 用手指触摸器件附近的器件或对芯片进行回流通常会恢复功能。
在本例中 、PCM2901 通过22Ω 串联电阻连接到 TUSB2036集线器上的下行端口。 对于 D-、总线长度为12.0mm、对于 D+、总线长度为10.3mm。 集线器上的另一个器件(ATmega16U2)从未出现 USB 问题。
我碰巧在我的工作台上有一个原型、能够可靠地表现出无法枚举的问题。 我预计这会是电源定序的问题、因此我开始仔细研究数据和轨信号、看看我是否可以找出这个问题。 令我惊讶的是、我发现:
在 D- Net 上使用10倍探头时、枚举完全成功、在没有探头的情况下、枚举为0%。 在附加后加电、附加下加电方面都是如此、甚至在一切都启动并运行的时候也是如此。 修改电源序列、连接时序或总线复位行为没有区别。
我在任何数据线路上都看不到任何信号完整性问题。 似乎有很大的余量。 当然、由于测量行为消除了问题、因此无法直接测量故障场景。
我在 D-网络中增加了22pF 电容、不再有枚举问题。
那么我的问题是、 PCM2901在负载非常轻的总线中驱动过硬、是否会导致数据完整性问题? 我质疑 PCM2901的原因是、我可能发现的唯一信号完整性问题的迹象是、当我关闭示波器上的带宽滤波器并捕获到总线上的 RX/TX 事件时: 
此处、通道1 (黄色)是上游(从集线器到主机) D-、通道2 (青色)是上游 D+、通道3 (品红色)是下游(在集线器和 PCM2901之间) D-、通道4 (蓝色)是下游 D+。 我很确定光标左侧(x 轴中点)的数据是从主机到器件的数据(因为上游信号表现出电缆噪声迹象、而下游端口转换稍迟一些)。 而在光标右侧、则是从器件到主机(因为上游信号与本地3.3V 电源更一致、并且下游端口转换稍早一些)。 请注意、上行端口上的共模电压偏移衰减可能是由于 USB 和接地之间存在铁氧体磁珠。
由于探头环路面积较大(即接地线夹连接到~5cm 远的接地端)、因此高频成分应大部分考虑噪声。 但我认为重要的是、器件到主机的转换比另一个方向具有更多的过冲和振铃。 我已经圈出了下游 D-信号上的过冲和下冲示例。
布线未完全控制阻抗、因为我们仅讨论全速通信、 而且布线非常短、因此串联电阻和引脚终端始终占主导地位。 但出于完整性考虑、 我在连续的接地层上使用了0.4mm 迹线、0.2mm 间距。 根据该计算器、这给出了90.6Ω 差分阻抗、

实际布局如下图所示。 我画了蓝绿色的 D-和蓝色的 D+。 PCM2901位于顶部、TUSB2036位于底部。 串联电阻位于中间、D+上的1.5kΩ 上拉电阻关断至右侧。

有人看到过这样的行为吗? 它看起来是否合理? PCM2901是否是特别硬的发送器? 少量高频振铃是否可能导致枚举失败? 短总线上的振铃是否是已知问题、分立式总线电容是否是已知的缓解措施? 我不熟悉 USB 通信信号的诊断、因此也很感谢在该领域提供任何指导。