we're developing a CPU board for one of our customers based on the LS1046A. We use UART1 as the primary system console in U-Boot and Linux and have an FTDI FT234XD (Full Speed USB to Basic UART, powered over USB) on board.
This has worked pretty good so far, but our customer has one board where Linux randomly hangs when changing the Linux runlevel and USB is not connected to the FTDI.
I've tested this to the point that I'm pretty sure that the issue occurs not when the UART1_SIN signal is high (3.3V from either on-board or off-board FTDI) before the CPU is powered up.
When connecting the signal directly to ground or to the CPU 3.3V the system randomly hangs.
Does anyone have an idea on what might cause this strange effect and how to prevent it?
AN5252 Table 10 requires that UART1_SIN is pulled to DVdd via a 2..10 kOhm resistor. The pin may have undocumented functionality for Factory testing. Follow the Design Checklist recommendations to avoid unexpected behaviour.
Have a great day
thanks for the info.
Looking at AN5252 one can see that the pull-up is only mentioned in case the pin is not used. So technically we are following the recommendations from the design checklist.
Regardless, I experienced the issue even with a pull-up resistor on the signal.
I actually spoke too soon - a simple pull-up connected to the CPU I/O voltage rail remedies the issue.
In the register description I found the bits to clear the FIFOs but nothing to clear/reset the shift register. Is there a way to completely reset the UART module or the I/O registers?