一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
楼主: fat
收起左侧

[其他综合] 请对ICD2有经验的兄弟来指点下

  [复制链接]
 楼主| 发表于 2010-3-15 11:08 | 显示全部楼层
问一下 fat
您现在使用的,是“什么串口”?
无锡风 发表于 2010-3-15 11:00 https://www.yleee.com.cn/images/common/back.gif


是主板上的“标准”串口
发表于 2010-3-15 11:10 | 显示全部楼层
是主板上的“标准”串口
fat 发表于 2010-3-15 11:08 https://www.yleee.com.cn/images/common/back.gif



    那基本可以排除是串口的问题了,如果电路无问题,那就换一下固件或MPLAB试试吧.
 楼主| 发表于 2010-3-15 11:27 | 显示全部楼层
我的意思是1脚根本就没接板上给目标芯片的VPP,而是由串口4脚控制的并钳位在5.1V.翻了一下你给的那 ...
cosine 发表于 2010-3-15 10:02 https://www.yleee.com.cn/images/common/back.gif


我的理解是这样:IAP方式,也是需要在MCU满足“进入编程状态”的条件下进行的。厂家之所以设置Vpp,并不是因为器件在物理上需要这么高的电压才能完成烧写(现在3V下编程的flash器件也很多),而是为了明确区分MCU的“编程状态”和“正常运行状态”而设,目的是为了防止由于用户的不当编程或是运行时干扰导致片内的代码被MCU自己“冲掉”。因此,如果硬件上不能满足“进入编程状态”的条件(Vpp>9V或者 LVP bit=1 and PGM=1 and Vpp=Vdd),IAP也是无法进行的,此时MCU处于“运行状态”而非“编程状态”,片内的flash无法被写入内容。
 楼主| 发表于 2010-3-15 11:35 | 显示全部楼层
打开您附在本论坛的资料包,里面的文件名证实了俺的猜想:bootlaoder16F876.hex

再看原网站的说明: Progra ...
cosine 发表于 2010-3-15 10:24 https://www.yleee.com.cn/images/common/back.gif


BL010101.hex,是一个“纯”的bootloader,而ICD661.hex,是bootloader+OS的“套装”,之所以刷这个ICD661,是因为一来我不了解ICD2的操作,第一次接触这东东,不知道后面的OS如何装进去,所以选择这个一步到位的,二来是这个ICD661在网上看到有N个人刷后反映“it work well”。
那我今天回去刷MPLAB8.46里带的BL010101.hex,但刷完后,要如何操作?后面这部分操作网上没有看到介绍。。。。。
 楼主| 发表于 2010-3-15 11:38 | 显示全部楼层
同感,所以在等fat当完小白鼠好跟着制作,哈哈.

从目前来看电路图应无问题,fat所提供的网页上那 ...
cosine 发表于 2010-3-15 10:48 https://www.yleee.com.cn/images/common/back.gif


RB3上接LED,这个更不好说明问题啊,红色LED压降1.8V,5.1-1.8=3.3V,此时RB3上加上3.3V,应该视为高电平吧
发表于 2010-3-15 11:50 | 显示全部楼层
本帖最后由 cosine 于 2010-3-15 11:53 编辑
我的理解是这样:IAP方式,也是需要在MCU满足“进入编程状态”的条件下进行的。厂家之所以设置Vpp,并不是因为器件在物理上需要这么高的电压才能完成烧写(现在3V下编程的flash器件也很多),而是为了明确区分MCU的“编程状态”和“正常运行状态”而设,目的是为了防止由于用户的不当编程或是运行时干扰导致片内的代码被MCU自己“冲掉”。因此,如果硬件上不能满足“进入编程状态”的条件(Vpp>9V或者 LVP bit=1 and PGM=1 and Vpp=Vdd),IAP也是无法进行的,此时MCU处于“运行状态”而非“编程状态”,片内的flash无法被写入内容。
fat 发表于 2010-3-15 11:27 https://www.yleee.com.cn/images/common/back.gif


我不同意你的理解。你把进入低电压ICSP编程状态与进入编程状态(包含ICSP,低电压ICSP,IAP)混淆了。我认为进入编程状态是VPP>=5V,而不是VPP>9V。当VPP>=5V时,判断PGM是否=1,如果=1则进入低电压编程状态,如果不是则进入普通编程状态,如果有bootload,就进行IAP,如果没有就进入普通编程状态,此时VPP应该大于9V,否则编程失败。

因此我认为VPP是进入编程方式的标志,而PGM=1是进入低电压ICSP的标志。因为在ICSP方式下MCU是被动的,因此必须有一个标识位来区分两种不同的编程方式以让MCU进行动作。而IAP则不同,此时MCU是主动且智能的(在bootload程序的控制下),所以只要确定MCU进入编程方式即可,也即只要有VPP就行,而PGM根本不需要,由bootload程序来控制硬件进行自编程(也即接收程序代码数据写入FLASH)。加之IAP一般都是在标准VCC下进行,更加不需要区分标准VPP还是低电压VPP,只要进入编程方式即可,然后bootload使用程序空间写指令这种编程方下式的特权指令写入程序代码(类似AVR中的SPM/LPM指令)。
发表于 2010-3-15 11:56 | 显示全部楼层
多积累一些实践经验,再进行相应的理论分析;是不是会事半功倍?
 楼主| 发表于 2010-3-15 11:57 | 显示全部楼层
也许是我理解错了,但如熊所说,在运行时不需要硬件标志(或者说限制)就可以直接修改片内程序,那么运行时很容易就把程序给冲掉了(比如受到干扰,程序跑飞或是reset后执行bootloader),在工控应用中这不是非常危险的吗?

看来还要再去查一下microchip的IAP说明文档才行。
发表于 2010-3-15 12:00 | 显示全部楼层
RB3上接LED,这个更不好说明问题啊,红色LED压降1.8V,5.1-1.8=3.3V,此时RB3上加上3.3V,应该视为高电 ...
fat 发表于 2010-3-15 11:38 https://www.yleee.com.cn/images/common/back.gif


RB3在“低电平”状态下,才能使“红色LED压降1.8V”啊!无视限流电阻通过点亮电流下的压降了罢?
如果“此时RB3上加上3.3V,应该视为高电平”——怎么样使“红色LED压降1.8V” ??

不好意思,没有对照看图.......随便瞎说的哦。
 楼主| 发表于 2010-3-15 12:03 | 显示全部楼层
目前的计划:中午不睡觉了,重刷MPLAB中的BL010101固件,看看情况如何再说。另外,除了MPLAB,有没有第三方软件支持ICD2的?我想换个软件试验下连接情况。

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-19 08:25 , Processed in 0.049348 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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