1425
6437E–ATARM–23-Apr-13
SAM9M11
53.2.9
USB High Speed Host Port (UHPHS) and Device Port (UDPHS)
53.2.9.1
UHPHS/UDPHS: USB does not start after power-up
The USB may not start properly at first use after power-up.
If the device boots out of the internal ROM, SAM-BA will not be functional.
Problem Fix/Workaround
1.
Apply a hardware reset (NRST) after power-up.
Or
2.
Activate the PLLUTMI twice, following the procedure below:
– a- Start The UTMI PLL and wait for the PLL lock bit
– b- Disable the UTMI PLL and wait 10 seconds minimum
– c- Restart the UTMIPLL and wait for the PLL Lock bit
Warning: When booting out of the internal ROM, this workaround is not implemented and there-
fore SAMBA will not be functional.
Below is a possible implementation of the workaround:
/* First enable the UTMI PLL */
AT91C_BASE_PMC->CKGR_UCKR |= (AT91C_CKGR_UCKR_PLLCOUNT & (0x3 << 20)) |
AT91C_CKGR_UCKR_UPLLEN;
tmp =0;
while (((AT91C_BASE_PMC->PMC_SR & AT91C_PMC_SR_LOCKU) == 0) && (tmp++ <
DELAY));
/* Disable the PLLUTMI and wait 10s min*/
AT91C_BASE_PMC->CKGR_UCKR &= ~AT91C_CKGR_UCKR_UPLLEN;
tmp=0;
while(tmp++ < DELAY2); // DELAY2 must be defined to fit the 10s min;
/* Re- enable the UTMI PLL and wait for the PLL lock status*/
AT91C_BASE_PMC->CKGR_UCKR |= (AT91C_CKGR_UCKR_PLLCOUNT & (0x3 << 20)) |
AT91C_CKGR_UCKR_UPLLEN;
tmp =0;
while (((AT91C_BASE_PMC->PMC_SR & AT91C_PMC_SR_LOCKU) == 0) && (tmp++ <
DELAY));
53.2.9.2
UHPHS/UDPHS: Bad Lock of the USB High speed transceiver DLL
The DLL used to oversample the incoming bitstream may not lock in the correct phase, leading
to a bad reception of the incoming packets.
This issue may occur after the USB device resumes from the Suspend mode.