MSPM0L系列的SPI控制器最大頻率是16MHz,支持3線和4線的模式,帶有4個片選(CS),其中CS3支持命令模式(Command Mode)。

SPI控制器有獨立的4個字節(jié)接收和4個字節(jié)發(fā)送FIFO,主機數(shù)據(jù)位從7-16bit選擇,從機數(shù)據(jù)位可以從4-16位選擇。

下面通過配置一個操作外部SPI FLASH的程序來講下SPI控制器的配置,F(xiàn)LASH的型號是華邦的W25Q128。
在SYSCONFIG中,添加一個SPI外設,頻率最高16MHz,根據(jù)自己的需要選擇,幀格式選擇4線模式,8位數(shù)據(jù)位,高位在前,也就是MSB,時鐘極性選擇Low,也就是沒有時鐘的時候管腳是低電平,其他默認就可以。

先來看下W25Q64的時序,我們用一個讀芯片ID的時序來說明。

SPI發(fā)送90h指令,地址為000000h,F(xiàn)LASH芯片就會返回工廠ID ,EFh和設備ID,這顆芯片ID是16h。
也就是說,SPI發(fā)送0x90,0x00,0x00,0x00這三個字節(jié)數(shù)據(jù),芯片就會返回0xEF和0x16
需要注意的是,由于整個時序中,片選是要一直拉低的,而SPI 外設的片選在每次發(fā)送和接收完一幀后會拉高,所以FLASH的芯片的片選需要用MCU的IO口獨立控制,沒有辦法使用SPI外設的CS管腳。
所以在SYSCONFIG里還配置了一個CS的GPIO。

由于SPI的通訊時鐘只能在發(fā)送操作的時候發(fā)出,讀取操作是沒有時鐘信號發(fā)出的,所以在做讀取操作的時候,其實需要發(fā)送操作,一般我們會發(fā)送同樣與接收數(shù)據(jù)相同數(shù)量的0x00。
MSPM0L系列的SPI的控制寄存器CLT1中有一個REPEATTX,可以用來做重復發(fā)送操作,最高可以重復256次,例如我需要FLASH芯發(fā)送200幀數(shù)據(jù),則REPEATTX為199,當我在程序中發(fā)送0x00的時候,SPI 控制器會發(fā)送200個0x00,形成200幀通訊時鐘,程序比較簡單。

使用邏輯分析儀可以看到整個過程與FLASH芯片要求的時序一致。
審核編輯:劉清
-
控制器
+關注
關注
114文章
17530瀏覽量
189123 -
SPI接口
+關注
關注
0文章
271瀏覽量
36220 -
FIFO存儲
+關注
關注
0文章
103瀏覽量
6270 -
SPI Flash
+關注
關注
1文章
13瀏覽量
10781
原文標題:MSPM0L1306開發(fā)板教程11 - SPI
文章出處:【微信號:創(chuàng)易棧,微信公眾號:創(chuàng)易?!繗g迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
MSPM0L1306開發(fā)板教程之OPA
電賽:mspm0l1306的開發(fā)板可以燒錄程序,但是程序運行不了,怎么解決這個問題?
MSPM0L1306開發(fā)板教程之開發(fā)環(huán)境搭建
MSPM0L1306開發(fā)板教程之DMA
MSPM0L1306開發(fā)板教程之通用定時器
MSPM0L1306開發(fā)板教程之I2C
MSPM0L1306開發(fā)板教程之WWDT
TI MSPM0L1306開發(fā)板簡介
MSPM0L1306 LaunchPad開發(fā)套件(LP?MSPM0L1306)
MSPM0L1306 LaunchPad?開發(fā)套件技術(shù)解析與應用指南
MSPM0L1306微控制器數(shù)據(jù)手冊總結(jié)

MSPM0L1306開發(fā)板教程-SPI
評論