150***297
我想使用SPI 接口,但是片选CS引脚我想用AON_GPIO_2引脚,不使用软件指导上默认的MUX CS管脚,使用DMA 传输,自己软件控制 AON_GPIO_2管脚实现片选功能,请问该如何操作?
Ping

1. 可以参考projects\peripheral_app\spi\app_spi_rtos例程,Flash的CS没有用硬件控制CS,通过PIN MUX将CS引脚配置为普通GPIO,然后通过软件驱动该引脚实现片选功能(即软件片选方式):
/* master spi parameters */
#define MASTER_SPI_IO_CONFIG {{APP_IO_TYPE_NORMAL, (app_io_mux_t)0, 0, (app_io_pull_t)0, APP_SPI_PIN_DISABLE},\
{APP_IO_TYPE_NORMAL, APP_IO_MUX_0, APP_IO_PIN_24, APP_IO_PULLUP, APP_SPI_PIN_ENABLE},\
{APP_IO_TYPE_NORMAL, APP_IO_MUX_0, APP_IO_PIN_25, APP_IO_PULLUP, APP_SPI_PIN_ENABLE},\
{APP_IO_TYPE_NORMAL, APP_IO_MUX_0, APP_IO_PIN_16, APP_IO_PULLUP, APP_SPI_PIN_ENABLE}}
#define MASTER_SPI_MODE_CONFIG {APP_SPI_TYPE_DMA, DMA_Channel0, DMA_Channel1}
#define MASTER_SPI_CONFIG {SPI_BITS_SEL, SPI_POLARITY_LOW, SPI_PHASE_2EDGE, \
(SystemCoreClock / SPI_FREQ_SEL), SPI_TIMODE_DISABLE, SPI_SLAVE_SELECT_0}
#define MASTER_SPI_PARAM_CONFIG {APP_SPI_ID_MASTER, MASTER_SPI_IO_CONFIG, MASTER_SPI_MODE_CONFIG, MASTER_SPI_CONFIG}
#define SPI_FLASH_CS_LOW() app_io_write_pin(APP_IO_TYPE_AON, AON_GPIO_PIN_1, APP_IO_PIN_RESET)
#define SPI_FLASH_CS_HIGH() app_io_write_pin(APP_IO_TYPE_AON, AON_GPIO_PIN_1, APP_IO_PIN_SET)2. APP驱动层实现了该软件控制片选方式,详情可参考components\app_drivers\src\app_spi_v2.c代码实现

打开微信,使用“扫一扫”即可关注