pwr_mgmt_fpu_sleep_prepare fails with assert


We have an application with a S132 device, SDK 14 and Softdevice v5.0.0. On some devices, an assert is being thrown in the sleep prepare function. This is the line ASSERT((fpscr & 0x07) == 0);

What could the possible cause of this be? Is there any special PCB support required for this to work? The devices that work have a different PCB revision. Is there chip errata pertaining to this?


  • Could you tell a little bit more about the project ? Do you use floating point unit (FPU) in your project ? Could you check what the value of fpscr is when error occurs ?

  • This issue must be an errata with the processor. However I have not been able to find an errata regarding this so we do not know which versions of the chip has the issue. I have tested 4 different processors. 3 of the exhibited the issue. 1 processor seemed to work.

    Perhaps we can solve the problem by avoiding certains serial numbers or processor lots? Any information regarding this would be appreciated.

  • Please provide the information that I asked above. Do you see the same issue when you test with our SDK example ? Could you read the laser marking on top of the chip with and without the issue ?

  • We are using an ISP1507 module. Here is the information from the top of the chip. I am not sure if any of it correlates to an rf52832 part number.

    Without the issue

    1. ISP1507
    2. AX: 1649B
    3. IC:11306A-ISP1507

    With the issue

    1. ISP1507
    2. AX: 1727B
    3. IC:11306A-ISP1507
  • It appears this isn't an issue after all. The sample application works on boards that previously failed. Reverted to an older version of our firmware and that works as well.

    On a side note, the ASSERT indicates that the exception condition existed, not that it was unable to clear the exceptions in the register. Removing the ASSERT condition enables the failed boards to function normally.

    The mystery is why 1 board works.