好像有几张图片被强制缩小了?看到这篇博客的人先对你们说声抱歉,我不知道怎么设置
文字就可以很长(文章宽度的全部),图片就只有文章宽度的2/3宽度
开新分页应该就是原始尺寸了,这点还是和大家说抱歉。。。
文章里面提到的页编程,就是写数据了,因为这是英文直译的结果(PageProgram)
为了测试这个外挂Flash存储器,我在淘宝买了一个小板,3元不到
其实也可以直接买芯片回来自己接,反正没几个元件
这个芯片是用SPI通讯的
我找不到没水印的图片,暂时先用W25Q128的
不过他俩板子长得一模一样,元件也一样。除了芯片型号
板子上的LED和电阻串联,上电后LED就亮,没别的意思
电容是滤波用的,它紧靠芯片的VCC引脚
另外附上两个链接,这是我之前写的博客,是关于『STM8开发环境』和『STM8 - SPI通讯』,这篇博客的测试基础,是建立在STM8上的
关于如何接线,SPI通讯这篇博客有提到,如果有需要可以观看
STM8开发环境:https://www.cnblogs.com/PureHeart/p/10824556.html
STM8 - SPI通讯:https://www.cnblogs.com/PureHeart/p/10749264.html
SPI相关知识有了,就可以开始了
开始之前,还是先介绍一下大纲
【W25Q16芯片介绍】:芯片命名规则、芯片引脚图、引脚功能介绍
【W25Q16指令】:官方定义的指令,还有时序图介绍
【W25Q16初步测试】:执行其中一个指令(读取芯片ID),看看执行的效果,以此确认步骤是否正确,如果这一步都不正确,就不用谈最主要的读和写吧?
【W25Q16状态寄存器】:寄存器的一些状态,例如芯片是不是在忙、是不是处于保护状态、保护的区域、是否可写状态。。。等等
【W25Q16读、写、擦除】:读、写、擦除相关代码
【W25Q16芯片介绍】
应该很好理解,像W25Q02系列,就是2G的Flash,下方的红字也提醒了,这是2G bit,像我们下载的电影、音乐,这些都是byte为单位的,设计的时候要考虑一下
另外这是华邦的官网,选型方面,或是datasheet,都可以在这里找到:https://www.winbond.com/hq/product/code-storage-flash-memory/serial-nor-flash/?__locale=zh
不在官网找的话,我也有上传到我的度盘:https://pan.baidu.com/s/1bHmk4o1C3I5JweayWsFGqw
提取码:iq4j
W25Q16的引脚如下
统一说明:前方有斜线的/,例如/CS,这个斜线代表低电平使能
【/CS】:片选引脚,低电平呢芯片工作,高电平芯片就罢工,当然,别想着一劳永逸这种事,直接把它接GND,我就吃到苦头了,这引脚请务必接GPIO
【DO】:数据输出
【/WP】:写保护,低电平呢只能读,高电平就随你读写
【GND】:接地
【DI】:数据输入(接收外来的指令)
【CLK】:时钟
【/HOLD】:数据暂停控制,低电平代表暂停,高电平工作,通常用于多个设备共享一个SPI,如果只有一主一从,可以把这引脚接VCC
【VCC】:2.7~3.6V
另外,这个芯片可以支持『双输出』和『四输出』,可以提升读数据的速度
具体的方法是把其他引脚的功能都改为输出(IO1、2、3、4)
就好比大家的车速都一样,道路有两条的情况下,一定比只有一条道路,处理车流量来的快
在引脚图的上方,有芯片的介绍,其中会看到104MHz、208MHz、416MHz
分别是SPI单输出、双输出和四输出
遗憾的是STM8的SPI,最快也只有10MHz左右,想要处理双输出和四输出,是不可能的
不过对于我的项目来说,这已经足够了
【W25Q16指令】