分享

熔丝位

 quasiceo 2015-09-11
熔丝位是 ATMEL 公司 AVR 单片机比较独到的特征。在每一种型号 的 AVR 单片机内部都有一些特定含义的熔丝位,其特性表现为多次 擦写的E2PROM。用户通过配置(编程)这些熔丝位,可以固定地设 置 AVR 的一些特性,参数以及 I/O 配置等,当然也包括对片内运行 代码的锁定(加密)。 用户使用并行编程方式、ISP 编程方式、JTAG 编程方式都可以对 AVR 的熔丝位进行配置,但不同的编程工具软件提供对熔丝位的配 置方式(指人机界面)也是不同的。有的是通过直接填写熔丝位位值 (如:CVAVR、PonyProg2000 和SLISP 等),有的是通过列出表格选 择(如 AVR STUDIO、BASCOM-AVR)。前者程序界面比较简单, 但是需要用户在仔细查询操作,会引起一些意想不到的后果,如造成 芯片无法正常运行,无法再次定入ISP 编程模式等。建议用户对AVR 的熔丝位进行配置时,选择用户表格选择方式界面的编程软件,如 BASCOM-AVR。不过版主使用的是前者PonyProg2000。 正确配置AVR 熔丝位 对 AVR 熔丝位的配置操作是比较细致的工作,用户往往忽视其重 要性,或感到不易掌握。下面给出对 AVR 熔丝位的配置操作时的一 些要点和需要注意的相关事项。 1. 在 AVR 的器件手册中,对熔丝位使用已编程(Programmed) 和未编程(Unprogrammed)定义熔丝位的状态,“Unprogrammed”表示 熔丝位的状态为1(禁止);“Programmed” 表示熔丝位的状态为0(允 许)。因此,配置 熔丝位的过程实际上是“配置熔丝位成为未编 程状态1 或成为已编程状态0”。 ”表示设置熔丝位状态为 0 还是为 1。R”方式确定熔丝位状态值的编 程工具软件时,首先仔细阅读软件的使用说明书,弄清“R 2. 在使 用通过选择打钩“ 3. 新的 AVR 芯片在使用前,应先查看它的熔丝位的配置情况, 再根据实际需要进行熔丝位的配置,并将各个熔丝位的状态记录备 案。 4. AVR 芯片加密以后仅仅是不能读取芯片内部的 Flash 和 E2PROM 中的数据,熔丝位的状态仍然可以读取但不能修改配置。芯 片擦除命令是将Flash 和E2PROM 中的数据清除,并同时并两位锁定 位状态配置成“11”,处于无锁定状态。但芯片擦除命令并不能改变其 他熔丝位的状态。 5. 正确的操作步骤是:在芯片无锁定状态下,将代码写入芯片中, 配置相关的熔丝位,最后配置芯片的锁定位。芯片锁定后,如果发现 熔丝位配置不对,必须使用芯片擦除命令清除芯片中的数据,并解除 锁定。然后重新写入代码,修改相关的熔丝位,最后再次配置芯片的 锁定位。 6. 使用ISP 串行方式下载编程时,应配置SPIEN 熔丝位为0,芯 片出厂时SPIEN位的状态默认为0,表示允许ISP 串行方式下载编程。 只有该位处于编程状态 0 时才可以通过 AVR 的ISP 口进行ISP 下载 编程,如果该位处于编程状态1 后,ISP 串行方式下载数据立即被禁 止,此时只有通过并口方式或JTAG 编程方式才能将SPIEN 的状态重 新设置为0 来开放ISP 编程方式。所以有时芯片在ISP 方式下不能写 入,不要认为芯片已坏,可以按以上方法开放ISP 编程。通常情况下, 应保持SPIEN 的状态为0,允许ISP 编程不会影响其引脚的I/O 功能, 只要在硬件电路设计时,注意 ISP 接口与其接口器件进行必要的隔 离,如使用串接电阻或断路跳线等。 7. 当不需要使用JTAG 接口编程方式,且JTAG 接口引脚需要作 为I/O 口使用时,最好设置熔丝位JTAGEN 的状态为1。芯片出厂时 JTAGEN 的状态默认为 0,表示允许 JTAG 编程方式,JTAG 引脚不 能作为I/O 口使用,所以新的芯片如果需要用到JTAG 引脚作I/O 口, 需设置JTAGEN 为1,当JTAGEN 的状态设置为1 后JTAG 接口立即 被禁止,此时只有通过并行方式或ISP 编程方式才能将JTAG 重新设 置为0 开放JTAG

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多