This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to check anomaly status in NCS documentation ?

Hi,

We are going through the errata file (nRF52840 rev 2) and wonder how to link anomaly (chip level) with nRF Connect SDK release (RTOS level)...

Where to find the information in https://developer.nordicsemi.com or https://infocenter.nordicsemi.com ?

The errata file sometime refers to MDK version or Soft Device version but I don't know what to do with this according to NCS.

Here is a list of anomalies that we would check if workarounds are in place or if they still have to be done by ourself: 36,78,81,87,136,153,172,173,191,209,210,213,214,233,246

Config: NCS 1.6.0 and higer, nRF52840 rev 2

Best regards,

Romain

Parents
  • Hello,

    I don't think there is a simple overview of these, but if you check the file file system_nrf52.c in your NCS version, you can see whether you can find a portion of them or not. You can see e.g. Errata 36:

        #if NRF52_ERRATA_36_ENABLE_WORKAROUND
            /* Workaround for Errata 36 "CLOCK: Some registers are not reset when expected" found at the Errata document
               for your device located at https://infocenter.nordicsemi.com/index.jsp  */
            if (nrf52_errata_36()){
                NRF_CLOCK->EVENTS_DONE = 0;
                NRF_CLOCK->EVENTS_CTTO = 0;
                NRF_CLOCK->CTIV = 0;
            }
        #endif

    So try searching for NRF52_ERRATA_NN_ENABLE_WORKAROUND in NCS (mainly in that file) to see whether they are implemented. 

    Those that you don't find using the NRF52_ERRATA_NN_ENABLE_WORKAROUND, you can search for USE_WORKAROUND_FOR_ANOMALY_NN.

    I see that some of them are clearly implemented, such as 36 and 136, which are mentioned in system_nrf52.c. A few others are implemented in their respective drivers, such as 241 (I know you didn't list that one) is implemented directly in the driver. Search for "USE_WORKAROUND_FOR_ANOMALY_201".

    Some were never implemented in any driver files, such as 213. This is something that needs to be applied in the application. Some of them are a bit more tricky to figure out whether or not are actually implemented, such as 172, as this can't be applied directly in the Softdevice Controller, like you could in the Softdevice. I am not sure whether or not it is implemented in the softdevice controller (but I suspect that it is). I need to check this internally. I will also try to figure out whether there is a simple way of seeing what anomalies that are already implemented in NCS, and which ones you need to implement in your application.

    Best regards,

    Edvin

  • Hi Edvin,

    Thanks this is a nice starting point but indeed I found only 36 and 136 looking after the 2 definitions you gave.

    Looking forward to hearing from you about further tips.

    Best regards,

    Romain

  • Hello,

    Sorry for the late reply. It doesn't look like we have any easy way to look up these. I have received that the softdevice related anomalies are taken into the Softdevice Controller in NCS. Some of the anomalies that have a specific fix in the MDK are also brought into NCS. The MDK fixes apply to the MDK version that is mentioned in the errata/anomaly, and all versions after that. The MDK version that is used in a particular NCS release is mentioned in NCS\modules\hal\nordic\nrfx\mdk\nrf.h through the indicator macros:

    /* MDK version */
    #define MDK_MAJOR_VERSION   8 
    #define MDK_MINOR_VERSION   40 
    #define MDK_MICRO_VERSION   2 

    (8.40.2 is for NCS v1.7.1).

    Then some of the anomalies are not implemented in the SDK, such as some peripheral anomalies that will only trigger under certain conditions. In those cases, the workaround typically mentions what you need to do in that particular case.

    Best regards,

    Edvin

Reply
  • Hello,

    Sorry for the late reply. It doesn't look like we have any easy way to look up these. I have received that the softdevice related anomalies are taken into the Softdevice Controller in NCS. Some of the anomalies that have a specific fix in the MDK are also brought into NCS. The MDK fixes apply to the MDK version that is mentioned in the errata/anomaly, and all versions after that. The MDK version that is used in a particular NCS release is mentioned in NCS\modules\hal\nordic\nrfx\mdk\nrf.h through the indicator macros:

    /* MDK version */
    #define MDK_MAJOR_VERSION   8 
    #define MDK_MINOR_VERSION   40 
    #define MDK_MICRO_VERSION   2 

    (8.40.2 is for NCS v1.7.1).

    Then some of the anomalies are not implemented in the SDK, such as some peripheral anomalies that will only trigger under certain conditions. In those cases, the workaround typically mentions what you need to do in that particular case.

    Best regards,

    Edvin

Children
No Data
Related