单板的硬件连接如下:
将 GPIO42, GPIO45 连接到 connector的 DM,DP 管脚;connector 的VBUS管脚直接连接 5V供电。
其余的 USB 信号 USB0ID, USBVBUS, USB0EPEN,USB0PFLT 均没有接到GPIO IO 信号上。
软件配置如下:
1. 管脚配置:
GPIOPinConfigure(GPIO_PC5_USB0EPEN);
GPIOPinConfigure(GPIO_PJ1_USB0PFLT);
GPIOPinTypeUSBDigital(GPIO_PORTC_BASE, GPIO_PIN_5);
GPIOPinTypeUSBDigital(GPIO_PORTJ_BASE, GPIO_PIN_1);
GPIOPinTypeUSBAnalog(GPIO_PORTG_BASE, GPIO_PIN_2 | GPIO_PIN_5);
2.将 USBHostPwrEnable 中的 使能外部电源接口注释掉:
void
USBHostPwrEnable(unsigned long ulBase)
{
// Check the arguments.
ASSERT(ulBase == USB0_BASE);
#if 0
// Enable the external power supply enable signal.
HWREGH(ulBase + USB_O_EPC) |= USB_EPC_EPENDE;
#endif
}
3. 在初始化过程中调用 USBHostMode 将 USBGPCS 寄存器的 DEVMODOTG 位置一
结果没配置成功;在板子起来之后,USBGPCS 寄存器的值被清零。而且板子起来之后,插入 U 盘触发了 Session Request 中断后就没反应了,
没有进行USB 设备的枚举过程。
请教下各位,上面的配置问题出在哪里?或者说要将 usb口配成 host 的专用模式,需要哪些步骤?