STM32——FlashRom的读写操作

目录

一、任务要求

二、flash原理

1、Flash 存储基本单元 - 浮栅晶体管(Floating - Gate Transistor)

2、写入数据原理

(1)热电子注入(Hot - Electron Injection):

(2)F - N 隧穿(Fowler - Nordheim Tunneling):

3、读取数据原理

4、擦除数据原理

三、CUBE工程配置

0、硬件及其软件工具

1、RCC配置

2、SYS配置

3、引脚gpio配置,默认即可

4、NVIC配置

5、时钟树配置

6、设置堆栈大小2k或者4k

7、code

四、keil代码配置

1、flash代码

2、main.c添加

3、调试程序

五、总结

参考


一、任务要求

1、Flash地址空间的数据读取。stm32f103c8t6只有20KB 内存(RAM)供程序代码和数组变量存放,因此,针对内部Flash的总计64KB存储空间(地址从0x08000000开始),运行一次写入8KB数据,总计复位运行代码4次,将32KB数据写入Flash。并验证写入数据的正确性和读写速率。

二、flash原理

1、Flash 存储基本单元 - 浮栅晶体管(Floating - Gate Transistor)

        Flash 存储技术主要基于浮栅晶体管。这种晶体管有一个被绝缘层包围的浮栅(Floating Gate)。在普通的晶体管中,栅极(Gate)的电压控制着源极(Source)和漏极(Drain)之间的电流通断。而在浮栅晶体管中,浮栅可以存储电荷。当向浮栅中注入电子(写入数据)时,浮栅上的电荷会改变晶体管的阈值电压。例如,在没有电荷存储时,晶体管的阈值电压较低,在施加一定电压时就可以导通,代表数据 “0”;当向浮栅注入电子后,阈值电压升高,在相同的读取电压下晶体管无法导通,代表数据 “1”。

2、写入数据原理

(1)热电子注入(Hot - Electron Injection):

        这是一种写入数据的方式。在这种方法中,通过对源极、漏极和控制栅极施加高电压,使得沟道中的电子获得足够的能量(成为热电子)。这些热电子能够穿越氧化层,进入浮栅中存储起来。例如,在传统的 NOR Flash 中,这种写入方式比较常见。以一个简单的电路为例,当要写入数据 “1” 时,通过特定的电压施加电路,使电子被注入浮栅。

(2)F - N 隧穿(Fowler - Nordheim Tunneling):

        这是另一种写入机制。当在控制栅极和源极 / 漏极之间施加一个高电场时,电子可以通过量子隧穿效应穿过绝缘层进入浮栅。这种方式在 NAND Flash 中广泛使用。比如,在一个 3D NAND Flash 芯片的写入操作中,通过精确控制电场强度和时间,实现电子的隧穿注入,从而将数据写入存储单元。

3、读取数据原理

        读取数据时,会在控制栅极施加一个适当的电压。这个电压低于写入时的电压。如果浮栅中有电荷(存储数据 “1”),晶体管的阈值电压会变高,在读取电压下不会导通,通过检测电路可以判断出存储的数据是 “1”;如果浮栅中没有电荷(存储数据 “0”),晶体管的阈值电压较低,在读取电压下会导通,检测电路会判断存储的数据是 “0”。

        以一个字节(8 位)的数据读取为例,存储芯片中的读取电路会逐一对 8 个存储单元进行上述的读取操作,将每个单元的状态(0 或 1)组合起来,就得到了存储的字节数据。

4、擦除数据原理

        擦除数据主要是将浮栅中的电荷移除。在 Flash 存储中,通常是采用 F - N 隧穿的逆过程。
对于 NAND Flash 来说,擦除操作是按块(Block)进行的。在擦除时,通过在衬底和控制栅极之间施加一个高电压,使得浮栅中的电子通过隧穿效应回到衬底,从而将整个块中的数据擦除。这就好比把一个装满东西的仓库清空,为下一次写入数据做好准备。而 NOR Flash 擦除操作相对复杂一些,通常也是通过类似的电荷释放机制,但可能在操作单元等方面有所不同。

三、CUBE工程配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值