Part Number:PROCESSOR-SDK-OMAPL138Other 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还是一样的效果!
麻烦各位专家帮忙解答一下,实在不知如何下手了!或者还有什么配置信息没打开和注意的地方
Nancy Wang:
请问手上有开发板吗?其它电脑有没有测试过,目前不确定是否是软件问题导致的。
,
EricPengYong:
手上没有开发板,在好几台电脑上测过结果是一样的。
不过我调试的的时候,想看一下有没有跑到USB的中断里去,所以在中断里加打印输出发现只输出了一部份就死机了,但是不加打印又看不出是不是真的死机了。
请问一下你们有没有在中断里加上打印调试过?
有的时候还会打出如下打印,有时候又没有,如果在中断里去掉打印是不会打如下信息的!
xdc.runtime.Error.raise: terminating execution
好像是软件的问题,但又说不出来什么问题。
现在不知道怎么调试了,没有思路! 感觉不像是硬件问题,USB作设备端用就4根线也对过开发板的usb原理图没太大区别。
不过我们用的是OMAP-L132,CPU频率是192MHz ,晶振是19.2Mhz
TI中文支持网

