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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • conda 源_conda国内镜像源

    conda 源_conda国内镜像源查看所有环境:condainfo-e查询当前环境包列表:condalist创建虚拟环境:condacreate–nameDLpython=3.7此处遇到报错,原因是需要把三个环境变量添加完全channels:-http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/-http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/-http:/

    2022年10月1日
    4
  • 大富豪3辅助器_加油站大亨作弊

    大富豪3辅助器_加油站大亨作弊   开心001最近新增加了一个功能:超级大亨,开始那几天没有外挂能进行操作,自己也很感兴趣,就动了编写一个外挂练习的念头。网上最早的一篇讲解开心网外挂的是http://www.turbozv.com/read.php/838.htm,写得很详细。   首先要分析下超级大亨的游戏赚钱手段:   1.每4小时登录本组件1次,将获得一定的资金奖励;   2.物品的市场价格会不断浮

    2025年9月4日
    5
  • 谷歌地球手机版2021登不上服务器_谷歌地球连不上服务器是怎么回事

    谷歌地球手机版2021登不上服务器_谷歌地球连不上服务器是怎么回事1、安装运行谷歌地球专业版(GoogleEarthProv7.3)。2、安装运行国家法律允许使用的VPN软件。3、首次运行谷歌地球,需要点击“文件一登录服务器”,如果软件界面显示黑屏。4、选择“帮助一启动修复工具”。5、先关闭谷歌地球软件,保留“修复Google地球界面”不要关闭。6、选择“恢复默认设置”,窗口不要关闭。7、在次运行谷歌地球软件,点击“文件一一登录服务器”,稍等几秒钟熟悉的地球界面出来后,谷歌地球软件即可正常使用。如果谷歌地球软件无法运行,请在wi

    2022年9月19日
    4
  • whl文件下载「建议收藏」

    whl文件下载「建议收藏」到哪找.whl文件?http://www.lfd.uci.edu/~gohlke/pythonlibs/转载于:https://www.cnblogs.com/lhuser/p/8084734.html

    2022年5月7日
    95
  • 交换机LBD模块

    交换机LBD模块一 概述二 页面参数解析三 功能总结

    2025年8月29日
    2
  • psutil的Process python获取进程信息「建议收藏」

    psutil的Process python获取进程信息「建议收藏」系统进程信息psutil.Process()1.创建指定进程号的对象s=psutil.Process(1701)2.进程PID:pids.pid3.进程名称:name()s.name()4.进程当前状态:status()s.status()5.进程是否还在运行:is_running()返回此进程是否正在运行。它还检查PID是否已被另一个进程重用…

    2022年6月9日
    37

发表回复

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

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