1

我正在尝试使用 QSPI 总线访问 Zephyr 中的串行 NOR 闪存。CS(片选)引脚一直保持高电平。选择闪存芯片时应为低电平有效。只是想知道 QSPI CS 是否在 Zephyr 中工作,或者我需要将 CS 引脚配置为 GPIO 并通过我的软件控制它。

有人有 QSPI 的 CS 引脚在 Zephyr 工作吗?我正在使用北欧半导体的 rNF52480。

谢谢,

JC

4

1 回答 1

0

我认为您需要自己配置它:

...
#include <drivers/gpio.h>
#include <drivers/spi.h>

struct spi_cs_control spi_cs = {
    /* PA4 as CS pin */
    .gpio_dev = DEVICE_DT_GET(DT_NODELABEL(gpioa)),
    .gpio_pin = 4,
    .gpio_dt_flags = GPIO_ACTIVE_LOW,
    /* delay in microseconds to wait before starting the transmission and before releasing the CS line */
    .delay = 10,
};

#define SPI_CS (&spi_cs)

struct spi_config spi_cfg = {
    .frequency = 350000,
    .operation = SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(8) | SPI_LINES_QUAD | SPI_LOCK_ON,
    .cs = SPI_CS,
};

void spi_init()
{
    spi = device_get_binding("SPI_1");
    ....
}
于 2021-09-12T17:42:04.113 回答