關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于MSP430F12x2的SPI數據存儲器擴展

        基于MSP430F12x2的SPI數據存儲器擴展

        作者: 時間:2012-10-12 來源:網絡 收藏

        1 引 言

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

        如今隨著信息產業的飛速發展,以微處理器為核心的嵌入式系統正在智能化儀表、實時控制系統等方面發揮著巨大的作用。在許多實際應用中經常面臨的問題是需要支持大容量的數據存儲功能。

        但是采用常規擴展外部數據存儲器的方法,需要大量的地址總線和數據總線引腳,因而在訪問外部數據存儲器時,其容量受到微處理器地址總線和數據總線數量的極大限制。由于單片機的引腳數都相對較少,沒有足夠多的引腳用作外部數據存儲器的地址總線,為了解決這一矛盾,本文以12X2[1]單片機和AT45DB081[2]芯片為例,介紹了一種利用串行外設接口(SPI)擴展大容量數據存儲器的方法。并給出初始化以及數據讀寫操作子程序。

        2 硬件簡介

        43 F12X20是一款超低功耗的混合信號控制器,具有16位RISC結構,有著豐富的片內外設,主要包括有看門狗、定時器、比較器、硬件乘法器、液晶驅動器、ADC、I/O端口、串口(USART)等,還集成有64 kB的FLASHROM和2 kB的RAM。其功能強大,應用場合廣泛。特別適合應用于智能儀表、智能化家用電器、電池供電的便攜式設備等產品中。相對于其他單片機430 F12X2還具有以下特點:

        (1)MSP12X2內部預設了JTAG模塊,他使得每一個單片機芯片都具有完整的在線調試功能,而不必使用較復雜的仿真調試工具;

        (2)MSP12X2中的FLASH在線編程技術可以完成除了采用外部編程器進行燒寫外,用戶可以利用自己的程序修改FLASH內容,且不需要外加編程電壓;

        (3)MSP430F12X2中的BOOTSTRAP技術使芯片具有片內的BOOT ROM,可以實現程序代碼的下載和上載。

        AT45DB081是Atreel公司推出的工作電壓為2.7~3.6 v,可在系統可重復擦寫并兼容SPI的FLASH數據存儲器。內部有4 096頁、每頁264個字節,共計8 MB的主存儲器容量以及2個264字節的SRAM數據緩存器。支持在系統重復編程,不需要較高的編程電壓,只需要芯片的工作電壓2.7~3.6 V就可以完成對FLASH的讀寫操作。AT45DB081通過一個三線接口(包含串行輸入SI、串行輸出SO、串行時鐘SCK)在片選信號的配合下進行訪問。這種串行接口FLAS[{存儲器十分適用于要求存儲量大而引腳資源較少、電源電壓低和低功耗的應用領域。

        3 硬件原理圖

        MSP430F12X2與AT45DB081的硬件連接原理圖如圖1所示。

        圖1中將MSP430F12X2的P3.1,P3.2和P3.3引腳配置為SPI的MOSI(主出從人)、MISO(主出從入)CLK(串行時鐘)和信號線,分別與AT、45DB081的串行輸入、串行輸出和時鐘引腳相連。將P2.0,P2.1,P2.2與AT45DB081的芯片片選、復位和忙閑狀態引腳相連。由于RDY/BUSY為漏極開路,因而需加上拉電阻輸出[2]。

        4 AT45DB081的操作及操作碼

        對AT45DB021B的操作是由主機發出的指令控制,一個有效的指令在

        的下降沿開始,包括一個8位的操作碼和要進行操作的頁地址和緩沖區地址的位置。表1列出了AT45DB021B的主要的操作方式和對應的操作碼。

        (1) 狀態存儲器

        他是AT45DB021B內的一個8位的只讀存儲器,用于指示其工作狀況,如表2所示,BIT7用于顯示AT45DB021B的狀態,BIT7位=1時,說明AT45DB021B不忙,可以對其進行指令操作,BIT7位=0時,指示AT45DB021B忙,可以通過檢測BIT7位實時了解AT45DB021B的狀態。BIT6 COMP用于顯示主存儲器頁面與緩存器進行數據比較的結果,當比較結果匹配COMP=0,否則COMP=1。

        (2) 通過緩沖存儲器對主存儲器寫操作

        命令碼為:操作碼5位保留碼10位頁地址碼9位頁內起始地址碼,其中操作碼為82H時,數據通過緩沖存儲器1向主存儲器寫,為85H時,數據通過緩沖存儲器2向主存儲器寫操作。

        (3) 主存儲器頁讀

        主存儲器頁讀指令可以對1024頁中的任意頁進行讀操作,命令碼為:8位操作碼,5位保留碼,10位頁地址碼,9位頁內起始地址碼,32位無關碼;操作碼為52H或D2H,5位保留碼用于對片子的上下兼容,10位頁地址碼用于確定對主存儲器的哪一頁進行操作,9位頁內起始地址碼來確定頁內操作的起始地址,后32為無關碼用來配合時序。當 為0時,主機向器件的SCK引腳發送時鐘信號,引導操作碼和地址從SI引腳寫入器件,當最后一位寫入后的下一個時鐘周期,頁內數據將從SO引腳輸出。

        5 軟件流程及讀寫程序

        MSP430F12X2單片機對AT45DB081進行初始化以及數據讀寫操作的軟件流程圖如圖2所示。圖2中系統初始化包括系統時鐘初始化、將P3.1,P3.2和P3.3引腳配置為SPI接口,設置SPI特殊狀態寄存器和復位數據存儲器。

        單片機通過P2.2讀取AT45DB081的忙閑狀態引腳來判斷存儲器是否空閑,若P2.2為1表示存儲器空閑,否則表示存儲器忙。當存儲器空閑時通過P2.0引腳輸出0作為存儲器的片選信號。選中存儲器后可以參照表1,通過SPI發送命令字完成對AT45DB081的相應讀寫操作。對AT45DB081進行初始化以及數據讀寫操作的子程序[3]如下。

        6 結 語

        本文的創新意義在于在占用:MSP430F12X2單片機引腳數極少的情況下實現了大容量外部存儲器的擴展方法,使得單片機在擴展外部數據存儲器中改并行訪問為串行訪問,不再需要大量的地址和數據總線引腳。這種方法同樣可推廣到其他帶有SPI接口的微處理器。在數據采集,智能儀表中都具有很強的實用意義。

        更多計算機與外設信息請關注21ic計算機與外設頻道

        存儲器相關文章:存儲器原理




        關鍵詞: 430F MSP 12x

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 洪泽县| 新竹县| 澄江县| 鄂托克旗| 哈尔滨市| 静宁县| 定襄县| 通榆县| 全州县| 石河子市| 正蓝旗| 南通市| 老河口市| 资中县| 防城港市| 乐至县| 鲜城| 孟连| 美姑县| 醴陵市| 汝州市| 调兵山市| 根河市| 西和县| 湛江市| 西乌珠穆沁旗| 云霄县| 和平区| 沾益县| 延津县| 大名县| 醴陵市| 博乐市| 永顺县| 天津市| 密山市| 含山县| 乐昌市| 合川市| 西吉县| 潞城市|