• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于PIC單片機與串行閃存的SPI接口設計

    基于PIC單片機與串行閃存的SPI接口設計

    作者: 時間:2011-11-26 來源:網絡 收藏

    引 言

    以性能穩定、品種眾多等特點在工業控制、儀器儀表、家電、通信等領域得到廣泛應用。雖然很多型號自身集成了存儲器,但在很多情況下難以滿足系統對大容量存儲的要求,需要外擴非易失性的存儲器。與并行Flash存儲器相比,串行Flash存儲器占用MCU引腳少,體積小,易于擴展,接線簡單,工作可靠,故而越來越多地應用在各類電子產品和工業測控系統中。本文主要討論PIC16F877A單片機與串行閃存M25P16之間的SPI通信,在要求大容量數據存儲且MCU引腳資源有限的情況下具有實用價值。

    1 SPI工作原理

    SPI(Serial Peripheral Interface)是一種常用的串行通信協議,用于MCU系統與外圍設備的通信,可用來連接存儲器、A/D轉換器、D/A轉換器、實時時鐘、LCD驅動器、傳感器,甚至其他處理器。SPI主要使用4個信號:MOSI(主機輸出/從機輸人)、MISO(主機輸入/從機輸出)、SCK(串行時鐘)和CS(片選)。其中,SCK由主機產生,作為傳輸的同步時鐘,控制所有數據傳輸。主機通過觸發從設備的CS決定二者之間的SPI傳輸是否能夠進行。主機和外設都包含1個串行移位寄存器。主機通過向自己的SPI串行寄存器寫入1個字節來發起1次傳輸,然后通過MOSI信號線將數據傳給外設,同時外設將自己移位寄存器中的內容通過MISO信號線返回給主機,如圖1所示。這樣,兩個移位寄存器中的內容就交換了。也就是說,外設的寫操作和讀操作是同步完成的。在實際應用中,如果只進行寫操作,則主機只需忽略收到的字節即可;如果主機要讀外設的數據,必須發送1個字節來引發從機的傳輸,發送的這個字節可以是任意數據。



    2 M25P16簡介

    M25P16是16 Mb的串行閃存,具有先進的寫保護機制,支持速度高達50 MHz的SPI總線的存取操作。該存儲器有32個扇區,每個扇區256頁,每頁256字節。工作電壓范圍2.7~3.6 V,工作溫度范圍-40~+85℃。數據保存長達20年,每個扇區可擦寫/編程100 000次。

    M25P16支持的操作指令共有12條。指令格式為:



    其中,8位的命令字是必需的,地址、啞元以及數據字節的有無和長度會因指令的不同而有所差別,詳情如表1所列。所有的命令碼、地址、串行輸入/輸出的數據,均是高位在前,低位在后。



    對M25P16操作時,先選中芯片(即片選信號S拉低),然后串行輸入操作指令字節,緊接著串行輸入地址字節(0或3字節),必要時還要加入啞讀字節,最后串行輸入/輸出數據字節,然后把片選信號拉高,之后M25P16啟動內部控制邏輯,自行完成相應的操作。


    上一頁 1 2 3 下一頁

    關鍵詞: PIC單片機 SPI接口

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 崇州市| 武汉市| 凌云县| 甘洛县| 从江县| 淳化县| 台中县| 安国市| 临漳县| 同江市| 丰县| 西吉县| 苗栗市| 莆田市| 卢龙县| 西充县| 那曲县| 中超| 额尔古纳市| 射阳县| 绍兴市| 柳河县| 井冈山市| 定州市| 吉木萨尔县| 德清县| 额尔古纳市| 淮安市| 宜兰市| 开封县| 扎鲁特旗| 孟村| 杨浦区| 东明县| 闻喜县| 原平市| 郧西县| 滁州市| 南溪县| 砚山县| 宜城市|