技术中心
 
 

JDM PIC 编程器的制作

   日期:2011-05-21     来源:互联网    
核心提示:JDM PIC 编程器最初的设计是一个奇特的创新,它非常灵活地运用了三极管及串口的工作原理,在无外部电源供应的情况下实现了VDD+5V、VPP+ 13V电源供应和时钟、数据的收发。
前段时间rd09朋友提供了FENG3对JDM PIC 编程器改进版的制作方法,我照做了一个,觉得这是一款性价比非常高的烧写器,为让大家在制作过程中少走弯路,尽快品尝到成功的喜悦,特撰此文共享。
JDM PIC 编程器最初的设计是一个奇特的创新,它非常灵活地运用了三极管及串口的工作原理,在无外部电源供应的情况下实现了VDD+5V、VPP+ 13V电源供应和时钟、数据的收发。而且串口的使用也不拘泥于其端口引脚的原定义,令人不得不佩服设计者的智慧。当初原设计时作者应该写了一个DOS下的驱动,而后来IC-PROG对其的支持使其在WINDOWS下面发扬光大。鉴于现在JDM被推荐和受欢迎的程度,我们实在应该感谢Jens Dyekjar Madsen创造了JDM,而Bonny Gijzen对它的支持则使其发扬光大。

图一是其最初的设计线路,使用25针的串口,其端口名称在9针的串口中同样可以找到。RTS口在提供时钟信号的同时还通过D3、D4整流、5.1V (D2)稳压管提供+5.1V的VDD电压,DTR与CTS配合实现数据的传送与接受,而TxD则提供烧写时的VPP+13V,这里+13V经过D6与 D2串连稳压得到。这里VDD是一直有供应,而VPP只在烧写时供应。

图二是日本一个火腿族FENG3的改良版,最初的改良是为了使其可以用同一个卡座烧写40PIN及以下的直插式MCU,并且加了一个LED指示烧写状态。其后又增加了Q3,为的是在VPP在VDD之前加到MCU上,我在他的网站上没有找到关于为何要“VPP Befor VDD”的理由,但我猜想是为了一些有内部RC振荡的MCU所设计,因为如果使用有内部振荡的MCU而又选择了这个功能,在多次重复烧写时可能出现问题。试想如果MCU原来烧有程序,在VDD上电的同时MCU开始运作,由于有许多脚接地,在MCU初始化端口后就会导致某些设置成输出脚对地短路而烧坏 MCU。但是这里实现这个功能时有个问题,这将在其后说明。
按FENG3的说明,“制作这个烧写器之前,我推荐首先查一下您的个人计算机串口有没有足够的电压输出。如果TxD, DTR, 和 RTS没有超过±7.5V,这个烧写器将不能正常工作。特别是最近的手提电脑通常使用低电压的RS232芯片。”我在这里要说明的是,实际上在±7.5V 范围烧写器还是不能工作的。至少要达到13.5V才行。什么道理大家可以想到。
FENG3提示其它的要点有6个,请制作者仔细阅读:
  1. 串口的地线 直接与烧写器的VDD相连,电路图中所有的接地符号均是PIC烧写器的地,请不要将串口的地与烧写器的地相连。(我一年前做过一个没成功,因为当时没搞清,误将串口的地和烧写器的地相连)
  2. 这个PIC烧写器的VPP必须在烧8-18PIN和28-40PIN时通过一个开关切换,如果您在烧写时没有正确地选择好开关的位置,过电压可能将您的PIC烧坏。
  3. 这个PIC烧写器不支持所有的PIC MCU,(不支持PIC16C5X; 20PIN的PIC16C770/771可以通过使用一个转接头来烧写。
  4. 因我没有全系列的PIC芯片,所以我没有试过所有的PIC,使用这个烧写器我成功烧写并校验成功了如下型号: PIC12F629, PIC12F675, PIC16F627, PIC16F628, PIC16F630, PIC16F676, PIC16F818, PIC16F819, PIC16F84A, PIC16F873, PIC16F877A, PIC18F2320, PIC18F452.(本人成功烧写和校验了16F7X系列)。
  5. 烧写软件使用Bonny Gijzen. 的IC-Prog,目前的版本是1.05C,大家可以到WWW.IC-PROG.COM去下载。
  6. IC-Prog 中的"Hardware settings"(硬件设置)同JDM programmer.(这里我要提醒大家注意,如果使用WINDOW2000以上,Hardware settings的INTERFACE中要选择WINDOWS API选项,而不要选择DIRECT I/O,因为在32位操作系统中是不允许一般软件直接操作硬件的。虽然这样写的速度会慢一点,但没办法。最多把I/O DELAY值设置成0,但要看电脑配置和芯片烧写校验错误率怎样,我的1.7G赛扬设置成DELAY=0时烧写一片2K字的16F72大概25秒左右,已经很不错了。如果烧写成功率不高,那就设置得长一点。WIN98一下我没试过。)见图三.
rd09 朋友的贴子中有它的PCB图,照此我制作了一个,但是仅烧写了一次就坏掉!LED也不亮了,查是D6—6.2V的稳压管烧掉。究其原因,原来我使用的是 1/2W的稳压管,而台式机的RS232接口的输出电流可达20mA,两个稳压管应该选用1W的才行。而且6.2V的稳压管不是标准的型号,所以干脆采用精密的稳压基准TL431+合适的分压电阻代替,再次烧写,结果还是不行!LED也很亮,就是校验失败!在烧写时测量13V电压居然只有3.5V?结果查下来是第一次烧写过的那片16F873牺牲了……换一个16F72上,烧写、校验一次OK!感谢RD09!感谢JDM!为了让大家提高制作的成功率,下面我再将我制作中零件的选型和改进要点给大家共享:
  1. 两个稳压管,上面提到了需要1W的,推荐使用TL431,它的电流可达100mA,更详细的参数和使用方法见它的数据手册。
  2. 两个三极管,耐压要达到50V以上,电流100mA以上,截止频率大于30MHZ,我使用2SC945代替,只是脚位不一样,安装时需要扭过,或者朋友们也可自己重新画PCB图。
  3. 场效应管的选择:上面提过要实现VPP BEFORE VDD功能有问题,我在线路板上用了一个IRF9014,FENG3在BBS中推荐使用2SJ377,我装好以后发现无论烧写与否VDD+5不能被完全关断,实际上P沟道的场效应管需要负电压才能导通,我测量TxD端,在不烧写时电压为0V,没有所期望的-15V电压出现,所以那个MOSFET不能被完全关断。好在我烧写的是28PIN的16F7X,此电压只要在烧写时有+3.5——+5V就行了。如果不烧写有内部振荡的MCU,这个管子不接也罢,况且P 沟道的MOSFET又少又贵。在实际使用中我做了如图3的改动:使用NPN的管子,电流大于500mA,耐压大于15V,、我选用8050,这样就没有问题了。如果怕TxD有负电压输出而击穿Q3的BE脚,可以在B极串一个二极管。改进后的电路如图四。
  4. 电阻均可采用1/8W或1/4W ±5%的碳膜电阻。
  5. 串口插座为9针母插。
  6. 其它材料恕不多述。
烧写时芯片的放置见图五:
 
标签: 制作 编程器 PIC JDM
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
可能喜欢