打印
[其它应用]

SH79F328A Flash&EEPROM 应用指南

[复制链接]
761|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
szt1993|  楼主 | 2023-12-14 19:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
1. 概述
SH79F328A 是一种高速高效率 8051 可兼容单片机。在同样振荡频率下,较之传统的 8051 芯
片它有着运行更快速的优越特性。
SH79F328A 其 Flash&EEPROM 特性为:
 Flash 存储器包括 64 X 512Byte 区块,总共 32KB
 EEPROM 存储器 0~4KB 代码选项可选
 在工作电压范围内都能进行编程和擦除操作
 在线编程(ICP)操作支持写入、读取和擦除操作
 支持整体/扇区擦除和编程(SSP)
 编程/擦除次数:程序区:至少 100,00 次
类 EEPROM 区:至少 100,000 次
 数据保存年限:至少 10 年
 低功耗




SH79F328A 为存储程序代码内置 32K 可编程 Flash(Program Memory Block),可以通过在线
编程(ICP)模式和扇区自编程(SSP)模式对 Flash 存储器操作。每个扇区 512 字节。
SH79F328A 还内置最大 4096 字节的类 EEPROM 存储区用于存放用户数据,每个扇区 512 字节,
最多支持 8 个扇区。EEPROM 存储区位于 Flash 存储器,与程序存储区是共享的,举例说明:当
OP_EEPROMSIZE=0000 时,即 EEPROM 大小为 4KB,此时程序存储区的大小为 32KB-4KB=28KB;
当 OP_EEPROMSIZE=0100 时,即 EEPROM 大小为 2KB,此时程序存储区的大小为
32KB-2KB=30KB。


使用特权

评论回复
沙发
szt1993|  楼主 | 2023-12-14 19:55 | 只看该作者
2. 控制寄存器
Flash&EEPROM 模块使用的所有控制寄存器如下表所示:



使用特权

评论回复
板凳
szt1993|  楼主 | 2023-12-14 19:56 | 只看该作者
3. SSP 编程设置
3.1. Flash SSP 编程设置
若使用 SSP 功能对 Flash 进行擦除或者编写,首先需要将 FLASHCON 的 FAC 位置 0,然后设
置相应的 XPAGE,IB_OFFSET,IB_DATA(需要操作的地址和数据),再设置 IB_CON1,若 IB_CON1
为 0xE6,则相应的操作为扇区擦除,若 IB_CON1 为 0x6E,则相应的操作为存储单元编程。之后再
设置 IB_CON2 为 0x05,IB_CON3 为 0x0A,IB_CON4 为 0x06,IB_CON5 为 0x09 完成 Flash 的
整个操作。需要注意,SSP 扇区擦除操作不可选择 SSP 程序所在扇区作为操作对象。
特别地,若需要对特定扇区进行保护,防止 SSP 误操作,可在 Keil 中通过
“Options->Utilities->Settings->加密位…”路径设置 Sector 加密。其中,B0 加密对应 Flash 代码保护
模式 0;B1 加密对应 Flash 代码保护模式 1。Flash 代码保护模式详细介绍,请参照“SH79F328A
DATASHEET”。


EEPROM SSP 编程设置
若使用 SSP 功能对 EEPROM 进行擦除或者编写,首先需要将 FLASHCON 的 FAC 位置 1,然
后设置相应的 XPAGE,IB_OFFSET,IB_DATA(需要操作的地址和数据),再设置 IB_CON1,若
IB_CON1 为 0xE6,则相应的操作为扇区擦除,若 IB_CON1 为 0x6E,则相应的操作为存储单元编
程。之后再设置 IB_CON2 为 0x05,IB_CON3 为 0x0A,IB_CON4 为 0x06,IB_CON5 为 0x09 完
成 EEPROM 的整个操作。

使用特权

评论回复
地板
szt1993|  楼主 | 2023-12-14 19:58 | 只看该作者
3.2. Flash & EEPROM 控制流程图





使用特权

评论回复
5
szt1993|  楼主 | 2023-12-14 19:58 | 只看该作者
4 编程注意事项
为确保顺利完成SSP编程,用户软件必须按以下步骤设置:
(1) 用于代码/数据编程:
1. 关闭中断;
2. 根据地址设置 XPAGE,IB_OFFSET;
3. 按编程需要,设置 IB_DATA;
4. 按照顺序设置 IB_CON1 - 5;
5. 添加 4 个 NOP 指令;
6. 开始编程,CPU 将进入 IDLE 模式;烧写完成后自动退出 IDLE 模式;
7. 如需继续写入数据,跳转至第 2 步;
8. XPAGE 寄存器清 0,恢复中断设置。
(2) 用于扇区擦除:
1. 关闭中断;
2. 按相应的扇区设置 XPAGE;
3. 按照顺序设置 IB_CON1 - 5;
4. 添加 4 个 NOP 指令;5. 开始擦除,CPU 将进入 IDLE 模式;擦除完成后自动退出 IDLE 模式;6. 如需要继续擦除数据,跳转至第 2 步;7. XPAGE 寄存器清 0,恢复中断设置。(3) 读取:使用“MOVC A,@A+DPTR”或者“MOVC A,@A+PC”指令。(4) 对于类 EEPROM 区域对于类 EEPROM 的操作类似于 Flash 的操作,即类似上述(1)/(2)/(3)部分的描述。区别在于:1. 在对类 EEPROM 进行擦除、写或读之前,应首先将 FLASHCON 寄存器的最低位 FAC 位置 1。2. 类 EEPROM 的扇区大小可以通过 option 选择。注意:1. 系统时钟不得低于 200kHz 以确保 FLASH 的正常编程2. 当不需对类 EEPROM 操作时,必须将 FAC 位清 0

使用特权

评论回复
6
szt1993|  楼主 | 2023-12-14 19:59 | 只看该作者
5. FLASH/类 EEPROM 的烧写/擦除的超级抗干扰措施
1) 在程序下载时,选择代码选项中的“enable LVR function”。
2) 设置扇区时,对 XPAGE 写立即数。
3) 在调用烧写或擦除函数前,置一个标志,比如 0A5H;在烧写或擦除函数中判断此标志是否
为 0A5H,否则清零此标志,退出函数。

使用特权

评论回复
7
中国龙芯CDX| | 2023-12-28 09:22 | 只看该作者
SH79F328A 是一种高速高效率 8051 可兼容单片机

使用特权

评论回复
8
FLASH/类 EEPROM 的烧写/擦除的超级抗干扰措施这个十分重要

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

283

主题

2334

帖子

5

粉丝