- 壹零零单片机©版权所有 2008-2025 粤ICP备17151077号
谈谈如何使用 SN 的 8F 系列单片机 ISP 功能
当前,许多单片机都具有了 ISP(在系统编程) 和 IAP(在应用编程) 功能,以 51 单片机系列兼容型号为代表的,就有 STC 等等众多型号. 这种功能,除了方便反反复复修改程序之外,还让通用存储器例如 24C 等芯片退出了项目使用规划.-------因为芯片自己就具有更快速更大空间的用户数据的存储功能!真是省钱省力又省时哦!
SN 单片机的 8F 系列,也具有了上述功能,而且感觉使用更加方便实用!
SN 没有划分 ISP 与 IAP 之用途区别,而是统一就是 ISP 功能(它们本来就是一回事) !
而且, SN 的代码区域与用户数据存储区域没有限制专门区域,整个芯片都可以随意进行 ISP 操作!-----当然,需要避免在重要区域去执行这种操作.
例如以 8F27E65 为例)
0000H~0007FH 区域包括复位向量和中断向量,这里关系到基本的程序操作;flash ROM 的最后128 字1780H~17FFH 包括系统保留ROM 区域,强烈建议不要在这两页执行ISP Flash ROM 擦除操作。
SN 单片机的 ISP 功能的实质就是可以在芯片上修改运行程序和用户设置或个别重要修改的数据.它包括擦除--编程(写入)两大步骤.
擦除: 规定每次擦除必须是按照 256 字节(一页) 进行,单片机的整个 Flash ROM 空间必须是每 256 字节一个可擦除空间. 不能任意字节地址开始.也不能<256字节进行擦除.------ 这一点,又比 STC51 单片机的一次必须擦除 512 字节要轻快一些.但是不利于大空间的擦除.
擦除一页的时间大约为 25mS 左右.
编程(写入):规定每次最多可以写入 1~64 字节,就是把 RAM 的数据移动到 Flash ROM 区域去! 从仅仅需要存储少量数据来说,也是很方便的. 每写入一个字节,仅仅耗时 14uS .这可比 24C 之类快多了!
写入之前,如果被写入区域不是空白的,则必须先经过擦除!
如何读取已经写入的数据?
SN 没有专门给出如何读取已经写入的数据的说明或方法,(也许受先入为主的 STC51 影响了!) 有擦除,有写入,怎么读取呢 ? ------ 人家的 STC 可是有专门的读取操作方法啊!
经过思考,干脆上机测试,恍然大悟! 不就是常规访问 flash ROM 空间吗? 仅仅需要记得写入地址就行了! ----------- 否则,就是不记得东西放到哪去了!
这里,专门说一下读取方法:
1. 利用查表方法:
记得数据放置的地址,就把它们看作是一个表格好了! 一次可以查出 2 个字节来,速度飞快, 比 STC51 的还要方便快捷!
例如:--------假设数据放在 地址 1680H 开始的 flash ROM 区域.
;读取 ROM 数据:利用查表方法来读取,可以成功读取
B0MOV Y,#16H ;地址高字节
B0MOV Z,#80H ;地址低字节
CLR TEMP
MOV A,TEMP
@@:
MOVC ;一次查表读取2个字节,低字节在 A, 高字节在 R
;Z+2 继续返回读取-----记得遇上 Z 进位时 Y 要+1
JMP @B
.................................................
2.利用索引指针读取 flash ROM 空间的方法,例如:
ISP_ROM_READ_ROM_SUB:
B0MOV Y,#0X16; 地址的高字节
B0MOV Z,#0X80 ;地址的低字节
MOV A,@YZ
MOV DATAS,A
.................
可以看出,这种方法与普通程序运行使用的 RAM 或 ROM 访问是一样的,故此,就明白 SN 为什么无需专门设置一套:读取"操作, 真可谓是更上一层楼!
当我们规"划一个单片机项目时,选择芯片是很重要的,随着 8F 系列单片机的批量供货后,就要考虑一下,一只 OTP+24C 与 一只 8F2XE 的成本,参数,应用等等区别了!
关于 SN8F 系列单片机的 ISP 的擦除与编程(写入)的原理与方法,请查阅对应芯片的数据手册,这里就不"抄来抄去"了!
仅供参考!