本帖最后由 jinglixixi 于 2020-7-16 00:31 編輯
W25Q16是一款16Mbit(8MB)Flash型存儲(chǔ)器件,可用于聲音、文本和數(shù)據(jù)的存儲(chǔ),典型的應(yīng)用是用于構(gòu)建中文字庫(kù)。芯片支持的工作電壓2.7V到3.6V,正常工作時(shí)電流小于4mA,掉電時(shí)低于1uA。工作溫度為-40℃到85℃。
要進(jìn)行W25Q16存儲(chǔ)模塊讀寫(xiě)功能測(cè)試需要如下器件: 1. W25Q16存儲(chǔ)模塊 2. SDK-HC89F0541開(kāi)發(fā)板 3.軟按鍵 4.串行通訊模塊
圖1 測(cè)試的基本構(gòu)成
W25Q16存儲(chǔ)模塊與開(kāi)發(fā)板的連接關(guān)系: CS -- P02 D0 -- P26 D1 -- P27 SCL -- P25
軟按鍵與開(kāi)發(fā)板的連接關(guān)系: K1 -- P34 K2 -- P33
通訊模塊與開(kāi)發(fā)板的連接關(guān)系: TXD -- P06 RXD -- P07
讀取功能程序設(shè)計(jì) 主程序: - void main()
- {
- unsigned int u=0;
- P0M6 = 0xC2;
- P0M7 = 0x62;
- TXD_MAP = 0x06;
- RXD_MAP = 0x07;
- T4CON = 0x06;
- TH4 = 0xFF;
- TL4 = 0x98;
- SCON2 = 0x02;
- SCON = 0x10;
- IE |= 0x10;
- P0M0 = 0xC2;
- P2M5 = 0xC2;
- P2M7 = 0xC2;
- P2M6 = 0x69;
- SS_MAP = 0x00;
- MISO_MAP = 0x26;
- MOSI_MAP = 0x27;
- SCK_MAP = 0x25;
- SPDAT = 0x00;
- SPSTAT = 0x00;
- SPCTL = 0xD3;
- P3M4 = 0x62;
- P3M3 = 0x62;
- P2M4 = 0x62;
- RSTDBC = 0xFF;
- delay();
- id_a[0] = 'K';
- id_a[1] = ' ';
- id_a[2] = ':';
- id_a[3] = ' ';
- id_a[4] = ' ';
- id_a[5] = '\0';
- EA = 1;
- while(1)
- {
- if(K1==0)
- {
- id_a[1] = '1';
- id_a[3] = 'R';
- id_a[4] = '+';
- UART_Send_Str(id_a);
- W25Q16_Read(u,16,guc_Readbuf_a);
- UART_Send_String(guc_Readbuf_a,16);
- u=u+16;
- }
- if(K2==0)
- {
- id_a[1] = '2';
- id_a[3] = 'R';
- id_a[4] = '-';
- UART_Send_Str(id_a);
- W25Q16_Read(u,16,guc_Readbuf_a);
- UART_Send_String(guc_Readbuf_a,16);
- u=u-16;
- }
- delay();
- }
復(fù)制代碼
數(shù)據(jù)讀取函數(shù): - void W25Q16_Read(unsigned int fui_Address,unsigned char Length,unsigned char *fucp_SaveArr)
- {
- unsigned int i;
-
- W25Q16_WriteEnable();
- CS = 0;
- SPI_WriteReadData(0x03);
- SPI_WriteReadData(0x00);
- SPI_WriteReadData((unsigned char)(fui_Address)/256);
- SPI_WriteReadData((unsigned char)(fui_Address)%256);
- for(i=0;i<Length;i++){fucp_SaveArr[i]=SPI_WriteReadData(0xFF);}
- CS = 1;
- }
復(fù)制代碼
延時(shí)函數(shù):- void delay(void)
- {
- int i,j;
-
- for(i=0;i<1000;i++)
- for(j=0;j<1000;j++);
- }
復(fù)制代碼
測(cè)試方法: 連續(xù)按下K1鍵,向下連續(xù)讀取多個(gè)單元的存儲(chǔ)內(nèi)容;然后連續(xù)按下K2鍵,向上連續(xù)讀取多個(gè)存儲(chǔ)單元的內(nèi)容,以核對(duì)讀取內(nèi)容的一致性。 圖2 讀取測(cè)試
結(jié)論:經(jīng)實(shí)際驗(yàn)證,讀取數(shù)據(jù)具有一致性,證明程序有效、可用。
|