This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

51822+uart framing+break issues

Hi

for some reason I cannot connect any PC terminal to my custom board: I would get consistent NRF_UART0->ERRORSRC = 0x000c or 0x0004 indicating break and/or framing issue. I hope someone has any hints to help me out ...

Here is my setup:

  • custom board, RX pin = 30, TX pin = 0, no CTS/RTS
  • nrf51822 QFAAH0 + SDKv5_2_0 + SD110v6.2.1 (can't change any of those)
  • SD is initialised
  • app_uart is configured as follows:
const app_uart_comm_params_t comm_params =  
	    {
		DBG_RX_PIN, DBG_TX_PIN, 
		0, 0,
		APP_UART_FLOW_CONTROL_DISABLED, false,
		UART_BAUDRATE_BAUDRATE_Baud115200
	    };
	uint32_t err_code;
	APP_UART_FIFO_INIT(&comm_params, 64, 64, uart_error_handle, APP_IRQ_PRIORITY_LOW, err_code);
  • uart_error_handle does the following:
void uart_error_handle(app_uart_evt_t* p_event) {
    switch (p_event->evt_type)
    {
    case APP_UART_COMMUNICATION_ERROR:
        ui_printf("ERROR %x\n", p_event->data.error_communication);
        break;

    default:
        ui_printf("OTHER\n");
        break;  
    }
}
  • using USB<>Serial cable (based on PL2303), connected as follows:
nrf-tx-pin <=> rs232-pin2
nrf-rx-pin <=> rs232-pin3
nrf-gnd    <=> rs232-pin5
  • using any Terminal application on Windows/Mac, e.g. screen or RealTerm, configured 115200,8N1
  • whether my custom uart driver or SDK's app_uart.c, I get the same results:

Results:

  1. Whenever I press a key on the terminal, I get a ERROR 0x0004 followed immediately by a ERROR 0x000c on the board, The terminal app also indicates a BREAK + ERROR
  2. Changing baudrate does not help, some (e.g. 19200) even have weird consequences on display(!)
  3. Changing parity does not help
  4. (weird) if I disconnect GND (pin 5), the terminal app does not indicate any BREAK + ERROR error anymore but the board still does

any ideas/hints ?

Related