Flash

Flash ROM 是近些年应用最广、速度最快的只读存储器,原理是从 EEPROM 基础上改进发展来的,特点是擦除和编程速度快,因此得名为闪速(或闪烁)存储器,简称闪存。

存储区域

描述Flash的存储区域常用到扇区这些专用名词,其实是从早期的软盘、硬盘等存储器发展而来,目的是将一个存储器划分为多个区域,更方便的编程管理这些存储单元。

根据容量大小来说,它们的关系是 页(Page)扇区(Sector) < 块(Block)< 芯片(Chip)

通常的换算关系如下:

每块每扇区每页
16扇区16页256 Byte(2048 bit)

常用FLASH型号大小如下

型号W25Q80W25Q16W25Q32
163264
扇区2565121024
4096819216384
字节数1M Byte(8M bit)2M Byte(16M bit)4M Byte(32M bit)

写入和擦除

Flash 写入数据时和 EEPROM 类似,不能跨页写入,一次最多写入一页,如W25Q128的一页是 256 字节。写入数据一旦跨页,必须在写满上一页的时候,等待 Flash 将数据从缓存搬移到非易失区,重新再次往里写。写入时的最小单位:1 Byte,即一次可写入 1~256 Byte的任意长度字节。

未进行写入时,FLASH里面的数据为全1,即0xFF。写入数据时只能将1写入为0,而不能将0写入为1,只能先进行擦除再重新写入。如对于0xF0(1111 0000),只有高4位可写入,低4位不可直接写入。

Flash擦除数据时的最小单位通常为扇区,也可选择按块或全片擦除。

引脚功能

如图为常见的8pin flash芯片引脚。

  • CS:chip select片选. CS拉高时, 芯片处理省电模式, 各数据引脚(D0/D1/D2/D3)处理高阻态;CS拉低时芯片工作, 数据引脚可以传输数据。
  • DO:(在CLK下降沿)输出数据或状态. 正常情况下只有DI/DO作为IO引脚, 启用 Quad 模式需要置QE(Quad Enable)位. QE=1时, WP和HOLD分别变为IO2,IO3.
  • WP:低电平有效, 保护状态寄存器不被写入。
  • GND:接地
  • DI:(在CLK上升沿)向 Flash 输入指令, 地址 或 数据.
  • CLK:提供输入输出操作的同步时钟.
  • HOLD:当多个芯片共用 SPI 总线时非常有用. HOLD 为低电平时, DO 引脚变为高阻态, 且此时 DI/CLK 上的信号被忽略. 相当于芯片此时不工作. 假设对一个 SPI FLASH 的页写操作只进行到一半, 此时一个中断来了, 另一个更高优先级的任务要占用 SPI 总线, 此时就可以使用 HOLD 拉低来暂停 SPI FLASH 内部的工作, 等到任务切换回来再让操作继续下去.
  • VCC:通常2.7 ~ 3.6V
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇