What could make BLE sample applications not work, but radio works ok?

Alex_I gravatar image

asked 2013-08-13 04:42:08 +0100

updated 2013-08-15 07:36:42 +0100

Hi, got an interesting problem, this is on a custom board with nRF51822 QFAB that we are bringing up. The radio test (not using softdevice) works ok and produces strong transmit signal (as strong or even stronger than from the eval board). However none of the BLE/softdevice examples work. What can cause this? How to troubleshoot?

Is there anything different that needs to be done because this is one of the AB (128k) chips?

Is there any basic self-test that allows to check that softdevice itself is flashed and working correctly? (correct memory map, calls go to the right functions? etc) This is as opposed to testing that the radio hardware is working ("radio_test_example" ) or that BLE is working ("ble_app_dtm" )

edit retag flag offensive close delete report spam

2 answers

Sort by ยป oldest newest most voted
olha gravatar image

answered 2013-08-13 06:21:32 +0100

updated 2013-08-15 07:36:42 +0100

My best guess is the low frequency clock settings. If you try to enable the softdevice, telling it to use an external crystal, if you don't have any external crystal, it will hang. I'd therefore suggest that you try changing the clock source to RC, to see if it helps.

This could be worth doing even if you have an external crystal, since there could be something else with the crystal causing trouble.

If this is not the problem, it would be very helpful with a little further description than "it doesn't work". :-) (i.e. what exactly happens, have you tried running with the debugger, does it hang, where if so and so on.)

edit flag offensive delete publish link more
Alex_I gravatar image

answered 2013-08-14 04:11:40 +0100

updated 2013-08-14 04:12:07 +0100

Thank you Ole!

Looks like the external crystal was the problem. Yes we have a crystal on our board, and the ble sample apps try to use it by default with BLE_STACK_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, ...).

Changed that to BLE_STACK_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_SYNTH_250_PPM, ...) and Bluetooth now works. Nice!

Before, the only symptom of a problem was that there was no Bluetooth, the apps ran fine in a debugger and did not seem to hang, also there were no errors. Is there a way to detect such a condition?

Could you explain the NRF_CLOCK_LFCLKSRC_RC_* settings? What are the drawbacks to using the SYNTH clock?

edit flag offensive delete publish link more

This is a good question, so I posted it separately and answered it. Please have a look here: https://devzone.nordicsemi.com/index.php/what-low-frequency-clock-sources-can-i-use

Ole Morten ( 2013-08-19 10:30:22 +0100 )editconvert to answer

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer. Do not ask a new question or reply to an answer here.

[hide preview]

Question Tools


Asked: 2013-08-13 04:42:08 +0100

Seen: 1,394 times

Last updated: aug. 15 '13