I've seen similar questions posted, but none that match my situation exactly and those solutions did not work for me.
I'm using the pca10040 dev kit, which I connected to an ADXL362 evaluation board. I have the s132 soft device running, and I started out by using the BLE_APP_UART example to help with debugging. I checked that the SPIM was working by hooking the devkit up to an oscilloscope, and I could see that all the lines were transmitting as they should. For the SPIM drivers, I am using the nrf_drv_spi component that is included in SDK v12, with no DMA. When I connected to the device, I get errors when trying to read the device ID, so again I connected the SPI lines to an oscilloscope, and could see that the CLK and CS lines were working as they should, but I could not see any signals on the MISO or MOSI lines. The code gets stuck at this point as no SPI messages are generated, but when I do not connect the oscilloscope a message is transmitted but the data received is not what I expect to see (the device ID is wrong). I've included the initialization code and configurations that I'm using:
Init:
uint32_t err_code;
nrf_drv_spi_config_t config = NRF_DRV_SPI_DEFAULT_CONFIG;
config.miso_pin = SPIM0_MISO_PIN;
config.mosi_pin = SPIM0_MOSI_PIN;
config.sck_pin = SPIM0_SCK_PIN;
config.ss_pin = SPIM0_SS_PIN;
err_code = nrf_drv_spi_init(&m_spi_master, &config, NULL);
APP_ERROR_CHECK(err_code);
config:
.sck_pin = NRF_DRV_SPI_PIN_NOT_USED, \
.mosi_pin = NRF_DRV_SPI_PIN_NOT_USED, \
.miso_pin = NRF_DRV_SPI_PIN_NOT_USED, \
.ss_pin = NRF_DRV_SPI_PIN_NOT_USED, \
.irq_priority = SPI_DEFAULT_CONFIG_IRQ_PRIORITY, \
.orc = 0xFF, \
.frequency = NRF_SPI_FREQ_2M, \
.mode = NRF_DRV_SPI_MODE_0, \
.bit_order = NRF_DRV_SPI_BIT_ORDER_MSB_FIRST, \
EDIT: Using a different analyzer, I can see that the MOSI signal is fine, but the clock stops after the TX signal has been transmitted, but before an answer has been received from the device.