This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

libuarte: Connection between NRF9160dk and NRF52840

Hi,

If there is already a FAQ, Code or support ticket that I missed, I am more than happy to read it.  I have done a number of searches but cant quite get to what I am looking for.

Setup:
I am trying to get communications between the52840 and 9160 on the 9160DK, using libuarte.  I am using zephyr on the 9160 side an the  nrf-sdk on the 52840 side (as I need ANT+).

A few articles I read were using uart1 for this type of communications, so I cut/paste what was in there.  From what I could gather, a way to do this was to use the MCU_IF with pins 17/18 (9160) => 17/20 (52840)

9160 (.overlay file):

&uart1 {
compatible = "nordic,nrf-uarte";
status = "okay";
current-speed = <115200>;
hw-flow-control;
rx-pin = <17>; /* <&interface_to_nrf52840 0 0>; */
tx-pin = <18>; /* <&interface_to_nrf52840 1 0>; */
cts-pin = <19>; /* <&interface_to_nrf52840 2 0>; */
rts-pin = <21>; /* <&interface_to_nrf52840 3 0>; */
};
9160 (main.c)
Device binding is to UART_1:
struct device *uart = device_get_binding("UART_1");

52840 (main.c)

nrf_libuarte_async_config_t nrf_libuarte_async_config = {
        .tx_pin = 17,
        .rx_pin = 20,
        .baudrate = NRF_UARTE_BAUDRATE_115200,
        .parity = NRF_UARTE_PARITY_EXCLUDED,
        .hwfc = NRF_UARTE_HWFC_DISABLED,
        .timeout_us = 100,
        .int_prio = APP_IRQ_PRIORITY_LOW};

Question:

I can get all of this to work (or appears to) when I;
* start the 9160
* move sw to nRF52
* build->debug from SES
 -> click the green run button

* This appears to do everything correctly, receives ANT+, transmits from 52840 to 9160 and I can see it display on the 9160 tty port (using screen).

If I do it any other way, its as if the code on the 52840 is not running, or there is a problem with the connection or a timing issue ?

I added a nrf_delay_ms(5000) at the start of the 52840 code, just in case there was a timing issue between the 9160 and 52840 in that the UART was not ready - but that didnt work.

What am I missing here ?
I feel I have done every possible combination of switches, power and reset, but the only way I can get it to work is if I use SES Build->Debug 

thanks in advance

-brett

Parents Reply Children
Related