Atmel 微处理器中的保险丝是什么?我应该或需要何时更改默认设置?
什么是爱特梅尔保险丝?
我看到 blalor 对于 Atmel 保险丝的用途已经有了一个很好的答案。
要回答“它们是物理熔断器还是软件可编程”的后续问题,答案是否定的。所有现代 Atmel 和 Microchip 微控制器都将“熔丝位”存储在非易失性存储单元中——物理上与 SLC 闪存单元相同。
当您使用芯片编程器将新程序下载到微控制器程序闪存中时,它还会擦除并重新编程那些熔丝位存储单元。
但是,在微控制器上运行的软件无法更改熔丝位——即使您使用的是“自编程”微控制器——即允许在其上运行的引导加载程序软件重新编程其自己的程序闪存的微控制器.
一些 Atmel 处理器(尤其是低功耗处理器)允许在其上运行的软件通过写入某些配置寄存器来即时更改时钟源——但无论何时它们被复位(或电源消失然后又回来) ,它们返回使用熔丝位中指定的时钟源。更改这些熔丝位的唯一方法是使用芯片编程器。
几十年前,这些配置位(以及程序存储器)实际上存储在熔断器中——一堆细金属丝;通过施加 12 V 电压来选择性地“吹断”合适的部分,直到金属熔化并断开连接并且钻头变得不导电。正如您可能已经知道的那样,这使得微处理器一次性可编程(OTP)——解开保险丝的唯一方法是将整个微处理器扔掉,拔出一个新的微处理器,然后重新开始。
出于历史原因,我们仍然将这些配置位称为“熔丝位”——就像我们经常将程序存储器称为“ROM”一样(尽管它在自编程微控制器上并不是真正的“只读”),而且我们有“可靠的- 没有移动部件的状态继电器”,以及只花费一小部分时间实际处理声音的“电话公司”,以及大部分时间用于显示图片和播放音乐而不是,你知道,计算数字。
它们本质上是配置参数,或者像芯片的 BIOS。这里有一个很棒的 Atmega AVR 保险丝计算器:http ://www.engbedded.com/fusecalc/
它们控制诸如使用哪个振荡器、以什么速度运行(即内部 8MHz 振荡器或外部晶体)、掉电检测和引导闪存大小等内容。
如果您在使用它们时犯了错误,并且在使用晶体或内部振荡器时将芯片配置为与外部振荡器一起使用,它们可能会有点痛苦。然后您发现您无法对芯片进行编程,需要通过正确设置保险丝将时钟信号注入振荡器引脚以恢复它。