nRF9160 receives garbage data on UART sometimes

Hello, 

I closed below case by mistake. 

nRF9160 receives garbage data on UART sometimes - Nordic Q&A - Nordic DevZone - Nordic DevZone (nordicsemi.com)

As per your query I am using nRF9160 DK for testing. 

I have modified "http_application_uodate" example code for my testing. 

Regards,

Smitesh Mali

Parents
  • Hello, 

    Can you please elaborate on what you have modified on the nRF9160: HTTP application update sample? What terminal are you using to connect to the COM port? Have you tried with the nRF Connect for Desktop - LTE Link Monitor?

    Kind regards,
    Øyvind

  • Hello,

    Below is the interrupt routine which waits for "UUT*SIM=?\n" command from terminal. 

    static void UHi_PcUartCb(const struct device *x, void* data)
    {
        uart_irq_update(x);
        int data_length = 0;
    
        if (uart_irq_rx_ready(x)) {
                data_length = uart_fifo_read(x, &_uartPcRxChar, 1);
    
        }
    
        if (_pcCmdRxFlg)
        {
            return;
        }
    
        _uartPcBuf[_pcRxCntr] = _uartPcRxChar;
    
        if (_uartPcBuf[_pcRxCntr] == '\n')
        {
            _pcCmdRxFlg = true;
            return;
        }
    
        _pcRxCntr++;
    
    }

    When "\n" is receive data will be processed. 

    But sometimes data received is "ª*SIM=?\n" instead of "UUT*SIM=?\n". 

    What terminal are you using to connect to the COM port?

    I am using "Docklight" utility in PC to communicate with com port. 

    Have you tried with the nRF Connect for Desktop - LTE Link Monitor?

    No, I haven't tried it. 

    Regards,

    Smitesh Mali

  • Hello, 

    I debugged the issue further by enabling error interrupt for UART

    uart_irq_err_enable(_uartPc);

    I received "UART_BREAK" (0x08) error when I get "ª*SIM=?\n" (wrong data). 

     

    Interestingly, I am getting error when I receive expected data too which is "UUT*SIM=?\n". 

    But at that time error is different. It is "UART_ERROR_FRAMING" (0x04) error. 

    I get this error after complete data from PC is received. 

    Can you tell me in what case "UART_BREAK" error can come ? 

    As per the comment in "uart.h" it comes in below case. 

    /**
    * @brief Break interrupt
    *
    * A break interrupt was received. This happens when the serial input
    * is held at a logic '0' state for longer than the sum of
    * start time + data bits + parity + stop bits.
    */

    Regards,

    Smitesh Mali

Reply
  • Hello, 

    I debugged the issue further by enabling error interrupt for UART

    uart_irq_err_enable(_uartPc);

    I received "UART_BREAK" (0x08) error when I get "ª*SIM=?\n" (wrong data). 

     

    Interestingly, I am getting error when I receive expected data too which is "UUT*SIM=?\n". 

    But at that time error is different. It is "UART_ERROR_FRAMING" (0x04) error. 

    I get this error after complete data from PC is received. 

    Can you tell me in what case "UART_BREAK" error can come ? 

    As per the comment in "uart.h" it comes in below case. 

    /**
    * @brief Break interrupt
    *
    * A break interrupt was received. This happens when the serial input
    * is held at a logic '0' state for longer than the sum of
    * start time + data bits + parity + stop bits.
    */

    Regards,

    Smitesh Mali

Children
Related