Other Parts Discussed in Thread: OMAP-L138
Hi,
We've got an application using the OMAP-L138 UPP in duplex mode (one channel transmit 16 bit, one receive 16 bit). The receive side is running at 20 MHz (external clock) and we aren't having any problems. On the transmit side, if we run the system using the PLL0_SYSCLK2 (running at 150 MHz, yielding a 75 MHz output clock), everything works as expected. We can divide down the clocks and the output rate drops accordingly.
If we switch the Tx clock source to PLL1_SYSCLK2 (also set to 150 MHz), it works fine as long as we don't divide the clock down by more than a factor of 4 in the Tx Clock divider register in the UPP peripheral core. If we divide down, we start getting EOR hits in the UPP Status register and transmitter stalls.
If we switch the Tx clock to source the external 2TXCLK pin, running at 40 MHz (for a net Tx clock rate of 20 MHz), we again get EOR hits and the Tx side stalls.
These tests don't change any code or other runtime operations outside of the Tx Clock selection in the SYSCLK3 register. We're kind of scratching our heads here, as to why slowing the clock down would result in a transmit DMA EOR status. The error mode seems to be related to the Tx Clock domain selection. E.G., PLL0_SYSCLK2 can run at 75 MHz or any divided down rate without any EOR stalls, but if we switch to PLL1_SYSCLK2 using the same rates we have problems. Same with the slower external clock.
Has anyone seen this? We're going the our code again, but it seems odd that we'd be OK with one clock selection and fall over with a different (slower) one all else being the same.
Thanks.
-Mike