ISP 在线系统编程

这个问题也是在学单片机开始前就在考虑的,不过本着先学习后实践的目的就搁浅了,这里总结一下。

发展到如今(2019年)常用的方式是通过“在线系统编程(ISP)”这种方式来把程序写入到芯片(MCU)里,这种方式的好处是芯片不需要取出,这里我理解的在线两个字是电路。也就是说即使你的芯片已经焊接在电路版上也不同取下来通过“编程器”来进行程序写入。这里又引申出来几个协议,这些协议是按照电气标准及协议来区分的比如:RS232、RS422、UART等,这里的UART另一种叫法是TTL,其中常用的是RS232和UART(TTL)。

主要的区别RS232是负逻辑电平,5~12v是低电平,而-12~-5v是高电平。而TTL也就是UART没有那么多区分,它的电平只是5V。


网上很多的USBISP、USBASP实际就是USB接口转TTL或RS232协议这样可以对芯片进行程序写入。开始是只有USBISP也就是通过USB接口去实现转换相应的TTL或者RS232协议来达到程序写入的目的。而USBASP查阅了很多资料,也没有发现他俩的区别,不过在USBASP的官网倒是大致看出点眉目。实际USBASP和USBISP在电路设计上是一模一样的,提一点的是不论是USBASP还是USPISP他们都用到了AVR芯片。而USBASP只是一个固件程序,就是将名叫USBASP的固件写入到USPISP的电路里,这个电路里有一个AVR芯片。如果你将USBASP这个固件写到了USPISP这个电路中,那么你就可以通过Progisp这类软件来进行程序烧写。否则你只能通过AVR STUDIO这个程序来进行烧写。在我的理解看来不论是USBISP这个电路,或者是USBASP这个固件。他们本质上都是上面提到的“编程器”即你必须取下MCU芯片,通过引线或者电路中预留好的接口槽进行芯片写入。没有达到ISP可在线系统编程这种思想。他们的大致关系是

屏幕快照 2019-11-07 下午10.26.32.png


以上是对USBASP和USBISP一些解释,以及对“编程器”的一些关联想法,有了这个固件(USBASP)以后可以更好的支持一些协议或者加快写入速度。


对于“在线编程系统”如何实现,实际已经有很成熟的方案,即在电路里增加一块USB转串口的芯片。通过这个芯片达到数据传送到MCU里。因为你的电脑或者其他设备的USB接口是无法直接驱动芯片的。这里就要介绍两个能直接放在电路里的转换芯片。如:MAX232和CH340等。

MAX232是可以将TTL信号转换为RS232信号,或者RS232信号转TTL信号的。不过它的体积相对大一些,焊接在电路中比较占用位置。

CH340是将其他信号转换为TTL信号,体积相对较小,而且各种MCU芯片也相对应的支持TTL信号,TTL的信号线是MCU上的TXD和RXD。

使用上述两个芯片,就不用去做“编程器”了,一般像51单片机就是用的CH340芯片来进行和USB接口通讯写入程序的,注意的是这种情况下,你的整个电路要上电,否则是没办法写入的。而“编程器”则不需要给MCU供电,直接用引线连接到“编程器”上,“编程器”自己就可以供电给它并进行写入。

更为详细的解释,可以自行网上搜索。这里也给出一个建议:如果你的电路是在洞洞板或者面包板上进行实践的,我建议买一个“编程器”某宝搜索“USBASP或USBISP”关键字即可,10块左右。如果你的电路是要制作成PCB并且要进行调试的,我建议你买一块USB转串口芯片,直接焊在电路里依旧是10块左右。


以上仅为个人理解,如有错误还望指出。


ISP 在线系统编程


本站如无特别说明即为原创,转而告知:(https://iwonmo.com/archives/1629.html)

标签: USBASP, USBISP

添加新评论