
SPI在MN316 OpenCPU模组中的使用
本文将详细介绍MN316 OpenCPU模组中的SPI(Serial Peripheral Interface)功能,包括使用流程、SPI模式介绍、Demo使用方法和注意事项。
一、SPI使用流程解析
MN316 OpenCPU模组的SPI功能使用流程相对直观,如图1所示。可以结合提供的demo示例程序(位于MN316_OpenCPU(R14)_Standard_X.X.X.XXXXXX_releaseexamplesspi cm_demo_spi.c中)进行理解。SPI功能的全部函数接口详细定义可以在includecmiotcm_spi.h中查看。
二、SPI模式介绍
SPI的工作模式由时钟极性CPOL和时钟相位CPHA决定,共有四种模式。其中,CPOL表示SPI空闲时时钟信号的电平,CPHA表示SPI在时钟的第几个边沿采样。
1. 模式0:CPOL=0,CPHA=0,数据在第1个跳变沿(上升沿)采样。
2. 模式1:CPOL=0,CPHA=1,数据在第2个跳变沿(下降沿)采样。
3. 模式2:CPOL=1,CPHA=0,数据在第1个跳变沿(下降沿)采样。
4. 模式3:CPOL=1,CPHA=1,数据在第2个跳变沿(上升沿)采样。
目前MN316仅支持1路SPI接口,且只能作为SPI主设备。SDK提供了SPI初始化、读、写、写后读、去初始化等接口。
三、SPI Demo说明
Demo中,使用flash作为从设备与模组进行通信。具体流程如下:
1. 初始化SPI,设置模式、数据位、NSS软件模式和时钟频率。
2. 读取Flash ID,测试SPI通信是否正常。
3. 向Flash里写入数据,包括封装flash写函数、擦除接口、页写入等步骤。
4. 从Flash中读出数据,包括封装flash读接口等步骤。
5. 关闭SPI接口。
四、使用注意事项
1. 硬件连接时,模组的MOSI引脚应与设备的MOSI引脚直接连接,而不是交叉连接。
2. 使用软件NSS时,SPI读写接口内部会将NSS片选引脚自动拉低。
