【OpenCPU】MN316-DLVD丨SPI使用介绍

菩禔看科技 2024-04-21 19:40:35

SPI使用

MN316 OpenCPU 模式下的SPI主要功能函数包含SPI开启指定通道、关闭SPI、SPI写数据、SPI读数据。本文从使用流程、SPI模式介绍、Demo使用方法和注意事项四个方面介绍如何实现MN316 OpenCPU模组的SPI使用。

一、SPI使用流程解析

图1为MN316 OpenCPU SPI功能使用的常见流程介绍。

图1 SPI使用流程

SPI使用流程可结合MN316_OpenCPU(R14)_Standard_X.X.X.XXXXXX_release\examples\spi cm_demo_spi.c中的demo示例程序加深理解。

SPI功能包含的全部函数接口详细定义可在include\cmiot\cm_spi.h中查看。

二、SPI模式介绍

SPI工作模式一共四种,由时钟极性CPOL(Clock Polarity)和时钟相位CPHA(Clock Phase)决定。CPOL表示SPI空闲时时钟信号的电平,0表示低电平,1表示高电平;CPHA表示SPI在时钟的第几个边沿采样,0表示第一个边沿开始采样,1表示第二个边沿开始采样。

下面对SPI的4种工作模式做简单介绍,一般模式0和模式3使用的情况最多。

2.1 模式0

图2 任务模式0时序图

CPOL = 0:空闲时是低电平,第1个跳变沿是上升沿,第2个跳变沿是下降沿;

CPHA = 0:数据在第1个跳变沿(上升沿)采样。

2.2 模式1

图3 模式1时序图

CPOL = 0:空闲时是低电平,第1个跳变沿是上升沿,第2个跳变沿是下降沿;

CPHA = 1:数据在第2个跳变沿(下降沿)采样。

2.3 模式2

图4 模式2时序图

CPOL = 1:空闲时是高电平,第1个跳变沿是下降沿,第2个跳变沿是上升沿。

CPHA = 0:数据在第1个跳变沿(下降沿)采样。

2.4 模式3

图5 模式3时序图

CPOL = 1:空闲时是高电平,第1个跳变沿是下降沿,第2个跳变沿是上升沿;

CPHA = 1:数据在第2个跳变沿(上升沿)采样。

2.5 SPI使用说明

引脚说明:

使用说明:目前MN316 仅支持1路SPI接口,且暂只能作为SPI主设备,SDK提供SPI初始化、读、写、写后读、去初始化等接口。具体的使用流程如下:

(1)SPI初始化:cm_spi_open,可设置SPI工作模式,通信数据位,NSS模式,时钟频率;

(2)SPI读写:cm_spi_read/cm_spi_write/cm_spi_write_then_read,读/写/写后后,使用过程中cm_spi_read基本不会用到,因为SPI基本是先写入参数后才能读到数据;

(3)SPI去初始化,关闭SPI:cm_spi_close,关闭SPI。

三、SPI Demo说明

Demo中使用flash作为从设备与模组通信。

3.1 初始化SPI:模式0,数据位8位,NNS软件模式,时钟频率设置为2.448MHz

图6 初始化SPI

3.2 读取Flash ID:读取从设备的ID,一般用于测试SPI通信是否正常

图7 读取Flash ID

3.3 向Flash里写入数据

(1)封装flash写函数,可任意地址读写,内部执行擦除,且保存flash非操作地址的数据:先计算写入的起始地址和结束地址分别所在的页ID,然后挨个页先读出所在页的数据放在缓冲中,然后将需要写入的数据写入缓冲中,使用擦除接口擦除本页的数据,等待擦除完成后,最后使用页写入接口将缓冲区的数据写入;

(2)封装擦除接口:使能flash写操作,然后写入擦除命令和擦除地址;

(3)页写入:使能flash写操作后,使用spi写接口写入数据,注意数据前4个字节为命令和地址,后跟数据,即最终写入的数据长度实际为数据长度加4;

(4)使用封装的写函数写入“Hello world”数据返回。

图8 向Flash里写入数据

3.4 从Flash中读出数据

(1)封装flash读接口:先写入命令和地址,然后读数据;

(2)使用flash读接口读出上一步中写入的数据。

图9 从Flash中读出数据

3.5 关闭SPI接口

图10 关闭SPI接口

3.6 测试结果

(1)烧录demo程序,配合开发板通过串口助手测试;

(2)模组串口打印please input cmds:时,输入CM:SPI,运行结果如图10。

图11 测试结果

四、使用注意事项

1、硬件上模组的MOSI引脚与设备的MOSI引脚连接,而不是交叉连接;

2、使用软件NSS时,SPI读写接口内部已经将NSS片选引脚会自动拉低,即使能SPI片选。





转载自中移物联网,仅供模组品牌对应于中移物联网模组体系参考。

声明:《菩禔物联》所发表内容均为原创,所有原创内容仅用于交流,不代表任何立场和观点。极少数优才文章注明来源的,版权归原出处所有(无法查证版权的或未注明出处的均来源于网络搜集)。如有侵权,请联系我们删除或更改。内容的真实性、准确性和合法性由原作者负责。转载内容(视频、文章、广告等)只以信息传播为目的,仅供参考,不代表本平台认同其观点和立场。

The content published in the Bodhi Union of Things is original, and all original content is for communication purposes only and does not represent any position or viewpoint. A very small number of excellent talent articles indicate their source, and the copyright belongs to the original source (those that cannot be verified or whose source is not indicated are all collected online). If there is any infringement, please contact us to delete or make changes. The authenticity, accuracy, and legality of the content are the responsibility of the original author. The reprinted content (videos, articles, advertisements, etc.) is only for the purpose of information dissemination and is for reference only. It does not mean that this platform agrees with its views and positions.

0 阅读:0

菩禔看科技

简介:感谢大家的关注