[214] SPIS: Incorrect data transferred

This anomaly applies to IC Rev. Engineering C, build codes QIAA-CA0, CKAA-CA0.

It was inherited from the previous IC revision Engineering B nRF52840.

Symptoms

Wrong data is transferred.

Conditions

If SPIS is disabled while CSN is asserted.

Consequences

Unsent byte from previous transmission is transferred as first byte of new transmission.

Workaround

After disabling the SPISn instance (writing SPISn->ENABLE = SPIS_ENABLE_ENABLE_Disable), apply the following code:

*(volatile uint32_t *) (NRF_SPISn_BASE + 0xA4ul) = 1ul;
*(volatile uint32_t *) (NRF_SPISn_BASE + 0xACul) = 1ul;