MSPM0L系列的SPI控制器最大频率是16MHz,支持3线和4线的模式,带有4个片选(CS),其中CS3支持命令模式(Command Mode)。
SPI控制器有独立的4个字节接收和4个字节发送FIFO,主机数据位从7-16bit选择,从机数据位可以从4-16位选择。
下面通过配置一个操作外部SPI FLASH的程序来讲下SPI控制器的配置,FLASH的型号是华邦的W25Q128。
在SYSCONFIG中,添加一个SPI外设,频率最高16MHz,根据自己的需要选择,帧格式选择4线模式,8位数据位,高位在前,也就是MSB,时钟极性选择Low,也就是没有时钟的时候管脚是低电平,其他默认就可以。
先来看下W25Q64的时序,我们用一个读芯片ID的时序来说明。
SPI发送90h指令,地址为000000h,FLASH芯片就会返回工厂ID ,EFh和设备ID,这颗芯片ID是16h。
也就是说,SPI发送0x90,0x00,0x00,0x00这三个字节数据,芯片就会返回0xEF和0x16
需要注意的是,由于整个时序中,片选是要一直拉低的,而SPI 外设的片选在每次发送和接收完一帧后会拉高,所以FLASH的芯片的片选需要用MCU的IO口独立控制,没有办法使用SPI外设的CS管脚。
所以在SYSCONFIG里还配置了一个CS的GPIO。
由于SPI的通讯时钟只能在发送操作的时候发出,读取操作是没有时钟信号发出的,所以在做读取操作的时候,其实需要发送操作,一般我们会发送同样与接收数据相同数量的0x00。
MSPM0L系列的SPI的控制寄存器CLT1中有一个REPEATTX,可以用来做重复发送操作,最高可以重复256次,例如我需要FLASH芯发送200帧数据,则REPEATTX为199,当我在程序中发送0x00的时候,SPI 控制器会发送200个0x00,形成200帧通讯时钟,程序比较简单。
使用逻辑分析仪可以看到整个过程与FLASH芯片要求的时序一致。
审核编辑:刘清
-
控制器
+关注
关注
112文章
16323浏览量
177795 -
SPI接口
+关注
关注
0文章
258浏览量
34370 -
FIFO存储
+关注
关注
0文章
103浏览量
5967 -
SPI Flash
+关注
关注
1文章
13浏览量
10348
原文标题:MSPM0L1306开发板教程11 - SPI
文章出处:【微信号:创易栈,微信公众号:创易栈】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论