stm32驱动w25q程序(m127m128驱动不支持xp)

1、W25Q128是华邦公司推出的一款SPI接口的NORFlash芯片,其存储空间为128Mbit,相当于16M字节。W25Q128可以支持SPI的模式0和模式3,也就是CPOL=0/CPHA=0和CPOL=1/CPHA=1这两种模式。2、写入数据时,需要注意以下两个重要问题:①、Flash写入数据时和EEPROM类似,不能跨页写入,一次最多写入一页,W25Q128的一页是256字节。写入数据一旦跨页,必须在…

大家好,又见面了,我是你们的朋友全栈君。

1、W25Q128 是华邦公司推出的一款 SPI 接口的 NOR Flash 芯片,其存储空间为 128Mbit,相当于 16M 字节。
W25Q128 可以支持 SPI 的模式 0 和模式 3,也就是 CPOL=0/CPHA=0 和CPOL=1/CPHA=1 这两种模式。

2、写入数据时,需要注意以下两个重要问题:

①、Flash 写入数据时和 EEPROM 类似,不能跨页写入,一次最多写入一页,W25Q128的一页是 256 字节。
写入数据一旦跨页,必须在写满上一页的时候,等待 Flash 将数据从缓存搬移到非易失区,重新再次往里写。

②、Flash 有一个特点,就是可以将 1 写成 0,但是不能将 0 写成 1,要想将 0 写成 1,必
须进行擦除操作。因此通常要改写某部分空间的数据,必须首先进行一定物理存储空间擦除,
最小的擦除空间,通常称之为扇区,扇区擦除就是将这整个扇区每个字节全部变成 0xFF。

每款 Flash 的扇区大小不一定相同,W25Q128 的一个扇区是 4096 字节。为了提高擦除效率,
使用不同的擦除指令还可以一次性进行 32K(8 个扇区)、64K(16 个扇区)以及整片擦除。

3、W25Q128 内部有一个“SPI Command & Control Logic”,可以通过 SPI 接口向其发送指
令,从而执行相应操作。

指令的长度是不定的,有单字节的,也有多字节的,W25Qxx 一共
具有 34 个操作指令,在此只列举常用的 12 个。

这里写图片描述
————————————————
版权声明:本文为CSDN博主「ReCclay」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ReCclay/article/details/81272268


Read Manufacturer / Device ID(90h) 

stm32驱动w25q程序(m127m128驱动不支持xp)

 

Sector Erase (20h)

stm32驱动w25q程序(m127m128驱动不支持xp)stm32驱动w25q程序(m127m128驱动不支持xp)

Read Data (03h)

stm32驱动w25q程序(m127m128驱动不支持xp)

 


1、硬件连接
W25Q128 将 16M 的容量分为 256 个块(Block),每个块大小为 64K 字节,每个块又分为 16个扇区(Sector),每个扇区 4K 个字节。 W25Q128 的最少擦除单位为一个扇区,也就是每次必须擦除 4K 个字节。操作需要给 W25Q128 开辟一个至少 4K 的缓存区,对 SRAM 要求比较高,要求芯片必须有 4K 以上 SRAM 才能很好的操作。

这里写图片描述

W25Q128 的擦写周期多达 10W 次,具有 20 年的数据保存期限,支持电压为 2.7~3.6V,W25Q128 支持标准的 SPI,还支持双输出/四输出的 SPI,最大 SPI 时钟可以到 80Mhz(双输出时相当于 160Mhz,四输出时相当于 320M)。
1.1 硬件连接

与 STM32 的引脚连接如下:这里是使用SPI1配置。

这里写图片描述

STM32引脚    对应SPI功能
  PB14             片选CS
  PB3               时钟SCK
  PB4               MISO
  PB5               MOSI
STM32 的 SPI 功能很强大, SPI 时钟最多可以到 18Mhz,支持 DMA,可以配置为 SPI 协议或者 I2S 协议(仅大容量型号支持)。

1.2 SPI通讯的通讯时序

SPI协议定义了通讯的起始和停止信号、数据有效性、时钟同步等环节。

这里写图片描述
这是一个主机的通讯时序。NSS、SCK、MOSI 信号都由主机控制产生,而 MISO 的信号由从机产生,主机通过该信号线读取从机的数据。MOSI 与 MISO 的信号只在 NSS 为低电平的时候才有效,在 SCK的每个时钟周期 MOSI和 MISO传输一位数据。

1.通讯的起始和停止信号

在图中的标号1处,NSS 信号线由高变低,是 SPI 通讯的起始信号。NSS 是每个从机各自独占的信号线,当从机在自己的 NSS 线检测到起始信号后,就知道自己被主机选中了,开始准备与主机通讯。在图中的标号6处,NSS 信号由低变高,是 SPI 通讯的停止信号,表示本次通讯结束,从机的选中状态被取消。

2.数据有效性

SPI使用 MOSI及 MISO信号线来传输数据,使用 SCK信号线进行数据同步。MOSI及MISO 数据线在 SCK 的每个时钟周期传输一位数据,且数据输入输出是同时进行的。数据传输时,MSB 先行或 LSB 先行并没有作硬性规定,但要保证两个 SPI通讯设备之间使用同样的协定,一般都会采用图中的 MSB先行模式。

观察图中的2345标号处,MOSI及 MISO的数据在 SCK的上升沿期间变化输出,在SCK 的下降沿时被采样。即在 SCK 的下降沿时刻,MOSI 及 MISO 的数据有效,高电平时表示数据“1”,为低电平时表示数据“0”。在其它时刻,数据无效,MOSI及MISO为下一次表示数据做准备。SPI每次数据传输可以 8 位或 16 位为单位,每次传输的单位数不受限制。

1.3 STM32 SPI外设

STM32 的 SPI 外设可用作通讯的主机及从机,支持最高的 SCK 时钟频率为 f pclk /2(STM32F103型号的芯片默认 f pclk1 为 72MHz,f pclk2 为 36MHz),完全支持 SPI协议的 4种模式,数据帧长度可设置为 8 位或 16 位,可设置数据 MSB 先行或 LSB 先行。它还支持双线全双工(前面小节说明的都是这种模式)、双线单向以及单线模式。

SPI架构:

这里写图片描述
通讯引脚 :

SPI的所有硬件架构都从图中左侧 MOSI、MISO、SCK及 NSS线展开的。STM32芯片有多个SPI外设,它们的SPI通讯信号引出到不同的GPIO引脚上,使用时必须配置到这些指定的引脚。

2.软件配置

这里使用 STM32 的 SPI1 的主模式,SPI 相关的库函数和定义分布在文件 stm32f10x_spi.c 以及头文件 stm32f10x_spi.h 中。

2.1配置相关引脚的复用功能,使能 SPI1 时钟

第一步就要使能 SPI1 的时钟, SPI1 的时钟通过 APB2ENR 的第 12 位来设置。其次要设置 SPI1 的相关引脚为复用输出,这样才会连接到 SPI1 上否则这些 IO 口还是默认的状态,也就是标准输入输出口。这里我们使用的是 PB3、 4、 5 这 3 个(SCK、 MISO、 MOSI,
CS 使用软件管理方式),所以设置这三个为复用 IO。
————————————————
版权声明:本文为CSDN博主「小白来拓荒」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37141666/article/details/80738614

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128024.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 吞噬星空鸿蒙殿主,论《吞噬星空》是鸿蒙三部曲的最后一部!

    吞噬星空鸿蒙殿主,论《吞噬星空》是鸿蒙三部曲的最后一部!该楼层疑似违规已被系统折叠隐藏此楼查看此楼众所周知,番茄的鸿蒙系列小说有两部已经完本,分别是《星辰变》和《盘龙》,不知道大家发现没有,在《星辰变》和《盘龙》的结尾部分番茄已经在文中埋下伏笔,预示着《吞噬星空》就是鸿蒙三部曲的最后一部作品!《盘龙》原文:鸿蒙金榜瞬间便吸收了这一丝灵魂之力,顿时在第一行,鸿字之后,出现了一个字林。一瞬间,林雷脑海中浮现了许多讯息,也会了不少神通能力。“原来,鸿蒙掌控…

    2022年6月15日
    184
  • idea tomcat插件下载_idea导入tomcat

    idea tomcat插件下载_idea导入tomcat因为昨天已经下载了最新本部Tomcat,知识因为和老师的版本有点出入,于是我百度了方法。这里小结一下。idea下载tomcat配置tomcat图文教程有了昨天的基础之后,今天很快就下好了。我这里以WINDOWS764位;下载9.0.13本部为例。首先确保本机装好了JDK,并配置了环境变量。然后百度搜TomcaT官网,或者直接收官网网站:http://tomc…

    2022年10月17日
    4
  • 求和符号西格玛_∑求和公式计算公式

    求和符号西格玛_∑求和公式计算公式求和符号性质:a 1  1_1+a 2  2_2+a 3  3_3+……+a n  n_n可以简单的表示为:∑ n i=1 a i  ∑i=1nai\sum_{i=1}^n

    2022年10月12日
    2
  • Windows定时关机[通俗易懂]

    Windows定时关机[通俗易懂]1.首先将鼠标已到左面的左下角(开始菜单),右击后选择“计算机管理”,出现下图2.点击“任务计划程序”,然后在右边点击“创建基本任务”,随便填写个任务名称,比如定时关机,完了点击下一步3.选择“一次”,点击下一步4.设置开始时间,点击下一步5.选择“启动程序”,点击下一步6.程序或脚本那里输入“shutdown”,添加参数那里输入“/s”7.最后点击完成

    2022年5月15日
    48
  • giland激活码_通用破解码

    giland激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    47
  • redis过期策略六种(java的内存回收机制)

    Redis缓存作为提高系统性能最好的方式相信大家对其一定不陌生,各位作为秃头老码农不仅需要掌握Redis的基础用法还得了解Redis的相关原理,比如Redis过期策略和内存淘汰机制。大家都知道,Redis缓存使用的是内存资源,虽然缓存服务器会配置比较高的内存资源,但如果对于Redis中的缓存数据我们不管不顾,内存资源总有耗尽的时候,这时缓存服务器就无法再对外提供服务了。我们要用有限的服务器资源支撑…

    2022年4月17日
    59

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号