Hi,
I am using nRF54L15-DK board for development and currently I am trying to talk to an external module via SPI (nRF dev board is the master).
I have disabled the external flash memory from the nrf Connect for Desktop, set the pins voltage to 3.3V and as you can see the overlay I am trying to use P0.1 as a CS.
The problem is the CS that is seems being high all the time. I am providing my overlay below and parts of the spec structure configuration and the test code that I am running
in order to check the issue with a logic analyzer
&pinctrl {
spi00_default_alt: spi00_default_alt {
group1 {
psels = <NRF_PSEL(SPIM_SCK, 2, 1)>,
<NRF_PSEL(SPIM_MOSI, 2, 2)>,
<NRF_PSEL(SPIM_MISO, 2, 4)>;
};
};
spi00_sleep_alt: spi00_sleep_alt {
group1 {
psels = <NRF_PSEL(SPIM_SCK, 2, 1)>,
<NRF_PSEL(SPIM_MOSI, 2, 2)>,
<NRF_PSEL(SPIM_MISO, 2, 4)>;
low-power-enable;
};
};
};
&spi00 {
compatible = "nordic,nrf-spim";
status = "okay";
pinctrl-0 = <&spi00_default_alt>;
pinctrl-1 = <&spi00_sleep_alt>;
pinctrl-names = "default", "sleep";
cs-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
/delete-node/ mx25r6435f@0;
};
/ {
custom_gpios {
compatible = "gpio-keys";
dw_irq_pin: dw_irq_pin {
gpios = <&gpio1 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
};
dw_reset_pin: dw_reset_pin {
gpios = <&gpio1 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
};
dw_wakeup_pin: dw_wakeup_pin {
gpios = <&gpio1 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
};
};
aliases {
dwmspi = &spi00;
};
};
The spi_dt_spec setup C code follows
const static struct spi_config init_spi_config = {
.frequency = 4000000,
.operation = (SPI_OP_MODE_MASTER | SPI_MODE_GET(0) | SPI_WORD_SET(8) | SPI_TRANSFER_MSB),
.slave = 0,
.cs = SPI_CS_CONTROL_INIT(DT_ALIAS(dwmspi), 0)
};
const static struct spi_dt_spec spispec = {
.bus = DEVICE_DT_GET(DT_ALIAS(dwmspi)),
.config = init_spi_config,
};
The test that runs
static char* buffer = "\x0A\x0A\x0A\x0A\x0A\x0A\x0A\x0A\x0A\x0A\x0A\x0A\x0A\x0A\x0A\x0A";
while(1)
{
struct spi_buf buff = {
.buf = buffer,
.len = 16
};
struct spi_buf_set buffset = {
.buffers = &buff,
.count = 1
};
spi_write_dt(&spispec, &buffset);
}
Visual status via the logic analyzer, that shows the MOSI and SCK working fine but the CS line is always high. Note that I have tested the analyzers channel 0 and it works fine

Originally I tried using P2.5 as the CS but this didn't work, so that's why I've tried using P0.1 as CS but again I have the same issue. I am not sure what I am doing wrong, if it is some configuration issue or if I missed something important. Can anyone please advice me on this? I am using nRF Connect SDK v3.2.4. TIA