Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Calibration period compilation

hi,

When working with Keil are the NRF_SDH_CLOCK_LF_RC_TEMP_CTIV & NRF_SDH_CLOCK_LF_RC_CTIV compiled as part of the nrf52810_xxaa project?

if not how can I compile the softdevice, as the default projects that comes with the SDK fails to compile, all the once tried had this error message when tring to compile:

error - cannot create command input file '..\..\..\..\..\..\components\softdevice\s112\hex\main.__i'

Parents Reply Children
  • Hi Edwin,

    Kindly clarify, my question is related to these two varibles, I am aware of the "target device" option.

    1) are these two varibles(NRF_SDH_CLOCK_LF_RC_TEMP_CTIV & NRF_SDH_CLOCK_LF_RC_CTIV ) effecting the softdevice?

    2) if they are affecting, how to I compile the softdevice?

    BR,

    Yaniv

  • Hello,

    2) You can't compile the softdevice. The softdevice is a closed source application. I suspect that if you try to make/compile the softdevice target, then the softdevice .hex-file is actually deleted (I may be wrong). If the softdevice is no longer found in the folder SDK\components\softdevice\s112\hex\*.hex, then you need to unzip a fresh copy of the SDK to get it again.

     

    1) I don't think that this question is really relevant, but I will try to answer it. These variables is used when you use the RC oscillator instead of the LFXTAL. **RC_CTIV decides how many 1/4 seconds "ticks" that should pass before you consider(!) to calibrate the RC Oscillator. This is called the calibration interval. Whenever a calibration interval has passed it checks if the temperature has changed. If it has, then it will calibrate. If it hasn't changed, it will wait for **RC_TEMP_CTIV number of calibration intervals before it does a calibration. 

    These are explained in nrf_sdm.h, on line 229 (in SDK15).

    The more often you do a calibration, the more accurate your RC oscillator will be, but keep in mind that a calibration also costs a bit more power (more frequent calibration means shorter battery life). However, the more frequently you calibrate, the more accurate your clock is, and the less time the device has to keep the radio on listening mode (while in a connection), so a more accurate oscillator will also save some power. Note that you have to specify the accuracy (just as you specify the RC_CTIV and RC_TEMP_CTIV. 

    So how does it affect the softdevice? You will be able to compile and run a project with a "bad" configured RC oscillator, but it will cause weird behaviour in the BLE part of your application. 

     

     

    However, I think the issue in your case is that you tried to compile over the softdevice target, deleting the softdevice. unzip the SDK again, and grab the softdevice from there and include it in your current SDK.

     

    Best regards,

    Edvin

Related