搜索
bottom↓
回复: 37

pic32调试笔记 【恢复】

[复制链接]

出0入22汤圆

发表于 2008-10-13 22:42:29 | 显示全部楼层 |阅读模式
pic32调试笔记



2008-10-13    小马哈

抱着试试看的态度,最近画了个pic32的板子,让袁先生帮忙免费加工了,星期天的时候收到了板子,当时比较激动,仔细一看,结果发现效果确实挺不错的。不过因为有个项目接近尾声,所以只能先放一边再说。

今天终于有时间了,就先焊接了一个基本系统来进行测试。板子上焊接的元器件有pic32,1117,晶振,电源插座和下载插座。

突然发现了一个问题,板子上没有搞电源指示灯,当初咋就没发现这个问题呢,郁闷一个。不过这个虽然有点缺陷,还不至于影响大局,不怕,先不管。

将放了好久的ICD2找了出来,插上计算机,正确发现硬件,安装驱动,成功。

选择下载器为icd2,将片子选为pic32相应的片子,通过菜单连接icd2,结果居然发现读不了pic32的ID?读出来全是0.怎么回事?芯片又坏了?还是线路有问题?仔细核对了一下icd2的线路图,没发现问题呀。因为pic32是新出来的,会不会是IDE的问题?

关闭mplab,到microchip网站上去找了找,居然发现了一个mplab 8.14,赶紧下载下来,安装。结果却发现不行,系统说无法运行instal srript。咋今天碰到啥事都不顺利呢,RP值有问题?

突然灵感一来,想到可能是windows installer有问题?赶紧下了个最新的,安装起,结果果然如我猜测,windows installer安装好了后,mplab 8.14顺利安装。

安装好后,赶紧运行,提示需要更新icd2的usb固件,通常都是点确定,于是这次想也没想就点了,结果噩梦来了。。。



mplab提示正在更新,结果更新了1分钟,还没结束,而且icd2的灯也没闪,心里咯噔一下,不会又是固件烂了吧?继续等,等了好几分钟,还没好。

等不及了,拔usb吧,拔掉后,mplab提示,无法连接icd2,这个正常。不过当我重新插上icd2的时候,就只亮一个灯了。心想:唉,确实是固件烂了。

看来今晚想看看这个东西也已经不行了。

郁闷一个,带着郁闷的心情,睡觉先。。。



另外想问下,pic32的芯片的第一脚标记好像在芯片的左下角(以文字定位),而AVR的是在左上角。不知道我这样看是否正确?

出0入22汤圆

 楼主| 发表于 2008-10-19 22:16:32 | 显示全部楼层
已经将那个bin文件写入到了4550中,但是却发现,插上usb后,没有反应,不知道是我电路搞错了还是这个不是pic32 startkit的固件?但是我对比了4550部分的电路,特别是usb部分,应该问题不大的。

出0入0汤圆

发表于 2008-10-19 19:42:10 | 显示全部楼层
芯片选择





 (原文件名:4550.JPG) 

其实不用调试4550,把那个BIN写入4550后到PIC32板试验

出0入22汤圆

 楼主| 发表于 2008-10-19 19:27:12 | 显示全部楼层
25楼,我正有此意思,但是又发现了个奇怪的问题,我安装的8.14,结果识别不了4550了,表现如下:

Connecting to MPLAB ICD 2

...Connected

Setting Vdd source to MPLAB ICD 2

ICDWarn0020: Invalid target device id (expected=0x120, read=0x90)

...Reading ICD Product ID

Running ICD Self Test

...Passed

MPLAB ICD 2 ready for next operation

还以为是新换的一个mcu有问题,结果换了一个原来8.10能够识别的4550,也是一样的结果。郁闷一个。难道说4550和pic32不能在一个IDE里面调试?

再换回8.10试试。。。



26楼,你的板子已经到哈尔滨,应该明天(星期一)就可以收到了。

本贴被 zxq6 编辑过,最后修改时间:2008-10-19,22:17:28.

出0入0汤圆

发表于 2008-10-18 17:55:03 | 显示全部楼层
刚发现PCB上有个标记错误。J11上的管脚号标注有误。正确的应该是这样:



 (原文件名:Resize of DSCN1956.JPG) 

出0入0汤圆

发表于 2008-10-18 16:59:40 | 显示全部楼层
to 【16楼】 zxq6 小马哈

    不客气。我认为重点还是检查下电源(刚才忘了插电源时检测到的id是0),再就看看芯片的引脚有没有短路。 坏应该不容易坏的。

    icd2 clone我还没遇到冲固件的问题。 我在烧4550的固件是把默认的config改了下。 把power up 和bod (电压设到2.7v)打开。 code protect 打开,config write protect, table writed打开,还有一些东西都打开了(除了EEPROM其它的写操作都禁止)。 我想这样可能要好些。

出0入22汤圆

 楼主| 发表于 2008-10-18 16:36:43 | 显示全部楼层
谢谢bozai,我现在火车上,晚上到家再试试,希望不是又把芯片搞坏掉了。
另外4550的固件我也还没拿到。

出0入22汤圆

 楼主| 发表于 2008-10-18 16:36:12 | 显示全部楼层
谢谢bozai,我现在火车上,晚上到家再试试,希望不是又把芯片搞坏掉了。
另外4550的固件我也还没拿到。

出0入0汤圆

发表于 2008-10-18 16:26:08 | 显示全部楼层
to 【13楼】 headwolf_83 

    了解,谢谢!



今天把该焊的都焊好了。 那个firmware 试了下不能用,只是其中很少的一部分。



【10楼】 zxq6 小马哈

     请问你那有pic32 starter kit上4550的firmware么?





看一下我焊好的板子:(还少两个芯片)





整体效果1 (原文件名:Resize of DSCN1954.JPG) 





整体效果2 (原文件名:Resize of DSCN1949.JPG) 





芯片特写 (原文件名:Resize of DSCN1952.JPG) 





芯片特写(开闪光灯) (原文件名:Resize of DSCN1948.JPG) 





我另外添加的14Pin MIPS EJTAG口 (原文件名:Resize of DSCN1953.JPG) 







测试用的跑马灯程序:(或许里面的hex文件可以通用,我用的芯片是360F256L, 256K/32K版本的)

点击此处下载 ourdev_459996.zip(文件大小:38K) (原文件名:blinky_leds.zip) 

出0入0汤圆

发表于 2008-10-18 13:15:44 | 显示全部楼层
原厂最早是CYPREE+877,后面出的也是4550+877A。

出0入0汤圆

发表于 2008-10-18 12:16:55 | 显示全部楼层
【10楼】 zxq6 小马哈

      我的就是4550+877的icd2 clone版



【11楼】 xiaorunyi 萧润逸

     我有看到过原厂的icd2, 是cy68013的版本。不知道现在如何了。



今天我打了几个洞,飞点线,把EJTAG给焊上。 不过搞了半天只能读到芯片id:0x40934053 (用OCDCommander中的jtag chain analyze 可以认出是PIC32F360256L),进不了debug模式。 用OCDCommander 和 Urjtag都不行,只能读到id。 晕不知道哪里出问题了。

出0入0汤圆

发表于 2008-10-18 11:33:19 | 显示全部楼层
看到这个知道坏了,这个4550+877a做出来的icd肯定不可以更新。原厂的是cy68013的usb。 





7楼的,

应该是:4550+877a

出0入22汤圆

 楼主| 发表于 2008-10-18 11:27:12 | 显示全部楼层
天啦,为什么我读到的ID就是0x0呢,我的icd2是用的是4559+877a的架构。bozai,你的呢?

出0入0汤圆

发表于 2008-10-18 10:04:56 | 显示全部楼层
COOL! 高手!全部是经验之谈,谢了。
头像被屏蔽

出0入0汤圆

发表于 2008-10-18 02:20:54 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2008-10-18 02:02:26 | 显示全部楼层
今天收到楼主送的板子, 晚上出去逛了一圈到10点半回来。收拾收拾到11点开始焊板子。

把主要的东西先焊上,4550还没有,除了32的isp插针其它都没焊(方便洗板,洗完一面再焊另一面)。

焊完后装刚下的8.14。 然后选择器件检测选择icd2:

首先来个提示说icd2下载pic32不可以用串口通信

接着看到了和以往不同的提示,不是再更新跟device相关的operating system

而是提示update usb os version from xxx to xxx

看到这个知道坏了,这个4550+877a做出来的icd肯定不可以更新。原厂的是cy68013的usb。

不出所料,接着抱错。



完了,看来是用不了了。 接着上网去搜icd clone的相关信息,看看能不能找到跟pic32相关的信息。

结果跑到icd2 clone的老家去发现没有更新。花了好长时间,没找到有用信息。



后来想到换旧的maplab试试。 卸了新的,装上以前下载的maplab8.10

这次不错,不出现那个问题了,直接提示要下在新的os。 那就让它下吧。

下完后检测id:

晕 Invalid target device id (expected=0x934053, read=0x34053)

不对,读到的少了一位。 不过至少看来没错到哪去。或许是这个clone没clone彻底,数据长度没想到有这么长。



试试其它操作,擦除,提示成功。看来id不正确并不影响操作。



那么烧个例子程序试试吧。



找到下载的example, 解压关于port的那个example, 里面有一个blinky_led的工程。

编译,failed! 原来是路径没有设,设好路径后再build,  OK!

找到电路图看看lz设计的板子led在哪。 portd. 把代码中的PORTA改成PORTD,再build



然后program, 



Programming Target...

...Validating configuration fields

...Erasing Part

...Loading Program Executive

...Programming Boot Config (0x1FC00000 - 0x1FC007FC)

...Verifying Boot Config memory (0x1FC00000 - 0x1FC007FC)

...Programming Boot Config (0x1FC01000 - 0x1FC011FC)

...Verifying Boot Config memory (0x1FC01000 - 0x1FC011FC)

...Programming Program Memory (0x1D000000 - 0x1D000BFC)

...Verifying Program memory (0x1D000000 - 0x1D000BFC)

...Programming Configuration Bits

...Verifying Config memory

...Programming succeeded

18-Oct-2008, 01:34:04



MPLAB ICD 2 Ready



一切正常阿,verify都是ok的。



然后急切的选“Release From Reset”



哈哈,LED快速的闪起来了。

cheers





该睡觉去了,明天把剩下的东西焊完。



PS:在maplab的安装路径中发现一个bin文件,疑似是pic32kit上4550的firmware. 明天也试试看。

路径是C:\Program Files\Microchip\MPLAB IDE\PIC32MXSKit\bin\P32SK0207.BIN

出0入0汤圆

发表于 2008-10-19 16:53:44 | 显示全部楼层
贝能的ICD2 是 4550 加877

高拓的是877加  CY64613

出0入0汤圆

发表于 2008-10-19 16:52:43 | 显示全部楼层
我的扳子怎么还没有收到呢?

急啊!

出0入0汤圆

发表于 2008-10-19 16:43:30 | 显示全部楼层
LS 何不试验7楼那个P32SK0207.BIN 

出0入22汤圆

 楼主| 发表于 2008-10-19 15:35:45 | 显示全部楼层
灯闪起来了,我的心也跟led一样快速闪乐着,呵呵!

回来,看见楼上的帖子,于是又重新将mplab8.10卸载,安装8.14,经过漫长的等待,终于安装好了,将系统连接了上去,经过更新usb FW,下载os,终于,可以正常的连接了,ID中少一位的情况也没出现。



Connecting to MPLAB ICD 2

Updating ICD2 USB FW from version 0102 to 8102. Do not disconnect USB cable.

...Connected

ICDWarn0030: MPLAB ICD2 is about to download a new operating system.  If MPLAB IDE is just starting, it will appear to "hang" at the splash screen.  Please be patient.  MPLAB IDE will finish it's initialization after the OS is downloaded.  (Note:  You may wish to select to ignore this warning in the future.)

Downloading Operating System

Connecting to MPLAB ICD 2

...Connected

Setting Vdd source to target

Target Device PIC32MX320F128L found, revision = Rev 0x40900053

...Reading ICD Product ID

Running ICD Self Test

...Passed

...Download Operating System Succeeded

Setting Vdd source to target

Target Device PIC32MX320F128L found, revision = Rev 0x40900053

...Reading ICD Product ID

Running ICD Self Test

...Passed

MPLAB ICD 2 ready for next operation



哈哈,终于搞定,现在万事俱备,只欠东风了,不知道谁还方便提供4550里面的hex文件的?

出0入0汤圆

发表于 2008-10-19 15:15:19 | 显示全部楼层
MP814下ID正确



 (原文件名:mp814.JPG) 

出0入22汤圆

 楼主| 发表于 2008-10-19 14:56:01 | 显示全部楼层
今天吃过中午饭,抱着不到黄河心不死的决定,将另外一个芯片焊到了板子上,仅仅焊接了最小系统,怀着忐忑不安的心情,插上icd2,一检测,结果。。。唉,郁闷,一样的结果,芯片ID为0

是不是我还有啥问题没有想到呢,突然想起一个事情,就是原来玩pic24的时候,有个片内稳压器,是不是这个原因导致的?我一查看,原来果然,片内稳压器的那个10u电容没焊,赶忙焊接上,插上去一试。

高兴的时刻终于来临,出现了跟bozai一样的错误,

Connecting to MPLAB ICD 2

...Connected

Setting Vdd source to target

ICDWarn0020: Invalid target device id (expected=0x92A053, read=0x2A053)

...Reading ICD Product ID

Running ICD Self Test

...Passed

MPLAB ICD 2 Ready



即ID少了一位,哈哈,终于正常了,赶紧去改改bozai的测试代码试试。。。

出0入22汤圆

 楼主| 发表于 2008-10-19 12:04:43 | 显示全部楼层
19楼,可以的,mplab可以让icd2编译完就下载。我使用的就是这个架构的icd2。但是你链接的那个究竟效果如何就不清楚了。

出0入0汤圆

发表于 2008-10-19 10:38:07 | 显示全部楼层
悄悄把公司的那个贝能科技的icd2打开(以前被打开过),他们用的芯片是:



sp232/24lc01/cy7c64613(12mhz)/pic16f877(20mhz)/ha126/hb126/mcp41100/dg411/两个稳压芯片……







我收到板子了,谢谢zxq6 小马哈。淘宝上找了一下芯片,只有两家在卖,一个标的是120一个标的是1元,发信还没回。



先看看二位条调试过程了。

出0入0汤圆

发表于 2008-10-19 00:30:39 | 显示全部楼层
http://auction1.taobao.com/auction/item_detail-0db2-5e765de6fa091f995a4bca29073e61d4.jhtml



两位看看这个ICD2怎么样



我就玩过877a,用K149下载,用是好用,就是每次下载都要出提示,烦躁,不知道ICD2方不方便,最好是像ICC那样的能编译完自动下载。

本贴被 avenbbs 编辑过,最后修改时间:2008-10-19,00:33:49.

出0入0汤圆

发表于 2008-10-17 09:41:33 | 显示全部楼层
pic32哪里有卖的?

出0入0汤圆

发表于 2008-10-15 06:52:50 | 显示全部楼层
remove and reinstall the USB drivers. You can use MPUsbClean.exe to remove the driver and MPUsbIRU.exe to preinstall the driver prior to plugging in MPLAB ICD 2.



Microchip\MPLAB IDE\Utilities\MPUsbClean\MPUsbClean.exe



Microchip\MPLAB IDE\Utilities\MPUsbIRU\MPUsbIRU.exe

出0入22汤圆

 楼主| 发表于 2008-10-14 22:33:02 | 显示全部楼层
2008-10-14    小马哈



今天,将原来买的18f4550(买的时候卖家帮忙写好程序了的)找了出来,换到了我烂掉的icd2上,插上usb,插的时候,心理在祈祷,上天呀,一定要保佑我计算机能够认得出来呀!说时迟,那时快,只见计算机啵的一声,弹出了发现新的usb设备,终于,悬着的心放下了。

搜出了以前搜集的icd2制作资料,将里面的4550固件释放出来,在mplab里面将固件写入到烂掉的4550,换下icd2上好的那个,再次插上icd2,嘿嘿,搞定!

ICD2是修理好了,接下来的工作是需要进行pic32的调试了。但是上次安装mplab8.14没成功连接ICD2,后来因为要给4550下程序,怕8.14继续搞坏icd2,所以从新安装回了mplab8.10。会不会这次安装还是不成功呢。现在有8.10,那就先在这个上面试试看再说。

首先选择了正确的mcu,连接,结果告诉我期望id多少多少,读取到的id=0?再选择pic32里面位于最上面的那个,一样,再选择pic24系列,一样。唉,结果通过各种办法,还是没有能够连接到目标板,看来还是要试试8.14了。

这次学聪明点了,先卸载了8.10,再安装8.14,要求重启,按照要求重启完成后,再次插上icd2,目标板上电,晕菜!出问题了,系统提示ICD0042: API:  Error response (Device not ready (0x12))。

再一想,是不是驱动没更新?首先在设备管理器里面更新icd2驱动,使其手动安装,并指向8.14的安装目录的icd2驱动,更新。更新成功,再连接,还是同样的错误。

想想原来的icd2好像驱动需要完全卸载。于是按照原来的方案,运行了卸载工具,结果也郁闷,其检测目录检测到sql server的安装目录的时候就不动了。

不管了,肚子已经开始咕咕叫了,先吃饭去...

结果吃晚饭过来还停在这里,咋回事哦。卸载掉sql server,重新运行,结果这次挺在了 Visual Studio里面了。结束任务,重新运行,郁闷,还是停留在了相同的地方。Visual Studio不能卸载,看来短时间内是完不了这个东西了。



PS:

已经联系的各位的板子已经发出,还有一位同学已经预定,但是还没跟我联系的,请赶快了哦,过期不侯的...

希望各位接收到板子后,帮忙测试一下,看是否可以连接到芯片,并读取id。

本贴被 zxq6 编辑过,最后修改时间:2008-10-14,22:34:10.

出0入0汤圆

发表于 2008-10-14 21:42:03 | 显示全部楼层
楼上继续。



看来跟着楼上两位就可以在pic行列里踏踏了

出0入22汤圆

 楼主| 发表于 2008-10-13 23:09:38 | 显示全部楼层
根据我了解的信息来看,ICD2应该是可以进行下载的,能不能进行仿真就难说了。我看mplab里面说对这个骗子的支持也只是beta支持。

出0入0汤圆

发表于 2008-10-13 22:48:49 | 显示全部楼层
不知道我做的那个icd2能不能用



ic上有个圆圈的那个地方时pin1,管脚是逆时针排列

出0入0汤圆

发表于 2009-6-11 18:33:53 | 显示全部楼层
顶!

出0入0汤圆

发表于 2009-9-9 11:49:43 | 显示全部楼层
不知道小马哈有没有PIC的板子转让啊?带USB的。

出0入22汤圆

 楼主| 发表于 2009-9-9 11:52:35 | 显示全部楼层
32楼,不好意思,这个板子没带usb,做出来之后,就一起送光光了。

出0入0汤圆

发表于 2009-9-13 16:54:36 | 显示全部楼层
前两天,老师要我做了个PIC32MX320F128H的最小系统,东西都焊好了。ICD2烧写正确,可灯只亮不闪,郁闷,延时时间已足够长,配置字设置正确。用逻辑笔测没有脉冲,软件仿真程序正确。各位,麻烦帮忙看看程序有什么问题。或者可能哪里有可能导致此问题。thanks

#include <p32xxxx.h>

#define IOPORT_BIT_7 (1 << 7)        
        .text
        .set noreorder

/*********************************************************************
* main()
* This is where the PIC32 start-up code will jump to after initial
* set-up.
********************************************************************/

.ent main
main:


    ori $a0,$zero,0
    la  $s0,TRISB
    sw  $a0,0($s0)



    ori $a0,$zero,0x0ffff
    la  $s0,AD1PCFG
    sw  $a0,0($s0)

    ori $a0,$zero,IOPORT_BIT_7
        la                $s0, LATBCLR
        sw                $a0, 0($s0)       


here:
    ori $a0,$zero,IOPORT_BIT_7
        la                $s0, LATBINV
        sw                $a0, 0($s0)

    jal  delay
    nop

    j  here
    nop




.end main
.ent delay
delay:
       
        addiu        $sp, $sp, -4
        sw        $s0, 0($sp)

    li   $t1,300000000
loop2:
    li   $t0,300000000
loop1:
     addiu $t0,$t0,-1
     bgtz $t0,loop1
     NOP
     addiu $t1,$t1,-1
     bgtz $t1,loop2
     nop
   
    lw $s0,0(sp)
    addiu $sp,$sp,4
        jr                $ra
        nop
.end delay

出0入22汤圆

 楼主| 发表于 2009-9-13 17:06:53 | 显示全部楼层
34楼,你可以再写个代码测试led灭的程序,如果能够自如的控制亮灭了,离灯闪也就不远了。

出0入0汤圆

发表于 2009-9-14 10:52:04 | 显示全部楼层
昨天已经解决了,心情非常高兴。O(∩_∩)O

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-5-9 12:00

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

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