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

No MOSI or MISO signals connecting to ADXL362

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.

Related