访问手机版页面
你的位置:老古开发网 > Pic单片机 > PIC单片机C语言编程 > 正文  
菜鸟关于PIC的编程手记
内容导读:

天用PIC16F77编一个控制器,发现PORTA,4在置位时,始终没有输入。经检查程序完全是对的。然后看数据手册,发现PORTA,4引脚是一个复用引脚,既是Timer0 模块的时钟输入,也是比较器的一个输出引脚RA4/T0CKI/C1OUT ,施密特触发器输入和开漏输出。 无法直接输出高电平。故在此引脚处加一20K上接,问题搞定。

领悟:在做原理图时,必须要看芯片的数据手册,特别是端口方面的。在好好的板上加一只电阻实在不好看。

在烧写程序的时候老是校验不正确,编程失败。提示:ICD0161: 校验失败 (内存类型 = Program, 地址 = 0x0, 期望值 = 0x18A, 读取值 = 0)ICD0275: 编程失败

把所有的硬件全部检查了一便没发现问题,后来发现是我的MCD2出问题了。

但这个问题也学到了一些经验:
ICD0161: 校验失败的原因有:
u 芯片连接正确(烧写前没有20警告);

u 目标芯片的MCLR/VPP脚上没有除ICD2接口外的其他电路;常见复位电路请采用跳线进行隔离。

u ICD2与芯片的接口线路没有与电感或电容特性的电路连接;

u 整个系统可以提供足够的烧写电流

u CFG中可同时设置内部振荡喝内部复位的芯片,在烧写成功后提示CONFIG区校验失败是正常现象

解析:要成功烧写芯片前提是烧写电压要正确的加到芯片相应引脚上,并且数据无误。如果MCLR/VPP引脚上有电路,可能会导致芯片无法复位(访问不了CONFIG区,导致CONFIG烧写失败)或者烧写电压波形延时(程序区前面几个字节烧写失败);如果ICD2与芯片的接口线路上有电感或电容特性的电路连接,则有可能导致烧写的时钟或数据发生变形,导致整个区域烧写失败。

如果选择由ICD2向目标板供电,则有可能由于ICD2不能向目标板提供足够可靠稳定的工作电流,导致烧写不稳定出现烧写失败。此时应该采取目标板独立供电,并在软件上不要选择从ICD2向目标板供电。此现象多见于采用串口连接,且目标板未独立供电。

注意:某些特殊的芯片(例如PIC16F627A),在同时使用了内部振荡和内部复位的情况下,烧写成功后也将会提示CONFIG区校验失败的信息。这是正常的表现:由于同时使用了内部振荡和内部复位,一旦烧写成功,芯片将直接运行用户程序,此时由于无法进入烧写模式,校验必然是不正确的。

MCD2是好了,还是出现了这样的问题。同一片芯片当写入两次不同的程序时就会出现校验错误。真是失败。最后请教高人得到这样一个回复:

有某批号台湾封装的16F7X系列芯片用MPLAB IDE平台的开发平台的工具无法擦除如用:ICD2/MCD2/PRO-ICD2/PSTAR-PLUS/..

解决办法:用其它第三方开发工具可正常擦除如:QL-2006/QL-PIC280,其它如西尔特/威龙。。通用编程器。

看来只有去买一个编程器了。

标签:
来源:电子设计应用 作者:interpol 时间:2007/11/23 0:00:00
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐