跨界组合 使用STM8给AVR编程

玩过Arduino的同学们可能听说过Arduino as ISP,也就是说,用Arduino来当做编程器,给另外一个AVR MCU或者Arduino来编程。这里面使用了两种协议,一种是基于UART串口的STK500v1协议,一种是基于SPI的ISP协议。协议的具体内容可以参考文章底部的参考资料。

我根据这两种协议,独创了一个低成本的编程器:使用CH340作为USB-UART转换器,使用STM8S103F3作为STK500v1协议和SPI ISP协议的处理器。

678172503480862809

之所以这样做,是因为CH340只要一块多钱,STM8S103只要两块多钱,总体比USBasp还便宜呢!

我将ArduinoISP的源码移植到了STM8平台,移植过程非常顺利,C语言的可移植性真的是非常好。

我对下载速度进行了优化调整,将串口的速度定在115200bps,将SPI速度定在了1MHz,这样下载程序的时候很快而且很稳定,优于之前做的USBasp和FabISP。

电路图:

sch

PCB设计图:

brd

程序源码需要整理,稍后会开源与GitHub。

参考资料:

https://www.arduino.cc/en/Tutorial/ArduinoISP

http://www.atmel.com/Images/doc2591.pdf

http://www.atmel.com/Images/Atmel-0943-In-System-Programming_ApplicationNote_AVR910.pdf

 

Published by

Meng Guang

thinking ahead of what's possible