Serial error on nRF54L15DK when no terminal connected

We are using both serial ports running over USB on the nRF54L15DK:

  • uart20 is LOG, CONSOLE, etc.
  • uart30 is for our communication (enabled in our overlay)

When we open a terminal to the COM port corresponding to uart20 but not to the COM port corresponding to uart20, we seem to receive a lot of garbage.

Two log files are attached, showing the error and also what the log output looks like when we already have the serial comm port open.  Teh advertising is different between the two logs, but we ran enough tests to know that advertising has no effect on this issue.  The problem is independent of the terminal used (PuTTY, TeraTerm, YAT).

One explanation is that the pins are floating, based on this note in the nRF54L15DK user manual:

Tri-stated UART lines when no terminal is connected

However, the device tree defines the RX pin with pull-up so there should not be an issue:

/omit-if-no-ref/ uart30_default: uart30_default {
  group1 {
    psels = <NRF_PSEL(UART_TX, 0, 0)>,
                 <NRF_PSEL(UART_RTS, 0, 2)>;
  };

  group2 {
    psels = <NRF_PSEL(UART_RX, 0, 1)>,
                <NRF_PSEL(UART_CTS, 0, 3)>;
    bias-pull-up;
  };
};

*** Booting My Application v1.0.0-92d1c5299e75 ***
*** Using nRF Connect SDK v3.1.1-e2a97fe2578a ***
*** Using Zephyr OS v4.1.99-ff8f0c579eeb ***
[00:00:00.019,498]  CPU clock configured
[00:00:00.019,527]  Watchdog initialized
[00:00:00.019,532]  CMLS Board initialized
[00:00:00.019,590]  clms_ble_main: Starting Bridge Thread
[00:00:00.019,595]  serial_ble_bridge: Initializing Serial-BLE Bridge Thread
[00:00:00.019,630]  serial_ble_bridge: Starting Serial-BLE Bridge Thread
[00:00:00.021,336]  fs_nvs: 2 Sectors of 4096 bytes
[00:00:00.021,342]  fs_nvs: alloc wra: 0, c10
[00:00:00.021,347]  fs_nvs: data wra: 0, 3c0
[00:00:00.021,439]  bt_sdc_hci_driver: SoftDevice Controller build revision: 
                                            fc de 41 eb a2 d1 42 24  00 b5 f8 57 9f ac 9d 9e |..A...B$ ...W....
                                            aa c9 b4 34                                      |...4             
[00:00:00.023,248]  bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
[00:00:00.023,265]  bt_hci_core: HW Variant: nRF54Lx (0x0005)
[00:00:00.023,282]  bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 252.16862 Build 1121034987
[00:00:00.023,450]  bt_hci_core: No ID address. App must call settings_load()
[00:00:00.023,456]  bleConnectionMgr: Bluetooth initialized
[00:00:00.023,798]  bleConnectionMgr: BLE Device Name: DEVICE_45880CC9
[00:00:00.025,080]  bt_hci_core: HCI transport: SDC
[00:00:00.025,135]  bt_hci_core: Identity: C9:2D:7A:8B:EF:47 (random)
[00:00:00.025,154]  bt_hci_core: HCI: version 6.1 (0x0f) revision 0x3069, manufacturer 0x0059
[00:00:00.025,172]  bt_hci_core: LMP: version 6.1 (0x0f) subver 0x3069
[00:00:00.026,426]  bleConnectionMgr: Settings loaded
[00:00:00.026,453]  bleConnectionMgr: Device UUID: 0x190148E745880CC9
[00:00:00.026,492]  bleConnectionMgr: Serial Number: 0x190148E745880CC9 saved to Settings
[00:00:00.026,521]  bleConnectionMgr: FW Version: MVD_FW_v0.1.5-92d1c52 saved to Settings
[00:00:00.026,528]  bleConnectionMgr: Device Info Service settings initialized
[00:00:00.026,532]  bleConnectionMgr: Nordic UART Service initialized
[00:00:00.026,782]  bleConnectionMgr: Advertising with connection filtering disabled (pairing mode).
[00:00:00.027,424]  bleConnectionMgr: STANDARD Advertising successfully started
[00:00:01.027,494]  serial_service: Initializing Serial Service Thread
[00:00:01.027,828]  serial_service: serialServiceThread: SERIAL_SERVICE Start
[00:00:01.127,925]  serial_service: serialService_uartCallback: UART_RX_BUF_REQUEST
[00:00:01.127,953]  serial_service: serialService_SendData: Queued data for UART transmission: 30 bytes
[00:00:01.130,632]  serial_service: serialService_uartCallback: UART_TX_DONE
*** Booting My Application v1.0.0-92d1c5299e75 ***
*** Using nRF Connect SDK v3.1.1-e2a97fe2578a ***
*** Using Zephyr OS v4.1.99-ff8f0c579eeb ***
[00:00:00.019,491] <inf> CPU clock configured
[00:00:00.019,519] <inf> Watchdog initialized
[00:00:00.019,524] <inf> Board initialized
[00:00:00.019,582] <inf> clms_ble_main: Starting Bridge Thread
[00:00:00.019,587] <inf> serial_ble_bridge: Initializing Serial-BLE Bridge Thread
[00:00:00.019,622] <inf> serial_ble_bridge: Starting Serial-BLE Bridge Thread
[00:00:00.021,356] <inf> fs_nvs: 2 Sectors of 4096 bytes
[00:00:00.021,362] <inf> fs_nvs: alloc wra: 0, c90
[00:00:00.021,366] <inf> fs_nvs: data wra: 0, 3a0
[00:00:00.021,462] <inf> bt_sdc_hci_driver: SoftDevice Controller build revision:
                                            fc de 41 eb a2 d1 42 24  00 b5 f8 57 9f ac 9d 9e |..A...B$ ...W....
                                            aa c9 b4 34                                      |...4  
[00:00:00.023,270] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
[00:00:00.023,288] <inf> bt_hci_core: HW Variant: nRF54Lx (0x0005)
[00:00:00.023,305] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 252.16862 Build 1121034987
[00:00:00.023,473] <inf> bt_hci_core: No ID address. App must call settings_load()
[00:00:00.023,478] <inf> bleConnectionMgr: Bluetooth initialized
[00:00:00.023,809] <inf> bleConnectionMgr: BLE Device Name: DEVICE_45880CC9
[00:00:00.024,683] <inf> bt_hci_core: HCI transport: SDC
[00:00:00.024,738] <inf> bt_hci_core: Identity: C9:2D:7A:8B:EF:47 (random)
[00:00:00.024,757] <inf> bt_hci_core: HCI: version 6.1 (0x0f) revision 0x3069, manufacturer 0x0059
[00:00:00.024,774] <inf> bt_hci_core: LMP: version 6.1 (0x0f) subver 0x3069
[00:00:00.026,353] <inf> bleConnectionMgr: Settings loaded
[00:00:00.026,380] <inf> bleConnectionMgr: Device UUID: 0x190148E745880CC9
[00:00:00.026,418] <inf> bleConnectionMgr: Serial Number: 0x190148E745880CC9 saved to Settings
[00:00:00.026,448] <inf> bleConnectionMgr: FW Version: MVD_FW_v0.1.5-92d1c52 saved to Settings
[00:00:00.026,454] <inf> bleConnectionMgr: Device Info Service settings initialized
[00:00:00.026,459] <inf> bleConnectionMgr: Nordic UART Service initialized
[00:00:00.026,855] <inf> bleConnectionMgr: Added bonded device FC:DE:90:37:94:D8 (public) to Whitelist
[00:00:00.026,864] <inf> bleConnectionMgr: Advertising with connection filtering enabled.
[00:00:00.027,508] <inf> bleConnectionMgr: WHITELIST Advertising successfully started
[00:00:01.027,591] <inf> serial_service: Initializing Serial Service Thread
--- 37 messages dropped ---
[00:00:01.137,808] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.153,687] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.168,895] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:01.184,780] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.200,065] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:01.215,249] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.231,119] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.246,330] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:01.261,533] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.277,402] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:01.292,598] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.307,900] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.323,771] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.338,984] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:01.354,213] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.370,090] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.385,308] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:01.401,181] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.416,434] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:01.431,651] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.447,527] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.462,738] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:01.477,946] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.493,818] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:01.509,139] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.525,016] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.540,236] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:01.555,453] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.571,323] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.586,533] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:01.601,762] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.617,651] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:01.632,860] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.648,729] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.663,946] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:01.679,154] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.695,019] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.710,222] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:01.726,121] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.741,332] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:01.756,551] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.772,428] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.787,636] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:01.802,852] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.818,732] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:01.833,956] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.849,828] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.865,045] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:01.880,271] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.896,146] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.911,350] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:01.927,240] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.942,537] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:01.957,752] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.973,618] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:01.988,819] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:02.004,039] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:02.019,913] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:02.035,090] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:02.050,998] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:02.066,188] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:02.082,045] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:02.097,220] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:02.112,403] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:02.128,271] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:02.143,457] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:02.159,435] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:02.174,622] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:02.189,818] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:02.205,674] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:02.220,879] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:02.236,068] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:02.252,016] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:02.267,247] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:02.282,450] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:02.298,320] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:02.313,524] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:02.328,734] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:02.344,595] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:02.359,831] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:02.375,717] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:02.390,907] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:02.406,084] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:02.421,954] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:02.437,137] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:02.452,345] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:02.468,241] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:02.483,468] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:02.499,333] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messages dropped ---
[00:00:02.514,548] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 95 messages dropped ---
[00:00:02.530,406] <dbg> serial_service: serialService_uartCallback: UART_RX_BUF_RELEASED
--- 91 messag

Parents Reply
  • Pull-ups are required for Rx to cover cases where the external transmitting device isn't (transmitting). Try adding this to pinctrl:

    			/* Configure with pull-ups enabled for safety when Rx floating*/
    			bias-pull-up;
    

    Edit: Ah, just saw you already did this for UART30; how about UART20? Also best to add pull-ups to all uart pins as a precaution, including Tx as that reverts to GPIO when the UART is disabled

Children
No Data
Related