I have a custom board with an nRF52832 (CIAA-B0), and I am trying to use the SPI Master.
When I use SPIM1 or SPIM2, the transaction hangs, but the same code talking to SPIM0 succeeds.
I load the EasyDMA with 2 RAM buffers, with RX/TX sizes equal (=5), then trigger TASKS_START=1.
The symptom:
1) EVENTS_STARTED is signalled, but EVENTS_ENDx (TX/RX/END) are not (minutes/hours). EVENTS_STOPPED is not signalled.
2) I see no SCK activity on a scope.
3) The EasyDMA AMOUNT fields stay at 0. (I'm not sure whether I should expect them to change mid-transaction, but they don't.)
I am not using any conflicting SPI/TWI units. I am configuring the GPIOs per PS section 31.5, plus high (H0H1) drive. I stepwise reduced the SPI speed to 125kHz. I even tried (stepwise) taking all of the pins away from the SPI, with no change in symptom.
To use SPIM0, I had to move my I2C to TWIM1. My I2C slave board is in re-work, so I can't try it right now; I'm now concerned that TWIM1 will have an anomaly as well. (I eventually want to use TWIM0 and TWIM1, which is why I was trying to use SPIM2 in the first place.)
I was concerned that my SPI slave was interfering somehow, but since SPIM0 works exactly as expected I don't think so.
Is there anything else I can try? Is there something special about SPIM0 (or alternatively SPIM1/2)?