SM39R04G1
内嵌 4KB
具有 ISP 功能的 Flash
和 256B RAM 的 8 位控制器
13.在系统编程(Internal ISP)
SM39R04G1 可通过内部硬件电路产生 flash 控制讯号.用户利用 flash 控制寄存器,flash 地址寄存器和 flash 数据寄存器在不
需要将 SM39R04G1 移出系统的情况下实现 ISP 功能. SM39R04G1 提供了可以实现 flash 编程/芯片擦除/页擦除/保护功能
的 flash 控制讯号.用户需要去设计和使用任何 SM39R04G1 可以输入数据的接口,然后利用 ISP 服务程序去实现 flash 的编
程/芯片擦除/页擦除/保护功能.
13.1. ISP 服务程序
ISP服务程序是由用户自行开发并放置于 ISP服务程序区的韧件. 用户可依需求决定 ISP 服务程序的大小. 另外用户需
将 ISP 服务程序刻录至 SM39R04G1 芯片中才可使用 ISP 功能.
由于 ISP 服务程序是由用户自行开发,它需包括 flash 数据寄存器的刻录及 SM39R04G1 芯片与上位机的通讯协议. 举
例来说, 使用者使用 SM39R04G1 芯片上之 UART 接口与上位机作数据之传送及接收,则 SM39R04G1 芯片上之 ISP
服务程序内需有波特率设定,为避免数据传输错误需有数据总合检查或同位检查或其他错误检查机制.
于正常动作模式或空闲模式可启动 ISP 服务程序,于停止模式则不行.
13.2. 锁定位(N)
锁定位 N 有两个功能:一是配置服务程序的大小,另一个则是通过 flash 擦除功能锁定 ISP 服务程序的空间.
ISP 服务程序地址位从$C00 to $FFF. 可被分为 N*256 字节(N=0-4). 当 N 为 0 时没有 ISP 功能.所有的 4K 字节 flash
都被用来做程序存储.当 N 为 1 时,ISP 服务程序占用 256 字节,剩余的 3.75K 字节 flash 可被用做程序存储.ISP 服务程
序的最大空间为 1K 字节(当 N 为 4 时). 在这样的配置下,可用的程序存储空间为 3K 字节.
在 N 定下来后,SM39R04G1 会从上往下(从最顶端到地址$FFF)保存 ISP 服务程序空间.ISP 服务程序的开始地址位于
$0C00. 请参考章节 3.1 有关 ISP 服务程序与程序内存之关系图.
锁定位 N 功能不同于 flash 保护功能,flash 擦除功能可以擦除除 ISP 服务程序空间外的所有 flash 记忆体.如 flash 没有
被保护,ISP 服务程序的内容一直可被读.如 flash 被保护,所有的 flash 程序空间包括 ISP 服务程序空间不能被读.
Table 13.1 ISP code area.
N
0
1
2
3
4
ISP service program address
No ISP service program
256 bytes ($F00h ~ $FFFh)
512 bytes ($E00h ~ $FFFh)
768 bytes ($D00h ~ $FFFh)
1.0 K bytes ($C00h ~ $FFFh)
ISP 服务程序配置于 N*256 字节 (N= 0 ~ 4)
13.3. 对 ISP 服务程序编程
在锁定位 N 被设置并 ISP 服务程序被编程后,ISP 服务程序记忆体被自动的保护(锁定).锁定位 N 有它自己的编程/擦除
时序.这不同于 flash 记忆体的编程/擦除时序.因此,被锁定的 ISP 服务程序不可被 flash 擦除功能所擦除.如客户需要擦
除锁定的 ISP 服务程序,他只可以通过烧写器实现.当 SM39R04G1 在系统时,客户不可改变 ISP 服务程序.
13.4. 启动 ISP 服务程序
要启动 ISP 服务程序就是要在 ISP 服务程序的开始地址装载程序计数(PC)并执行它.有四种实现的方法:
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M054
42
Ver.H SM39R04G1 08/2013