新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一文讀懂SPI串行外設(shè)接口

        一文讀懂SPI串行外設(shè)接口

        作者:ZLG致遠(yuǎn)電子 時(shí)間:2017-04-27 來(lái)源:電子產(chǎn)品世界 收藏

          總線系統(tǒng)是一種同步串行外設(shè)接口,它可以使與各種外圍設(shè)備以串行方式進(jìn)行通信以交換信息。正是由于有了通信方式,我們才能夠通過(guò)芯片控制各種各樣的外圍器件,實(shí)現(xiàn)很多“不可思議”的現(xiàn)代科技。這里將以為題,從編程角度來(lái)介紹總線。

        本文引用地址:http://www.104case.com/article/201704/358500.htm

          1、SPI協(xié)議簡(jiǎn)介

           

          圖 1 SPI接口

          SPI 是英語(yǔ) Serial Peripheral interface 的縮寫,顧名思義就是串行外圍設(shè)備接口。是 Motorola首先在其 MC68HCXX 系列處理器上定義的。SPI是一種高速的,全雙工,同步的通信總線,由于其簡(jiǎn)單易用的特性,現(xiàn)在很多的nor flash和nandflash芯片集成了這種通信協(xié)議,也就是我們說(shuō)的SPI flash。

          2、應(yīng)用及現(xiàn)狀

           

          圖 2 SPI應(yīng)用

          SPI flash 芯片應(yīng)用十分廣泛,在很多電子產(chǎn)品上面或多或少都有它的蹤影,如手機(jī)、數(shù)碼、液晶顯示器、機(jī)頂盒、電腦主板等。最近,有消息透露,蘋果新手機(jī)iPhone 8將導(dǎo)入采用編碼型快閃存儲(chǔ)(NOR Flash),讓已經(jīng)處于缺貨狀態(tài)的NOR芯片更為惱火,另外據(jù)存儲(chǔ)業(yè)者透露,今年NOR芯片供給缺口將可能擴(kuò)大至20%。

          3、解剖SPI總線

          SPI 接口一般使用 4 條線通信,MISO 主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出。MOSI 主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入。SCLK 時(shí)鐘信號(hào),由主設(shè)備產(chǎn)生。CS 從設(shè)備片選信號(hào),由主設(shè)備控制。

           

          圖 3 SPI總線

          SPI接口在Master控制下產(chǎn)生的從器件使能信號(hào)和時(shí)鐘信號(hào),兩個(gè)雙向移位寄存器按位傳輸進(jìn)行數(shù)據(jù)交換,傳輸數(shù)據(jù)高位在前,低位在后(MSB)。在SCK的下降沿上數(shù)據(jù)改變,上升沿一位數(shù)據(jù)被存入移位寄存器。

           

          圖 4 使能信號(hào)和時(shí)鐘信號(hào)

          4、解剖SPI flash

          搞懂了SPI協(xié)議之后,下面就讓小編來(lái)帶你輕松操作SPI flash芯片。對(duì)flash芯片的操作,一般包括對(duì)flash芯片的擦除,編程和讀取,各大廠商的SPI flash芯片都大同小異,操作命令基本是沒(méi)什么變化的,當(dāng)我們拿到一款芯片,要特別注意芯片的容量,操作分區(qū),下面以旺宏的芯片為例為大家講解。

          其實(shí),無(wú)論是對(duì)芯片的擦除,編程還是讀取操作,我們大致可以按照以下的套路來(lái):寫命令---寫地址---寫(讀)數(shù)據(jù)。正如以下的時(shí)序圖一樣清晰明了,我們先把片選信號(hào)拉低,再發(fā)個(gè)0x02頁(yè)編程命令,再發(fā)個(gè)地址,就可以輕松寫數(shù)據(jù)了。

           

         

          依樣畫葫蘆,擦除操作也是一樣,甚至更簡(jiǎn)單,但是我們要注意循環(huán)判斷狀態(tài)寄存器的WIP位直至為0為擦除完成,具體循環(huán)時(shí)間視芯片而定。

          另外,我們要特別注意SPI flash的 OTP區(qū),即(ONE TIME PROGRAMMABLE),也就是說(shuō)這個(gè)區(qū)域只能編程一次,編程之后不能再修改及擦除,因此我們操作的時(shí)候要特別注意。對(duì)OTP區(qū)域的讀寫之前,我們首先要發(fā)送進(jìn)入OTP區(qū)域的命令,其他的操作和以上普通flash區(qū)域的操作是一樣的。

          掌握以上方法,我們就可以輕松操作SPI flash芯片了,當(dāng)然,對(duì)時(shí)序這種底層的操作,還需要不斷學(xué)習(xí)和積累。



        關(guān)鍵詞: SPI MCU

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 西乌| 沛县| 分宜县| 石泉县| 和田市| 独山县| 舟山市| 西和县| 南召县| 南溪县| 兴隆县| 龙岩市| 安康市| 崇信县| 乡宁县| 张家港市| 武胜县| 北流市| 丹巴县| 修文县| 蒲江县| 桐梓县| 吉水县| 胶南市| 巴彦县| 哈尔滨市| 黑山县| 兰州市| 溆浦县| 黔南| 开封市| 涿鹿县| 水富县| 汉川市| 教育| 沂水县| 盐边县| 湄潭县| 汉沽区| 铁岭市| 武宣县|