搜索
bottom↓
回复: 3

马老师能介绍一下s51的isp协议吗?

[复制链接]

出0入0汤圆

发表于 2010-7-14 12:53:53 | 显示全部楼层 |阅读模式
马老师能介绍一下s51的isp协议吗,最今在研究用isp方式烧写s51,已能够删除flash,但在写入时遇到困难,我的思路是按照协议来的:1.写入0x40   2.写入16位地址  3.写入数据       暂时没校验,但写进去后单片机没反应。请马老师指导一下。

出0入0汤圆

发表于 2010-7-17 12:31:33 | 显示全部楼层
我没有具体做过s51的isp,所以先看了S51手册中有关ISP的协议介绍。下面提几个注意点请参考。

1。你已经能够删除FLASH,说明基本的ISP命令格式下发已经正确了。
2。你写入一个字节的数据后,“单片机没反应”是什么概念?是否指按字节的方式把整个一段程序写到FLASH中,但单片机没有执行?

我建议你设计ISP编程器的话,需要一个现成的并口或ISP编程器帮助。
先仅写入一个字节到FLASH的固定地址上,然后用现成的工具读出该地址的数据,看是否这一个字节是否写入成功。只有在证明一个字节写入成功的基础上,才能进行批量的写入测试。

批量写入过程中需要非常注意的是ISP的时钟宽度以及每个ISP下发命令之间的间隔。在手册中对于ISP有文字说明和Serial Programming Timing、Table 10. Serial Programming Characteristics。其中重要的有:

1。SCK should be no faster than 1/16 of the system clock at XTAL1.
   也就是ISP的时钟不能高于芯片时钟的1/16。如果芯片为33M,ISP的时钟最高为2M。

2。注意Chip Erase Instruction Cycle Time(500ms)和Serial Byte Write Cycle Time(64 tCLCL + 400us)两个参数.
    芯片收到ISP命令后,内部真正实施对FLASH的删除和写操作都需要时间的,你的编程协议中必须留出足够的等待时间,才能进行下发下个操作命令。
    比如,下发了删除命令后,必须等待500MS后,才能下发下一个读或写的命令。而下发字节写命令后,也必须等待64 tCLCL + 400us(tCLCL是SCK的1/4宽度),才能发下一个写命令。

     我估计你的问题可能在第2点的等待时间没有考虑过。

     以上供参考。

出0入0汤圆

 楼主| 发表于 2010-7-18 08:04:02 | 显示全部楼层
太精辟了,写flash成功,就是第2点有问题,感谢machao

出0入0汤圆

发表于 2010-7-18 14:48:08 | 显示全部楼层
不客气,我就只花了5分钟,看了一下器件手册中关于ISP部分的内容说明。
   
    其实对于任何的器件的FLASH以及EEPROM的写和擦除操作,都需要一定时间的等待,这是基础的概念。如果你有这个概念,就会非常注意时序了。

    此外,串行接口的操作,比如读写SD卡等,都涉及这个问题。许多系统不稳定也是这个问题没有考虑到。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 15:48

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表