读取atmega8的十六进制文件

reading the hex file of atmega8

我想用 atmega8 克隆一个电路我有原理图和 PCB 没问题问题是我想读取 atmega8 芯片上的十六进制文件我的问题是它是否可行?如果我想检测 avrdudess 上的芯片类型,是否有必要写入锁定字节和高保险丝和低保险丝,或者我只需要预测锁定字节?

  1. 问题是我想读取 atmega8 芯片上的十六进制文件,我的问题是它是否可行?

    如果未对锁定位进行编程,则可以通过在 avrdude 的调用中添加 -U flash:r:flash.hex:i -U eeprom:r:eeprom.hex:i 选项来读取闪存和 EEPROM 的内容。

  2. 如果我想检测 avrdudess 上的芯片类型,是否有必要写入锁定字节和高熔丝和低熔丝,或者我只需要预测锁定字节?

    您无需向芯片写入任何内容即可检测其类型。 我想您所要做的就是单击 "Detect" 按钮。

  3. ...(请参阅此答案下的评论)

    也许我们应该从不同的角度来解决这个问题:你有 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"选项以确保您不会意外覆盖芯片内存的内容。

  4. 我还有一个问题。我需要读取 eeprom 来制作克隆吗?或者我只需要闪光灯?

    最安全的方法是阅读它。 它是否真的需要,取决于程序——它是如何编写的,eeprom 是否用于存储配置(如果它被使用)或一些常量等。 如果它用于存储配置,那么可能会以某种方式处理所有数据读取 0xFF 时的特殊情况,例如。 G。默认配置从闪存加载。 如果常量存储在 eeprom 中,那么如果不复制它的内容,程序将无法按预期运行。 如你所见,直接复制比较安全,除非你有很好的反驳(一些技术问题或者你完全确定flash中的程序没有使用eeprom或其他东西)。

  5. 对不起,我犯了一个错误,我的意思是将闪存和 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就够了