范文一:PIC单片机在线调试中的一些问题
68
2005112
PIC 单片机在线调试中的一些问题
■安徽省水利科学研究院 陈新建
武锋
1 在线串行编程
111 在线串行编程接口
带有 Flash 闪速存储器的 PIC
图 1 PIC 单片机在线
串行编程接口 有在线串行编程功能 , 只需 要 5载到单片机的 储器中。 这 5序 是 MCL R/Vpp 、 Vdd 、 Vss 、 PD (或 P GD ) 和 PC (或
P GC ) , 图 1是 PIC 单片机在 线串行编程接口图。
112引脚含义
上述 5根引线的具体含义是 :MCLR/Vpp — — — 编程电
压 (对于 PIC 单片机一般为 13V 左右 ) ; Vdd — — — 编程电 源 (5V ) ; Vss — — — 地 ; PD — — — 编程数据信号 ; PC — — — 编程 时钟信号。
有了这个编程连接电路 , 只需要合适的编程硬件电路 和编程软件 , 就可以实现单片机在线串行编程和调试 。
2 在线调试器
211 在线调试器与目标板的连接
微芯公司推出的第一代在线调试器命名为 MPLAB
ICD , 其支持 PIC16F87X 系列单片机的在线调试与烧写 ,
并且性能可靠 , 使用简捷、 方便。 在 MPLAB ICD 基础上 , 微芯公司推出第二代在线调试器命名为 MPLAB ICD2
(以下简称 ICD2) , 其支持全系列的 PIC Flash 闪速存储器
单片机的在线调试和烧写 , 甚至还支持微芯公司 16位单 片机 dsPIC 的在线调试和烧写 。 ICD2在线调试器与目标 板的连接如图 2所示。
图 2中只画出 ICD2的 MCL R/Vpp 、 P GD 和 P GC 三 组重要信号与目标板的连接 , ICD2的 Vdd 和 Vss 按照正 常方式与目标板连接。如果目标板上有 AVdd (模拟电
源 ) 和 AVss (模拟地 ) , 在 把 AVdd 和
, , ICD2。
2D ①从图 2中可以看出 , ICD2的 P GC 和 P G D 引脚内
部已经接有 4. 7k Ω的下拉电阻 , 因此用户设计电路板时 , 电路板上的这 2个引脚就不能再接下拉电阻 , 以免引起不 正确的电平。
② P GC 和 P G D 是信号引脚 , 对于这 2个引脚 , ICD2和目标板之间的连接不能有任何电容或其他容性器件接 入 , 否则会影响串行数据和时钟信号传输。 P GC 和 P G D 信号是双向传输信号 , ICD2和目标板之间的连接不能有 任何二极管等元件阻断信号传输。
213 复 位
MCL R/Vpp 是 ICD2编程电压引脚 , 编程时电压应该
在 13V 左右 , 这个引脚的另一个功能是复位。 我们知道 , 任何单片机在上电或在其他一些特殊情况下都能引起复 位。单片机的复位与电源和晶体振荡是单片机进入正常 工作的三大必要条件。 因此 , 应该注意以下问题 。
①不能接入大电容 , 否则 Vdd (电源电压 ) 不能快速 建立 , 影响复位。
②目标板的 Vdd (电源电压 ) 与 MCL R/Vpp 间应串
接一只 10k Ω以下的复位电阻 ,
这样在复位时目标板的
图 2
在线调试器与目标板的连接
2005112
Microcontrollers &Embedded Systems
69
MCL R/Vpp 引脚能够被正常拉低 , 而在编程时也可以保
持 13V 左右的烧写电压。
③复位电阻不能太大 , 必须要小于 10k Ω。 根据笔者 的经验 , 对于 PIC16F87X 系列单片机 , 复位电阻是 10k Ω或 10k Ω以下时可以正常复位 ; 对于 PIC18FXX2系列单 片机 , 复位电阻是 10k Ω时不能正常复位 , 更换为 4. 7k Ω左右的电阻就可以实现正常复位了。
214应用实践
由于 ICD2的实用性和价格低廉 , 越来越多的用户使
用 ICD2在线调试器。在 ICD2与目标板连接过程中 , 非 常容易出现这样或那样的问题。对于初学者和自己制作 目标板的用户 , 尤其要注意把 ICD2与目标板进行可靠连 接 , 所谓可靠连接就是要接触良好。 用户在制作目标板时 要遵循本文 2. 2和 2. 3小节的叙述 , 都能与 ICD2实现正常连接。
, 接的情况 , , 哪里出了问题 , , 应先判断
目标板是否有问题 , 若目标板没有问题 , 只能怀疑是 ICD2本身或 ICD2与计算机连接的问题。
结 语
本文重点叙述在线调试器与目标板的连接、 复位以及 出现问题的解决办法 , 有非常强的实用和参考价值 , 希望 引起使用在线调试器读者的重视 , 节省调试时间 。
参考文献
1 武锋 , 陈新建 . PIC 单片机 C . 北京 :北京航空
,2005
2. ::, 水利量测自动化及闸和坝 武锋 :高级工程师 , 主要研究方向为单片机、 水利 量测自动化及闸门和泵站计算机监控。
(收稿日期 :2005207211)
μC/OS
II 作者致中国用户的公开信
致 Micrium 产品的使用者 :
Micrium 公司产品包括 μC/OS II 、
μC/GU I 、 μC/FS 、 μC/TCP IP 和 μC/USB 等 。
Micrium 公司提供嵌入式系统应用方面的产品 , 并对其软件拥有知识产权 。
我公司花费了大量的时间和财力为嵌入式领域提供高质量的软件产品 。 我们的所有产品都以源代码的形式提供给客户 , 具有极 大的适用性 。 我们的产品不是免费软件 , 也不是开放源码的软件 , 因此 , 不能免费使用 。
您可以通过购买我关于 μC/OS II 的书而得到 μC/OS II 源代码 , 当您从芯片厂商那里购买评估板时 , 您也可以获得 μC/OS II
源代码 , 但您必须同时购买一本我的含有 CD 的书 。 当用于商业目时 , 您必须购买使用授权 , 这在书中有明确规定 。 我公司其他软件如 μC/GU I 、 μC/FS 、 μC/TCP IP 、 μC/USB 等的销售模式与 μC/OS II 不同 , 如果您没有购买使用授权 , 您完全
不可以拥有该源代码 , 也不能将源代码用于产品 。
如果我们的努力工作不能得到回报 , 我们将不能继续设计并生产这些优秀的软件产品。 因此 , 请不要非法使用和发布我们的软件。 如果您已经有了 μC/OS II 的代码 , 但您并没有我的关于 μC/OS II 的书 , 请您购买一本 。 如果您正在将 μC/OS II 用于您的产品 , 您需要购买并获得正式使用授权 。 如果您有一份我公司其他产品的拷贝 , 您必须销毁非法拷贝并购买使用授权 。 Micrium 公司系列产品和使用授权由北京麦克泰软件技术有限公司在中国独家代理 。 感谢您的诚实合作和理解 !
Jean Labrosse
Micrium
公司总裁
范文二:单片机开发调试应注意的问题
电子下载站 www.bbww.net 资料版权归合法所有者所有 严禁用于商业用途
欢迎光临中国最大的电子工程师应用网站 网址:www.bbww.net 单片机开发调试应注意的问题
1、使用总线不外引的单片机
·是最正统的单片机使用模式
·符合小型、简单、可靠、廉价的单片机设计初衷
·总线封闭的产品最可靠
2、使用单片机 C 语言编程
* C语言是简洁、高效、而又最贴近硬件的高级编程语言
* 90年代初单片机 C 语言就已成熟为专业水平的高级语言,不应再有顾虑
* 当前厂商在推出新的单片机产品时纷纷配套 C 语言编译器
3、使用中、高档的单片机仿真工具
* 只有中、高档仿真工具才能仿真总线封闭式的单片机
* 仿真器必须使用 band-out chip或 hooks chip
* 应支持高级语言的调试,提供全数据类型的查看和修改
* 支持多家软件公司汇编和编译产生的目标代码格式
* 中档仿真器的起步要求是至少解决了上述前 3个难点和部分地解决了第 4个难点。高档仿真器则还有更 高的要求。
* 中、 高档仿真器的人机界面有四个档次:DOS 下的简单命令行及批处理文件, DOS 下的窗口命令行, Borland 风格的 DOS 窗口菜单,Microsoft 风格的 WINDOWS/WIN95窗口菜单
4、集成开发平台
* 编辑—汇编/编译—连接/定位—调试—装入目标系统一条龙
* 全屏幕编辑,就地修改,所见既所得;跨文件整块剪贴技术;彩色辨词正文等
* 使用工程(project)技术:一次将工程的全部源文件、头文件、用户库文件送入工程管理器,统一管理 汇编/编译和连接/定位
* 使用 MAKE 技术:自动辨用汇编器/编译器;每次调试循环仅做增量汇编/编译和连接/定位
* 当有的文件被破坏,使用 build 技术跳出 MAKE 循环,重新全面地进行汇编/编译和连接/定位
* 错误和警告自动定位、明朗的错误自动修正
* 扩展的运行类型(放开运行、动画式运行,遇光标终止、出函数前终止、出函数后终止)
* 扩展的单步类型(指令单步、语句单步、函数单步)
* 扩展的断点类型(指令断点、语句断点、循环断点、内容断点、条件断点)
* 模拟器代替仿真器进行无目标机的虚拟调试
范文三:我的PIC单片机调试心得
我的 PIC 单片机调试心得,给像我一样曾经苦苦寻觅的初学者一点启示
我是一位初学者, pic 初学者,但是在单片机行当已经混迹多年了。说句实话, c 开发环境 都大同小异,只不过烧写和在线仿真大同小异。钻研了两天,收到了很多回应和启发。
下面应 soso 的请求,把最近的调试心得和大家分享
1、 先说说我要做的东西
说来惭愧,这是临时的一个小任务,做一个采集和现实的部分,用两路 ad 采集模拟量,通 过开关进行切换, 简单的说就是开关打开, 显示一路模拟量; 开关关闭, 显示另一路模拟量。 主电路及其简单,我就直接说了,不附图了。电源通过一个负载(滑动变阻器就可以)回到 电源负极, 在回路中接入一个电流传感器, 实时采集电流信号 (如果条件不允许, 也可以用 康铜丝或者一个大瓦数小数值的采样电阻采集电流信号。 然后通过放大, 隔离后送入单片机 的 AN0口。 另外一路 AN1可以用来做另外一个模拟量的采集, 具体是什么待定, 可以是温 度,也可以是电压(时间短,我就做了 1路,另一路有待高人们自己开发,哈哈)
2、 我遇到的问题
对于我来说, pic 是新事物,要从刚开始接触说起,时间不长, 72小时。给我的感觉,这种 单片机价格便宜,体积小,结构简单,编程用 c ,也比较和我的胃口。缺点(也就是苦苦煎 熬着我的)就是仿真和烧录。
和 其他单片机一样, 每个厂商都推出了自己的 c 编译环境和开发环境, 我们的 pic 使用 ide 和 picc (不是保险公司哦)具体如图。
Picc 是自己嵌入 ide 的
进入界面,感觉无比亲切,和 keil 也差不多啊,于是照方抓药。
通过工程想到,建立工程。选择你使用的芯片,选择编译器,如图, picc.exe 的路径也可以 看到哦!
新建工程,但是不导入 c 文件
点菜单栏 VIEW 下的 project ,在 source 右键,加入 c 文件,如果没有 c 文件,就新建一个 c 文件,然后加入到 source 里面。导入之后就如图了。
下面就是激动人心的编译程序了,如果程序无误,应该出现这个:接下来就可以进行烧写和仿真了
在这之前,需要进行一些必要的设置,按上图就可以,在 Configue 里面。
然后,通过 Programer 和 Debugger 选择要设备,我用 ICD2就选 ICD2
下面就是要进行连接,如果你想仿真,就把 Release 点成 Debug ,然后在 debugger 里面 点 connect ,如果想烧程序,就在 programmer 里面点 connect ,成功是这个样子的
我做的是烧写,所以就点 program ,结果如下
在线仿真本人也在研究中,如果有高人能够指点就更好了,我就和大家分享到这儿。
最后说说学到了什么吧,接触新实物,第一反应就是迷茫,无从下手,当然,这不可能做成 事。 要想到解决这一切的方法, 首先就是找个明白人, 如果身边真的没有这样的人, 那么就 去网络,我们的论坛就有很多人才。接着我想到了网络,去找需要的资源, datasheet ,参 考头文件, datasheet 还有我们的电路图就可以进行粗略的程序设计,我指的是框图,流程 这类的东西。 写好程序以后一定要反复推敲, 有可能一个不留神就可能导致程序失灵。 这个 我遇到过,一顿找,就是找不到问题所在,结果是一个小小的寄存器的某一位写错了。
我写这篇帖子的目的是, 给像我一样曾经苦苦寻觅的初学者一点启示, 如果能恰好帮助在困 境中的求学者,我将感到无比荣幸。
Sjl2001
范文四:5 单片机系统的调试
5 系统的调试
系统调试包括硬件调试和软件调试。硬件调试的任务是排除系统的硬件电路故障,包括设计性错误和工艺性故障。软件调试是利用开发工具进行在线仿真调试,除发现和解决程序错误和工艺性故障。软件调试是利用开发工具进行在线仿真调试,除发现和解决程序错误外,也可以发现硬件故障。
5.1硬件调试
单片机应用系统的硬件调试和软件调试是分不开的,许多硬件故障是在调试软件时发现的,但通常是先排除系统中明显的硬件故障后,在和软件结合起来调试。
(1)常见的硬件故障
逻辑错误。样机硬件的逻辑错误是由于设计错误或加工过程中的工艺性错误所造成的,包括错线、开路和短路等几种,其中短路是最常见的故障。
元器件失效。元器件失效的原因有两个方面:一是器件本身已经损坏或性能不符合要求;二是由于组装错误造成元器件失效,如电解电容、二极管的极性错误或集成块安装方向错误等。
可靠性差。引起系统不可靠的因数很多,如接插件接触不良会造成系统时好时坏,内部和外部的干扰、电源纹波系数过大或器件负载过大等造成逻辑电平不稳定,另外走线和布局不合理等也会引起系统的可靠差。
电源故障。若样机中存在电源故障,则加电后将造成器件损坏。电源故障包括电压值不符合设计要求、电源引出线和插座不对应、电源功率不足和负载能力差等。
(2)硬件调试方法
脱机调试。脱机调试是在样机加电之前,先用万用表等工具,根据硬件电气原理图和装配图,仔细检查样机线路的正确性,并核对元器件的符号、规格和安装是否符合要求。特别注意电源的走线,防止电源之间的短路和极性错误。重点检查系统的总线或其他信号线之间是否存在相互的短路。样机所用的电源,事先必须单独调试后才能加到系统中。在不插芯片的情况下,加电检查各插件上引脚的电位,仔细测量各点电位是否正常,尤其应注意单片机插座上的各点电位是否
正常。
联机调试。通过脱机调试可排除一些明显得硬件故障,有些硬件故障需要通过联机调试才能发现和排除。通电后,执行读写指令,对用户样机的存储器、I/O端口进行读写和逻辑检查等操作,用示波器等设备观察波形(如输出波形、读/写控制信号、地址数据波形和有关控制电平),通过对波形的观察分析,发现和排除故障。
5.2软件调试
软件调试方法与选用的软件结构和程序设计技术有关,如果采用模块程序设计技术,则逐个模块调好后再进行系统程序总调试。如果采用实时多任务操作系统,一般是逐个任务进行调试。
对于模块结构程序.要一个个子程序分别调试。调试子程序时,一定要符合入口条件和出口条件,调试手段可用单步运行和断点运行方式,通过检查用者系统的CPU现场情况、 RAM的内容和I/O口的状态,检测程序执行结果是否符合设计要求。通过检测,可以发现程序中的死循环错误、机器码错误和转移地址的错误。同时,还可以发现用户系统中存在的 硬件故障、软件算法和硬件设计错误,在调试过程中不断调整用户系统的软件和硬件,完成每个程序模块的调试。
每个程序模块通过后,可以把相关功能块连在一起进行总调。这个阶段若有故障,可以考虑各子程序运行时是 否破坏了现场,缓冲单元、工作寄存器是否发生冲突,标志位的建立和清除是否有误,堆栈区是否有溢出,输入设备的状态是否正常等等,若用者系统是在开发机的 监控程序下运行时,还要考虑用户缓冲单元是否和监控程序的工作单元发生冲突。
单步运行只能验证程序正确与否,而不能确定定时精度、CPU的实时响应等问题,所以单步和断点调试后,还应进行连续调试。除了观察稳定性之外,还要观察用户系统的操作是否符合原始设计要求,以及安排的用户操作是否合理等,必要时还要做适当修正。
系统联调是指让用户系统的软件在其硬件上实际运行,进行软、硬件联合调试,从中发现硬件故障或软、硬件设计错误。
系统联调时,首先采用单步、断点、连续运行方式调试与硬件相关的各程序
段既可以检验这些用户程序段的正确性,又可以在各功能独立的情况下检验软、硬件的配合情况。然后,将软、硬件按系统工作要求进行综合运行,采用全速断点、连续运行方式进行总调试,以解决在系统总体运行的情况下软、硬件的协调与提高系统动态性能。在具体操作中,用户系统在开发系统环境下,先借用仿真器、存储器等资源进行工作。若发现问题,按上述方法准确定位错误,分析错误原因,找出解决方法。
实时多任务操作系统的调试方法与上述方法类似,只是需逐个任务进行调试,在调试某一个任务时,同时也调试相关的子程序、中断服务程序。各个任务调试好后,再使各个任务同时运行。 如果操作系统中没有错误,一般情况下系统就能正常运转。
5.3系统联调
系统联调是指让用户系统的软件在其硬件上实际运行,进行软、硬件联合调试,从中发现硬件故障或软、硬件设计错误。这是对用户系统检验的重要一关。
系统联调是主要解决以下问题:
(1)软、硬件能否按预定要求配合工作,如果不能,那么问题出在哪里?如何解决?
(2)系统运行中是否有潜在的设计时难以预料的错误,如硬件延时过长造成工作时序不符合要求、布线不合理造成有信号串扰等。
(3)系统的动态性能指标(包括精度、速度参数)是否满足设计要求。 系统联调时,首先采用单步、断点、连续运行方式调试与硬件相关的各程序段既可以检验这些用户程序段的正确性,又可以在各功能独立的情况下,检验软、硬件的配合情况。然后,将软、硬件按系统工作要求进行综合运行,采用全速断点、连续运行方式进行总调试,以解决在系统总体运行的情况下软、硬件的协调与提高系统动态性能。在具体操作中,用户系统在开发系统环境下,先借用仿真器的CPU、存储器等资源进行工作。若发现问题,按上述软、硬件调试方法准确定位错误,分析错误原因,找出解决办法。用户系统调试完成后,将用户程序固化到用户系统的程序存储器中,再借用仿真器CPU使用户系统运行。若无问题,则用户系统插上单片机即可正确工作(注意,不要忘记用户系统时钟、复位电路
的调试)。
范文五:单片机串行通信的调试实验
单 片 机实验报告
通信工程系 13班 ( 201年月12日 )
姓名 学号 31130
实验题目:串行通信的调试实验 2、接线方案:无需另外接线(利用串口通信电缆进行数据通信)。 实验目的: 实验步骤:
掌握单片机串行口调试方法; 1.连接串行通信电缆盒电源线;
实验仪器: 2.将C51单片机核心板上的三个开关分别拨到“独立”、”运行”“单片机”; 51单片机、PC机串行口 3.打开实验箱上的电源开关。
实验原理: 4.利用Keil C51创建实验程序,并进行编译生产后缀为.HEX的文件;
单片机侧利用P3.0和P3.1口和PC机进行串行通信,本实验中,只需要5.利用STC-ISP软件将后缀为.HEX的文件下载到单片机ROM中; 将串行通信电缆连接到51单片机核心板上即可;PC机侧利用STC-ISP下载6.打开STC-ISP软件的串口助手,设置串口、波特率、校验位等,打开串口软件里的串口助手进行串口通信,如下图6-2所示,在串口助手的设置中,后在发送缓冲区输入数据,点击发送数据,观察接收缓冲区的数据变化; 需要设置串口、波特率、校验位、停止位,无误后点击打开串口,并在发送7.观察实验现象,并记录。若实验现象有误请重复第4~6步。
缓冲区输入数据,点击发送数据,则可以再接收缓冲区显示所发送的内容。
实验内容:
1、编写实验程序,实现单片机与PC机的串口通信,实验电路如下图6-1
所示,单片机串行口则利用51单片机核心板上的通信接口,PC机侧接COM1
或COM2。要求通信波特率为2400,串口工作方式为方式1,即:一个起始位,
8个有效数据位和一个停止位。
实验程序: 实验结果:
任课老师评语:
签名:__________
日期_____年__月__
转载请注明出处范文大全网 » PIC单片机在线调试中的一些