您可以将Marlin固件重新刷新到RAMPS 1.4板上多少次才能降级ROM?


9

首先,如果这有所作为,我将使用Folger Tech Prusa i3套件。我也相信Arduino是Mega 2560。

我知道在脑后的某个地方,每次写入ROM时,像可编程固件的Arduino板上必须具备的电可编程ROM都会稍微退化。现在,我正在尝试解决另一个打印问题,并且我认为我需要再次修改固件,这已经完成了好几次。所以我开始担心我可以做多少次。

好吧,一旦我想起了首字母缩写词“ EEPROM”,经过一番谷歌搜索之后,我碰到了Arduino-EEPROM,它说它可以处理100k个周期,所以我想我可以了,但问题是我不确定是否要上传整个文件?难道不是一个单一的数据点?如果是的话,平均Marlin文件将消耗多少个周期?

我也发现了这一点:

但如果上传超过2000次,我会感到非常惊讶

Mega2560变砖了吗?未检测到,DFU失败,表明答案可能低至2000。

另外,这:

失败模式

存储的信息有两个限制;耐久性和数据保留能力。

在重写期间,浮栅晶体管中的栅极氧化物逐渐积累被俘获的电子。被捕获的电子的电场会增加浮置栅极中的电子,从而降低了零阈值电压与1阈值电压之间的窗口。经过足够数量的重写周期后,差异变得很小而无法识别,单元卡在了编程状态,并且发生了耐久性故障。制造商通常指定最大重写次数为一百万或更多。[5]

在存储过程中,注入浮栅的电子可能会漂移穿过绝缘体,尤其是在温度升高的情况下,并导致电荷损失,从而使电池恢复为擦除状态。制造商通常保证数据保留期为10年或更长时间。[6]

来自Wikipedia:EEPROM-故障模式,指示答案可能是数百万。

在这一点上,我只是想知道专家是否可以看到这一点并减轻我的焦虑...


AT Mega2560具有内部闪存存储,但有助于查看外部闪存设备以获取信息。有几种不同等级的外部闪存设备。有些只能闪烁很少的次数,并且从这些部分可能会闪烁2000次。其他更高级别的零件可以刷新一百万次。在我的工作中,我们通常会看到低成本零件的额定值为10,000,较高成本零件的额定值为100,000。对于集成闪存,可能没有价格和使用寿命的范围,因为这会使制造商的测试和分销渠道变得复杂。
cmm

Answers:


14

EEPROM 并不是程序本身的存储位置,与您的问题有关的是闪存。ATmega2560中的闪光灯的额定寿命为10,000个循环(即,您可以对其进行至少 10,000次重新编程)。


闪存的“周期”不是写作,而是擦除。写入Flash时,必须先将其擦除。擦除过程会给设备带来压力,并且在许多周期内会导致几种故障模式。将数据写入已擦除部分更有益。因此,程序有多大无关紧要。“重新刷新”从擦除周期开始,然后是所需的尽可能多的编程周期。
cmm

1

AVR具有用于变量的SRAM(通常称为RAM),具有用于非易失性变量的EEPROM,并且具有用于可执行代码的闪存。(哈佛建筑!)

对于重新刷新固件,SRAM和EEPROM的写入速率都不重要,但闪存速率则很重要。闪存写入速率在10万到100万之间,这应该不是问题。

您链接的文章还指出,他的重写次数不超过2000,因此应该可以。我只能同意。几千次重新闪烁是没有问题的。一旦接近十万,您就可以开始担心。

闪存位只能从1写入0。擦除闪存会将所有位写入1。擦除只能在闪存页上完成(大小取决于设备,但通常是512的倍数)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.