AVR编程器的设计与制作

AVR单片机在欧美非常流行,有非常丰富的开源软件和硬件,Atmel官方开发工具Atmel Studio 7.0的编译器,就是开源的avr-gcc。当然大名鼎鼎无人不知无人不晓的Arduino也是AVR的主场。

AVR单片机的系统也非常开放,有专门的文档讲述编程下载(ISP)协议,因此各种可以DIY的编程器也有很多,我参照USBasp制作了一个,感觉使用很方便,很好很强大。

USBasp本身使用的依然是AVR的单片机,Atmeag8、Atmega48或者Atmega88都可以。这几种单片机的硬件本身并不支持USB接口,但老外很厉害,愣是用软件实现了整套的USB协议,而且功能还很丰富,真是佩服啊。

实物图:

205740602348031697

电路图如下(点击可以查看高清大图),对比原作者的版本,我将电源改为了3.3V电压。现在越来越多的传感器等外部器件,都不再支持5V供电了,所以我使用的MCU都是3.3V供电,省去了各种电平转换电路,非常方便。

sch

PCB设计图如下,这个编程器有一个开关可以选择超低速度下载,可以用于一些默认频率只有1MHz的单片机。

brd

参考资料:

http://www.fischl.de/usbasp/

https://github.com/abcminiuser/lufa

https://github.com/obdev/v-usb

https://github.com/kcuzner/avrdude

https://github.com/freetronics/USBASP

https://github.com/fffaraz/awesome-avr

https://github.com/libusb/libusb

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

Published by

Meng Guang

thinking ahead of what's possible