微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > AVR熔丝位设置让我在吃苦头中成长

AVR熔丝位设置让我在吃苦头中成长

时间:11-30 来源:互联网 点击:
有一小段时间没有来空间扫一扫雪了,前段日子把避障小车终于做了出来,时间比较忙还来不及拿出来和大家分享,这些天因为要公司要做一款UNO控制板,之前感觉自己比较停留在对单片机的编写程序上,忽略了对单片机内部的一些寄存器的了解上,当然在学习PIC的时候会去了解里面的结构,比如AD和DA的分频,中断里面寄存器的控制,SPI控制的结构等。但是在AVR这方面还真是大大的欠缺。

UNO是arduino一个开源的产品,基本上驱动程序,bootload等都可以在其官方上找到,不过说句实在的,因为一直没有成功写进atmega8u2-mc这款控制器里面,一直在怀疑着自己找到的是不是正确的bootload的。就这样子弄了两个星期无果,自己郁闷,公司估计也很郁闷。中间断断续续地焊了几块板,几乎把打样的板子都快用光了,刚开始怀疑是atmega8u2-mc焊接有问题,毕竟公司也是第一次焊QFN的封装,而且两个焊盘间距小得我在默认PCB画图的时候软件老会报错。在两个星期后终于开始把问题弄了个明朗。

在逛arduino官网的时候,一直没有找到关于USB转串口的模块,也就是atmega8u2-mu是怎么下载程序的,之前在提议下公司买了一个专用的下载器,在经过无数次下载程序后发现烧写得进去,但是好像还是行不通的。一直以来没有对UNO里面ISP下载有所想法,一直认为是给主控制部分mega328/168留着的两个ISP下载串口,实际上只能说自己太粗心了。

直到突然在看我画的PCB板的时候恍然大悟,怎么旁边那个ISP接口是跟ATMEGA8U2连在一起的呢?另外,看了一下数据手册,所接的串口还真的是ATMEGA8U2的ISP。

就是少了这个发现的情况下,让自己吃了不少夸呀。实践证明这里才是ATMEG8U2的下载口。

当时那个心情真的是无法形容,赶紧来了一个USBASP下载器(这个下载器是我自己的,当做为公司做贡献了),标准板本基本上是10个接口的,但是ATMEGA8U2是6个引脚的,不过这个对于我倒是好办,在avr单片机论坛http://www.51hei.com/bbs/mcu-avr-1.html查了相关资料,把10口的引脚做成了6个引脚就搞定了。怀着忐忑的心情下载了程序,居然很顺利的下载到里面去了,下载界面显示:


把UNO插进电脑,居然提示发现新硬件,并自动弹出一个安装驱动程序的下载框,心里那个高兴无法言表,打开IDE也发现了com口了。按照我的惯性思维:有发现com口是可以正常下载程序了,接着是下载程序了,可是无奈的事是下载程序的时候提示


看来是下载程序还有问题,这个问题看了下官网,按着解决办法弄了一个上午又没有什么进展。真是无语了,表示很蛋疼。

后来根据硬件在下载程序的时候灯的显示结果,电脑发送灯会亮,单片机接收灯也没有问题,问题是它们和接收有点不同步的感觉,我想有可能数据在那个地方丢失了,再看了一些AVR单片机的资料,哎,这次终于知道是为什么了,原来是我设置熔丝位的时候没有设置好,这就是对AVR单片机没有深入了解的结果。记得之前学习PIC的时候,在开头总会写上__CONFIG(0x313b);而AVR则不同。在经过一天的研究中,把公司的几个MEGA8U2熔丝位给弄坏了,终于在第五个的时候下载成功,IDE也发现在了COM口,下载程序给MEGA328的时候也顺利了,搞了半个多月的UNO终于算是完美地画了一个句号。下面把我这些天的学习,个人对AVR的设置的看法拿出来跟大家分享一下吧,也许对大家研究和学习AVR会有帮助。

我用的是USBASP下载器,用的软件是网上随便都能够下载得到的progisp。

1.它在编程的时候为0,未编程的时候为1(这里跟我们平时编程可能有点相反,我吃过这夸了,烧坏了两个芯片以后发现了这个问题,其实网上也有很多这方面资料,要是自己能够早点看到别人写的文章给说明一下就好了。自己可以给公司省几块还算值钱的IC呢)。

加密位设置:LB2,LB1为1,0或者0,0时,不能通过任何方式读取芯片内部的flash和eeprom数据。但是熔丝位的状态仍然可以读取,只是不是能修改。因为UNO可以确定bootload程序没有问题,而且考虑到用户买我们产品的时候会不小心修改掉bootload。所以我这里设置为了0,0.这个对一些技术比较厉害的高手对于程序的保护可能会有很大帮助。这也就是我在上一篇文章中提到的AVR的保密性比PIC高的原因。

WTDON为看门狗设置,1表示要用软件控制WTD(看门狗)才打开,0表示不用软件控制WTD一直打开,用户只能利用软件控制WTD的溢出时间。因为我们平时基本上都是不会让WTD一直工作的,所以我在UNO里选1,建议大家设置的时候也选一,要用的时候我们用软件控制就行了。呵呵。用软件控制感觉也不是很麻烦。

SPIEN,这个设置是关键,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top