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

nRF51 (PCA10028) uart

I have been trying to get the PCA10028 uart to communicate for the last couple of days. Originally with the S130 experimental demo project and now just the simplified uart example.

Initially, the first attempt to put a character out on the uart would get stuck at:

while (NRF_UART0->EVENTS_TXDRDY != 1)  <--- HERE
{
    // Wait for TXD data to be sent.
}

I determined that the hardware flow control lines were likely not being toggled correctly by my terminal emulator. With 3 different emulators, I was not able to get the RTS line to toggle. (Teraterm, Putty, or Realterm. Note that Realterm allows me to manually toggle these lines.)

By disabling the hardware flow control in the code, I was able to get the code to move on. At this point, I am able to type into a terminal, see on an oscilloscope the data being received, see the code attempt echo transmit, and see the data transmitted from the nRF part to the Segger part, but am unable to receive anything on a terminal.

To verify that my setup is valid, I plugged in the uart test project into the PCA10001 from the nRF51822-EK. Everything worked correctly including flow control.

Finally, I have attempted to update the Segger bin file from the Nordic site. This had with no difference.

I am near to concluding that this is a hardware error, but wanted to see if there are any other pieces that I am missing.

Thank you for any help.

Parents
  • The auto installed driver on Windows 7 apparently was somehow incorrect. So I ran this driver install: C:\Program Files (x86)\SEGGER\JLink_V492\USBDriver\CDC\InstDriversCDC.exe

    I believe I have this package as a download from Segger (I have a regular J-Link as well).

    Just to show this was the problem, if I uninstall, reconnect and let the Windows 7 driver install, the problem reappears.

    For reference, by right clicking the CDC Port in the device manager and looking at the Driver tab, you can see the version of the driver.

    Windows 7 attempts to install this version: 6.0.2600.5. On this version, I have not been able to receive in a terminal anything sent from the nRF51. Otherwise it works fine.

    My package installs this version 6.0.2601.5, which is fully functional. This CDC driver has not changed since so it can be obtained with the latest package from Segger as well (V496b).

Reply
  • The auto installed driver on Windows 7 apparently was somehow incorrect. So I ran this driver install: C:\Program Files (x86)\SEGGER\JLink_V492\USBDriver\CDC\InstDriversCDC.exe

    I believe I have this package as a download from Segger (I have a regular J-Link as well).

    Just to show this was the problem, if I uninstall, reconnect and let the Windows 7 driver install, the problem reappears.

    For reference, by right clicking the CDC Port in the device manager and looking at the Driver tab, you can see the version of the driver.

    Windows 7 attempts to install this version: 6.0.2600.5. On this version, I have not been able to receive in a terminal anything sent from the nRF51. Otherwise it works fine.

    My package installs this version 6.0.2601.5, which is fully functional. This CDC driver has not changed since so it can be obtained with the latest package from Segger as well (V496b).

Children
Related