高一的时候开始玩51单片机,到现在已经饱受51单片机速度慢和资源少的折磨。后来准备学AVR,看Makezine和Instructable上的作品知道了Arduino这个平台,觉得上手比较简单,好不容易攒钱买了一块Arduino Duemilanove的小板子(118大洋,心疼……),用Arduino的IDE做开发非常方便,但并不能学到底层根本的东西。
Arduino不过就是用IDE里的库函数取代了普通编程里的大多数底层操作,让入门门槛非常低(现在又出了用图形模块画程序的软件,能方便地和Arduino的IDE接口,门槛又低了一截……)。加上烧写采用AVR的Bootloader,即IAP功能,也不需要购买烧写器,所以开发成本也低。
但不巧的是,Arduino风靡全球让其周边模块价格飞升,一块改装IIC接口的LCD1602居然能卖到79块,一个5050的贴片RGBLED模块都卖16块,是我们这种学生完全不能承受的……现在假期比较闲,就寻思了一个平衡的方法:
按照Arduino开源的原理图,删去不必要的电路,在洞洞板上搭建一个Arduino的系统(其实就是M8/M168/M328最小系统),然后用ISP给芯片烧写上Arduino的Bootloader,接上一块串口电平转换电路就可以用串口下载了。这样想用Arduino的IDE就可以先写入Bootloader,然后用IDE下载程序即可,也可以直接用ISP下载线把ICCAVR等的HEX文件烧进去,一样工作。
上图:成品正面
接上USBASP下载线烧录任意程序
接上PL2303电平转换板通过ArduinoIDE串口下载程序
和早期买的Duemilanove及其原型扩展板合影,板子上的那一片空地是粘贴小面包板的,还有一片地方放置JTAG仿真接口和后期打算连接的一些板载硬件
电路板背面。学校存积的焊锡只剩半米长了,还有两块板要焊,就没敢大肆锡接过线,果断飞了……ISP下载接口我把上下看颠倒了,于是稍显凌乱……
接口,标准ISP接口和串行接口,绿色电源指示灯,两个黄色串行通信指示,草帽LED是Arduino标准13号数字输出灯
主芯片Atmega8L,额定频率8MHz,给他超到16M,没啥问题
板子还可以按照Arduino的思路设计一块叠加在这块板子上面的扩展板,完成更复杂代码的开发,不过鉴于AVR本身片内的资源已经不少了,就没有着手设计。已经在ICCAVR和Arduino中分别编写了呼吸灯程序,烧写进芯片后都能顺利运行。
[ 此帖被鱼水情在2012-08-17 16:10重新编辑 ]