基於SST25VF020的資料儲存系統設計

2021-06-03 18:32:58 字數 2276 閱讀 4065

前言

晶元介紹

晶元引腳介紹

sst25vf020是sst25vf系列產品中的一員,其晶元具有以下特點:總容量為2m;單電源讀和寫操作,工作電壓為2.7-3.3v;低功耗,工作電流為7ma,等待電流為3μa;時鐘頻率高達33mhz,快速程式設計、快速擦除、快速讀取;小型一致閃區尺寸4kb;資料儲存100年;cmos i/o相容等。

狀態暫存器

狀態暫存器用來對晶元的工作模式進行設定,在工作過程中,可以提供晶元的工作狀態,比如讀、寫、寫保護等。

工作過程

首先設定狀態暫存器,對flash的工作模式、寫使能以及寫保護區域進行設定。在讀寫的過程中,還可以通過讀暫存器內容來判斷flash當前的工作狀態。設定結束後,可以開始讀寫操作。

寫操作選用自動位址增值寫入(aai)模式,這種模式在寫入大量資料時可以縮短程式執行時間。在寫操作中,首先寫入寫使能命令字(0x06),aai模式以af為寫命令,順序寫入儲存起始位址和儲存資料,每傳送完一位元組的資料時,時鐘位置高,為寫下一位元組資料做準備。當資料全部寫入時,寫終止寫使能命令字(0x04),寫操作結束。在整個寫過程中,狀態暫存器中的busy位始終為1,寫操作結束後,busy自動復位。

讀操作

在讀操作中,首先寫入讀命令字(0x03),然後寫入讀取資料的起始位址,資料會順序讀出,直至讀完。如果位址累加至7ffff,下次資料讀取會從00000位址開始。在整個讀過程中,狀態暫存器中的busy位始終為1,寫操作結束後,busy自動復位。

擦除操作

sst25vf020提供3種晶元擦除方式:扇區擦除、塊擦除和全擦除。命令字分別為0x20、0x52、0x60,可分別實現不同範圍的擦除。在整個擦除過程中,狀態暫存器中的busy位始終為1,擦除操作結束後,busy自動復位。

硬體電路

系統控制器選用msp430f149微控制器,對溫度感測器訊號進行模數轉換後取樣,將採集到的資料通過spi序列通訊儲存到flash中。當系統通過非同步串列埠和pc機相連時,通過spi序列通訊將儲存到flash中的資料讀到pc機中,從而對採集的資料進行分析、處理。將採集到的資料儲存後,即可擦除flash,為下一次採集做準備。儲存電路連線如圖4所示。通過上拉電阻將ce#、so端的初始狀態置為高電平,寫保護端始終為高電平。相應的輸入輸出端、時鐘訊號端和使能端分別和微控制器介面相連。

關鍵源程式

case 0x03: /* 讀資料 */

txbuf1 =0x03; // 發讀命令字

while (ifg2&0x20==0x00); // 傳送完否?

for(i=0;i<=2;i++) /* 傳送位址 */

//傳送完否?

for(i=0;i<=19;i++) /* 讀取資料 */

//存放讀取的資料

delay(2) ;

p5out |=0x01 ; // 拉高 ste1

delay(200) ;

break;

case 0xaf: /* aai 模式 寫資料 */

p5out &=~0x01 ; // 拉 底 ste1

delay(2) ;

txbuf1 =0x06 ; /* write enable */

while (ifg2&0x20==0x00); // 傳送完否?

delay(2) ;

p5out |=0x01 ; // 拉高 ste1

delay(12);

p5out &=~0x01 ; // 拉底 ste1

delay(2) ;

txbuf1 =0xaf; // 發寫命令字

while (ifg2&0x20==0x00); // 傳送完否?

for(i=0;i<=2;i++) /* 傳送位址 */

//傳送完否?

for(i=0;i<=19;i++)

// 傳送完否?

delay(2) ;

p5out |=0x01 ; // 拉高 ste1

delay(12);

p5out &=~0x01 ; // 拉底 ste1

delay(2) ;

txbuf1 =0x04 ; // /* 結束aai模式*/

while (ifg2&0x20==0x00); // 傳送完否?

delay(2) ;

p5out |=0x01 ; // 拉高 ste1

break;

總結

GOOGLE搜尋從入門到精通v2 5 轉)

google搜尋從入門到精通v2.5 轉 尋找網頁包含有 www.sina.com.cn 六,其他重要功能 目錄服務 如果不想搜尋網頁,而是想尋找某些專題 可以訪問google的分類目錄 http directory.google.com 中文目錄是 http directory.google.co...

基於matlab的音訊波形實時採集顯示 v0 1

robj audiorecorder 44100,16,1 設定取樣頻率 取樣位數 通道數 recordblocking robj,1 採集初步資料 1s長度 rdata getaudiodata robj 獲取音訊資料 plot rdata 繪製波形 axis 1,44100,0.1,0.1 設定...

基於Streaming I O的V4L2裝置使用

基於v4l2的應用,通常面臨著大塊資料的讀取與拷貝等問題。尤其在嵌入式系統中,對於實時效能要求較高的應用,拷貝會花上幾十個ms的時間,這通常輕則造成使用者體驗差,重則導致產品質量不達標。v4l2 framework定義了幾種不同的方式,用於從裝置中讀取資料,這篇文章簡要介紹下在streaming i...