//1、set the ENSUSPM bit of FADDR_POWER register
*((ioport unsigned int *)0x8401) |= 0x0200; //at real case , the ccs will be halt (problem 1)
//2、Set the USB clock stop request bit (USBCLKSTREQ) in the CLKSTOP[1C3AH]
*((ioport unsigned int *)0x1C3A) |= 0x0004;
//3、Wait until the USB acknowledges the clock stop request by polling the USB clock stop acknowledge bit
//(USBCLKSTPACK) in the CLKSTOP register.
while(0 == ((*((ioport unsigned int *)0x1C3A)) & 0x0008)){} // stop here
//4、Disable the USB peripheral clock by setting USBCG = 1 in the peripheral clock gating control register 2
//(PCGCR2)[1C03h].
*((ioport unsigned int *)0x1C03) |= 0x0004;
//5. Disable the USB oscillator by setting USBOSCDIS = 1 in the USB system control register (USBSCR)[1C32].
*((ioport unsigned int *)0x1C32) |= 0x0004;
系统reset后, 程序会停在检测USB停止请求循环中无法跳出。 不知如何解决? 请赐教!
while(0 == ((*((ioport unsigned int *)0x1C3A)) & 0x0008)){} // stop here
sadh zhang:
造成的情况是系统在12.688Mhz 主频下电流超过了25mA!
Tony Tang:
回复 sadh zhang:
C55是小端的,好像bit位搞错了,试一下:CSL_USB_REGS->FADDR_POWER |= 0x0002