Connectivity bridge on NRF52840 based custom board

Hi,

 Tried to use Connectivity bridge app on a custom board based on NRF52840 and it seems that the UART-USB interface works initially, but after a while it gets stuck at communication level. The goal is to use it in the same way USBD_CDC_ACM sample. Opening a console to that stuck PORT makes it work again for a while. The CDC_ACM / UART control lines are enabled and they should work normally, since, on the same board, the USBD_CDC_ACM sample does not have this problem.

 Configuration:

# Features
CONFIG_BRIDGE_MSC_ENABLE=n
CONFIG_BRIDGE_BLE_ENABLE=n

Overlay file:

&uart1 {
	compatible = "nordic,nrf-uarte";
	status = "okay";
};

&zephyr_udc0 {
	cdc_acm_uart0: cdc_acm_uart0 {
		compatible = "zephyr,cdc-acm-uart";
	};

	cdc_acm_uart1: cdc_acm_uart1 {
		compatible = "zephyr,cdc-acm-uart";
	};

	rtt0: rtt_chan0 {
		compatible = "segger,rtt-uart";
		status = "okay";
	};
};

/ {
	chosen {
		zephyr,console = &rtt0;
		zephyr,shell-uart = &rtt0;
		zephyr,uart-mcumgr = &rtt0;
	};
};

I would like to know what is the cause of this behaviour.

Regards.

Parents Reply
  • Hi,

    Floating RXD pin can cause such issue yes. If you don't have the possibility to add an external pull-up, you can use the internal one, something like this (look for 'bias-pull-up;' for the RXD pin):

    &pinctrl {
    	uart1_default: uart1_default {
    		group1 {
    			psels = <NRF_PSEL(UART_RX, 1, 1)>;
    			bias-pull-up;
    		};
    		group2 {
    			psels = <NRF_PSEL(UART_TX, 1, 2)>;
    		};
    	};
    
    	uart1_sleep: uart1_sleep {
    		group1 {
    			psels = <NRF_PSEL(UART_RX, 1, 1)>,
    				<NRF_PSEL(UART_TX, 1, 2)>;
    			low-power-enable;
    		};
    	};
    };

    Kenneth

Children
Related