This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

SPIS data shifting

I am testing SPIS to transmit mass of data(255 bytes each call) from nrf5 DK.

I found SPIS data shifting randomly.

The testing data is 0x88 but sometimes can get 0x44.

Below is correct logs.

This is the wrong wave.

When I turn on the Log, SPIS data is always correct, randomly got 0x44 when RTT log is off.

I make sure "USE_DMA_ISSUE_WORKAROUND" is ON and csn_event_handler() is entering.

Anything else I can fix or workaround this issue?

Parents Reply Children
  • Hi

    Assuming your code goes to sleep you could try enabling constant latency mode. This will increase the current consumption, but should reduce the necessary delay between chip select and the SPI data. 

    Are you using a SoftDevice in your project or not?

    If you use a SoftDevice you have to enable constant latency mode like this:

    sd_power_mode_set(NRF_POWER_MODE_CONSTLAT);

    If you don't use a SoftDevice you can enable it like this:

    NRF_POWER->TASKS_CONSTLAT = 1;

    Best regards
    Torbjørn

Related