工具/软件:Code Composer Studio
我们使用 TMS320F28069Uxx 作为自供电 USB 器件的主控制器。
GPIO 26和 GPIO 27配置为 USB_SP 和 USB_DM。
当 MCU 上电或重新设置时、两个 GPIO 被上拉、直到引导加载程序/固件禁用上拉或 将其启用为 USB PHY。
----------------------------------------------------------------------
C2000闪存常见问题/常见问题解答
processors.wiki.ti.com/.../FAQs
3.4.2 Q:是否可以通过软件禁用上拉和下拉电阻器?
'如果 GPIO 引脚不常用作 ePWM、则在复位时启用上拉电阻。 然后可通过软件禁用它。"
----------------------------------------------------------------------
我们的问题是: 当使用已与 PC 主机连接的 USB 电缆打开自供电设备时、PC 主机在 USB_DM 和 USB_DP 上都将看到大约2.0V (140uA * 15k 欧姆)的电压、这应该是 SE1错误、但 PC 主机似乎忽略此错误并开始枚举。
在220ms 左右、GPIO 26和 GPIO 27在引导加载程序/固件开始运行并禁用上拉时被下拉。
PC 主机的枚举中断并弹出"USB Device not recognized (USB 设备未识别)"。
TMS320F28069Uxx 引导模式为 Getmode (默认:引导至闪存)。
用于禁用上拉电阻的 Main()中的代码恰好在时钟和 PLL 启用之后、但是 GPIO26和27上的2.0V 一直持续至少220ms。
那么、问题是如何在 MCU 上电或复位后尽快禁用 GPIO 26和 GPIO 27上拉电阻、预计时间不到100ms。 然后、在 引导加载程序/固件 将 SOFT_CONN 设置 为上拉 USB_DP 之前、PC 主机将不会启动枚举。
在引导过程运行到 Main()之前,我可以在 F2806x_CodeStartBranch.asm 中执行一些操作来禁用上拉电阻吗?