9160DK: need HWFC between 9160 and 52840?

Hi,

I'm using the NRF9160DK board. I'd like to connect the UART port from 9160 to the 52840. The 9160 is running SLM firmware. The 52840 is running my code.

My question is about the uart hardware flow control. I assume it's still needed? I remember when I use 52832 in the past it's necessary to have HWFC. Is that still true?

When I enable HWFC on both sides, it seems working ok. When I send 'AT' from 52840 I got 'OK' back from 9160. But when I look at the actual lines, I noticed that nRF52 RTS (nRF91 CTS) is always low. Is that normal? I do have a BLE connection while doing these tests. I expect to see it toggling sometime. I do see the other line (NRF52CTS-NRF91RTS) toggles based on when I send 'AT' from NRF52 to NRF91.

I attached the configuration files for both the 52840 and 9160.

9160.prj.conf52840.prj.conf3835.nrf9160dk_nrf52840.overlay4405.nrf9160dk_nrf9160ns.overlay

Parents
  • Hello,

    My question is about the uart hardware flow control. I assume it's still needed? I remember when I use 52832 in the past it's necessary to have HWFC. Is that still true?

    Unless you do not want to use the Lower power UART driver, HWFC is not necessary. It is a safety mechanism for slow and fast devices to communicate with each other, which shouldn’t matter to much between a nRF9160 and nRF52840.

    When I enable HWFC on both sides, it seems working ok. When I send 'AT' from 52840 I got 'OK' back from 9160. But when I look at the actual lines, I noticed that nRF52 RTS (nRF91 CTS) is always low. Is that normal? I do have a BLE connection while doing these tests. I expect to see it toggling sometime. I do see the other line (NRF52CTS-NRF91RTS) toggles based on when I send 'AT' from NRF52 to NRF91.

    If the UART driver isn’t actively configured to use flow control, the lines will not toggle. Have you done this in your application?

    Regards,

    Markus

  • I remember when I use NRF5 SDK and 52832, it's required to have HWFC because the soft device blocks everything during radio activities. Is it not a general concern any more?

    Eventually project will go into power optimization stage where everything needs to be low power. So I'd better to make sure my HWFC works properly. I attached digital analyzer tracing. As you can see the RTS from nRF52 is not toggling.

    In my code on 52840, I simply hard coded the UART configuraiton and called the uart_configure() function. Is that correct?


      uart1_cfg.baudrate = 115200;
      uart1_cfg.data_bits = UART_CFG_DATA_BITS_8;
      uart1_cfg.parity = UART_CFG_PARITY_NONE;
      uart1_cfg.stop_bits = UART_CFG_STOP_BITS_1;
      uart1_cfg.flow_ctrl = UART_CFG_FLOW_CTRL_RTS_CTS;//UART_CFG_FLOW_CTRL_NONE;//

      CHKERR(uart_configure(uart_dev, &uart1_cfg));

    I also have some configurations in the prj,conf and the hardware overlay file. (attached in my first post). Could you take a look to see if they are correct or I missed anything? Thanks!

Reply
  • I remember when I use NRF5 SDK and 52832, it's required to have HWFC because the soft device blocks everything during radio activities. Is it not a general concern any more?

    Eventually project will go into power optimization stage where everything needs to be low power. So I'd better to make sure my HWFC works properly. I attached digital analyzer tracing. As you can see the RTS from nRF52 is not toggling.

    In my code on 52840, I simply hard coded the UART configuraiton and called the uart_configure() function. Is that correct?


      uart1_cfg.baudrate = 115200;
      uart1_cfg.data_bits = UART_CFG_DATA_BITS_8;
      uart1_cfg.parity = UART_CFG_PARITY_NONE;
      uart1_cfg.stop_bits = UART_CFG_STOP_BITS_1;
      uart1_cfg.flow_ctrl = UART_CFG_FLOW_CTRL_RTS_CTS;//UART_CFG_FLOW_CTRL_NONE;//

      CHKERR(uart_configure(uart_dev, &uart1_cfg));

    I also have some configurations in the prj,conf and the hardware overlay file. (attached in my first post). Could you take a look to see if they are correct or I missed anything? Thanks!

Children
No Data
Related