我正在尝试使用 QSPI 总线访问 Zephyr 中的串行 NOR 闪存。CS(片选)引脚一直保持高电平。选择闪存芯片时应为低电平有效。只是想知道 QSPI CS 是否在 Zephyr 中工作,或者我需要将 CS 引脚配置为 GPIO 并通过我的软件控制它。
有人有 QSPI 的 CS 引脚在 Zephyr 工作吗?我正在使用北欧半导体的 rNF52480。
谢谢,
JC
我正在尝试使用 QSPI 总线访问 Zephyr 中的串行 NOR 闪存。CS(片选)引脚一直保持高电平。选择闪存芯片时应为低电平有效。只是想知道 QSPI CS 是否在 Zephyr 中工作,或者我需要将 CS 引脚配置为 GPIO 并通过我的软件控制它。
有人有 QSPI 的 CS 引脚在 Zephyr 工作吗?我正在使用北欧半导体的 rNF52480。
谢谢,
JC
我认为您需要自己配置它:
...
#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");
....
}