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. Fedora 安装WIN字体(如 宋体)
  2. 存储过程---角色权限叠加
  3. MATLAB Simulink中如何实现锁相环
  4. Nginx教程-location配置
  5. java 时间序列预测_基于spark的时间序列预测包Sparkts._的使用
  6. 基于OpenCV实现二值图细化,骨骼化并求出端点和交叉点
  7. getComputedStyle
  8. HCIA--华为认证初级网络工程师
  9. python的就业方向有哪些城市_Python就业方向有哪些?人工智能就业薪资待遇高吗?...
  10. Android音频系统之音频基础
  11. 2008秋季-计算机软件基础- vc6 wintc 编译器
  12. TFTP协议解析及C/C++代码实现
  13. chrome插件,常用插件,必备插件,黑科技
  14. 主叫用户、被叫用户、局内呼叫、局间呼叫、发话端局、受话端局 等定义
  15. TCP/IP 1.概述
  16. 华为认证网络工程师含金量高吗
  17. 【学术渣解惑】ICLR是个什么样的会议?
  18. DBCO-Sulfo-NHS二苯基环辛炔-磺基活性酯1400191-52-7水溶性试剂
  19. 骨传导耳机是怎么传声的、骨传导耳机的优点是什么
  20. 基于Xilinx Artix7的PCB设计总结

热门文章

  1. 服务器重置消失了怎么办,饥荒服务器突然重置后如何恢复 | 手游网游页游攻略大全...
  2. 蓝桥杯嵌入式RTC闹钟
  3. [经验教程]为什么淘宝显示定位失败怎么重新开启淘宝定位?
  4. 如何注册企业邮箱?外贸企业邮箱申请注册,公司企业邮箱申请
  5. 简单操作几步复制保存到卷皮网上多个商品图片
  6. C语言指针学习中易犯的错误
  7. 信号量机制(PV操作)
  8. AutoJs学习-Canvas画出小猪佩奇
  9. 大学计算机英语PPT,MULTIP~1.PPT_计算机英语(ppt资料)_ppt_大学课件预览_高等教育资讯网...
  10. 安卓TextView修改字体和设置字体渐变色