We want to add USB HOST functionality to our device, based on MCF54418. We want to use the pll divider as USB_CLK internal source. We are working with fvco=500MHz (the maximum). We have already tested all our system working with this frequency (NAND Flash controlle fnfc = fvco / 14; flexbus controller fbus = fsys / 2 = fvco / 4 , and fsys = fvco / 2)
At page 8-8 (PLL Divide Register) in the "MCF5441x Reference Manual" I can read this in the OUTDIV4 bit field description:
"Note: If used as the USB clock source, the OUTDIV4 resulting frequency must be 60 MHz. This may require that fVCO be less than the maximum."
We have used OUTDIV4=7 and fvco = 10 * 50MHz = 500MHz , so fusb = fvco / 8=62,5MHz.
With 62,5MHz The MQX USB Host Mass Storage Example works fine just by disabling the external peripheral clock for USB in usb_mcf5441.c:
_mqx_int _bsp_usb_host_init(struct usb_host_if_struct *usb_if)
//reg_ptr->CCM.MISCCR &= ~0x0001;
reg_ptr->CCM.MISCCR |= 0x0001; //PLL drives USB serial interface clocks
It has been Luck? Could the usb host work without problems with 62,5MHz instead of 60MHz? Or It must be exactly 60MHz as I suppose by reading the note at the OUTDIV4 bit field description?
Is there anyway to achieve exactly 60MHz for fusb,internally without changing the other frequencies (already tested)?
Thanks in advance,