这几天在看SPI总线,应用主要是围绕W25Q128的读写进行的。
网上关于W25Q的程序可以说非常多,大多是以STM32为主控芯片进行的。无妨。这块FLASH的寄存器是基本固定的,但是只有英文手册确实是有点头疼。。。
第一个大块是STC8的SPI功能。涉及到的寄存器有三个:
SPSTAT:状态寄存器,有中断标志位和写冲突标志位
SPCTL:控制寄存器,控制发送顺序,时钟极性,相位等等
SPDAT:数据寄存器
第二个大块是W25Q128的指令
这里主要是网上的资源
其实数据手册上写的都还算比较清楚,读写都有固定的时序。看一眼图就一目了然了。我这边因为Device ID,JEDEC ID和Unique ID的事情研究了一下。很多程序里交代的不是很清楚。

  • Device ID:W25Q在正常模式下接受ABh指令以及三个00h后,会输出Device ID,SPI模式下返回的是17h。在接收到90h以及三个00h后将输出17h,称为Device ID。代表我们使用的是W25Q128型号。

  • JEDEC ID: JEDEC是由生产厂商们制定的国际性协议,主要为内存制定。W25Q接收到9Fh指令后,先输出EFh,再输出8位存储类型ID(应该是4018h的高8位),再输出8位存储容量ID(4018h的低8位)。

  • Unique ID:这个貌似是每个芯片不一样的,没怎么用。

    虽然了解了这些对于SPI总线的了解是远远不够的,但是读写W25Q128的程序基本上能看懂了。杜洋老师讲过学习的边界,我觉得是很有意思的观点。在我现在的阶段,每一项协议都深入研究时间成本太高,也没有必要,最重要的使用。在使用的过程中发现问题,再去研究原理。这样相辅相成的推进。
    当然这次调试也出现了诸多问题,先记在这里有空填坑。
    1,很多STC例程用到了ACC累加器,查了资料之后觉得这应该是偏底层的一种写法,直接操作累加器可能指令读的更快一些?
    2,程序莫名循环,串口程序之前调过是没有问题的。今天用串口输出W25Q128的数据莫名开始停不下来,找了半天没找到问题,只得用一个空的while结束程序,有点头秃。
    3,W25Q128的内存地址,应该是0~16M,由于程序只用了10个字节,关于其地址还没有过多的使用

STC8通过SPI读写W25Q128相关推荐

  1. STM32F103标准库开发---SPI实验---读写 W25Q128 外部 Flash

    STM32F103标准库开发----目录 W25Q128读写----程序源码----点击下载 W25Qxx全系列数据手册-点击下载 一.实验前期准备 本次实验的 MCU 是 STM32F103C8T6 ...

  2. RT-thread SPI SFUD读写W25Q128

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.SFUD 是什么? 二.使用步骤 1.添加SPI2总线 2.W25Q128读写操作 前言 MCU:STM32F09 ...

  3. 华芯微特SWM260读写W25Q128

    W25Q128的读写采用的是SPI接口:本人移植的程序是在STM32上验证过的,只需要修改相应的底层函数即可: 初始化SPI接口: void MX_SPI_Flash_Init(void) {SPI_ ...

  4. SPI应用——W25Q128串行FLASH

    一.FLASH存储器介绍 FLASH存储器又称闪存,它与EEPROM都是掉电后数据不丢失的存储器,但FLASH存储器容量普遍大于EEPROM,现在基本取代了它的地位.在存储控制上,最主要的区别是FLA ...

  5. 第24章 SPI—读写串行FLASH—零死角玩转STM32-F429系列

    第24章     SPI-读写串行FLASH 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/ ...

  6. STM-32:SPI通信协议/W25Q64简介—软件SPI读写W25Q64

    目录 一.SPI简介 1.1电路模式 1.2通信原理 1.3SPI时序基本单元 1.3.1起始和终止 1.3.2交换字节 二.W25Q64 2.1W25Q64简介 2.2W25Q64硬件电路 2.3W ...

  7. SPI—读写串行FLASH(时序中的无关项)

    SPI-读写串行FLASH 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章 ...

  8. STM32之SPI和W25Q128

    目录 SPI 介绍 SPI 物理架构 SPI 工作原理 SPI 工作模式 W25Q128 介绍 W25Q128 存储架构 W25Q128 常用指令 W25Q128 状态寄存器 W25Q128 常见操作 ...

  9. 《STM32从零开始学习历程》——SPI读写FLASH

    <STM32从零开始学习历程>@EnzoReventon SPI读写FLASH 相关链接: SPI物理层及FLASH芯片介绍 SPI协议层 SPI特性及架构 参考资料: [野火EmbedF ...

最新文章

  1. linux查进程ps和top,Linux中几个进程查看命令总结 ps, top, htop, vmstat
  2. [register]-TCR(Translation Control Register)寄存器详解
  3. 论初始值的重要性-仅仅是更改初始值loss差别就非常大
  4. Collection中的基本方法
  5. Java Web Jsp
  6. 汇编语言(十)之最小偶数
  7. 在命令行上操作JAR,WAR和EAR
  8. Windows 系统中 Python下 Pygame 的安装
  9. OpenCV 4.x 中请别再用HAAR级联检测器检测人脸!有更好更准的方法
  10. 算法 c语言_C语言中10个经典的算法,学会它,利用它
  11. mysql 幻读和不可重复读_幻读和不可重复读的区别
  12. springboot2.x中的AOP机制总结(附带demo)
  13. FragmentPagerAdapter.notifyDataSetChanged()不能更新问题?
  14. 用java编写英寸到厘米的转换_java-将英寸转换为英尺和英寸
  15. Java算法每日练习
  16. NVIDIA Jetson TX2 上手指南
  17. 【华人学者风采】麦立强 武汉理工大学
  18. vue 中监听document.body.scrollTop 值总为0的解决方法
  19. 【Matlab学习手记】csv和xlsx格式互转
  20. libjpeg的安装与使用

热门文章

  1. MSYS2使用教程——win10系统64位安装msys2最新版(msys2-x86_xxxx.exe)
  2. 常用图标png、ico 图标下载,图片格式转换为ico
  3. 移动端H5页面生成图片解决方案
  4. docker gpu 创建 训练环境_通过Dockerfile创建caffe-gpu环境
  5. Word 文字处理学习笔记
  6. 如何过滤掉xml字符串中的gt,lt,quot,amp,apos
  7. npm run build报错Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of
  8. python字符串操作符-python字符串操作
  9. 任务调度 cron使用
  10. 5、SAMBA服务一:参数详解