Hello,我看了开发手册的spi章节,看到spi nss配置的几个寄存器,SSM, SSI, SSOE.有些看不明白
软件控制NSS管脚是手动配置GPIO,拉低拉高NSS管脚,这个可以理解,
那硬件控制NSS管脚是什么含义,在这种模式下,如果mcu做host,会在发送数据的时候拉低NSS,发送完拉高NSS吗?
SSOE配置有什么含义呢,我看官方提供的工程里面FullDuplex_HardNSS,NSS管脚是配置IPU模式,mcu spi为host时,NSS不是应该作为输出片选型号吗?
Hello,我看了开发手册的spi章节,看到spi nss配置的几个寄存器,SSM, SSI, SSOE.有些看不明白
软件控制NSS管脚是手动配置GPIO,拉低拉高NSS管脚,这个可以理解,
那硬件控制NSS管脚是什么含义,在这种模式下,如果mcu做host,会在发送数据的时候拉低NSS,发送完拉高NSS吗?
SSOE配置有什么含义呢,我看官方提供的工程里面FullDuplex_HardNSS,NSS管脚是配置IPU模式,mcu spi为host时,NSS不是应该作为输出片选型号吗?
您好,
在应用手册中有如下的描述:配置 NSS 引脚,比如置 SSOE 位让硬件去置 NSS。也可以置 SSM 位并把 SSI 位置高。即在两种方法中选择一种,可使SPI实现硬件片选功能。在完成配置启动SPI外设后,NSS引脚将片选信号线拉低,直至SPI外设关闭后释放。
配置时主机NSS引脚应为推挽复用输出模式(从机为上拉输入模式),SPI_InitStructure.SPI_NSS配置为SPI_NSS_Hard,主机使用SPI_SSOutputCmd函数,开启对应SPI的SS输出使能,即手册中描述的配置SSOE位。参考例程中引脚模式的配置存在错误,已在下个发布版本中进行了更正。
还需要提醒下,在设备空闲状态时,片选信号线应保持高电平状态。如果需要更详细的配置方法,可以参考整理在链接中的笔记:SPI-SPI主机硬件片选功能使用说明 - WCH_CH32 - 博客园 (cnblogs.com)
多谢你的回复,手册我看了,没看懂。
SSM置1,SSI置1是软件片选模式,NSS管脚自己写代码控制,发送前置低,发送后拉高,这个我可以理解。
SSM置0,SSOE置1,硬件控制模式,NSS管脚是什么时候拉低,什么时候拉高呢。
如果SSM置0,SSOE置0,NSS管脚又该怎么控制,起什么作用。