Our design uses USB in device mode only.
We have 4 working production PCB's that work very reliable as a USB powered device with the system clock set to run at 16 MHz. We run the system clock
directly from the external oscillator to save power because the PLL consumes 40 mA. We set up the system clock with the function call
ROM_SysCtlClockSet( SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ);
Now we just made a 2nd short production run and all the 8 PCB's fail to be recognized by a host PC (with the same firmware than the first 4 PCB's).
We changed the system clock to run from the PLL at 20 MHz with the function call
ROM_SysCtlClockSet(SYSCTL_SYSDIV_10 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ);
And all the 8 PCB's work very reliable. The problem is the PLL consumes 40 mA that we didn't plan for and we don't need to run the MCU faster than 16 MHz.
The MCU production date code for the first 4 PCB's is July 2011 and for the 2nd batch of 8 PCB's is December 2011
Do you have an explanation for the above odd behavior ?
Are there other settings required to run the USB device with the system clock set to run at 16 MHz from the external oscillator ?
Thank you.