所用的材料有:328AU两块;328PU两块;洞洞板两块;面包板一块(后来没有用上);导线排针若干;常用阻容元件(搭建最小系统用)及电脑(不用多说了吧,还有相应的设备和软件)。 不能各老鸟比,菜鸟只能用手头的材料,哈哈哈
一、准备工作 当然是做最小系统,若使用面包板线跳来跳去太多太乱,还是做在洞洞板上吧。
基中有一块已经用328AU做了个仿UNO的板子了,为什么是“仿”,因为UNO板的低8位数字口和模拟口的引脚可以对到洞洞板的孔上,高8位数字口的引脚是对不到洞洞板的孔上的,差半个孔,这可能是UNO板在设计时,防止搭积木是误插考虑的吧,题外话了。这次在其基础上加了个28P的座,变成AU和PU封装通用的了,方便拆换。背面各种“飞仙”不忍目睹。 另一块只做了个最小系并用排针引出需要的脚。这个加了CH340C的TTL口,使用了些贴片。
二、查找FUSE值及BOOTLODER位置
1、凡是使用ATMEGA328构成的各种开发,在boards.txt中都找出来,准备烧写测试。 体情况见表格 2、选择一个写好FUSE值并烧好相应的BOOT LOADER,测试其功能正常。做为上位机。
用此上位机做为ISP为目标芯片下载BOOT LOADER。
三、两种不同BOOT LOADER有些不同 新版的BOOT LOADER叫做OPTIBOOT,是国外某位大神觉得老版的BOOTLOADER太过古董了,于是小宇宙爆发,就写了出来,所以在ARDUINO中选择BOOTLOADER时,路径会不同。 arduino uno相对于duemilanove的一个显著变化就是其bootloader,uno使用了新版的bootloader后,同样是328P芯片,使用空间有32256字节,而duemilanove只有30720字节。 新版bootloader的主要特点 1、可用空间大了,比起原来2K的体积,减少了接近1.5KB。(对于NG的古董bootloader也缩小了0.5K) 2、上传程序速度更快,新版的bootloader波特率是115200。 3、对代码进行了优化,提高了运行效率,而且无看门狗问题。
4、支持使用ATMEGA8 168 328等芯片的arduino。
四、互相伤害 开始伤害 这部分没有完全进行验证,一个是量太大,另一个就是熔丝设置不当,锁了芯片。 测试中发现,有时候烧入BOOT LOADER后,13脚的灯是不闪的。
五、感受 1、使用USBISP或USBASP写熔丝、烧写BOOT LOADER会更好些。如果手头没有这些设备,用ARDUINO AS ISP是一个不错的选择。 2、上位机的软件常用的有两个:PROGISP和AVR_fighter,个人觉着用AVR_fighter会更好些。为什么呢?自己有次用PROGISP直接写入HEX文件,结果报错,以为是偶然事件,没在意。后来和坛友一起折腾ATMEGA1280,又一次出现报错情况,后换了AVR_fighter就可以了。
3、ARDUINO使用同样芯片做的不同型号的开发板,其实就是内部的程序不一样,外部的板子不一样,方便不同用途,同时统一引脚,为搭积木提供方便。
六、花絮 1、USBISP与USBASP: i. USBISP与USBASP分别是2个德国人的设计,在硬件上基本兼容,但内核软件有不同,尽管低层USB都采用开源代,但上层支持协议不同。USBISP是STK500v2conpatible (direct from AVR-Studio useable) 的,直接在AVR STUDIO中支持和使用。而USBASP需要使用专用的编程软。另外ASPISP的更新比USBASP。 ii、这两者硬件电路相同,固件程序不。 iii、两者使用的烧录软件不同,USBISP是模拟STK500下载线,所以可以使用AVR Stduio开发环境来下载烧录程序;而USBASP不能用AVR Stduio,但是现在网上很多支持USBASP的软件,比如PROGISP、AVR _fighter等。 iv、USBISP与并口ISP(STK200/STK300)的比较: 并口ISP(STK200/STK300)下载线需要PC带真正的LPT口,在ICC、CVAVR、BASCOM-AVR中可以直接使用。 USBISP使用USB口,只能在AVR STUDIO中使用(其它支持的不稳定)。 USBISP速度稍为慢一点(M8模拟USB…… 2、改了一个TTL下载器,引出复位线,让其自动下载。
其实就是引出CH340C的DTR或RTS脚。这里将5线排针换策划6排针,并增加了三个排针用于3V3和5V的选择。换好后发现不能下载程序了。查了半天,原来是TDX的线断了,只好飞线。
最后,被锁的芯片使用有源晶振没有搞好,外接时钟从1M到4M都不行。 谢谢欣赏!!
|