Part Number:PROCESSOR-SDK-AM437X
Tool/software:TI-RTOS
Current development environment :
Windows 7
CCS v6.1.2.00015
Target Processor Sitara AM437X
NDK 2_24_03_35
PDK_AM437X_1_0_4
processor_sdk_rtos_am437x_3_01_00_06
We are trying to integrate UART 3 into our system.
UART 1 behaviour is fine and understood.
We are attempting to use UART 3 in the same, Blocking Mode configuration as UART 1.
UART 1 is operating as a debug port, it accepts keyboard commands and outputs status. It operates in Blocking Mode such that the UART_read() operation results in thread blocking until a character is received.
The nature of this interface means that UART 1 FIFO is usually empty because it is waiting for manual input from the user.
We are attempting to use UART 3 in a similar way, except we are connected to a GPS device which broadcasts data at us. What we are seeing is that the UART_read() operation returns data to the application until it first encounters FIFO empty. Once in this state the thread blocks but then never returns data. We have a data analyser configured in the system, so we can see data packets being transmitted from the GPS device. Also the UART_RXFIFO_LVL register is incrementing, showing that the data is being pushed into the UART FIFO.
We would prefer to operate UART 3 in Binary Mode but have also tried Text mode. The GPS data is NMEA and as such is simple ASCII interface so we should be able to configure UART 3 with the same operational characteristics as UART 1 ?
In summary : Once the first FIFO empty is encountered, UART 3 will not return any subsequent received data to the application. But UART 1 does ?
Any thoughts or information regarding experience of this issue would be much appreciated.
Thanks
Si.