历史上的今天
今天是:2024年11月01日(星期五)
2021年11月01日 | ATmega128 EEPROM数据存储器
2021-11-01 来源:eefocus
| EEPROM 数据存储器 | ATmega128包含4K字节的EEPROM。它是作为一个独立的数据空间而存在的,可以按字 节读写。EEPROM 的寿命至少为100,000 次(擦除)。EEPROM 的访问由地址寄存器, 数据寄存器和控制寄存器决定 具体的SPI 和JTAG 下载EEPROM 数据请分别参见P 267“ 存储器编程” 。 |
| EEPROM 读/ 写访问 | EEPROM 的访问寄存器位于I/O 空间。 EEPROM 的写访问时间由Table 2 给出。自定时功能可以让用户监测何时开始写下一字 节。如果用户要操作EEPROM,应当注意如下问题:在电源滤波时间常数比较大的电路 中,上电/ 下电时VCC 上升/ 下降速度会比较慢。此时CPU 将工作于低于晶振所要求的 电源电压。请参照 P 22 “ 防止EEPROM 数据丢失” 以防止如何在此时出现EEPROM 的 数据丢失问题。 为了防止无意识的EEPROM 写操作,需要执行一个特定的写时序。具体参看EEPROM 控制寄存器的内容。 当执行EEPROM 读操作时, CPU 会停止工作4 个周期,然后再执行后续指令;当执行 EEPROM 写操作时, CPU 会停止工作2 个周期,然后再执行后续指令。 |
| EEPROM 地址寄存器-EEARH 和EEARL |
• Bits 15..12 – Res: 保留 |
| EEPROM 数据寄存器- EEDR |
• Bits 7..0 – EEDR7.0: EEPROM 数据 |
| EEPROM 控制寄存器- EECR |
• Bits 7..4 – Res: 保留 在CPU 写Flash 存储器的时候不能对EEPROM 进行编程。在启动EEPROM 写操作之 前软件必须要检查 Flash 写操作是否已经完成。第二步仅在软件包含引导程序,允许CPU 对Flash 进行编程时才有用。如果CPU 永远都不会写Flash,则第二步可以忽略。请参 考P 255“ 支持引导装入程序 – 在写的同时可以读(RWW, Read-While-Write) 的自我编程 能力” 。 注意: 如有中断发生于步骤5 和6 之间将导致写操作失败。因为此时EEPROM 写使能操 作将超时。如果一个操作EEPROM的中断打断了另一个EEPROM操作,EEAR 或EEDR 寄存器可能被修改,引起EEPROM 操作失败。建议此时关闭全局中断标志I。 经过写访问时间之后, EEWE 硬件清零。用户可以凭此位判断写时序是否已经完成。 EEWE 置位后, CPU 要停止两个时钟周期才会运行下一条指令。 • Bit 0 – EERE: EEPROM 读使能 用户在读取EEPROM 时应该检测EEWE。如果一个写操作正在进行,就无法读取 EEPROM,也无法改变寄存器EEAR。 标定振荡器用于EEPROM 访问定时。Table 2 为CPU 访问EEPROM 的典型时间。 下面的代码分别用汇编和C 函数说明如何实现EEPROM 的写操作。在此假设中断不会在 执行这些函数的过程当中发生。例子同时还假设软件没有引导程序。若引导程序存在,则 EEPROM 写函数还需要等待正在进行的SPM 命令的结束。 汇编代码例程EEPROM_write:; 等待上一次写操作结束sbic EECR,EEWErjmp EEPROM_write; 设置地址寄存器 (r18:r17)out EEARH, r18out EEARL, r17; 写数据到数据寄存器(r16)out EEDR,r16; 置位EEMWEsbi EECR,EEMWE; 置位EEWE 以启动写操作sbi EECR,EEWEretC 代码例程void EEPROM_write(unsigned int uiAddress, unsigned char ucData){/* 等待上一次写操作结束 */while(EECR & (1< |
| 掉电休眠模式下EEPROM 的写 入 | 当EEPROM 执行写操作时进入掉电休眠模式, EEPROM 写操作继续,并在写访问时间 结束前完成。 但写操作结束后,振荡器继续工作,因此器件无法完全进入掉电模式。因此 建议在进入掉电模式前检验EEPROM 写操作是否完成。 |
| 防止EEPROM 数据丢失 | 由于电源电压过低,CPU 和EEPROM 有可能工作不正常,造成EEPROM 数据的毁坏( 丢失)。这种情况在使用独立的EEPROM 器件时也会遇到。 由于电压过低造成EEPROM 数据损坏有两种可能:一是电压低于EEPROM 写操作所需 要的最低电压;二是CPU 本身已经无法正常工作。 EEPROM 数据损坏的问题可以通过以下方法解决: |
上一篇:ATmega8 外部时钟
史海拾趣
|
需求:MotoQ9h手机刷Windows Mobile 6.5 操作系统(.nb0文件),通过USB把手机模拟成网卡,获得独立IP,然后通过与PC机桥接成功后,利用platform 刷机 问题: PC机是Windows XP SP3在微软的fareast域内,但同时也加入到了Test OU network PC机 ...… 查看全部问答> |
|
相信这方面的理解困惑初学者很久了吧,给点意见!还是想高清中断控制串口通讯。。。接收中断控制串口通讯比如在串口调试软件上面发送一数据,stm32接受后产生中断,进而给该软件回复显示刚所接收到的数据!!这个过程是接收中断控制串口通讯对吧。 ...… 查看全部问答> |
|
一.实验目的 学习使用串口和USB 相互通信的方法 二.实验设备 计算机(window xp 系统) LM3S9B96 实验评估板 USB A 型公口转 Mini B 型5Pin 数据线2 条(即电脑连接MP3 等设备的数据线) 5VDC 电源 三.实验原理 本例程中评估板实际是充 ...… 查看全部问答> |
|
各位大侠 有谁用过Arduino 蓝牙串口? 本人想用 STM32F4 接蓝牙串口CP2012来传送数据。 原本已经可以用USART进行传送, 请问串口程序是否需要更改? [ 本帖最后由 lis 于 2013-2-22 02:54 编辑 ]… 查看全部问答> |
|
LCD AND TOUCH BOOSTERPACK进展(近照) 谢谢坛友们的支持,大家都很关心LCD AND TOUCH BOOSTERPACK的进度。 今天是周末,赶紧拍了照片传上来,这是我焊接出来的第一个BOOSTERPACK的照片,就是在下面这个帖子中的那个: LCD AND TOUCH BOOSTERPACK成功点亮(更新)https://bbs.eeworld.c ...… 查看全部问答> |
|
三星四核Cortex A9 Exynos 4412公开资料下载(无需签署NDA) 三星四核Cortex A9 Exynos 4412公开资料下载(无需签署NDA),这是公开部分,不是完整版,下载之前请慎重,三星网站应该可以下到这个。 [ 本帖最后由 gooogleman 于 2013-10-26 23:35 编辑 ]… 查看全部问答> |








