ICSP(In-Circuit Serial Programming)即在线串行编程,通过保持RB6和RB7引脚为低电平,VDD 为编程电压,并将MCLR(VPP)引脚电压从VIL增加到VIHH,器件便进入编程/校验模式。此时,RB6为编程时钟线,RB7为编程数据线。在该模式下,RB6和RB7都是施密特触发器输入,当RB7驱动数据时,它是CMOS输出驱动。

  复位后,为使器件进入编程/校验模式,程序计数器(PC)指向00h地址。然后可向器件发送一个6位的命令,根据这一命令是装入还是读出,14位编程数据将被提供给器件或是从器件中读出。但是在线串行编程模式下,看门狗定时器电路不能产生器件复位。

硬件电路

在线串行编程电路应该注意以下问题:

1)  MCLR/VPP引脚与电路其它部分相隔离

通常设计中MCLR/VPP引脚与RC电路相连,上拉电阻接VDD,电容接地。VPP电压必须与电路的其它部分隔离,根据电容器的大小,RC电路可能影响ICSP的操作。因此当RC电路与MCLR/VPP相连时,可以使用了肖特基型二极管来隔离电路。当对PICmicro ® 单片机编程时,MCLR/VPP引脚将被同时驱动至大约13V,因此应用电路必须与编程器提供的编程电压隔离。

2)  RB6和RB7的负载

RB6和RB7引脚用于PICmicro®单片机的串行编程。RB6是时钟线,RB7是数据线。RB6由编程器驱动,RB7是双向引脚,编程时由编程器驱动,校验时由PICmicro®单片机驱动。这两个引脚必须与电路的其它部分隔离,从而在编程时不会对信号产生影响。将RB6和RB7与电路其它部分隔离时必须考虑编程器的输出阻抗。隔离电路必须使RB6能够作为PICmicro®单片机的输入,而RB7能够作为双向引脚(PICmicro® 单片机和编程器都能驱动它)。

为简化接口设计,使用microchip推荐的I/O引脚的最佳方法:将RB6/RB7专用于ICSP;这些端口作为输出时,具有极轻的负载;采用隔离电路,使信号满足ICSP规范。

3)  VDD、MCLR/VPP、RB6和RB7引脚的电容问题

编程引脚的总电容将影响编程器输出信号的上升速率。典型电路中,一般在VDD和地之间接有几百微法的滤波电容以抑制噪声和电源电压波动。但是这种电容需要编程器必须具有相当强的驱动能力,才能满足VDD上升速率的要求。大多数编程器只能对PICmicro®单片机进行编程,而不能驱动整个应用电路。一种解决方案是在编程器和应用电路之间加一块驱动电路板。驱动电路板有独立的电源,应该满足VPP和VDD引脚电压上升速率的要求,并可为整个应用电路供电。RB6和RB7是否需要缓冲取决于具体的应用。

4)  VDD的最小和最大工作电压

Microchip 编程规范规定器件应在5V电压下编程。如果应用电路只能在3V电压下工作,那么需要一些特殊的措施。例如在编程时将PICmicro®单片机与其它应用电路完全隔离。另一个问题是,必须在应用电路的最小和最大工作电压下对器件进行校验。例如,在一个使用三个1.5V电池供电的系统中,其工作电压范围是2.7V到4.5V。而编程器必须在5V电压下对器件进行编程,并且必须在2.7V和4.5V电压下对程序存储器进行校验,以确保编程正确。这样可以保证PICmicro® 单片机在整个工作电压范围内都能正常工作。

5)  PICmicro®单片机的振荡器

PIC单片机在代码执行前振荡器上电延迟定时器要等候1024个振荡周期。RC振荡器不需要上电延迟时间,因此不使用上电延迟定时器。编程器必须在RC振荡器振荡4次之前,令MCLR/VPP达到进入编程模式所需的电压。如果RC振荡器振荡了4次或4次以上,程序计数器将会增加到一个不确定的值X。如果这时器件进入编程模式,程序计数器不为零,编程器将从偏移量X开始烧写代码。有一些方法可以弥补MCLR/VPP的低上升速率问题。第一种方法是先不接RC振荡器的电阻,对器件编程后再接入R电阻。另一种方法是在编程时用编程接口将 PICmicro® 的OSC1引脚短接到地,这样在编程期间便不会产生振荡。

  综合考虑以上情况,使用最简方式实现PIC18F4550的ICSP连接电路。在电路中,增加了由RD0和RD1口驱动的发光二极管,由此来验证烧写电路是否能够正常工作。

对于ICSP接口与PIKkit™ 3连接的如下图所示,必须使PIKkit™ 3与ICSP的引脚对应。

转载于:https://www.cnblogs.com/markmin214/archive/2013/04/10/3012049.html

PIC单片机在线串行编程(ICSP)的实现相关推荐

  1. pic10f220 c语言,PIC10F202高性能8位全静态闪存CMOS微控制电路串行编程(ICSP™)功能...

    是一款低成本,高性能,8位,全静态, 基于闪存的cmos微控制器. 它采用risc架构, 只有33个单字/单周期指令. 除程序分支外, 所有指令均为单周期(1μs), 程序分支需要两个周期. 它提供的 ...

  2. 单片机的串行通讯就是排成一队走,并行就是排成一列走

    单片机的串行通讯就是排成一队走,并行就是排成一列走 ///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像黑色字体加我地球呺也能领 ...

  3. Storm之——流组件简单串行编程实践

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/78447229 Storm是一个分布式是实时计算系统,它设计了一种对流和计算的抽象, ...

  4. 51单片机:串行口控制寄存器SCON

    51单片机:串行口控制寄存器SCON 串行口控制寄存器SCON的格式 D7 D6 D5 D4 D3 D2 D1 D0 SCON SM0 SM1 SM2 REN TB8 RB8 TI RI 98H 位地 ...

  5. 【51单片机】串行口连接74LS164进行串行/并行转换,输出到一个七段数码管。数码管循环显示0-9。采用串行通信方式0,定时间隔1秒。

    实验内容:51单片机的串行口连接74LS164进行串行/并行转换,然后输出到一个七段数码管.数码管循环显示0-9这10个数字.要求采用串行通信方式0,定时间隔1秒. 工具:proteus+keil # ...

  6. 告别ASP(主动串行编程)下载模式

    告别ASP(主动串行编程)下载模式 --JTAG---EPCS1 序 一直以来,一般人下载FPGA 的配置芯片,都是用ASP下载模式,USB Blaster接口要插来插去,真的是麻烦,其实,下载FPG ...

  7. protues仿真中12864液晶屏串行编程的感想(从实际硬件驱动芯片 ST7565R到仿真硬件驱动芯片SED1565)

    因为疫情的原因,没办法回学校拿毕业设计,自然也就没办法调试,虽然硬件电路都搭好了,但没法调试也就意味着不知道程序编写是否有问题,所以就想着在protues上把硬件电路搭起来调试程序,因为单片机用的是s ...

  8. 51单片机学习 串行口通信实验

    文章目录 一.实验目的 二.原理 三.实验内容 一.实验目的 掌握串行口工作方式的程序设计,掌握单片机通信程序设计方法. 二.原理 发送指令:MOV SBUF,A 接收指令:MOV A,SBUF 1. ...

  9. 基于AT89C51单片机实现串行总线芯片测试实验平台的设计

    应用串行接口芯片扩展系统时,在初步选择了串行接口的芯片后,为了对芯片的资源更好地了解,开发者一般在系统设计前搭建一个简单的硬件电路并编制相应的软件对其测试,待性能验证后再确定最终的设计方案。本文根据这 ...

最新文章

  1. plt保存图片_人工智能Keras CNN卷积神经网络的图片识别模型训练
  2. python爬虫案例-陶瓷公司数据爬取
  3. WinCE开发初探——开发环境
  4. Mac m1 ocr 工具
  5. 【SICP练习】127 练习3.58
  6. linux安装python_VTK:华为笔记本电脑+深度deepin-linux+python下安装和入门
  7. python3 web框架_循序渐进Python3(十二) --0--  web之框架
  8. python ks检验_python – 使用Scipy的stats.kstest模块进行拟合优度测试
  9. [linux 日常]修改ls目录的颜色
  10. 深入探索PowerPivot客户端和服务器端架构
  11. 【Qt教程】1.5 - Qt5内存回收机制-对象树、窗口坐标系
  12. mysql数据库进阶_MYSQL数据库进阶操作
  13. 宽带通云解析结合用友致远A6使用方法
  14. Pandorabox(Openwrt) 双宽带(WAN) 叠加网络实战
  15. 前端js 面试题 forEach 和 map 有什么区别?
  16. win10安装Vmware虚拟机黑屏的解决
  17. Python3 中英文列表输出对齐
  18. 函数调用之特殊三位数
  19. 计算机专业硕士毕业论文摘要,湖北计算机专业硕士毕业论文英文摘要,经济学专业本科毕业论文...
  20. 【Torch API】pytorch 中torch.ones_like和torch.zeros_like函数详解

热门文章

  1. 补充学习——原始套接字中协议结构体
  2. PID控制参数调整过程图
  3. RockBrain USB Server- 云计算虚拟化集中管理、远程共享解决方案(涉及银企直联)
  4. 这样的情书,女生会喜欢吗
  5. MongoDB Compass find查询是否包含某字符串
  6. ABAP 的代码规范标准
  7. micro:bit是什么?小学生拿着它就能召唤神龙?
  8. Jupyter Notebook 提示 “IOPub data rate exceeded“
  9. 小白如何用C++制作经典网游DNF?C++实战教学!
  10. 带机200台无盘服务器,200台-300台左右规模网吧方案