开发板中带有一颗M25PE80的芯片,M25PE80是一款NorFlash,容量是8MBit也就是1MByte = 1024KB,这是个什么概念呢,CC2530F256的内部Flash容量是256KB,也就是说M25PE80的存储容量是CC2530F256容量的4倍。

zigbee基础篇 —— NorFLash(M25PExx)

flash按照内部存储结构不同,分为两种:nor flash和nand flash。

        NorFLASH使用方便,易于连接,可以在芯片上直接运行代码,稳定性出色,传输速率高,在小容量时有很高的性价比,这使其很适合应于嵌入式系统中作为 FLASH ROM;相对于NorFLASH,NandFLASH强调更高的性能,更低的成本,更小的体积,更长的使用寿命。这使NandFLASH很擅于存储纯资料或数据等,在嵌入式系统中用来支持文件系统。Nand Flash操作是以“块”为基本单位.NAND闪存的块比较小,一般是8KB,然后每块又分成页,页大小一般是512字节.要修改NandFlash芯片中一个字节,必须重写整个数据块,读和写都是按照扇区进行的。

        在通信方式上Nor Flash 分为两种类型:CFI Flash和 SPI Flash。我们使用的M25PE80属于SPI NorFlash的一种,支持任意地址的数据读取以及写入。

        M25PE80的通信协议是SPI,前面我们学习显示器的实验时,就使用了通用的SPI驱动进行适配;同样的道理M25PE80驱动也只需要使用通用SPI驱动程序适配出符合的程序即可:

zigbee基础篇 —— NorFLash(M25PExx)

SPI通用驱动我们这里就不做介绍了,适配SPI程序和屏幕的适配方式是一样的,我们可以配置相应的引脚:

zigbee基础篇 —— NorFLash(M25PExx)

最终适配出的接口有如下几个:

片选
zigbee基础篇 —— NorFLash(M25PExx)

初始化

zigbee基础篇 —— NorFLash(M25PExx)

发送一个字节

zigbee基础篇 —— NorFLash(M25PExx)

接收一个字节

zigbee基础篇 —— NorFLash(M25PExx)

        比较重要的API是M25PE80的驱动程序:文件hal_m25pexx.h/c,我们提供了3个接口给大家使用,这几个接口除了学习用之外,都是可以直接应用到商业化产品的开发中的,所以如果您正在开发产品,可以免去很多开发的时间。

初始化

zigbee基础篇 —— NorFLash(M25PExx)

读取Flash数据

zigbee基础篇 —— NorFLash(M25PExx)

写数据到Flash中

zigbee基础篇 —— NorFLash(M25PExx)

接口实现原理可以参考M25PE80的数据手册,目录在: ...\附加资料\资料\M25PE80数据手册

** 程序分析

主函数首先初始化系统时钟为32MHZ,然后初始化串口0和M25PE80

zigbee基础篇 —— NorFLash(M25PExx)

        主函数进入到While(1)的循环中, 将writeVal写入FLASH中,然后重新读取到readVal,通过串口输出,如果writeVal和readVal相等表示写入成功:
zigbee基础篇 —— NorFLash(M25PExx)

** 调试仿真

将程序烧录到开发板中,断开仿真器连接,用串口线连接开发板到电脑,打开串口助手,可以看到写入和读取的过程:

zigbee基础篇 —— NorFLash(M25PExx)

了解硬件和更多资料可点击:点击了解

新建一个物联网行业交流学习QQ群,感兴趣可加:928840648

相关文章:

  • 2022-01-05
  • 2021-08-28
  • 2021-09-26
  • 2021-12-14
  • 2021-05-24
  • 2021-09-30
  • 2021-06-21
猜你喜欢
  • 2021-12-15
  • 2021-11-22
  • 2021-12-27
  • 2021-12-28
  • 2021-04-15
  • 2022-02-12
相关资源
相似解决方案