打印
[开发工具]

排除无效的设备ID错误

[复制链接]
1580|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
淘猫汤姆|  楼主 | 2018-12-21 17:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 淘猫汤姆 于 2018-12-21 17:34 编辑

http://microchipdeveloper.com 是个好网站
Chrome是个好浏览器图片看不见的话,请下载附件 排除无效的设备ID错误 - 开发人员帮助.pdf (690.7 KB)



本文介绍了可能导致无效设备ID错误的原因,并提供了有关如何解决该错误的指导。
背景为了获得在PIC运行的程序®微控制器,你必须将代码编译成十六进制文件,然后下载(程序)这个十六进制文件到PIC。

要将hex文件编程到PIC中,必须首先将器件置于称为Program Mode的特殊操作模式。一旦进入编程模式,十六进制文件中的数据可以通过PIC上的编程引脚发送到器件。
一种编程工具(被称为编程器/调试),如PICKIT™3或MPLAB ® ICD 3 / PM3 / REAL ICE™,可以用来把PIC进入编程模式和编程十六进制文件数据到设备中。根据PIC单片机的不同,使用了不同的编程算法,因此编程人员必须找出它所连接的器件,然后使用适当的算法。为此,它进入程序模式并尝试读取PIC中包含器件特定标识号的寄存器(设备ID)。
:发出程序命令时,MPLAB X IDE或IPE软件会处理此操作。
当一切正常工作时,程序员将从PIC单片机读取器件ID并识别器件(图1a)。

图1a:读取设备ID
当出现问题时,程序员将无法读取设备ID,并会给出错误(图1b)。

图1b:无法读取设备ID
进入程序模式将设备置于程序模式的两种主要方法如下:
  • MCLR / Vpp引脚上施加高电压
  • 将32位密钥计入程序数据引脚(PGD)。
使用哪种方法取决于正在编程的特定设备。
一旦进入编程模式,就可以使用程序数据(PGD)和程序时钟(PGC)引脚访问和编程器件的程序存储器。
高压ICSP™(在线串行编程)要使用此方法将器件置于编程模式,编程器会将PGCPGD引脚保持为低电平,并将MCLR / VPP引脚从0 V升至V IHH(高电压电平)。这些转换的时序要求如下所示。
有关参数P1等的含义,请参阅器件编程规范文档。

图2:高压Vpp进入方法
使用密钥序列的低压ICSP用于进入编程模式的第二种方法不需要MCLR / VPP引脚上的高电压; 相反,它使用32位密钥序列(十六进制格式的“MCHP”),该序列被输入到程序数据引脚(PGD)上。具体来说,程序员采取的步骤如下:
  • 短路将MCLR驱动为高电平,然后将其驱动为低电平。
  • 将32位密钥序列计时到PGD引脚上。
  • 在指定的时间段内将MCLR驱动为高电平并将其保持在此状态。

图3:低电压,串行键输入方法
故障排除程序模式需要引脚连接编程模式操作需要使用编程电压引脚(MCLR / VPP),编程数据引脚(通常标记为PGD,PGED或ICSPDAT)和编程时钟引脚(通常标记为PGC,PGEC或ICSPCLK)。此外,此模式要求电源引脚必须正确连接,即必须连接所有VDD和VSS引脚,以及AVDD和AVSS引脚。如果器件具有VCAP,ENVREG或VBAT引脚,则必须连接这些引脚。设备网页上提供的每个设备的编程规范文档将详细说明此信息。
检查编程信号步骤1:使用示波器验证编程引脚(MCLR / VPP,PGD和PGC)上的所有信号是否符合电压电平和时序规范,并且这些信号出现在实际器件引脚上,如下图:

图4:使用示波器检查PIC单片机引脚上的信号
MCLR / VPP引脚可以首先进行检查。图5示出了在高电压电平和上升时间规范为上的电压MCLR / VPP引脚作为编程规范文件和这些参数的示波器测量中列出MCLR / VPP引脚(图6)。

图5:与编程规范文档中的VPP电压电平和上升时间相关的信息
注意:图5中显示的值取自一个特定器件的编程规范。根据使用的设备,它可能会有所不同。请始终参考所用特定设备的编程规范。

图6:编程电压VPP高电平和上升时间
对于PGDPGC引脚,对示波器进行目视检查将确认两个引脚是否有效,电压电平是否接近VDD电压电平以及方波是否过于圆。有关在功能设置上看到的内容的示例,请参阅图7。如果需要,可以根据编程规范中的参数检查电压电平和时序的详细检查。

图7:编程数据和时钟信号,PGD和PGC
步骤2:如果编程引脚上的信号出现问题,则应沿着从PIC单片机到编程器的路径检查信号。例如,如果引脚上没有信号,或者存在的信号电压电平不正确,则可能表示存在问题。目标是找出问题的根源是否直接来自程序员,或者是否在程序员和PIC单片机之间的某个时刻发生。
步骤3:为了将编程器与目标板硬件隔离,用户可以在可能的情况下断开编程信号VPP,PGD和PGC与目标板的连接,并保持电源连接。如果没有连接电源,程序员将不会尝试进入程序模式,因此它必须存在。一旦编程引脚与电路板断开,就可以用示波器检查它们。这将显示信号的外观,而不受目标板硬件的影响。
常见原因以下是获取“ 无效设备ID ”或“ 无法获取设备ID ”错误的常见原因列表:
  • 编程器与PIC单片机上的编程引脚之间连接不良。这可能是连接错误的引脚或不稳定的机械连接的结果。
  • 编程引脚上的外部元件。添加到编程引脚的任何组件都可能干扰编程信号。
  • 并非所有的引脚连接。除编程引脚外,还有其他引脚,这些引脚是在编程模式下正常工作所必需的。请参阅上面的“ 程序模式所需的引脚连接 ”部分。

返回顶部







沙发
martin| | 2018-12-21 19:14 | 只看该作者
还有:用错了芯片型号和芯片烧坏了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

243

帖子

0

粉丝