nRF5340-DK VCOM CTS line remains high

Hi

I'm trying to make the UART-HCI example run on my nRF5340-DK board.

Environment:
- nRF5340-DK Version 2.0.0 (2022.13)
- nRFConnect 2.7.0

I've built the example with VS Code and downloaded it to the Network Core. On the Applicaiton Core the empty app example is installed.

When I now send a HCI command over the VCOM to nRF5340 the communication seems to work (I've seen the data reception in the debugger). The data sent back from the nRF5340 over VCOM is not received on the VCOM.

Both VCOM variants have been tried. In both cases I see the same behavior. At the moment I've configured the following pins to be used for the UART:
P0.19 - RTS
P0.20 - TXD
P0.21 - CTS
P0.22 - RXD.

A look at the signals with a signal analyzer shows that the P0.21 (= CTS) is constantly high. If I'm right this blocks the transmit from the nRF5340. What causes the VCOM chip to block the transmit?

Regards Adrian

  • Hi Adrian,

    This seems related to hardware flow control in some way. Some relevant info is found in the nRF5340 PS here.

    You can check if hardware flow control is enabled by reading the HWFC field of the CONFIG register for UARTE.

    Also, to cover even more bases, please see if SW7 is off for VCOM0 and/or VCOM2. Since you are using Serial port 1 for UART, VCOM2 is the relevant switch (reference).

    Best regards,

    Maria

  • Hi,

    I realized that I did not mention, that I need the hardware flow control to be used. I checked the CONFIG register and it has value 1 => HWFC enabled.

    The SW7 switch is in ON position as it should foir using HW flow control. If I set the SW7 to OFF the data is transmitted, but I assume that flow control is not really working in that case.

    If I understand this correctly the UART lines of the nRF5340 are conencted to the Interface MCU over the switch controlled by the SW7. When I stop the debugger after the transmit has been initiated by the firmware I can see the same logic values in the IN register of the port 0:

    P0.19 - low (nRF5340 not blocking data transmit from MCU interface chip)
    P0.20 - high (Transmit line in Idle state)
    P0.21 - high (MCU interface chip blocks data transmit from nRF5340)
    P0.22 - high (Reception line in Idle state)

    Except the P0.21 all levels make sense to me, but it seems that the MCU interface chip blocks the transmit of the nRF5340.

    Regards Adrian

  • Hi

    Sorry about the very late reply here, but this seems to have fallen through the cracks on our end. Just to make sure here, you are using the interface MCU chip for the UART and already existing VCOM on the nRF5340 DK, correct?

    If so, can you share some details on how you're measuring the pins high/low here, and where in the code the application is at this point? If it is currently transmitting from the interface chip to the nRF5340, it makes sense that the CTS pin is high so it doesn't send data while it is receiving for example.

    Because if you're planning on using these pins for UART yourself on the pin outputs you need to cut solder bridges SB27, SB28, SB29 and SB30 to use these pins for other purposes.

    Best regards,

    Simon

Related