This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BBB UART sending, but not receiving

Other Parts Discussed in Thread: SYSBIOS

Hi,

Im using multiple UARTs on an AM335x, SYSBIOS based project and UART4 appears to be unable to read the incoming data.

The following code is executed in a loop to poll and test the UARTs.

while(1)
	{
//		 text printing test
		UART4PutText("Text printing: ");
//
//		//char printing text
		UART4PutChar('B');
		UART4PutChar('B');
		UART4PutChar('B');
		UART4PutChar('\n');

		if(	UARTCharsAvail(SOC_UART_4_REGS) > 0){
			System_printf("Uart4: ");

			while(	UARTCharsAvail(SOC_UART_4_REGS) > 0){
				System_printf("%d ", UARTCharGet(SOC_UART_4_REGS));
			}
			System_printf("\n");
		    System_flush();
		}

		if(	UARTCharsAvail(SOC_UART_2_REGS) > 0){
			System_printf("Uart2: ");

			while(	UARTCharsAvail(SOC_UART_2_REGS) > 0){
				System_printf("%02x ", UARTCharGet(SOC_UART_2_REGS));
			}
			System_printf("\n");
		    System_flush();

		}

		Task_sleep(250);
	}

This code refers to functions:

void UART4PutChar(Char txChar) {
    UARTCharPut(SOC_UART_4_REGS, txChar);
}

void UART4PutText(Char *text)
{
	while(*text)
		UART4PutChar(*(text++));
}

signed char UART4GetChar() {
	if(UARTCharsAvail(SOC_UART_4_REGS) > 0){

	    return (UARTCharGet(SOC_UART_4_REGS));
	} else {
		return NULL;
	}
}

The UART2 works great, it sends and receives data correctly.

The UART4, however, is only able to send the data. 

The register values responsible for pinmuxing are as follows (MODE1) :

conf_gpmc_wait0 0x0000002E 
conf_gpmc_wpn 0x0000000E