导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[jinwei6092]sst89c58X iap模块



No.26639
作者:jinwei6092
邮件:
ID:5716
登陆:11次
文章数:1篇
最后登陆IP:221.236.193.202
最后登陆:2006/2/6 0:42:51
注册:2001/8/30 23:11:00
财富:15
发帖时间:2003/4/22 1:27:04
发贴者IP:218.88.186.185
标题:jinwei6092:sst89c58X iap模块
摘要:No.26639sst89c58X iap模块 ;(1) 芯片擦除000_0001b:Chip_Erase 时间: 0 - 11.7ms(Chip_Erase Time)
;查询方式命令格式如下:
Chip_Erase: 
 ORL SFCF, #01000000B  ;置IAPEN = 1,启动IAP
 MOV SFDT, #55H    ;开始
 MOV SFCM, #01H    ;写入命令字FIE = 0,FCM[6:0] = 000_0001b: Chip_Erase
 MOV A,SFST    ;查询SFST.2,等待芯片擦除结束
 JB ACC.2,$-2
 RET
;(2) 块擦除000_1101b:Block_Erase 时间: 0 - 9.4ms(Block_Erase Time)            
;查询方式命令格式如下:                                              
Block0_Erase: 
 ORL SFCF, #01000000B  ;置IAPEN = 1,启动IAP                          
 MOV SFAH, #00H    ;擦除Block0       
 MOV SFDT, #55H    ;开始                                               
 MOV SFCM, #0DH    ;写入命令字FIE = 0,FCM[6:0] = 000_1101b: Block_Erase
 MOV A,SFST    ;;查询SFST.2,等待块擦除操作完成
 JB ACC.2,$-2
 RET
Block1_Erase: 
 ORL SFCF, #01000000B  ;置IAPEN = 1,启动IAP                          
 MOV SFAH, #0F0H   ;擦除Block1      
 MOV SFDT, #55H    ;开始                                               
 MOV SFCM, #0DH    ;写入命令字FIE = 0,FCM[6:0] = 000_1101b: Block_Erase
 MOV A,SFST    ;;查询SFST.2,等待块擦除操作完成
 JB ACC.2,$-2
 RET
;(3) 扇区擦除000_1011b:Sector_Erase 时间: 1.1 - 2.3ms(Sector_Erase Time)
;                       SFAH                           SFAL
;地址:     | a15 a14 a13 a12 a11 a10 a9 a8 | a7 a6 a5 a4 a3 a2 a1 a0 |
;扇区地址: | a15 a14 a13 a12 a11 a10 a9 a8 | a7 0  0  0  0  0  0  0  |      128字节 Block0 
;扇区地址: | a15 a14 a13 a12 a11 a10 a9 a8 | a7 a6 0  0  0  0  0  0  |      64字节 Block1 
;查询方式命令格式如下:
Sector_Erase:
 ORL SFCF, #01000000B  ;置IAPEN = 1,启动IAP
 MOV SFAH, #sector_addressH
 MOV SFAL, #sector_addressL
 MOV SFCM, #0BH    ; 写入命令字FIE = 0,FCM[6:0] = 000_1011b: Sector_Erase
 MOV A,SFST    ;查询SFST.2,等待扇区擦除操作完成
 JB ACC.2,$-2
 RET
;(4) 字节编程000_1110b: Byte_Program 时间: 0-110us(Byte_Program Time)
;在block1可以对block0编程,在block0可以对block1编程。但是每block均都不能对自己进行编程
;查询方式命令格式如下:
Byte_Program:
 ORL SFCF, #01000000B  ;置IAPEN = 1,启动IAP
 MOV SFAH, #byte_addressH
 MOV SFAL, #byte_addressL
 MOV SFDT, #program_data
 MOV SFCM, #0EH    ; 写入命令字FIE = 0,FCM[6:0] = 000_1110b: Byte_Program
 MOV A,SFST    ;查询SFST.2,等待字节编程操作完成
 JB ACC.2,$-2
 RET
;(5) 字节校验000_1100b: Byte_Verify 时间:50ns(Verify Command Delay Time)
;命令格式如下:
Byte_Verify:
 ORL SFCF, #01000000B  ;置IAPEN = 1,启动IAP
 MOV SFAH, #byte_addressH
 MOV SFAL, #byte_addressL
 MOV SFCM, #0CH    ; 写入命令字FIE = 0,FCM[6:0] = 000_1100b: Byte_Verify
 CJNE A,STDT,$+6   ;SFDT A 保存规定单元地址读出的内容                                         
 SEBT C
 SJMP $+4
 CLR C
 RET 
;(6) 加密位编程000_1111b: Byte_Program 时间: 0-110us(Byte_Program Time)                                               
;Prog_SB1   操作指令必须在BLOCK0中。下一次复位后有效                                                           
;查询方式命令格式如下:                                                 
Prog_SB1:
  ORL SFCF, #01000000B  ;置IAPEN = 1,启动IAP                             
 MOV SFAH, #80H                                                        
 MOV SFDT, #55H                                                        
 MOV SFCM, #0FH    ;写入命令字FIE = 0,FCM[6:0] = 000_1111b: Prog_SB1     
 MOV A,SFST    ;查询SFST.2,等待加密位Prog_SB1编程操作完成
 JB ACC.2,$-2
 RET
;(7) 加密位编程000_0011b: Byte_Program 时间: 0-110us(Byte_Program Time)
;Prog_SB2  操作指令必须在BLOCK0中。下一次复位后有效
;查询方式命令格式如下:
Prog_SB2:
 ORL SFCF, #01000000B  ;置IAPEN = 1,启动IAP
 MOV  ......

>>返回讨论的主题


  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:32毫秒 最大:5186毫秒 查询6次