Other Parts Discussed in Thread: OMAP-L132,
TI的专家:
你好!
在OMAPL138(不过我们的板子用的是OMAP-L132) 中调试USB例子(USB_DevMsc_lcdkOMAPL138_armExampleProject)程序时,老是提示无法别的USB设备,在设备管理器查看是未知USB设备(设备描述符请求失败)
开发环境说明:
CCS: Version: 7.4.0.00015
ARM Compiler version: TI v16.9.3.LTS
SYS/BIOS: 6.52.0.12
XDCtools:3.50.3.33_core
PROCESSOR-SDK-OMAPL138: processor_sdk_rtos_omapl138_4_03_00_05
omapl138 PDK:1.0.4
由于我们的板了接的是19.2Mhz的晶振,所以在初始化USB的时候有如下的修改:
将USB的输入时钟由24Mhz改成了19.2Mhz
将之前的 usbphycfg |= (USBPHY_REFFREQ_24MHZ) | USBPHY_VBDTCTEN; 改成了usbphycfg |= (USBPHY_REFFREQ_19P2MHZ) | USBPHY_VBDTCTEN;
修改代码如下:
#define USBPHY_REFFREQ_12MHZ (1 << 0) #define USBPHY_REFFREQ_24MHZ (2 << 0) #define USBPHY_REFFREQ_48MHZ (3 << 0) #define USBPHY_REFFREQ_19P2MHZ (4 << 0) void UsbPhyOn(uint32_t uiPHYConfigRegAddr) { uint32_t usbphycfg = 0; uint32_t i; usbphycfg = HWREG(uiPHYConfigRegAddr); usbphycfg |= (USBPHY_RESET); HWREG(uiPHYConfigRegAddr) = usbphycfg; for(i=0; i<50; i++); usbphycfg &= 0xFFFF7FFF; HWREG(uiPHYConfigRegAddr) = usbphycfg; usbphycfg &= 0xFFFF9FFF; // usbphycfg |= (USBPHY_FORCE_DEVICE); // 强制设成设备模式 HWREG(uiPHYConfigRegAddr) = usbphycfg; usbphycfg &= ~(USBPHY_PHY_PWRDN | USBPHY_OTG_PWRDN); usbphycfg |= (USBPHY_PHY_PLLON); // usbphycfg |= (USBPHY_REFFREQ_24MHZ) | USBPHY_VBDTCTEN; usbphycfg |= (USBPHY_REFFREQ_19P2MHZ) | USBPHY_VBDTCTEN; HWREG(uiPHYConfigRegAddr) = usbphycfg; while(! (HWREG(uiPHYConfigRegAddr) & USBPHY_CLKGD)); consolePrintf("uiPHYConfigRegAddr:0x%08x \r\n",HWREG(uiPHYConfigRegAddr)); }
调式程序的打印信息:
RTOS USB Dev MSC example!!
uiPHYConfigRegAddr:0x00020954
uiPHYConfigRegAddr:0x00020954
Done configuring USB and its interrupt. Example is ready!
附上报错图片:
我又怀疑是不是下载下来的sdk版本不对引起的,后面我下载了最新的 processor_sdk_rtos_omapl138_6_03_00_106 用这个版本生成了例子程序,调式USB还是一样的效果!
麻烦各位专家帮忙解答一下,实在不知如何下手了!或者还有什么配置信息没打开和注意的地方