9879|2

80

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

新手的pic学习笔记 [复制链接]

我近来在学习一些pic的芯片,准备将学习过程中的一些点点滴滴写下来,一方面为后面自己做参考,一方面和坛子里面的pic新手一起学习,一起进步。 首先需要感谢armok提供了这么一个开放的平台, 然后感谢我的老师教会了我学习的方法, 还要感谢我的父母, 还要感谢我的朋友。。。 。。。。。。。。。。。
点赞 关注
 

回复
举报

80

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

回复: 新手的pic学习笔记

12月22日,星期六。加班。 在公司,刚刚吃过中午饭,快递公司给我打电话过来了。告诉我说包裹已经送到,让我立即去楼下取。呵呵,期盼的ICD2终于到了。终于可以感受一下新的开发工具了。怀着一颗激动的心,蹭蹭蹭的跑下楼(没有电梯)。颤抖着签完字,迫不及待的将包裹打开。哈哈,看起来还不错的。一个ICD2,一个适配器。 心情继续激动,不过还没有pic的开发板。上次申请了几个pic的样片终于可以用上了。赶紧焊接了一个dip28的座子到面包版上,将引脚引出,然后在AVR的板子上将电源和地引入的这个最小系统上。 最小系统没有晶振,用的是dspic30f2012.看pdf说明好像是有内置晶振的。于是就没有焊接晶振上去。 将icd2通过usb线连接到计算机上,系统马上弹出消息说发现新设备,呵呵,安装完驱动,利用C30里面的一个ADC Sample建立了一个工程,编译成功。 目标板上焊接了一个水晶头座子,将水晶头的线引了出来,通过杜邦线连接到最小系统上面。1-MCLR,2-VCC,3-GND,4-PGC,5-PGD,6-NC,然后点击mplab的连接,结果。。。。 出现错误,连接失败! 吐血。。。 运行icd2设置向导,仔细设置了icd2中的每一项,没有发现问题啊。 测量了一下2012的VCC和GND的电压,没问题啊。 运行了一下icd的自我检测,也没有发现问题啊。 那是什么原因导致的呢? 郁闷ing。。。 突然想到,是不是我将ICD2的水晶头引线出来顺序引错了?因为平时做了不少的网线,就按照网线的顺序来引了。联系卖家,才知道,我理解的方向跟实际的方向刚好相反。 得到这个消息的时候,我既高兴又担心,高兴的是结果被我猜到了;担心的是因为在连接芯片的时候,icd会提供约13v的电压,这个会不会将芯片烧掉? 怀着忐忑不安的心情,换了芯片的顺序,再次检测,这次没有错误了,但是发现读出的芯片ID跟设置的ID不一样? 仔细一看,Faint!原来设置的是dspic30f2020。修改了后,再试,哈哈~OK!连接成功! 尝试着将编译了的hex下载到芯片中,下载过程正常,还正在兴奋的时候,嘎嘣一下弹了个对话框出来,告诉我在什么什么地方校验错误,本来应该是什么什么值,但是读到的是什么什么值。 大跌眼镜!怎么会这样?再试!同样失败,再试!还是失败。 怎么回事?线没弄好?再次检查了供电电压,接线,mplab设置。也没有发现问题啊。 就这样又重复了几遍。突然想到,是不是刚才的接线顺序不正确已经将芯片烧掉了?但是也不正常啊,芯片型号都还可以认识的。奇怪了。 换了个dspic30f2020(因为引脚一样的),修改了芯片,重新编译了,连接,正常;下载,居然正常了!!! 唉,终于将程序下载到芯片中了。 高兴了一会儿,问题又来了。 因为芯片就是一个最小系统,所以不好查看芯片是否在运行,更不用说看AD是否成功了。得写个最简单的程序来看看。 但是,上班时间到了,只能回家继续。。。。。
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

回复: 新手的pic学习笔记

11月23日,星期天,在家研究icd2 天气冷,睡了个大懒觉,起来都基本吃中午饭了。 吃过饭,开始来弄这个东西了。将icd2通过usb线接到笔记本上,发现新硬件,安装驱动,写了一个最简单的代码, #include "p30f2020.h" int main(void) { PORTB=0x0000; TRISB=0x0000; while(1) { PORTB=0x00; asm("nop"); PORTB=0xff; asm("nop"); } } 也不知道对不对,反正编译器不提示出错就OK!,编译完成,下载到2020里面,奇怪了,怎么不见到其PORTB连接的LED亮啊?正常情况下应该亮的呢,就算看不见闪,也不会不亮的啊。 怪! 是不是程序下载不成功?应该不是,校验都通过了的啊。想不通。 是不是“熔丝位”没设置好?坏了,不知道在什么地方设置熔丝了。估计就是mplab里面的“配置”里面的“配置位”了吧,认真看了看,修改了一下晶振,重新编译,下载,嘿!还是没动。 看看是不是需要重新断电?于是将电断了,再上电,还是没动呢。 真是奇怪了。 芯片没运行? 在菜单中寻找了一下,将icd2设置为调试器,在while前面下了一个断点,运行。当运行到断点的时候,嘿。终于看见灯亮了。让mplab一直运行,就看见灯暗了一点,没有闪。这个也正常,因为频率太快,看不见闪。 但是很奇怪,AVR如果芯片没有运行的话,是下不进去程序的,但是pic下载进去程序了,但是看起来芯片好像没有运行一般,真是奇怪。 不管了,先休息一会儿! 。。。。。。。。。。。 看了一会儿《天下第二》,突然想到了点什么,插上icd2,准备继续的时候,又发现了一个问题:ICD2成了无法识别的usb设备了?换了2个口一样。换到原来的口去,终于正常了。 可是mplab却告诉我连接不上了。因为GeLastError=2,系统文件没找到? 郁闷!是不是系统安装了9个多月了已经准备寿终正寝了,该重装系统了? 不忙,先问下google看,不是有句话么,外事不决问google,内事不决问老婆?呵呵。 资料说,好像是驱动问题。先卸载驱动。 卸载前先运行microchip文件夹里面有一个工具叫MPUsbClean.exe的。运行了,清除了驱动,然后到设备管理器里面将icd2删除。继而刷新硬件,找到设备后将驱动定位到microchip目录下面去。呵呵,成功。 看着桌子上貌似死亡了的2012,真不相信他已经坏掉了。 抱着死马当成活马医的态度,将2020换下来,换上2012,修改mplab里面的芯片,重新编译,下载,嘿,居然也成功了。pic芯片居然有自我修复功能?神奇! 仿真了一下,发现跟2020一样,仿真可以看见效果,但是不能运行。 也不知道是什么原因导致这样的情况呢,难道需要外部晶振?还是“熔丝”没有配置对? 还希望各位有经验的大侠指导一下。 今天就实验了这么多,下面实验后继续写。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表