PIC也会熔丝锁死吗?大家进来看看!
编程器:PICKIT3官方零售版(带板五百多买来的)烧写芯片型号:PIC12F675
软件: IDE V8.5
烧录正常前熔丝配置位:
//开数据保护,代码保护,关掉电复位,关外部复位,关上电复位,关看门狗,内部振荡器
__CONFIG(CPD & PROTECT & BORDIS & MCLRDIS & PWRTEN & WDTDIS & INTIO); //12F675
无法使用前更改的熔丝:
//开数据保护,代码保护,关掉电复位,关外部复位,关上电复位,关看门狗,内部振荡器加输出
__CONFIG(CPD & PROTECT & BORDIS & MCLRDIS & PWRTEN & WDTDIS & INTCLK); //12F675
更改后编译进行编程后就把芯片挂了,
第一块的现象是:
The target has invalid calibration data (3fff).
无法识别了。
修改回来再编译,把芯片也换了一个后编程正常,
更改后再编译进行芯片编程又挂了,
这回显示的是:
Programming...
The following memory regions failed to program correctly:
Program Memory
Address: 00000000 Expected Value: 00000183 Received Value: 00000000
Programming failed
使用其它的编程器也不能进行编程和擦除了!
求解。。。。。。。。
我把代码黏上来。
代码内容是用一个IO模拟串口发一个数据的实验!
串口波特率9600。
#include <pic.h>
#define uchar unsigned char
#define uintunsigned int
uchar RXD;
//开数据保护,代码保护,关掉电复位,关外部复位,关上电复位,关看门狗,内部振荡器
__CONFIG(CPD & PROTECT & BORDIS & MCLRDIS & PWRTEN & WDTDIS & INTIO); //12F675
void delay_u(uchar y) //4M时钟,5uS延时
{
while(y--);
}
void delay_S(uint tx)
{
uint ta,tb;
for(ta=tx;ta>0;ta--)
for(tb=110;tb>0;tb--);
}
void init()
{
TRISIO=0b00111101; //串口TX=GP1
CMCON = 0x07;//关闭内部比较器
INTCON = 0x00; //关闭所有中断
GPIO1 = 1; //拉高GP1/TXD
}
uchar WTXD(uchar TXD) //写串口
{
uchar TO;
TO = 8;
GPIO1 = 0;//GP1为TXD输出
delay_u(16);
NOP();
NOP();
while(TO--)
{
NOP();
GPIO1 = (bit)(TXD&0x01); //写入一位
delay_u(16);
TXD = TXD >> 1;
}
GPIO1 = 1; //TXD发送完后释放
}
void main()
{
init();
while(1)
{
WTXD(0x55);
delay_S(1000);//延时1S
}
} 片子没坏吧 ?我记得我之前用PIC时也经常出现写不进程序的情况 你用的是ICD3吧,你的芯片工作电压是不是3.3V供电? 如果是那么这种问题就很正常了。多烧入几次就能烧录进去。芯片并没有坏。 或者改为5V供电就没有这个问题了 又发现了在3.3V时写不了! 供电到5V 就不会有问题 原来如此,明白了 今天又挂了几个! 不可以双内。芯片配置字有问题。 好象使用专业编程器可以解锁。 恭喜楼主。
页:
[1]