1 引 言
如今隨著信息產(chǎn)業(yè)的飛速發(fā)展,以微處理器為核心的嵌入式系統(tǒng)正在智能化儀表、實時控制系統(tǒng)等方面發(fā)揮著巨大的作用。在許多實際應用中經(jīng)常面臨的問題是需要支持大容量的數(shù)據(jù)存儲功能。
但是采用常規(guī)擴展外部數(shù)據(jù)存儲器的方法,需要大量的地址總線和數(shù)據(jù)總線引腳,因而在訪問外部數(shù)據(jù)存儲器時,其容量受到微處理器地址總線和數(shù)據(jù)總線數(shù)量的極大限制。由于單片機的引腳數(shù)都相對較少,沒有足夠多的引腳用作外部數(shù)據(jù)存儲器的地址總線,為了解決這一矛盾,本文以MSP430F12X2[1]單片機和AT45DB081[2]芯片為例,介紹了一種利用串行外設(shè)接口(SPI)擴展大容量數(shù)據(jù)存儲器的方法。并給出初始化以及數(shù)據(jù)讀寫操作子程序
2 硬件簡介
MSP43 F12X20是一款超低功耗的混合信號控制器,具有16位RISC結(jié)構(gòu),有著豐富的片內(nèi)外設(shè),主要包括有看門狗、定時器、比較器、硬件乘法器、液晶驅(qū)動器、ADC、I/O端口、串口(USART)等,還集成有64 kB的FLASHROM和2 kB的RAM。其功能強大,應用場合廣泛。特別適合應用于智能儀表、智能化家用電器、電池供電的便攜式設(shè)備等產(chǎn)品中。相對于其他單片機MSP430 F12X2還具有以下特點:
(1)MSP430F12X2內(nèi)部預設(shè)了JTAG模塊,他使得每一個單片機芯片都具有完整的在線調(diào)試功能,而不必使用較復雜的仿真調(diào)試工具;
(2)MSP430F12X2中的FLASH在線編程技術(shù)可以完成除了采用外部編程器進行燒寫外,用戶可以利用自己的程序修改FLASH內(nèi)容,且不需要外加編程電壓;
(3)MSP430F12X2中的BOOTSTRAP技術(shù)使芯片具有片內(nèi)的BOOT ROM,可以實現(xiàn)程序代碼的下載和上載。
AT45DB081是Atreel公司推出的工作電壓為2.7~3.6 v,可在系統(tǒng)可重復擦寫并兼容SPI的FLASH數(shù)據(jù)存儲器。內(nèi)部有4 096頁、每頁264個字節(jié),共計8 MB的主存儲器容量以及2個264字節(jié)的SRAM數(shù)據(jù)緩存器。支持在系統(tǒng)重復編程,不需要較高的編程電壓,只需要芯片的工作電壓2.7~3.6 V就可以完成對FLASH的讀寫操作。AT45DB081通過一個三線接口(包含串行輸入SI、串行輸出SO、串行時鐘SCK)在片選信號的配合下進行訪問。這種串行接口FLAS[{存儲器十分適用于要求存儲量大而引腳資源較少、電源電壓低和低功耗的應用領(lǐng)域。
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的芯片片選、復位和忙閑狀態(tài)引腳相連。由于RDY/BUSY為漏極開路,因而需加上拉電阻輸出[2]。
4 AT45DB081的操作及操作碼
對AT45DB021B的操作是由主機發(fā)出的指令控制,一個有效的指令在
的下降沿開始,包括一個8位的操作碼和要進行操作的頁地址和緩沖區(qū)地址的位置。表1列出了AT45DB021B的主要的操作方式和對應的操作碼。
(1) 狀態(tài)存儲器
他是AT45DB021B內(nèi)的一個8位的只讀存儲器,用于指示其工作狀況,如表2所示,BIT7用于顯示AT45DB021B的狀態(tài),BIT7位=1時,說明AT45DB021B不忙,可以對其進行指令操作,BIT7位=0時,指示AT45DB021B忙,可以通過檢測BIT7位實時了解AT45DB021B的狀態(tài)。BIT6 COMP用于顯示主存儲器頁面與緩存器進行數(shù)據(jù)比較的結(jié)果,當比較結(jié)果匹配COMP=0,否則COMP=1。
(2) 通過緩沖存儲器對主存儲器寫操作
命令碼為:操作碼5位保留碼10位頁地址碼9位頁內(nèi)起始地址碼,其中操作碼為82H時,數(shù)據(jù)通過緩沖存儲器1向主存儲器寫,為85H時,數(shù)據(jù)通過緩沖存儲器2向主存儲器寫操作。
(3) 主存儲器頁讀
主存儲器頁讀指令可以對1024頁中的任意頁進行讀操作,命令碼為:8位操作碼,5位保留碼,10位頁地址碼,9位頁內(nèi)起始地址碼,32位無關(guān)碼;操作碼為52H或D2H,5位保留碼用于對片子的上下兼容,10位頁地址碼用于確定對主存儲器的哪一頁進行操作,9位頁內(nèi)起始地址碼來確定頁內(nèi)操作的起始地址,后32為無關(guān)碼用來配合時序。當 為0時,主機向器件的SCK引腳發(fā)送時鐘信號,引導操作碼和地址從SI引腳寫入器件,當最后一位寫入后的下一個時鐘周期,頁內(nèi)數(shù)據(jù)將從SO引腳輸出。
5 軟件流程及讀寫程序
MSP430F12X2單片機對AT45DB081進行初始化以及數(shù)據(jù)讀寫操作的軟件流程圖如圖2所示。圖2中系統(tǒng)初始化包括系統(tǒng)時鐘初始化、將P3.1,P3.2和P3.3引腳配置為SPI接口,設(shè)置SPI特殊狀態(tài)寄存器和復位數(shù)據(jù)存儲器。
單片機通過P2.2讀取AT45DB081的忙閑狀態(tài)引腳來判斷存儲器是否空閑,若P2.2為1表示存儲器空閑,否則表示存儲器忙。當存儲器空閑時通過P2.0引腳輸出0作為存儲器的片選信號。選中存儲器后可以參照表1,通過SPI發(fā)送命令字完成對AT45DB081的相應讀寫操作。對AT45DB081進行初始化以及數(shù)據(jù)讀寫操作的子程序[3]如下。
6 結(jié) 語
本文的創(chuàng)新意義在于在占用:MSP430F12X2單片機引腳數(shù)極少的情況下實現(xiàn)了大容量外部存儲器的擴展方法,使得單片機在擴展外部數(shù)據(jù)存儲器中改并行訪問為串行訪問,不再需要大量的地址和數(shù)據(jù)總線引腳。這種方法同樣可推廣到其他帶有SPI接口的微處理器。在數(shù)據(jù)采集,智能儀表中都具有很強的實用意義。
上一篇:基于單片機的對車體平臺的傾斜狀態(tài)進行自動顯示的操作
下一篇:基于STC12C5A60S2 單片機的植物智能精確補光系統(tǒng)研制
推薦閱讀
史海拾趣
對不起,我無法提供關(guān)于Adaptive Networks Inc公司發(fā)展的故事。
Displaytech公司成立于1989年,作為一家LCD模塊供應商在香港嶄露頭角。當時,液晶顯示技術(shù)正逐漸嶄露頭角,Displaytech憑借其敏銳的市場洞察力和技術(shù)實力,迅速在市場中占據(jù)了一席之地。公司初期專注于小型到中型LCD的制造,為工業(yè)、消費和醫(yī)療行業(yè)的客戶提供高質(zhì)量的產(chǎn)品和技術(shù)支持。
為了進一步提升公司的競爭力和市場份額,F(xiàn)DI實施了國際化戰(zhàn)略。他們積極拓展海外市場,與多個國家和地區(qū)的客戶建立了合作關(guān)系。通過參加國際展會、設(shè)立海外分支機構(gòu)等方式,F(xiàn)DI不斷提升品牌知名度和影響力。同時,他們還加強與當?shù)毓毯秃献骰锇榈暮献鳎餐_拓市場,實現(xiàn)互利共贏。這些努力使得FDI在全球電子行業(yè)中的地位日益穩(wěn)固。
ERNI Electronics的源頭可以追溯到1947年,當時其瑞士母公司成立。而在1956年,ERNI Electronics以生產(chǎn)繼電器為起點,正式進入電子行業(yè)。在創(chuàng)立初期,公司專注于繼電器的開發(fā)和制造,積累了豐富的電子行業(yè)經(jīng)驗。隨著市場需求的不斷變化,ERNI在1967年開發(fā)了第一個背板連接器,這一創(chuàng)新產(chǎn)品迅速成為公司的核心產(chǎn)品,并推動了公司的快速發(fā)展。
隨著全球化的不斷推進,Cyrustek公司也積極實施全球化戰(zhàn)略。通過與國際知名企業(yè)的合作和技術(shù)交流,Cyrustek不斷引進先進的技術(shù)和管理經(jīng)驗,提升自身的核心競爭力。同時,Cyrustek還積極開拓國際市場,將產(chǎn)品銷往全球各地。這種全球化戰(zhàn)略不僅幫助Cyrustek擴大了市場份額,也提高了其品牌知名度和影響力。
在電子行業(yè)的發(fā)展過程中,Cyrustek公司始終能夠精準把握市場需求的變化。無論是智能家居、物聯(lián)網(wǎng)還是可穿戴設(shè)備等領(lǐng)域,Cyrustek都能夠迅速推出符合市場需求的產(chǎn)品。這種敏銳的市場洞察力和快速響應能力,使得Cyrustek在電子行業(yè)中始終保持領(lǐng)先地位。同時,Cyrustek還注重與客戶的溝通和合作,不斷收集客戶反饋,優(yōu)化產(chǎn)品設(shè)計,提高客戶滿意度。
這個用來做上位機,很棒的軟件哦! LabVIEW使用的是圖形化編輯語言G編寫程序,做起來其樂無窮…… 和大家一起來DIY...... 下面,有些資料與你們分享!… 查看全部問答∨ |
|
通過AD轉(zhuǎn)換后得到4組word類型的AD值,分別保存在a0[8],a1[8],a2[8],a3[8]4個數(shù)組里,現(xiàn)在想獲得a0[8],a1[8],a2[8],a3[8]的平均值,保存在一個新數(shù)組a4[8]里,應該怎么做呀?… 查看全部問答∨ |
|
問題描述如下: 開機黑屏看不到自檢信息,AMI BOIS報警,大概響8-10下(響的有點快,數(shù)不過來),前面兩下幾乎是連著的,大概是1長8短。雖然看不到自檢信息,但是按F2后會“滴”一下,再按回車鍵,硬盤燈開始閃,隨后進入系統(tǒng)登陸界面(XP系統(tǒng),要 ...… 查看全部問答∨ |
發(fā)現(xiàn)lpc1343 GPIO0_11--GPIO1_3不能做數(shù)字口 最近無意中使用LPC1343的P0.11(即AD0)做數(shù)字口輸出,驅(qū)動LED,發(fā)現(xiàn)無法配置為數(shù)字口,不能按程序執(zhí)行。于是又測試了一下其他端口,發(fā)現(xiàn)p1.0--p1.3也存在同樣的問題,對相應的I/O配置寄存器IOCON_PIOn 進行了配置,問題依然存在,然后,… 查看全部問答∨ |
以前使用volatile時,只是為了不讓變量被優(yōu)化每次都重新取值。昨天試了下這個函數(shù),發(fā)現(xiàn)使用volatile和不使用volatile差別非常的大,如下: 使用volatile void delay(volatile u32 nCount) { for (; nCount != 0; nCount--); ...… 查看全部問答∨ |
|
MSP430常見問題55問,這絕對是430單片機入門不可缺少的一份資料,值得初學者好好學習珍藏!?。?[ 本帖最后由 鑫海寶貝 于 2011-10-12 09:35 編輯 ]… 查看全部問答∨ |
基于 PIR 的運動檢測:傳感器解決方案作者:Zack Albus (MSP430 應用 )這種解決方案幾乎無處不在,如鄰居的私人車道、超市,而在住宅和工作場所的走廊上更是應用得越來越多。相關(guān)解決方案既不十分復雜,價格也不昂貴,而其應用范圍已經(jīng)深入到我們?nèi)?...… 查看全部問答∨ |
設(shè)計資源 培訓 開發(fā)板 精華推薦
- 被動元件大者恒大,風華高科上升艱難
- 人工智能芯片的過去、現(xiàn)在和未來
- 天壤智能獲1.8億元A輪融資 讓通用人工智能成為基礎(chǔ)設(shè)施
- 紫光或?qū)⒌聡酒瑥SSiltronic AG收入囊中
- 南方電網(wǎng)首個水下機器人項目通過驗收
- 中國經(jīng)濟2019年首季調(diào)研:呈現(xiàn)三個趨勢
- 華為新成全資子公司立哈勃科技,注冊資本7億元
- 淺析自動駕駛的重要一環(huán):感知系統(tǒng)發(fā)展現(xiàn)狀與方向
- 劉永東:電動汽車充電設(shè)施技術(shù)及標準
- OmniVision推新款車用圖像傳感器 適用于監(jiān)控座艙和乘員