MSPM0L系列的SPI控制器最大頻率是16MHz,支持3線和4線的模式,帶有4個(gè)片選(CS),其中CS3支持命令模式(Command Mode)。
SPI控制器有獨(dú)立的4個(gè)字節(jié)接收和4個(gè)字節(jié)發(fā)送FIFO,主機(jī)數(shù)據(jù)位從7-16bit選擇,從機(jī)數(shù)據(jù)位可以從4-16位選擇。
下面通過(guò)配置一個(gè)操作外部SPI FLASH的程序來(lái)講下SPI控制器的配置,F(xiàn)LASH的型號(hào)是華邦的W25Q128。
在SYSCONFIG中,添加一個(gè)SPI外設(shè),頻率最高16MHz,根據(jù)自己的需要選擇,幀格式選擇4線模式,8位數(shù)據(jù)位,高位在前,也就是MSB,時(shí)鐘極性選擇Low,也就是沒(méi)有時(shí)鐘的時(shí)候管腳是低電平,其他默認(rèn)就可以。
先來(lái)看下W25Q64的時(shí)序,我們用一個(gè)讀芯片ID的時(shí)序來(lái)說(shuō)明。
SPI發(fā)送90h指令,地址為000000h,F(xiàn)LASH芯片就會(huì)返回工廠ID ,EFh和設(shè)備ID,這顆芯片ID是16h。
也就是說(shuō),SPI發(fā)送0x90,0x00,0x00,0x00這三個(gè)字節(jié)數(shù)據(jù),芯片就會(huì)返回0xEF和0x16
需要注意的是,由于整個(gè)時(shí)序中,片選是要一直拉低的,而SPI 外設(shè)的片選在每次發(fā)送和接收完一幀后會(huì)拉高,所以FLASH的芯片的片選需要用MCU的IO口獨(dú)立控制,沒(méi)有辦法使用SPI外設(shè)的CS管腳。
所以在SYSCONFIG里還配置了一個(gè)CS的GPIO。
由于SPI的通訊時(shí)鐘只能在發(fā)送操作的時(shí)候發(fā)出,讀取操作是沒(méi)有時(shí)鐘信號(hào)發(fā)出的,所以在做讀取操作的時(shí)候,其實(shí)需要發(fā)送操作,一般我們會(huì)發(fā)送同樣與接收數(shù)據(jù)相同數(shù)量的0x00。
MSPM0L系列的SPI的控制寄存器CLT1中有一個(gè)REPEATTX,可以用來(lái)做重復(fù)發(fā)送操作,最高可以重復(fù)256次,例如我需要FLASH芯發(fā)送200幀數(shù)據(jù),則REPEATTX為199,當(dāng)我在程序中發(fā)送0x00的時(shí)候,SPI 控制器會(huì)發(fā)送200個(gè)0x00,形成200幀通訊時(shí)鐘,程序比較簡(jiǎn)單。
使用邏輯分析儀可以看到整個(gè)過(guò)程與FLASH芯片要求的時(shí)序一致。
審核編輯:劉清
-
控制器
+關(guān)注
關(guān)注
114文章
16995瀏覽量
183112 -
SPI接口
+關(guān)注
關(guān)注
0文章
262瀏覽量
35308 -
FIFO存儲(chǔ)
+關(guān)注
關(guān)注
0文章
103瀏覽量
6150 -
SPI Flash
+關(guān)注
關(guān)注
1文章
13瀏覽量
10548
原文標(biāo)題:MSPM0L1306開(kāi)發(fā)板教程11 - SPI
文章出處:【微信號(hào):創(chuàng)易棧,微信公眾號(hào):創(chuàng)易棧】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
MSPM0L1306開(kāi)發(fā)板教程之OPA

電賽:mspm0l1306的開(kāi)發(fā)板可以燒錄程序,但是程序運(yùn)行不了,怎么解決這個(gè)問(wèn)題?
MSPM0L1306開(kāi)發(fā)板教程之開(kāi)發(fā)環(huán)境搭建

MSPM0L1306開(kāi)發(fā)板教程之GPIO輸入輸出

MSPM0L1306開(kāi)發(fā)板教程之DMA

MSPM0L1306開(kāi)發(fā)板教程之ADC

MSPM0L1306開(kāi)發(fā)板教程之通用定時(shí)器

MSPM0L1306開(kāi)發(fā)板教程之I2C

MSPM0L1306開(kāi)發(fā)板教程- NVM(FLASH)

MSPM0L1306開(kāi)發(fā)板教程之WWDT

TI MSPM0L1306開(kāi)發(fā)板簡(jiǎn)介

MSPM0 L系列MCU硬件開(kāi)發(fā)指南

MSPM0L1306 LaunchPad開(kāi)發(fā)套件(LP?MSPM0L1306)

評(píng)論