读取atmega8的十六进制文件
reading the hex file of atmega8
我想用 atmega8 克隆一个电路我有原理图和 PCB 没问题问题是我想读取 atmega8 芯片上的十六进制文件我的问题是它是否可行?如果我想检测 avrdudess 上的芯片类型,是否有必要写入锁定字节和高保险丝和低保险丝,或者我只需要预测锁定字节?
问题是我想读取 atmega8 芯片上的十六进制文件,我的问题是它是否可行?
如果未对锁定位进行编程,则可以通过在 avrdude
的调用中添加 -U flash:r:flash.hex:i -U eeprom:r:eeprom.hex:i
选项来读取闪存和 EEPROM 的内容。
如果我想检测 avrdudess 上的芯片类型,是否有必要写入锁定字节和高熔丝和低熔丝,或者我只需要预测锁定字节?
您无需向芯片写入任何内容即可检测其类型。
我想您所要做的就是单击 "Detect" 按钮。
...(请参阅此答案下的评论)
也许我们应该从不同的角度来解决这个问题:你有 ISP 编程器还是 Arduino 开发板?
如果您有编程器,请尝试使用它来读取芯片的内存。
如果你有 Arduino,用 ArduinoISP 刻录它,连接到 atmega8,如本页底部所示——不用担心不同的芯片:我们感兴趣的引脚(reset、vcc、gnd、xtal、sck、 miso, mosi) 在 atmega168 和 atmega8 上有相同的 "numbers"。
不要忘记 Arduino 的复位和接地之间的 10 uF 电容。
不要使用我在之前评论中链接的教程中的 "Burn Bootloader" 命令。
相反,运行 AVRDUDESS,select avrisp 作为程序员,将波特率设置为 19200,然后单击 "detect" 按钮。
如果有效,您可以阅读flash。
提示:您可以勾选"Do not write"选项以确保您不会意外覆盖芯片内存的内容。
我还有一个问题。我需要读取 eeprom 来制作克隆吗?或者我只需要闪光灯?
最安全的方法是阅读它。
它是否真的需要,取决于程序——它是如何编写的,eeprom 是否用于存储配置(如果它被使用)或一些常量等。
如果它用于存储配置,那么可能会以某种方式处理所有数据读取 0xFF
时的特殊情况,例如。 G。默认配置从闪存加载。
如果常量存储在 eeprom 中,那么如果不复制它的内容,程序将无法按预期运行。
如你所见,直接复制比较安全,除非你有很好的反驳(一些技术问题或者你完全确定flash中的程序没有使用eeprom或其他东西)。
对不起,我犯了一个错误,我的意思是将闪存和 eeprom 写入一个空的 atmega8,我已经读取了,现在我想克隆一个,我该怎么做我有高保险丝和低保险丝和锁字节我用 avrdudess
红色
我只需要写闪存还是我也必须写eeprom
如果您想制作一个精确的副本,请执行以下操作:
- 读取原芯片的eeprom和flash存储器,熔断和锁定字节
- (原芯片放一边)
- 在要成为原始芯片副本的芯片上执行擦除循环(确保 EESAVE 未编程)
- 编程熔丝字节(注意 RSTDISBL 和类似位)
- (连接 crystal/resonator/RC/... 如有必要——请参阅数据表中的 'Clock Sources' 部分)
- 对 eeprom 进行编程
- 选中"Disable flash erase (-D)"复选框,编程闪存并锁定位(最好通过一次调用
avrdude
来完成,确保-U:flash:w:...
选项在-U:lock:w:...
) 之前给出
必须使用ISP编程器,ArduinoISP就够了
我想用 atmega8 克隆一个电路我有原理图和 PCB 没问题问题是我想读取 atmega8 芯片上的十六进制文件我的问题是它是否可行?如果我想检测 avrdudess 上的芯片类型,是否有必要写入锁定字节和高保险丝和低保险丝,或者我只需要预测锁定字节?
问题是我想读取 atmega8 芯片上的十六进制文件,我的问题是它是否可行?
如果未对锁定位进行编程,则可以通过在
avrdude
的调用中添加-U flash:r:flash.hex:i -U eeprom:r:eeprom.hex:i
选项来读取闪存和 EEPROM 的内容。如果我想检测 avrdudess 上的芯片类型,是否有必要写入锁定字节和高熔丝和低熔丝,或者我只需要预测锁定字节?
您无需向芯片写入任何内容即可检测其类型。 我想您所要做的就是单击 "Detect" 按钮。
...(请参阅此答案下的评论)
也许我们应该从不同的角度来解决这个问题:你有 ISP 编程器还是 Arduino 开发板? 如果您有编程器,请尝试使用它来读取芯片的内存。 如果你有 Arduino,用 ArduinoISP 刻录它,连接到 atmega8,如本页底部所示——不用担心不同的芯片:我们感兴趣的引脚(reset、vcc、gnd、xtal、sck、 miso, mosi) 在 atmega168 和 atmega8 上有相同的 "numbers"。 不要忘记 Arduino 的复位和接地之间的 10 uF 电容。
不要使用我在之前评论中链接的教程中的 "Burn Bootloader" 命令。
相反,运行 AVRDUDESS,select avrisp 作为程序员,将波特率设置为 19200,然后单击 "detect" 按钮。 如果有效,您可以阅读flash。
提示:您可以勾选"Do not write"选项以确保您不会意外覆盖芯片内存的内容。
我还有一个问题。我需要读取 eeprom 来制作克隆吗?或者我只需要闪光灯?
最安全的方法是阅读它。 它是否真的需要,取决于程序——它是如何编写的,eeprom 是否用于存储配置(如果它被使用)或一些常量等。 如果它用于存储配置,那么可能会以某种方式处理所有数据读取
0xFF
时的特殊情况,例如。 G。默认配置从闪存加载。 如果常量存储在 eeprom 中,那么如果不复制它的内容,程序将无法按预期运行。 如你所见,直接复制比较安全,除非你有很好的反驳(一些技术问题或者你完全确定flash中的程序没有使用eeprom或其他东西)。对不起,我犯了一个错误,我的意思是将闪存和 eeprom 写入一个空的 atmega8,我已经读取了,现在我想克隆一个,我该怎么做我有高保险丝和低保险丝和锁字节我用 avrdudess
红色 我只需要写闪存还是我也必须写eeprom如果您想制作一个精确的副本,请执行以下操作:
- 读取原芯片的eeprom和flash存储器,熔断和锁定字节
- (原芯片放一边)
- 在要成为原始芯片副本的芯片上执行擦除循环(确保 EESAVE 未编程)
- 编程熔丝字节(注意 RSTDISBL 和类似位)
- (连接 crystal/resonator/RC/... 如有必要——请参阅数据表中的 'Clock Sources' 部分)
- 对 eeprom 进行编程
- 选中"Disable flash erase (-D)"复选框,编程闪存并锁定位(最好通过一次调用
avrdude
来完成,确保-U:flash:w:...
选项在-U:lock:w:...
) 之前给出
必须使用ISP编程器,ArduinoISP就够了