Atmega 128下载与熔丝位

Atmega 128下载与熔丝位

一、简介

1.1 内核介绍

AVR单片机指令总线长度时16位,取操作数的数据总线长度位8位。

Atmega 128 共53个IO,复位之后IO时高阻态。

Flash中有自引导加载程序,可用于启动装载功能实现自我编程,
在这里插入图片描述

ATmega 128的堆栈指针指向的地址必须高于0x60。

1.2 boot锁定位

boot锁定位可以通过软件、串行编程、并行编程的方式进行设置。实际上boot锁定位属于Lockbit,具体如下:

在这里插入图片描述
一般Lockbit位全为1时,不用担心程序无法下载。

1.3 熔丝位

熔丝位本身是写“1”禁止,写“0”使能。

M103C:0代表以ATmega103兼容模式工作。

器件进入编程模式时熔丝位的值被锁存。其间熔丝位的改变不会生效,直到器件退出编程模式。不过这不适用于 EESAVE 熔丝位。它一旦被编程立即起作用。在正常工作模式中器件上电时熔丝位也被锁存。

注意事项:不要加密芯片,否则需要先全片擦除并解除锁定才能编程熔丝位。

1.4 程序下载的方式

  1. JTAG ICE
    使用JTAG编程,需要熔丝位JTAGEN使能,同时MCUCSR寄存器的JTD位清零。如果JTD被置1,则可以将外部RESET强制拉低,经过两个时钟周期后,JTD会自动清零。

  2. 串行编程

  3. 并行编程

  4. bootloader

1.4.1 并行编程

除非另行说明,脉冲宽度至少250ns,周期至少500ns,频率最大2MHz

并行编程的功能如下所示:

  1. 芯片擦除
  2. 读写flash
  3. 读写EEPROM
  4. 读写熔丝位
  5. 读写标定字节
  6. 读标识字节
1.4.1.1 硬件连接

在这里插入图片描述

其中命令引脚如下:

在这里插入图片描述

1.4.1.2 进入并行编程模式

编程之前,首先要保证芯片进入编程模式,步骤如下:

  1. 在 VCC 及 GND 之间提供 4.5 - 5.5V 的电压,并至少等待 100 µs。
  2. 将 RESET 拉低,并至少改变 XTAL1 电平 6 次。
  3. Prog_enable 引脚置为 “0000”,并等待至少 100ns。
  4. 给 RESET提供 11.5 - 12.5V的电压。在向 RESET提供 +12V电压后的 100 ns 内,Prog_enable 引脚的任何行为都会导致芯片无法进入编程模式。
  5. 发送命令前等待至少50ns

注意事项:如果芯片使用内部时钟,此时必须使晶振断开,才能保证XTAL1输入合格的脉冲信号。

1.4.1.3 编程熔丝位

在这里插入图片描述

所有情况下,Reset拉高到12V,OE拉高,PAGEL拉低。并且按照由低到高的顺序进行编程熔丝位

低8位编程

置 BS1 为 “0”, BS2 为 “0”。

  1. A:第一个周期内,XA1置1,XA0清零。DATA加载命令 “0100 0000”。
  2. C:第二格周期内,XA1和XA0清零。加载数据低字节,若某一位为 "0” 表示需要进行编程,否则需要擦除。
  3. 第二个周期结束后,时钟停止,给 WR 提供一个负脉冲,并等待 RDY/BSY 变高。

高8位编程

  1. A:第一个周期内,XA1置1,XA0清零。加载命令 “0100 0000”。
  2. C:第二格周期内,XA1和XA0清零。加载数据高字节,若某一位为 "0” 表示需要进行编程,否则需要擦除。
  3. 第二个周期结束后,时钟停止,将 BS1 置 "1”、 BS2 置 "0”,选择高位数据字节。给 WR 提供一个负脉冲并等待 RDY/BSY 变高。
  4. 将 BS1 置 "0”。

扩展位编程

  1. A:第一个周期内,XA1置1,XA0清零。加载命令 “0100 0000”。
  2. C:第二格周期内,XA1和XA0清零。加载数据低字节。若某一位为 "0” 表示需要进行编程,否则需要擦除。
  3. 第二个周期结束后,时钟停止,将 BS1 置 "0”、 BS2 置 "1”,选择扩展数据字节。给 WR 提供一个负脉冲并等待 RDY/BSY 变高。
  4. 将 BS2 置 "0”。

二、目前存在的问题

  1. 程序无法下载
    1. STK500并行下载工具:修改不了国内SPIEN位;编程国外Flash总是失败;(不能写国外Flash,可能跟PCB有关)
    2. JTAG ICE能擦除Flash,能读取Flash,不能写Flash和熔丝位;(能正常读写国外芯片Flash)
    3. SPI
    4. FPGA实现并行编程

开发资源

www.avrfreaks.net

www.sl.com.cn

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值