嗯,又是好久没有更新。
今次记录一下上次说的ICSP烧写线的问题,前几天,项目再度启动,将直插改为了贴片,然后,为了烧写,必然要在板上用ICSP烧了。
手头烧写器是PICSTART。在masters2007上,我也问了很多人,一般官方的回答都是:PICSTART不能ICSP,原因是驱动力太小。然后都推荐ICD2或者专业的PM3。不过,ICD2说到底不过是个调试器,拿来烧写总是有点不爽,而且手头有PICMATE,买ICD2纯属重复投资。至于PM3。。。没钱,哪位有钱的,买去……我们是没那想法……
但是,私下和其他一些开发商交流了一下,他们说可以用PICSTART进行ICSP烧写的,并且已经成功了。所以,有成功的先例,我们就要研究并解决之。呵呵。回来之后,经过我一整天的努力,还是解决了这个小小的问题,我还是很强大的嘛,哇哈哈哈哈……
那么,不卖关子了,直接说一下解决方法和注意事项吧:
首先,原理很简单,就是把芯片对应的如下几个脚引出来:RST/ICSPDAT/ICSPCLK/VDD/VSS,然后插在烧写器的ZIP-40芯片座的相应的位置上即可。RST就是MCLR,一般是1脚,ICSPDAT和ICSPCLK就是两根数据线,一般是RB6/RB7,具体的看DATASHEET有标注,但是标注的名字可能不一样。。嗯,不过一般来说,是最后一脚和倒数第二脚。VDD和VSS就不用多说了,这里要说的是:VSS一定要引出来,因为牵涉到一个信号共地的问题,但是VDD不一定,因为PICSTART的驱动能力的确很小,所以一般都需要目标板供电,所以VDD可有可无。然后某些芯片可能有两组VSS/VDD,这时只要引出其中一组就可以了。
然后,关键是PCB上元件的设计,首先是ICSPCLK和ICSPDAT两个脚,最好是和外围元件之间有隔离措施,比如设计一个跳线,烧写时将跳线取下,保证这两个脚仅连接烧写信号,这是为了防止信号畸变造成的信号不可读取。因为我们的板子上面,ICSPCLK和ICSPDAT两个脚就是悬空的,所以这方面我们比较方便。但是对于使用了这两个脚的设计,最好还是隔离开比较好。这个不仅仅是使用PICSTART,使用任何烧写器进行ICSP烧写都推荐这样做。
然后,VDD方面,由于PICSTART驱动力着实很弱,所以一般干脆不接此脚,然后烧写时目标板也供电,即可解决。根据烧写原理揣测,供VDD是为了保证内部的ICSP模块能正常工作,那么,只要供给他5V电,他ICSP就能正常工作,至于这5V电是烧写器供的还是目标板供的,对其没有意义。不过这里也要说的是:必须是5V电,低电压的用户需要另想办法,实在不行,也跳线隔离,然后外接一个5V直流电下来……呵呵,这个只是设想,没有尝试过。原理上是可以的……至于使用ICD2和PM3来ICSP的,一般这两个设备都可以提供约100mA的电流(其实最大电流比这个值高,但是安全起见一般都标称100mA),如果目标板的电流消耗小于此值,可直接VDD连接供电,无需外接电源。直接VDD供电时,貌似VDD上不能有太大的电容负载,防止其影响上升时间,不过貌似这个在VDD上不会太有问题。
VSS自然不必说,接出来就行,本身就是接地的……
另一个关键是RST,就是MCLR。这个,根据烧写手册上说,进入烧写状态时,将会有13V的电压,烧写时,电压可达17V。所以,防电压倒灌!这个是一定一定要注意的。然后,MCHP官方的MCLR推荐电路是电阻上拉,然后有个电容接地。但是,烧写规范则是要求:该脚不得有容性负载。所以,很明显,二极管,他加了二极管。呵呵。在MCLR脚出来,一根线引出去留接口,另一根线引出去,先接个二极管,然后在接正常的复位电路。这个,就是我研究一天的最大结果。有了这个二极管,基本上问题都可以解决了。这样连接会导致复位不能,已经在这里对其进行了修改,并有相关示意图。稍微移动一下复位开关就好了。
这样,如上的五根线——一般用四根线,不用VDD——外围电路都搞好之后,引线出来,根据你的芯片型号,把线插到PICSTART上芯片座的相应的位置上,然后,给目标板上电,接下来,就按照正常的烧写流程来就行。呵呵。打破PICSTART不可ICSP的禁咒,就此可以实现。
本人使用16F914,TQFP封装,已经测试成功,目标板电流约150mA,所以目标板供电。测试烧写60次,通过率100%。嗯。呵呵。希望能对那些想用PICSTART搞ICSP的朋友们有用。那么,就到这里,再见吧~
- 本文固定链接: https://www.dragongod.net/2007/12/make-icsp-using-picstart/
- 转载请注明: 龙天 于 龙天小筑 发表