100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > atmega168p与328p_atmega328P 写入 Boot Loader的那点事 之 互相伤害

atmega168p与328p_atmega328P 写入 Boot Loader的那点事 之 互相伤害

时间:2022-11-18 02:46:23

相关推荐

atmega168p与328p_atmega328P 写入 Boot Loader的那点事 之 互相伤害

认识众多玩家高手/拆客/DIYer,查阅更多资源,一起学习技术知识

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

所用的材料有:328AU两块;328PU两块;洞洞板两块;面包板一块(后来没有用上);导线排针若干;常用阻容元件(搭建最小系统用)及电脑(不用多说了吧,还有相应的设备和软件)。

不能各老鸟比,菜鸟只能用手头的材料,哈哈哈

一、准备工作

当然是做最小系统,若使用面包板线跳来跳去太多太乱,还是做在洞洞板上吧。

基中有一块已经用328AU做了个仿UNO的板子了,为什么是“仿”,因为UNO板的低8位数字口和模拟口的引脚可以对到洞洞板的孔上,高8位数字口的引脚是对不到洞洞板的孔上的,差半个孔,这可能是UNO板在设计时,防止搭积木是误插考虑的吧,题外话了。这次在其基础上加了个28P的座,变成AU和PU封装通用的了,方便拆换。背面各种“飞仙”不忍目睹。

001.jpg (85.58 KB, 下载次数: 0)

-7-24 15:46 上传

002.jpg (124.28 KB, 下载次数: 2)

-7-24 15:46 上传

003.jpg (143.06 KB, 下载次数: 0)

-7-24 15:46 上传

另一块只做了个最小系并用排针引出需要的脚。这个加了CH340C的TTL口,使用了些贴片。

004.jpg (137.52 KB, 下载次数: 0)

-7-24 15:46 上传

005.jpg (195.77 KB, 下载次数: 0)

-7-24 15:46 上传

006.jpg (116.81 KB, 下载次数: 0)

-7-24 15:46 上传

二、查找FUSE值及BOOTLODER位置

1、凡是使用ATMEGA328构成的各种开发,在boards.txt中都找出来,准备烧写测试。

007.JPG (97.14 KB, 下载次数: 0)

-7-24 15:46 上传

体情况见表格

008不同开发板情况.JPG (122.9 KB, 下载次数: 0)

-7-24 15:46 上传

2、选择一个写好FUSE值并烧好相应的BOOT LOADER,测试其功能正常。做为上位机。

用此上位机做为ISP为目标芯片下载BOOT LOADER。

009不同开发板写入.JPG (56.98 KB, 下载次数: 0)

-7-24 15:46 上传

三、两种不同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。

四、互相伤害

开始伤害

010.jpg (157.83 KB, 下载次数: 0)

-7-24 15:46 上传

011.jpg (164.01 KB, 下载次数: 0)

-7-24 15:47 上传

这部分没有完全进行验证,一个是量太大,另一个就是熔丝设置不当,锁了芯片。

012不同开发板伤害.JPG (99.97 KB, 下载次数: 0)

-7-24 15:46 上传

测试中发现,有时候烧入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的线断了,只好飞线。

IMG0601100358.jpg (370.67 KB, 下载次数: 0)

-7-24 15:47 上传

IMG0601095506.jpg (82.9 KB, 下载次数: 0)

-7-24 15:48 上传

IMG0601095534.jpg (441.5 KB, 下载次数: 0)

-7-24 15:48 上传

IMG0601100336.jpg (340.33 KB, 下载次数: 0)

-7-24 15:48 上传

最后,被锁的芯片使用有源晶振没有搞好,外接时钟从1M到4M都不行。

谢谢欣赏!!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。