研究了几天arduino,
成果:
把以前购买的2块avr实验板,灌入了bootloader,改成了arduino,
把一个4块钱的atmega8芯片,加上几个插针,2个电容, 做成了arduino,
diy arduino要注意的几个地方:
bootloader系统的时钟频率,要正确的写在board.txt里面,否则一些delay指令会不准确。
bootloader的串口速率,也要正确写在board.txt里面,否则不能通过串口下载程序。
修改bootloader的时钟频率和通讯速率,在bootloader目录下的Makefile中。
bootloader目录下有几套不同的bootloader, 最好的是optiboot, 体积小。
在Makefile里面可以指定在启动时,led闪动几次, 最好不要大于2,否则,会影响串口下载。
一个usbasp下载线,是必须的,淘宝价12元, 自己用atmega8l做,大约5元成本。
atmega8l内部的rc振荡器, 可以工作在1,2,4,8Mhz,通过校准寄存器的修改, 能提高到12Mhz, 可以省掉外置的12M晶振, 使用没问题,但是校准很麻烦,并且软件模拟的usb串口,对时钟很敏感, 校准寄存器的数值加1或减1,usb就不能工作了。不太 适用。 玩玩可以,用着一个不带晶振的usbasp下载电缆还是挺拉风的。
串口下载程序的时候,需要适时复位一下,让bootloader进入下载模式,在串口上,是通过DTR信号,来控制目标板的自动复位, 如果是3线制的, 就要手动按复位键,在屏幕显示编译完成,开始下载的一瞬间,按下复位键。
bootloader 用optiboot比较好,
附件 | 大小 |
---|---|
p8_patch.diff.old | 6.78 千字节 |
p8_patch.diff | 4.16 千字节 |