一、开发环境建立
CodeVisionAVR C Compiler用于程序的修改以及编译.AVR Studio 4与USB AVR JTAGICE mkll-CN 用于在线调试和程序烧写。
二、AVR Studio 4中熔丝位的设置(在Fuses标签中,相应位打钩一共program即写0;不选中一共未编程即1)
-
- M161C: 作业于162形式仍是161形式;
- BODLEVEL:掉电检测设置;
- OCDEN:片上调试使能;
- JTAGEN:JTAGE口下载使能;
- SPIEN:SPI使能位;
- WDTON:看门狗使能等级设置;
- EESAVE: EEPROM中内容是否要保存;
- BOOTSZ:用于设置程序块和发动块;
- BOOTRSZ:操控复位向量地点的方位;
- CKDIV8:时钟源预分频;
- CKOUT:体系输出时钟使能位;
- SUT_CKSEL:设置体系时钟的方法;
三、依据主板设置熔丝位
-
- Atmega162运用的外部晶振为11.0592MHZ,设置熔丝位CKSEL和SUT相应位,使体系选用外部时钟,上电时刻为4.1ms;
- 输出时钟制止,不必预分频,复位地址设定0000;即CKOUT = 1; CKDIV8 = 1; BOOTRST = 1;
- 设置162形式,看门狗二级形式,JTAG口使能.掉电检测制止
详细的熔丝位的值如下图
四、问题描绘与解决方法
我们晋级主板,将原先的ISP下载改成JTAG下载方法,将SPI接口用于外部端口数据的并重。写测验程序测验JTAG下载器;
- 犯错现象:
1,运用主板上的LED进行调试.其间PORTE.2口与LED衔接。对该IO口赋值能够操控LED灯的亮灭。可是假如想完成LED灯的业绩.则LED的状况为延时前的IO口的值;
2,经过JTAG口衔接仿真器,进行单步调试.能够顺畅进入中止计时函数,LED灯业绩正常。可是全速碑文程序会跑飞。
- 解决方法:
读取老版本主板上Atmega162的熔丝位设置,不同在看门狗的设置。我们在新主板上对162的看门狗熔丝使能,以致程序会复位。