之前在学校只学过51系列的单片机,当然对于如今的很多系统,用51单片机已经不能满足系统的需求了,包括 处理速度,定时/计数器,IO口等。最近公司要做个智能遥控器系统,经过选择和论证,决定采用Atmega88PA-AU的芯片。设计好原理图,PCB板,等板子到了,就迫不及待想试试。
由于Atmega88PA-AU(以下简称avr88)没有Jtag口,所以只能用debugWire,当然就只能买MKII的调试器(挺贵的,不过都是公司的钱)。由于对于熔丝位不太懂,所以不敢轻举妄动,写好程序后,点击了program,诶!不错,下进去了,没问题!于是乎信心大增,开始大胆把dwen勾上了,点击program,结果悲剧了,弹出对话框(一堆英文,意思是说复位线被占用),看来真悲剧了,一片芯片被锁了,貌似还只能用高压编程解锁了。这样一来又要买高压编程器,测试座(由于是贴片的),公司肯定不敢啦!之前为了系统测试,还特定加了复位电路,想不到现在竟成了绊脚石,那没有办法,只能重新焊上一块芯片,然后把复位电路拆了,重新调熔丝位,就OK啦!初学avr,没办法,总得费几块片子的,所以还是得大胆的测。不过得先看懂文档来,不然盲目测,公司肯定吃不消!
以下是熔丝位(转载自http://www.fxdzw.com/dpj/avr_rsw.htm)
要想使MCU功耗最小也要了解一些位的设定。
1:未编程
0:编程
1、BOD(Brown-out Detection) 掉电检测电路
BODLEVEL(BOD电平选择): 1: 2.7V电平; 0:4.0V电平
BODEN(BOD功能控制): 1:BOD功能禁止;0:BOD功能允许
使用方法:如果BODEN使能(复选框选中)启动掉电检测,则检测电平由BODLEVEL决定。一旦VCC下降到触发电平(2.7v或4.0v)以下,MCU复位;当VCC电平大于触发电平后,经过tTOUT 延时周后重新开始工作。
因为M16L可以工作在2.7v~5.5v,所以触发电平可选2.7v(BODLEVEL=1)或4.0v(BODLEVEL=0);而M16工作在4.5~5.5V,所以只能选BODLEVEL=0,BODLEVEL=1不适用于ATmega16。
2、复位启动时间选择
SUT 1/0: 当选择不同晶振时,SUT有所不同。
如果没有特殊要求推荐SUT