CN / EN
CN / EN

提问

设计支持

您的项目私密技术问题如需获得一对一支持,请点击下方联系我们。

SDKV1.6.12 GR551x

150***297

2022-04-22 15:00

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

0收藏

0赞成

Ping

汇顶员工
2022-04-23 11:57

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代码实现


3条评论

0赞成

0收藏

您的评论

登录后可回答问题,请 注册

我们时刻倾听您的声音
联系销售

扫描关注公众号

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