今天尝试使用11.0592MHz外部晶振来设置USART的波特率,没想到理解错误,把熔丝位设置为外部RC振荡CKSEL=1000,下载完成后就知道出问题了,有了上次芯片锁死的经历,这次就也不慌了,知道问题出在哪儿,借来函数信号发射器,给13引脚的XTAL1加入1MHz的脉冲,成功的解锁了。然后再次上网查这方面的资料,发现因这样出错的还不少,使用外部晶振,得将熔丝位设置为CKSEL=1111,这样才是正确的。
虽然,在尝试的过程中出现了一些不大不小的错误,但是通过尝试进步了,学到东西了,还是比较兴奋地。不能因为害怕出现问题或者是犯错,而不敢去尝试,人总是在不断的尝试中成长起来的。
【转载】马潮老师
AVR芯片锁死的解救是有条件的:
1.首先芯片本身没有坏(多余了)
2.如果RESET引脚被禁止作为I/O用了(如M48,M8等),那么通过通常的串行编程方式是不能解救的(这类芯片通常没有JTAG口).
3.如果SPI和JTAG都被禁止了,那么通过通常的串行编程方式是不能解救的.
4.2、3情况只能通过高压串行或高压并行方式解救,当然,通常就要把芯片从板上取下了。
我所讲的“解救”,主要是由于时钟熔丝配置错误造成的锁死,但SPI或JTAG是允许的。这种情况通常发生在系统设计使用内部RC振荡源的情况下,这时X1、X2为空脚,或作为I/O使用。但下载程序时出现问题,或熔丝配置错误,选择了非内部RC振荡源。由于此时AVR无系统时钟源,表现为锁死。
错误的出现可能为:
1。配置错误,这是人为的。
2。下载程序过程中,突然断电;下载接头接触不良;下载器本身不稳定。
3。错误的使用下载功能,如CVAVR中下载功能中的ALL(当熔丝位没有正确选择)。有些下载软件的功能不是非常完善,如使用CVAVR中下载功能的ALL项,不先读一次熔丝位就使用肯定出问题(通常会将SPI也禁止了)因为初始化的熔丝配置都不打勾。另外还有使用SPI下载,但还能让用户配置SPIEN等,也是不完善的。
如果仅仅是系统熔丝配置错误,那么可以通过尝试在芯片的晶体引脚上临时人为的叠加上不同类型的振荡时钟信号进行解救。如将一个5v/1M的脉冲波加在X1上(地当然要连通了),或用2个电容和一个晶体临时搭个外部电路加在X1、X2上。如果板上AVR的X1、X2没有使用还是比较方便的,如果X1、X2已经作为I/O使用连接了其它外部器件的话,就可能也行不通。因为外部连接的器件可能会影响叠加上的时钟信号的。
另外,叠加上的时钟信号频率不要太高,1M左右比较合适,因为通常叠加时引线比较长,频率高的话,振荡信号不稳定了。还必须注意将ISP下载的频率降低,因为AVR规定,ISP下载频率必须是系统时钟的1/2以下。因此,叠加1M的话,ISP的频率不能大于500K。
关键字:AVR笔记 mega16 锁死
引用地址:
AVR笔记8:mega16再次锁死
推荐阅读最新更新时间:2024-03-16 14:31
ICC AVR学习笔记
1。ICC AVR工程管理器能直接产生可以直接使用的INTEL HEX 格式文件。INTEL HEX 格式文件可被大多数的编程器所支持用于下载程序到芯片中去。 2。ICCAVR 是一个32 位的程序支持长文件名。 3。二进制常数 如果你选择了编译扩充(Project- Options- Compiler),你可以使用0b 1|0 * 来指定二进制常数。例如0b10101 等于十进制数21。 4。#pragma interrupt_handler func:4 // 4 是这个中断的向量号func 为中断处理函数名称。ICCAVR 可以使多个中断向量共用一个中断处理函数。 5。为避免你的工程目录混乱你可以指定输出文件和中间文件到
[单片机]
【AVR ASF4库函数学习笔记】二、GPIO
平台:Microchip Studio (原Atmel Studio 7) 欣世纪 DMAVR-L Atmega 128A - AU 头文件为port.h 枚举类型 enum port_pull_mode { PORT_PULL_OFF, PORT_PULL_UP, }; enum port_dir { PORT_DIR_IN, PORT_DIR_OUT, PORT_DIR_OFF, }; 函数 X = ABCDEFG static inline bool PORTX_get_pin_level(const uint8_t pin) 读取连接到端口的引脚上的电平 stat
[单片机]
【AVR ASF4库函数学习笔记】一、使用Microchip Studio图形化配置工程
平台:Microchip Studio (原Atmel Studio 7) 欣世纪 DMAVR-L Atmega 128A - AU 新建工程 选择所用的芯片后点击CREATE NEW PROJECT创建工程 配置 设置CPU 根据所用晶振设置频率 点灯示例: D7由PE7控制,低电平点亮。 对PE7作相应的配置后点击GENERATE PROJECT生成工程 点灯 编写点灯程序 #include atmel_start.h #include avr/io.h #include util/delay.h #define DELAY_TIME 500 int main(void) {
[单片机]
AVR单片机学习笔记
下面是自己在学习AVR单片机时的学习经验,分享出来给大家,一起学习。 1、 AVR单片机采用RISC 架构 ,8051单片机采用CISC架构。前者速度为后者的2~4倍,为流水线操作指令 2、 AVR单片机有32个通用寄存器(地址在RAM区从$0000开始到$001F),其中有6个(最后6个)合并为3个16位的X,Y,Z寄存器,用来存放地址指针,Z寄存器还可以寻址程序存储器 3、 哈佛结构,131条机器指令 4、 延迟开机功能 5、 内部自带RC振荡器,可提供1/2/4/8MHZ的工作时钟 6、 FLASH+EEPROM+SRAM+SPI+USART+TWI+PWM+RTC+10位ADC+模拟比较器+JTAG
[单片机]
STM8S103F3P6锁死问题及解锁
平台 芯片:STM8S103F3P6 编译环境:IAR 烧录环境:STVP 下载工具:ST-Link 下载方式:SWIM 问题 芯片锁死,无法通过IAR调试和下载程序 摁~~~~~忘记截图出错的提示信息了 解决 连接ST-LINK,确认在电脑上,ST-LINK驱动安装成功(红色指示灯常亮)。 STVP 如图: 点击Configure-------选择ST-LINK(默认是R-LINK)----选择SWIM方式------选择芯片型号------OK 选项字节设置 点击 OPTION BYTE ------- 第一项ROF,读保护是否打开,选择OFF Program更改 点击 Program ------ 选
[单片机]