BLE LTE Gateway With Extra UARTE Instance

Im trying to use the BLE LTE Gateway running on a NRF9160DK

I have the NRF52840 running the lpuart_hci code and that is working fine i can configure the BLE from the NRF9160 and get advert data back.

However i was trying to enable a second UARTE instance on the 9160 and it just does not work..

the NRF52840 is connected using UARTE2 can i use UARTE1 or UARTE0? and if so what configuration in my prj,conf do i need to get this to work? ive tried almost every combination of things i can think of.

Thanks,

David

  • Hi,

    How are you enabling the second UARTE instance? Could I see your overlay file and prj.conf, and any changes to the board files, if there are any.

    Have you made sure to disable any other serial peripherals which share resources with the new UARTE instance? For example if you want to use uart3 you need to disable spi3, which is enabled by default.

  • Hello,

    A little bit more context to what i want to achieve.
    i have a Transport Controller which is responsible for pulling data from a store and sending over a given "transport" in production this transport will be over LTE, however in development i want to use UART instead and have the data flowing over VCOM0 or VCOM2 so that i can test that the data that will be sent to the server is fine.. and i can test the UART side with the DK just plugged into my PC.
    I was trying to copy the example nrf/samples/peripheral/lpuart
    Overlay file
    / {
        chosen {
            zephyr,bt-uart=&lpuart;
        };
    };

    &gpiote {
        interrupts = <49 NRF_DEFAULT_IRQ_PRIORITY>;
    };

    //This is my second instance
    &uart1 {
        rx-pin = <10>;
        tx-pin = <11>;
        /delete-property/ rts-pin;
        /delete-property/ cts-pin;

        lpuart: nrf-sw-lpuart {
            compatible = "nordic,nrf-sw-lpuart";
            status = "okay";
            label = "TRANSPORT";
            req-pin = <12>;
            rdy-pin = <13>;
        };
    };

    &uart2 {
        current-speed = <1000000>;
        status = "okay";
        tx-pin = <18>; /* <&interface_to_nrf52840 1 0>; */
        rx-pin = <17>; /* <&interface_to_nrf52840 0 0>; */
        /delete-property/ rts-pin;
        /delete-property/ cts-pin;
        /delete-property/ hw-flow-control;

        lpuart: nrf-sw-lpuart {
            compatible = "nordic,nrf-sw-lpuart";
            status = "okay";
            label = "LPUART";
            req-pin = <21>; /* <&interface_to_nrf52840 3 0>; */
            rdy-pin = <19>; /* <&interface_to_nrf52840 2 0>; */
        };
    };
    The Overlay Looks like this:
    CONFIG_NRF_SW_LPUART=y
    CONFIG_NRF_SW_LPUART_INT_DRIVEN=y

    CONFIG_UART_2_ASYNC=y
    CONFIG_UART_2_INTERRUPT_DRIVEN=n
    CONFIG_UART_2_NRF_HW_ASYNC=y
    CONFIG_UART_2_NRF_HW_ASYNC_TIMER=2

    CONFIG_UART_1_ASYNC=y
    CONFIG_UART_1_INTERRUPT_DRIVEN=n
    CONFIG_UART_1_NRF_HW_ASYNC=y
    CONFIG_UART_1_NRF_HW_ASYNC_TIMER=2
    But the UART_1 has missing dependencies which i cannot add in
    if i could steal the UART instance that the logging uses that would be fine also... 
    Thanks,
    David Hutchinson
  • Hi, sorry for the late response.

    I assume you are building for non-secure? If so, try adding this to the uart1 node in the overlay:

    status = "okay";

Related