MSPM0L1306开发板教程-SPI

描述

MSPM0L系列的SPI控制器最大频率是16MHz,支持3线和4线的模式,带有4个片选(CS),其中CS3支持命令模式(Command Mode)。

FIFO存储

SPI控制器有独立的4个字节接收和4个字节发送FIFO,主机数据位从7-16bit选择,从机数据位可以从4-16位选择。

FIFO存储

下面通过配置一个操作外部SPI FLASH的程序来讲下SPI控制器的配置,FLASH的型号是华邦的W25Q128。

在SYSCONFIG中,添加一个SPI外设,频率最高16MHz,根据自己的需要选择,帧格式选择4线模式,8位数据位,高位在前,也就是MSB,时钟极性选择Low,也就是没有时钟的时候管脚是低电平,其他默认就可以。

FIFO存储

先来看下W25Q64的时序,我们用一个读芯片ID的时序来说明。

FIFO存储

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。

FIFO存储

由于SPI的通讯时钟只能在发送操作的时候发出,读取操作是没有时钟信号发出的,所以在做读取操作的时候,其实需要发送操作,一般我们会发送同样与接收数据相同数量的0x00。

MSPM0L系列的SPI的控制寄存器CLT1中有一个REPEATTX,可以用来做重复发送操作,最高可以重复256次,例如我需要FLASH芯发送200帧数据,则REPEATTX为199,当我在程序中发送0x00的时候,SPI 控制器会发送200个0x00,形成200帧通讯时钟,程序比较简单。

FIFO存储

使用逻辑分析仪可以看到整个过程与FLASH芯片要求的时序一致。FIFO存储







审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分