In an nRF51-based application I'm working on, I am using the SPIS peripheral and a generated clock signal to send a large buffer out over serial using DMA. I want to use the same SPIS process to clear another large buffer in RAM to 0 at the same time, to save CPU overhead. Simply setting the MOSI pin to NRF_DRV_SPIS_PIN_NOT_USED, and pointing RXDPTR at the clear-target seems to work fine, but this behaviour doesn't seem to specifically get defined in the user manual. Is this behaviour (the value read by SPIS when PSELMOSI is in the disconnected state) reliable and unlikely to change between chip revisions? All the manual says is
If a value of 0xFFFFFFFF is specified in any of these registers, the associated SPI slave signal will not be connected to any physical pins
I've also noticed that if MAXRX is set to 0, the receive buffer will have data written to it regardless (up to the total number of bytes that the master requests?). This seems to contradict the manual's description of the MAXRX register:
The MAXRX register specifies the maximum number of bytes the SPI slave can receive in one granted transaction. If the SPI slave receives more than MAXRX number of bytes, an OVERFLOW will be indicated in the STATUS register and the incoming bytes will be discarded.
I haven't checked the contents of the OVERFLOW register when this happens yet, but the "incoming bytes will be discarded" part of this description appears to be being violated regardless. It behaves as expected when MAXRX is set to 1 (one byte is written). Is the behaviour when MAXRX=0 a special case/anomaly?