访问电脑版页面

导航:老古开发网手机版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
栏目: [ PIC单片机C语言编程]

相关阅读

LCD驱动HT1621的PIC单片机源代码

PIC单片机引脚中断程序的设计技巧

PIC单片机与PC机实现串行通信的设计

基于PIC单片机的数据采集系统设计

PIC单片机如何进行编程

PIC单片机低功耗电路的设计方法介绍

PIC单片机位域结构的应用解析

PIC单片机的各种清零指令解析

pic单片机编程串烧,pic单片机汇编语言讲解上篇

浅谈PIC8位单片机中的RAM和汇编程序的关系

PIC单片机实现延时x毫秒的功能设计

PIC单片机对LED数码管矩阵键盘显示的设计

PIC单片机开发的若干问题

PIC单片机AD转化器编程方法

PIC单片机对豆浆机的控制设计

基于PIC单片机直流电压表的汇编程序分享

PIC单片机控制时钟芯片DS1302汇编程序

PIC16C711 直流电压表汇编程序

PIC单片机的读写93XCXX程序

基于PICC 编译环境编写PIC单片机程序