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

Can't connect to PCA10028 over BLE but Can Connect to PCA10001

Hello,

I am having some strange results with some firmware I have been developing. I developed the firmware on the nRF51 Development Kit (PCA 10028) and the device advertises but I cannot connect to the device with the external crystal clock source selected (NRF_CLOCK_LFCLKSRC_XTAL_20_PPM). If I change the clock source to be (NRF_CLOCK_LFCLKSRC_RC_250_PPM_TEMP_1000MS_CALIBRATION) I am able to successfully connect to the PCA10028.

I am selecting the clock source in the following manner:

SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, NULL);

and

SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_RC_250_PPM_TEMP_1000MS_CALIBRATION, NULL);

The interesting thing is that if I flash the exact same firmware to my nRF51822 Evaluation Kit (PCA10001) it doesn't experience the problem with not being able to connect. I can select either clock source and the PCA10001 has no problems at all.

Is there anything that might explain this? I looked through the product spec but I was unable to find an answer. Could the problem be explained by new silicon rev (Rev 3) and that is why the firmware works correctly on the PCA10001 but not the PCA10028?

In summary:

  • I flash both a PCA10001 and a PCA10028 with the S110 7.1 softdevice
  • I flash both boards with identical firmware with the exception that I compile the PCA10001 header using the BOARD_PCA10001 preprocessor definition and the PCA10028 with the BOARD_PCA10028 definition
  • I attempt to connect to the PCA10028 over BLE but am unsuccessful
  • I attempt to connect to the PCA10001 and am successful and discover all the services.

Any help you can provide would be greatly appreciated.

Thanks and Best Regards,

Cory

  • Hi. S110 V7.1 should work on rev 3 as per the compatibility matrix so that should not be a problem. It sounds like there might be a problem with the external low frequency oscillator. Are you able to check if the external crystal is actually running? You can do this by reading the NRF_CLOCK->LFCLKSTAT register in the clock manager, Chapter 13 Reference manual V3.0.

    Can you run other BLE examples from the SDK? Or a simple blinky LED example without BLE?

  • Thank you for your help. It appears I may have a physical problem with my low frequency oscillator. I read the NRF_CLOCK->LFCLKSTAT register and sure enough the oscillator was not running. I was able to track down another PCA10028 development kit and flash my code to it and it worked like a charm.

    Thanks for the quick response.

    Cory

Related