大家好、
在我们的工作地点、我们正在开发支持 C5517 DSP 的电路板、成为神经学市场生物医疗设备的一部分。
DSP 软件开发通过 CCS5进行、包括 CSL 支持 C55_CSL_3.04、这是与 CCS5兼容的最新版本。
我们发现了一个与虚拟串行 COM 的 USB 支持相关的问题、可以直接从 CCS 示例..\USB\CSL_USB_CdcExample.
我们只需修改项目源代码:
1)在应用中对 PLL 设置进行编码、并将其设置为100MHz、而不是通过关联的 GEL 文件进行设置。
2)使用 CSL 函数“status = CDC_Open (&CDC_AppHandle,&USBConfig)”更改对 CSL 函数的原始调用;“status = CDC_OpenFullSpeed (&CDC_AppHandle,&USBConfig)”;
事实上、我们的板仅支持 USB 全速、因为 DSP USB 控制器线路通过全速/低速 USB 数字隔离器 ADuM3160与 USB 电缆连接器隔离:隔离是生物医疗设备的必备问题。
当然、我们编译了 CSL 库以支持 C5517。
问题在于:
运行相同软件的同一个板在某些 PC 上定期执行 USB 枚举和虚拟 COM 管理(超级终端测试正常)、
在其他 PC 上、USB 枚举失败:
返回代码:
请注意、所有 PC 都针对*。inf 文件进行了相同配置。
PC 定期与我们的电路板协同工作的示例:
PC 不能定期与我们的板一起工作的示例:
请注意、相同的 Win 7版本/位数在某些 PC 上定期工作、在其他 PC 上不工作、但我们发现的所有工作 PC 都有 USB 3控制器。
通过 JTAG 仿真器、我们可以找到以下结果:
CSL USB 管理由单个 USB IRQ 源支持、该源由 CSL_USB_CDC_example.c 源中的 USB_ISR()处理程序处理: 一旦 USB 主机向 USB 发出命令、此类处理程序就会首先计算接收到的 IRQ 的总数、然后触发 IRQ 的特定主机调用类型。
USB 电缆连接一段时间后、我们发现:
在正常工作的 PC 上
@25MHz @50MHz @ 100MHz @150MHz
USB_int_total 41 40 41
USB_INT_RESET 3 3 3
USB_INT_RESUME 0 0 0 0
USB_int_ep0 36 36 36
USB_int_ep1in_ count 0 0 0 0
USB_int_ep2in_ count 0 0 0 0
USB_int_ep3in_ count 0 0 0 0
USB_INT_SUSPEND 2 2 2
USB_int_disconn 0 0 0 0
USB_int_conn 0 0 0 0
在不工作的 PC 上
@25MHz @50MHz @ 100MHz @150MHz
USB_int_total 34 39 40 40
USB_INT_RESET 2 3 3 3
USB_INT_RESUME 0 0 0 0
USB_int_ep0 32 34 34 34
USB_int_ep1in_ count 0 0 0 0
USB_int_ep2in_ count 0 0 0 0
USB_int_ep3in_ count 0 0 0 0
USB_INT_SUSPEND 2 2 2
USB_int_disconn 0 0 0 0
USB_int_conn 0 0 0 0
此外、我们还发现、甚至移除了光学隔离器、并通过原始快速 CDC_Open 请求原始快速模式、
(关于我们拥有的 C5515 EVM 的设计)“错误”PC 将继续在我们的电路板上表现不佳。
请注意、我们的 C5515 EVM 支持 USB (尽管速度快)定期与任何类型的 PC 配合使用。
结论:
请帮助我们解决/解决此问题、否则我们的整个项目将结束
感谢您的关注。





