[通用8051核FLASH系列] 【芯圣SDK-HC89F0541测评】+ W25Q16存储模块读写及应用

[复制链接]
 楼主| jinglixixi 发表于 2020-7-14 13:23 | 显示全部楼层 |阅读模式
本帖最后由 芯圣电子官方QQ 于 2023-7-24 10:01 编辑

W25Q16是一款16Mbit8MBFlash型存储器件,可用于声音、文本和数据的存储,典型的应用是用于构建中文字库。芯片支持的工作电压2.7V3.6V,正常工作时电流小于4mA
掉电时低于1uA。工作温度为-40℃到85℃。

要进行W25Q16存储模块读写功能测试需要如下器件:
1. W25Q16存储模块
2. SDK-HC89F0541开发板
3.软按键
4.串行通讯模块
1.png
1 测试的基本构成

W25Q16存储模块与开发板的连接关系:
CS -- P02
D0 -- P26
D1 -- P27
SCL -- P25

软按键与开发板的连接关系:
K1 -- P34
K2 -- P33

通讯模块与开发板的连接关系:
TXD -- P06
RXD -- P07

读取功能程序设计
主程序:
  1. void main()  
  2. {
  3.          unsigned int u=0;
  4.          P0M6 = 0xC2;
  5.          P0M7 = 0x62;
  6.          TXD_MAP = 0x06;
  7.          RXD_MAP = 0x07;
  8.          T4CON = 0x06;
  9.          TH4 = 0xFF;
  10.          TL4 = 0x98;
  11.          SCON2 = 0x02;         
  12.          SCON = 0x10;
  13.          IE |= 0x10;
  14.          P0M0 = 0xC2;
  15.          P2M5 = 0xC2;
  16.          P2M7 = 0xC2;
  17.          P2M6 = 0x69;
  18.          SS_MAP = 0x00;
  19.          MISO_MAP = 0x26;
  20.          MOSI_MAP = 0x27;
  21.          SCK_MAP = 0x25;
  22.          SPDAT = 0x00;
  23.          SPSTAT = 0x00;
  24.          SPCTL = 0xD3;
  25.          P3M4 = 0x62;
  26.          P3M3 = 0x62;
  27.          P2M4 = 0x62;
  28.          RSTDBC = 0xFF;
  29.          delay();
  30.          id_a[0] = 'K';
  31.          id_a[1] = ' ';
  32.          id_a[2] = ':';
  33.          id_a[3] = ' ';
  34.          id_a[4] = ' ';
  35.          id_a[5] = '\0';
  36.          EA = 1;
  37.          while(1)
  38.          {
  39.               if(K1==0)
  40.               {
  41.                              id_a[1] = '1';
  42.                              id_a[3] = 'R';
  43.                              id_a[4] = '+';
  44.                              UART_Send_Str(id_a);
  45.                              W25Q16_Read(u,16,guc_Readbuf_a);
  46.                              UART_Send_String(guc_Readbuf_a,16);
  47.                              u=u+16;
  48.               }
  49.              if(K2==0)
  50.              {
  51.                              id_a[1] = '2';
  52.                              id_a[3] = 'R';
  53.                              id_a[4] = '-';
  54.                              UART_Send_Str(id_a);
  55.                              W25Q16_Read(u,16,guc_Readbuf_a);
  56.                              UART_Send_String(guc_Readbuf_a,16);
  57.                              u=u-16;
  58.              }
  59.              delay();
  60. }

辅助程序
数据读取函数:
  1. void W25Q16_Read(unsigned int fui_Address,unsigned char Length,unsigned char *fucp_SaveArr)
  2. {
  3.          unsigned int i;
  4.          W25Q16_WriteEnable();
  5.          CS = 0;
  6.          SPI_WriteReadData(0x03);
  7.          SPI_WriteReadData(0x00);
  8.          SPI_WriteReadData((unsigned char)(fui_Address)/256);  
  9.          SPI_WriteReadData((unsigned char)(fui_Address)%256);
  10.          for(i=0;i<Length;i++){fucp_SaveArr[i]=SPI_WriteReadData(0xFF);}
  11.          CS = 1;
  12. }

延时函数:
  1. void delay(void)
  2. {
  3.          int i,j;
  4.          for(i=0;i<1000;i++)
  5.             for(j=0;j<1000;j++);
  6. }

测试方法:
连续按下K1键,向下连续读取多个单元的存储内容;然后连续按下K2键,向上连续读取多个存储单元的内容,以核对读取内容的一致性。
2.png
2 读取测试

结论:经实际验证,读取数据具有一致性,证明程序有效、可用。
Candic12e 发表于 2021-2-27 11:53 | 显示全部楼层
写的很好,支持一下 期待楼主继续更新作品哦
Woo0o 发表于 2021-2-27 23:03 | 显示全部楼层
W25Q16存储模块哪里搞到的?
 楼主| jinglixixi 发表于 2021-2-27 23:43 | 显示全部楼层
Woo0o 发表于 2021-2-27 23:03
W25Q16存储模块哪里搞到的?

这里买的 https://item.taobao.com/item.htm?spm=a1z09.2.0.0.aebe2e8dmIBQ7d&id=574176992887&_u=r2mfdt0t73f6
lidi911 发表于 2021-3-3 21:11 来自手机 | 显示全部楼层
谢谢楼主分享
 楼主| jinglixixi 发表于 2021-3-3 21:15 | 显示全部楼层
名字是啥样 发表于 2021-3-4 16:48 | 显示全部楼层
楼主的按键是在哪里购买的?
51xlf 发表于 2021-3-4 22:12 | 显示全部楼层
写的非常不错的。   
i1mcu 发表于 2021-3-4 22:13 | 显示全部楼层
单片机内部没有eeprom吗  
pmp 发表于 2021-3-4 22:14 | 显示全部楼层
差一个oled显示了。  
mmbs 发表于 2021-3-4 22:15 | 显示全部楼层
扩展存储可以吗  
1988020566 发表于 2021-3-4 22:15 | 显示全部楼层
           
1988020566 发表于 2021-3-4 22:16 | 显示全部楼层

Flash Rom存储器   
lzbf 发表于 2021-3-4 22:18 | 显示全部楼层
比较倾向于eeprom了。  
houjiakai 发表于 2021-3-4 22:19 | 显示全部楼层
支持最快多大的读取速度呢   
youtome 发表于 2021-3-4 22:20 | 显示全部楼层
代码很给力。   
cemaj 发表于 2021-3-4 22:20 | 显示全部楼层
HC89F0541开发板不错。   
jimmhu 发表于 2021-3-4 22:21 | 显示全部楼层
Flash型存储器件?  
houjiakai 发表于 2021-3-4 22:21 | 显示全部楼层
能够扩展存储空间吗   
lzbf 发表于 2021-3-4 22:21 | 显示全部楼层
W25Q16价格多少呢?   
您需要登录后才可以回帖 登录 | 注册

本版积分规则

518

主题

2934

帖子

39

粉丝
快速回复 在线客服 返回列表 返回顶部