求解:向Flash芯片中写入数据是怎样一个过程?Programm 和Re-Programm具体是怎样实现的?

求解:向Flash芯片中写入数据是怎样一个过程?Programm 和Re-Programm具体是怎样实现的?,第1张

是这样的,

首先Flash芯片要求在修改一个Cell中的位的时候,在修改之前,必须先Erase即擦除掉这个Cell。Erase完成之后,Cell中全为1,然后再写入数据

写入时,当某个Cell的数据位恰好为1,这个Cell的电路就不做任何动作;如果遇到待写入某个Cell的数据位为0,电路将对应Cell的字线电压提高到足以让电子穿过绝缘体的高度,这个电压被加到Control Gate上,从而对Cell中的FG进行充电,Cell的状态从1变为0,完成了写入,这个写0的动作又叫做“Programm”。由于Flash的最常见表现形式——EPRROM一般是只读的,但是一旦要将其中的程序更改,则需要重新写入新程序,即Re-Programm,所以就顺便将写入Flash的过程叫做Programm了。一块崭新的SSD上所有Cell都是已经被Erase好的,也可以使用特殊的程序对整个SSD重新整盘Erase。

首先你先要折算一下两边的速率串口的实际速率(有效数据,也就是你所需要的数据)例如波特率9600,一位起始位,一位停止位,8位数据,无校验的情况下,那么你的传输速率是960B/s(注意:字节不是位了)

那么你要知道FLASH中的传输的速率是多少。去掉指令。实际有效传输速率是多少。datasheet里面肯定有。

如果说串口数据有效速率>flash的读写有效速率。那么这个设计本身就是错误的。(哈哈。基本不可能啦。而且串口速率可设。)

串口数据有效速率<flash的有效速率。那么可以用一个FIFO缓存一下。发完指令以后读取数据。不过这个是要注意格式的。

其中牵扯到的时序概念这里就不详述了。

简单流程,串口输入数据,串并转换后控制FIFO的写部分。利用FIFO的空信号指示FLASH读写模块的工作。然后么当发完指令以后FLASH从FIFO里面读取数据。这样就搞定了~


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9983322.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存