搜索
bottom↓
回复: 74

PIC的块子又没有假货?16F676死活不工作,大家看看!

[复制链接]

出0入0汤圆

发表于 2009-4-6 11:43:32 | 显示全部楼层 |阅读模式
用自制的JDM编程器读写正常。

做的程序是使用内部4M的OSC

MCLR设置是内部连接到VDD

CONFIG     0x184

按理说只要接VDD和VSS就能工作,我只接VDD  VSS,芯片不工作。

我是不是买上假货了?

大侠看看我的配置位对吗?

我看的是中文DATASHEET,是不是datasheet有问题?

出0入0汤圆

发表于 2009-4-6 11:50:07 | 显示全部楼层
PIC有不少仿制的,目前海尔也仿了16F876,用于其洗衣机控制中。

MCLR 我一般都外部接好,内部连接没试过。

出0入0汤圆

 楼主| 发表于 2009-4-6 12:00:47 | 显示全部楼层
MCLR外接4.7K电阻到VDD,熔丝位设置启用外部MCLR,还是不行。
昨天试了一天了。

出0入0汤圆

发表于 2009-4-6 12:41:32 | 显示全部楼层
JDM编程器这家伙好吾稳定的,说不定问题出在它身上

出0入0汤圆

 楼主| 发表于 2009-4-6 14:13:25 | 显示全部楼层
OSC校准值是干什么的?
熔丝位中的带隙校准位是做什么的?

出0入90汤圆

发表于 2009-4-6 14:17:08 | 显示全部楼层
肯定是你的CONFIGURATION没有设置好!!!!所以能烧程序但是不运行!我当时搞这个花了一周才搞定!

出0入0汤圆

 楼主| 发表于 2009-4-6 16:38:33 | 显示全部楼层
就这么几位,能错吗?不会有错吧!

出0入0汤圆

发表于 2009-4-7 10:48:03 | 显示全部楼层
说明一下,程序中是否有以下行(即调用校准字节):
                CALL        3FFH
                MOVWF        OSCCAL
若有,则删除就可以正常工作了.
这是因为,在非Micorchip官方支持的编程器中,使用内部OSC及内部复位时,易发生编程器将芯片内的校准字擦除问题,
原校准字的代码格式为
                  RETLW     **h
擦除后,变成了     NOP或其它格式
造成程序混乱.

出0入0汤圆

发表于 2009-4-7 13:27:08 | 显示全部楼层
看门狗关了没?

出0入0汤圆

发表于 2009-4-7 21:10:07 | 显示全部楼层
假货不少的,还有高仿的呢

出0入0汤圆

 楼主| 发表于 2009-4-8 14:18:11 | 显示全部楼层
七楼的朋友能不能说的在清楚一点。因为第一次搞PIC,我用JDM编程器将校准位给擦了,16F676刚读的时候,FLASH最后一个字节好像有值,后面下载程序,软件老提示未发现OSC校准值,是否用0x3fff代替,我都选是。

出0入0汤圆

 楼主| 发表于 2009-4-8 14:35:34 | 显示全部楼层

(原文件名:a.gif)

出0入0汤圆

 楼主| 发表于 2009-4-8 14:36:27 | 显示全部楼层

(原文件名:3.GIF)

出0入0汤圆

 楼主| 发表于 2009-4-8 14:47:24 | 显示全部楼层

(原文件名:4.gif)

出0入0汤圆

 楼主| 发表于 2009-4-8 14:53:47 | 显示全部楼层

(原文件名:5.gif)

出0入0汤圆

 楼主| 发表于 2009-4-8 14:55:55 | 显示全部楼层

(原文件名:6.gif)

出0入0汤圆

 楼主| 发表于 2009-4-8 18:18:31 | 显示全部楼层
自制的JDM编程器:


(原文件名:IMG0417A_jpg_thumb.GIF)

出0入0汤圆

 楼主| 发表于 2009-4-8 18:20:03 | 显示全部楼层

(原文件名:IMG0418A_jpg_thumb1.GIF)

出0入0汤圆

发表于 2009-4-8 20:09:33 | 显示全部楼层
你最好再把HEX文件贴出来,大家分析一下。

出0入0汤圆

 楼主| 发表于 2009-4-8 20:38:54 | 显示全部楼层
点击此处下载 ourdev_434333.rar(文件大小:2K) (原文件名:固件.rar)

出0入0汤圆

发表于 2009-4-9 09:25:48 | 显示全部楼层

配置没问题 (原文件名:配置.jpg)


我用我的编程器读出的你的HEX与你的不一样 (原文件名:编程器读出的hex 比较.jpg)

你查查你那编程器上位机是不是有bug,我的这个烧了数千个676啦

出0入0汤圆

发表于 2009-4-9 09:28:29 | 显示全部楼层
我怀疑11楼的图不是TAX_PRESS.hex。

出0入0汤圆

 楼主| 发表于 2009-4-9 10:02:55 | 显示全部楼层
楼上的朋友给我发个测试固件我看看。做个PORTA  POTRC所有的端口LED闪烁的程序,你测试好我下载一下看看。

出0入0汤圆

 楼主| 发表于 2009-4-9 10:09:23 | 显示全部楼层
#include <pic.h>
#include "EXT_FUC.h"
__CONFIG(0x0184);//配置位的最后3位是晶振输入方式,本例RA4 RA5作为普通引脚,最后3位为100

void initadc()
{
//禁用AD转换
ADON=0;
//选择RA0为ad输入端
ANSEL=0x00;
ANS0=0;
CHS2=0;
CHS1=0;
CHS0=0;

//选择采样频率
ADCS2=1;
ADCS1=1;
ADCS0=0;
//参考电压选择
VCFG=0;
//采样结果右对齐
ADFM=1;
//使能ADC中断
ADIE=0;
//开启ADC
ADON=0;
}

void initport()
{
//不启用timer1
TMR1ON=0;
T0CS=0;

//比较器关断,这3位影响RA1  RA2  RA3是否可作为数字IO引脚
CM2=1;
CM1=1;
CM0=1;

//RA1   RA4  RA5  数字输出引脚
TRISA=0x00;
PORTA=0x00;;

//PORTC 数字输出引脚
TRISC=0x00;
PORTC=0xff;

               
}

init_device()
{
        initadc();
        initport();
}

void main()
{

         initadc();
         initport();
        while (1)
{
PORTA=~PORTA;
PORTC=~PORTC;
Delayms(80);
}
return;
}


#define uchar unsigned char
#define uint unsigned int



void Delayus(uint US)
{
    uint i;
    US=US*5/4;                           //5/4是在8MHz晶振下,通过软件仿真反复实验得到的数值
    for ( i=0;i<US;i++);
}

//精确定义毫秒
void Delayms(uint MS)
{
    uint i,j;
    for ( i=0;i<MS;i++)
        for (j=0;j<1141;j++);        //1141是在8MHz晶振下,通过软件仿真反复实验得到的数值
}

出0入0汤圆

 楼主| 发表于 2009-4-9 10:15:07 | 显示全部楼层
点击此处下载 ourdev_434440.rar(文件大小:520字节) (原文件名:test.rar)

出0入0汤圆

发表于 2009-4-9 10:38:52 | 显示全部楼层
点击此处下载 ourdev_434452.rar(文件大小:383字节) (原文件名:test676.rar)
这个我测试过了,大概一秒闪一下。

出0入0汤圆

发表于 2009-4-9 10:40:23 | 显示全部楼层
“1141是在8MHz晶振下,通过软件仿真反复实验得到的数值 ” 676是4M吧

出0入0汤圆

发表于 2009-4-9 10:45:36 | 显示全部楼层
24楼的固件能运行,25秒左右闪一次

出0入0汤圆

发表于 2009-4-9 10:52:25 | 显示全部楼层
你的因为TRISC=0b111111; PORTC没有闪

出0入0汤圆

 楼主| 发表于 2009-4-9 15:02:12 | 显示全部楼层
我改程序了,你再看看

出0入0汤圆

 楼主| 发表于 2009-4-9 15:07:12 | 显示全部楼层
8M的那个是从AVR移植过来的。

新固件

点击此处下载 ourdev_434608.rar(文件大小:510字节) (原文件名:test.rar)

除了MCLR脚不闪,其他都闪。是不是这样?

出0入0汤圆

 楼主| 发表于 2009-4-9 15:14:53 | 显示全部楼层
你是用JDM烧写的吗?

出0入0汤圆

 楼主| 发表于 2009-4-9 15:22:18 | 显示全部楼层
昨天晚上测试了时钟端口,时钟部分好像是好的。

测试用的熔丝位:
intOSC  CLKOUT 模式    接一支led串5K电阻,接到RA4(676的3脚) ,另一头分别接在VDD   VSS上,都亮。
RC       CLKOUT 模式  R=62K  C=2200NF   接一支led串5K电阻,接到RA4(676的3脚) ,另一头分别接在VDD   VSS上,都亮。
RC       CLKOUT 模式  R=62K  C=3.3UF   接一支led串5K电阻,接到RA4(676的3脚) ,另一头分别接在VDD   VSS上,大概1秒闪一次。

因为没有示波器,只有这样测试了。

我试了你给的固件,还是不行!

出0入0汤圆

发表于 2009-4-9 16:13:24 | 显示全部楼层
30楼的固件测试通过。
除了MCLR脚不闪,其他都闪。

出0入0汤圆

 楼主| 发表于 2009-4-9 16:15:19 | 显示全部楼层
我看我的这个676可能是仿冒货了

出0入0汤圆

 楼主| 发表于 2009-4-9 16:17:02 | 显示全部楼层
caochunhua 你的676是哪买的呀?

出0入0汤圆

发表于 2009-4-9 16:25:55 | 显示全部楼层
我觉得是编程器的原因。它把HEX解释错了。我的固件肯定没问题。JDM太简陋了吧,我的是RF-2148,用了3年,还行。你的JDM可以输入.bin文件的话试试这个 是30楼的固件转过来,要手工设置配置的 我测试通过 点击此处下载 ourdev_434681.rar(文件大小:374字节) (原文件名:test.rar)

出0入0汤圆

发表于 2009-4-9 16:29:36 | 显示全部楼层
我在我们这的电子市场买的,我没买到过假的,但MicroChip好象只承诺可能有千分之三的坏品。

出0入0汤圆

发表于 2009-4-9 16:32:51 | 显示全部楼层
我以前用过一款烧写器就把HEX文件解释错了。好不容易我才找到原因的。

出0入0汤圆

发表于 2009-4-9 19:39:53 | 显示全部楼层
如果11楼加载的是19楼的hex的话,就是楼主的IC-PROG1.06B有问题。我的IC-PROG1.06B打开的不一样。
0000: 281D 3FFF 3FFF 3FFF 00A0 0803 0183 00D6  .??冎
0008: 1283 130C 1683 081E 1283 00A2 01A3 081E  ??儮?
0010: 00C3 1283 00C5 01C4 0844 04A2 0845 04A3  脙拍D?
0018: 0856 0083 0EA0 0E20 0009 3021 0084 3046  V儬..!凢
0020: 2031 3000 00D5 3052 00D4 3046 0084 3054  1.誖訤凾

出0入0汤圆

 楼主| 发表于 2009-4-9 21:08:20 | 显示全部楼层
我看看与你的一不一样!

出0入0汤圆

发表于 2009-4-9 21:42:33 | 显示全部楼层
看我20楼的图,和39楼一致的。

出0入0汤圆

 楼主| 发表于 2009-4-10 16:41:53 | 显示全部楼层
今天晚上再看看!

出0入0汤圆

 楼主| 发表于 2009-4-11 00:57:55 | 显示全部楼层

(原文件名:3.gif)

出0入0汤圆

 楼主| 发表于 2009-4-11 01:08:28 | 显示全部楼层
bin固件也不行,ICPROG提示是否交换字节,是什么意思嘛?

出0入0汤圆

发表于 2009-4-11 08:23:07 | 显示全部楼层
我发现IC-PROG1.06B有这个bug,不知烧入芯片的配置到底是什么?

(原文件名:配置.jpg)

出0入0汤圆

发表于 2009-4-11 08:31:56 | 显示全部楼层
ICPROG提示是否交换字节,是什么意思嘛? 选NO

出0入0汤圆

 楼主| 发表于 2009-4-11 09:10:16 | 显示全部楼层
打开36楼TEST.bin如下:
熔丝位没能自动配置,要手工配置。

(原文件名:4.gif)

出0入0汤圆

发表于 2009-4-11 09:32:18 | 显示全部楼层
你没有36楼注意“你的JDM可以输入.bin文件的话试试这个 是30楼的固件转过来,要手工设置配置的”bin里没有配置信息呀。

出0入0汤圆

发表于 2009-4-11 09:35:40 | 显示全部楼层
你烧写完了,再读出来看看有没有问题。

出0入0汤圆

发表于 2009-4-11 09:37:41 | 显示全部楼层
要不换个芯片,或换编程器试试,建议你自制个ICD2。

出0入0汤圆

发表于 2009-4-11 10:25:50 | 显示全部楼层
按7楼的办法。或者自己在最后随便输入一个值。例如3438。

出0入0汤圆

 楼主| 发表于 2009-4-11 15:14:30 | 显示全部楼层
我买了两个芯片,都这样!

出0入0汤圆

 楼主| 发表于 2009-4-11 22:29:45 | 显示全部楼层
七楼的朋友怎么不来呀?指点一下

出0入0汤圆

 楼主| 发表于 2009-4-11 22:39:16 | 显示全部楼层
caochunhua 你给个刚买来的芯片的HEX,我刷一下看看。看看是不是最后两位的值的问题。

出0入0汤圆

发表于 2009-4-11 23:50:07 | 显示全部楼层
试试
点击此处下载 ourdev_435577.rar(文件大小:2K) (原文件名:TAX_PRESS.rar)

出0入0汤圆

发表于 2009-4-12 08:21:29 | 显示全部楼层
caochunhua 你给个刚买来的芯片的HEX,我刷一下看看。看看是不是最后两位的值的问题。
-----------------
不好意思,要到星期一。

出0入0汤圆

发表于 2009-4-12 08:31:47 | 显示全部楼层
你的hex里没有call 0x3ff

(原文件名:内部 4 MHZ 振荡器.jpg)

出0入0汤圆

 楼主| 发表于 2009-4-12 09:19:02 | 显示全部楼层
a_zhi 你给的HEX可以工作呀,谢谢大家了,果然是最后一位的问题。

出0入0汤圆

 楼主| 发表于 2009-4-12 09:24:13 | 显示全部楼层
最后一位我记得我试过一次,因为前面刷的时候没保存他,后面查了一下,自己随便填了个值,还没能启动。
34 38  变成汇编是什么语句。

出0入0汤圆

发表于 2009-4-12 10:08:19 | 显示全部楼层
我出差刚回来.呵呵!

出0入0汤圆

发表于 2009-4-12 10:14:07 | 显示全部楼层
几天了,贴子很长了.
关于楼主所说的问题,我们以前遇到过很多次;
查找到此原因是:利用仿真头进行一步一步执行,最终到CALL 3FFH时出现了问题.
读出芯片时,其数据格式变成其它样子了,而不是RETLW 0xxH格式,造成PC指针顺序执行到00位,一直不停在这段循环,当然不能执行其它程序了.看门狗打开与关闭都一样.

出0入0汤圆

发表于 2009-4-12 10:18:41 | 显示全部楼层
若在MPLAB IDE环境里使用PIC的编程或仿真器,都有校验字修正功能.

出0入0汤圆

发表于 2009-4-12 10:37:28 | 显示全部楼层

默认的设置 (原文件名:默认的设置.JPG)


更改设置后 (原文件名:更改设置后.JPG)

出0入0汤圆

 楼主| 发表于 2009-4-12 12:08:41 | 显示全部楼层
34 xx
34就是retlw指令吗?

出0入0汤圆

发表于 2009-4-12 12:14:40 | 显示全部楼层
是的.

出0入0汤圆

 楼主| 发表于 2009-4-12 12:23:37 | 显示全部楼层
发个jDM制作图

R3原版是10K,经试验,我取3.2K,才能正常编程。


(原文件名:JDM编程器.jpg)

出0入0汤圆

发表于 2009-4-12 12:31:20 | 显示全部楼层
还不如申请一个PIC16F876A或PIC16F877A制作串口的ICD2会更好一些,至少MPLAB IDE能支持.

出0入0汤圆

 楼主| 发表于 2009-4-12 12:36:33 | 显示全部楼层
由此得出结论:
用JDM烧写芯片时,应该先读被烧写芯片的最后两个字节,记录下来。
然后烧写芯片,若烧写器提示没发现OSC校准值,应手动将载入的HEX的最后两个字节修改成34 xx的值,这样烧写的程序才能正常执行。

多花了我6块钱,把一个好的片子整坏了。冲动是魔鬼呀!!!

出0入0汤圆

 楼主| 发表于 2009-4-12 12:39:14 | 显示全部楼层
上面的图看不清,再发一个:

(原文件名:可用版.gif)

出0入0汤圆

发表于 2009-4-12 13:15:35 | 显示全部楼层
多花了我6块钱,把一个好的片子整坏了。冲动是魔鬼呀!!!
----------------------------
芯片没有坏呀,如果要求内部时钟精确,自己写个程序校对一下。,

出0入0汤圆

 楼主| 发表于 2009-4-12 18:42:29 | 显示全部楼层
我买了两块,我自己弄坏了一块。

出0入0汤圆

发表于 2009-4-14 09:29:09 | 显示全部楼层
有时候就是怪问题不断,我在用16F630时,不用外部晶振时就是不正常工作,有时拔下芯片带电安上能工作,外接晶振后就能正常工作了.呵呵.当然也有可能是使用万能板的缘故

出0入0汤圆

发表于 2009-4-15 03:23:43 | 显示全部楼层
用 JMD 建议用winpic800 在 XP下比 IC-PROG 快
用IC-PROG 和 WinPic800 写片子不用先擦除,可以直接编程,这样如果片子不是空的,程序会自动清除并自动保存OSC修正值.

出0入0汤圆

 楼主| 发表于 2009-4-18 11:32:13 | 显示全部楼层
winpic800用了,不会设置呀,可以读出来,写的时候有问题!有没有他的串口编程器的电路呀,我对比一下和我的JDM有什么区别
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-10 01:11

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

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