和平精英空白代码: 【技術分享】什么是 SPI-Flash?常見使用問題及注意事項解析

2019-06-06 17:42:26 來源:面包板
標簽:
SPI   MCU   接口
一.概念:
SPI:serial peripheral interface
 
串行接口設備,spi flash 就是通過串行的接口進行操作的flash存儲設備
 
flash按照內部存儲結構不同,分為兩種:nor flash和nand flash。這里spi flash 屬于 nor flash!
 
spi flash 讀寫較慢,次數有限制,一般用于不經常更改的存儲。
 
早期Norflash的接口是parallel的形式,即把數據線和地址線并排與IC的管腳連接。但是后來發現不同容量的Norflash不能硬件上兼容(數據線和地址線的數量不一樣),并且封裝比較大,占用了較大的PCB板位置,所以后來逐漸被SPI(串行接口)Norflash所取代。同時不同容量的SPI Norflash管腳也兼容封裝也更小。,至于現在很多人說起NOR flash直接都以SPI flash來代稱。
 
二、SPI FLASH讀寫介紹
對flash芯片的操作,一般包括對flash芯片的擦除,編程和讀取,各大廠商的SPI flash芯片都大同小異,操作命令基本是沒什么變化的,當我們拿到一款芯片,要特別注意芯片的容量,操作分區等。
 
其實,無論是對芯片的擦除,編程還是讀取操作,我們大致可以按照以下的套路來:寫命令---寫地址---寫(讀)數據。正如以下的時序圖一樣清晰明了,我們先把片選信號拉低,再依次寫指令,地址和數據,就可以對FLASH芯片進行操作。
 
掌握以上方法,就可以輕松操作SPI flash芯片了,當然,對時序這種底層的操作,還需要不斷學習和積累,不論是用FPGA還是MCU,最終都是為了產生時序信號,只要靜下來認真理解了它,一切問題就迎刃而解了。
 
三.注意事項
1.不同的SPI FLASH芯片可能會提供的擦除方式:扇區擦除(4KBytes),半塊擦除(32KBytes),塊擦除(64KBytes),片擦除。
 
2.不同的SPI FLASH芯片可能會提供的編程方式(也就是寫數據):頁編程(256Bytes),扇區編程(4KBytes)。
 
3.SPI FLASH如果擦除過,在往里面寫0xFF這樣的數據意義不大,因為它的特性就是擦除后數據就是0xFF。
 
4.寫入flash時,只能把數據(bit)從1該為0。
 
5.傳統的EEPROM的特點就是可以隨機訪問和修改任何一個字節,可以往每個bit中寫入0或1。而寫入flash時,只能把數據(bit)從1該為0。但是傳統的EEPROM容量因成本的緣故收到限制,絕少有超過有512K的。
 
6.Nor Flash容量相對小,成本高,基本沒壞塊,數據線和地址線分開,可以實現隨機尋址,讀取任何一個字節,擦除任然要按塊來擦。NAND FLASH容量大,成本低,壞塊經常出現,但可以標記壞塊,使軟件跳過,數據線和地址線復用,按塊擦除按頁讀取。
 
四、項目實操中的問題
項目中需要用到SPI flash,在使用這個4MB 的SPI flash中出了三個問題讓印象深刻,特記錄下來以作提醒
 
問題1:我們知道SPI flash也分主從模式,一般master都是有MCU等器件擔當的,而slave有SPI器件擔任,筆者的這個小系統同樣如此。
 
并且MCU是自帶有SPI controler,接線方式依然是四線解法,SCK,CS,DO,DI,在看手冊的過程因為自己的不注意,看到描述是“user can
 
decide the SPICS configuration in the master mode,if P_IO_Ctrl[10] set 1, the IOA[12] as GPIO function, if P_IO_Ctrl[10] set 0, the IOA[12] as SPICS hardware function” 我當時沒有好好體會這句話的意思,簡單的認為我在使用SPI flash之前就k肯定需要把P_IO_Ctrl[10]設置為 0, 其實這是錯誤的認識。
 
因為現在是通過MCU對slave SPI器件操作,首先肯定是需要MCU端來選中SPI器件,從master角度來講,只需要一個GPIO信號線接到slave的CS端,同時輸出低電平就相當了選中了這個slave了,之所以如此說法是因為這是從slave角度來說的,相當于MCU現在也作為一個slave,另一個MCU控制這個slave,則這時候SPI 初始化時就需要把 P_IO_Ctrl[10] set 0
 
問題2:需要一個燒錄器向SPI flash中燒寫內容,用的是西立特公司的superPro,但燒錄步驟錯誤了,忘記了在編程之前必須要erase,
 
了解了一下,好像是和nor flash一樣的介質,擦除會把所有bit置1,在編程的時候根據需要只可以把相應位置0.
 
問題3:在使用MCU上一個SPI 控制器接口接SPI flash時,沒有交叉連接,即MCU 的DI應該接SPI 的DO,MCU 的DO應該接SPI 的DI。 
 
 
關注與非網微信 ( ee-focus )
限量版產業觀察、行業動態、技術大餐每日推薦
享受快時代的精品慢閱讀
 

腾讯和平精英 www.2491175.com

 

繼續閱讀
7000+學員好評的STM32講師,何俊鵬靠的是什么?
7000+學員好評的STM32講師,何俊鵬靠的是什么?

“學技術的很多都比較低沉,我覺得需要活躍的氣氛,所以我在講課的開始,都喜歡放一段音樂給大家聽?!痹諍陀敕峭欽叩慕渙鞴討?,摩爾吧講師何俊鵬如是說。

用免費板卡贏取萬元大獎,此等好事只在2019 NXP MCU 挑戰大賽

為進一步釋放MCU的潛能,2019恩智浦杯?MCU?挑戰大賽正式啟動。

從電子通信基本概念開始,詳細介紹 SPI

將微控制器連接到傳感器,顯示器或其他??槭?,您是否考慮過兩個設備之間如何通信?他們到底在說什么?他們如何能夠相互理解?

QSFP-DD發布兩個更新規范

QSFP-DD多源協議 (MSA) 組織發布了針對QSFP-DD收發器外形的通用管理接口規范(CMIS)4.0版。行業對改進的高密度高速網絡解決方案的需求不斷發展,為了滿足這種需求,65 家公司攜手為 QSFP-DD MSA 提供支持。?

從效率優先,車用半導體市場如何?

IHS Markit日前將2019年全球新車銷售量預估值下修至9,100萬臺、將年減2%,原先則是預估將呈現年增。

更多資訊
曾錯過一次機遇的 AMD,這次拿什么來斗 Intel?

2003年,這家芯片制造商推出了“SledgeHammer”Opteron(皓龍),這是首款64位X86服務器處理器,與上一代32位處理器兼容,當時,規模更大的競爭對手英特爾仍在大力推廣Itanium作為下一代架構,這也是它唯一的64位選擇。在短短三年左右的時間里,AMD占據了服務器芯片市場20%以上的份額,并成為英特爾的主要競爭對手。

凈利暴跌 50%,英偉達發生了什么?

英偉達今日公布了該公司的2020財年第二季度財報。報告顯示,英偉達第二季度營收為25.79億美元,與上年同期的31.23億美元相比下降17%;凈利潤為5.52億美元,與上年同期的11.01億美元相比下降50%。

聯發科5G芯片領跑,已通過5G獨立組網連網通話測試

近日,聯發科攜手國際合作伙伴與核心網伙伴諾基亞、思科、基站供應商愛立信、國外運營商T-mobile成功完成5G獨立組網連網通話對接,此次共同合作測試,實現了全球第一個5G獨立組網的通話連網,這將讓5G商用部署具備更多彈性。

中國電科發布“海雀”認知處理器,有何神奇之處?
中國電科發布“海雀”認知處理器,有何神奇之處?

與非網8月16日訊,近一段時間中國芯硬來了一波小高潮,各種強勁的芯片產品紛紛亮相。今天,聚光燈下的明星芯片又多了一員,它就是“海雀”認知處理器。

ARM內存邊界對齊的結構體

默認情況下,在32位cpu里,gcc對于結構體的對齊方式是按照四個字節來對齊的??匆韻陸峁固?

北京pk赛车专家杀一码 幸运168彩票app 中超赛程 重庆时时人工计划网 郑州小姐上门按摩 重庆时时采彩官方开奖 南京按摩不正规比较好的地方推荐 北京pk拾计划官方 东莞一条龙体验报表 幸运飞艇走势规律分析技巧 抢庄牛牛棋牌 爱乐游戏平台 时时彩后三乘以0.618 舒淇私拍人体写真 3d投资天计划 北京pk10走势图杀号技巧