Hello all,
I am actually implementing an SPI-master driver in non blocking mode, I write the following code, when I use a debeug led, the program enters well in the IRQ, but nothing happen in the MOSI when I visualize the signal using the logic analyzer. :
#include "spi.h"
#include "boardConfig.hpp"
#include "nrf_drv_spi.h"
#define BSP_UART_SUPPORT
#include "bsp.h"
#define CS_PIN 6
#define DQ0 22
#define DQ1 19
#define DQ2 20
#define DQ3 24
#define CLK 23
static const uint8_t leds_list[2] = {17, 18};
#define SPI_INSTANCE 1
static const nrf_drv_spi_t spi1 = NRF_DRV_SPI_INSTANCE(SPI_INSTANCE);
static nrf_drv_spi_xfer_desc_t p_xfer_desc;
void spi_event_handler(nrf_drv_spi_evt_t const *p_event)
{
}
void initSPI()
{
nrf_drv_spi_config_t spi_config = NRF_DRV_SPI_DEFAULT_CONFIG;
spi_config.ss_pin = MEMORY_CHIP_SELECT;
spi_config.miso_pin = MEMORY_DQ1;
spi_config.mosi_pin = MEMORY_DQ0 ;
spi_config.sck_pin = MEMORY_CLOCK;
nrf_drv_spi_init(&spi1, &spi_config, spi_event_handler);
}
void spiWrite(uint8_t *tx_payload, uint8_t size_tx)
{
p_xfer_desc.p_tx_buffer = (uint8_t const *)tx_payload;
p_xfer_desc.tx_length = size_tx;
p_xfer_desc.p_rx_buffer = NULL;
p_xfer_desc.rx_length = 0;
nrf_drv_spi_xfer(&spi1, &p_xfer_desc, 0);
}