读取atmega8的hex文件

时间:2016-08-14 12:16:03

标签: arduino microcontroller avr atmega avrdude

我想用atmega8制作一个电路的克隆我有原理图和PCB可以问题是我想读取atmega8芯片上的hex文件而我的问题是它可行吗?如果我想检测avrdudess上的芯片类型是否有必要写锁定字节和HIGH熔丝和低熔丝,或者我只需要预测锁定字节?

enter image description here

1 个答案:

答案 0 :(得分:1)

  1. 问题是我想读取atmega8芯片上的hex文件,我的问题是它可行吗?

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

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

    您无需向芯片写入任何内容以检测其类型。 我想你要做的就是点击“检测”按钮。

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

    也许我们应该从不同的角度来解决问题:你有ISP程序员还是Arduino板? 如果您有程序员,那么尝试使用它来读取芯片的内存。 如果你有一个Arduino,用ArduinoISP刻录它,连接到atmega8,如本页底部所示 - 不要担心不同的芯片:我们感兴趣的引脚(reset,vcc,gnd,xtal,sck, miso,mosi)在atmega168和atmega8上都有相同的“数字”。 不要忘记Arduino复位和接​​地时的10 uF电容。

    请勿使用我在上一条评论中链接的教程中的“Burn Bootloader”命令。

    相反,运行AVRDUDESS,选择avrisp作为编程器,将波特率设置为19200,然后单击“检测”按钮。 如果有效,你可以阅读闪光灯。

    提示:您可以选中“不要写”选项,以确保您不会意外覆盖芯片内存中的内容。

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

    最安全的方法是阅读它。 是否真的需要,取决于程序 - 它是如何编写的,eeprom是用于存储配置(如果它被使用)或一些常量等。 如果它用于存储配置,则可能是以某种方式处理所有数据读取0xFF的特殊情况,例如: G。默认配置是从闪存加载的。 如果常量存储在eeprom中,那么在不复制内容的情况下,程序将无法按预期工作。 正如您所看到的,除非您有一个好的反驳(一些技术问题,或者您绝对确定闪存中的程序不使用eeprom或其他东西),否则复制它会更安全。

  5. 对不起,我犯了一个错误,我的意思是将flash和eeprom写入一个空的atmega8我现在已经阅读了我想做一个克隆我怎么能这样做我有HIGH保险丝和低保险丝和lockbyte我用avrdudess红色它们
    我是否只需要编写闪存,或者我也必须编写eeprom

    如果要制作精确副本,请执行以下操作:

    • 读取原始芯片的eeprom和闪存,保险丝和锁定字节
    • (把原来的芯片放在一边)
    • 在您希望成为原始芯片的芯片上执行擦除循环(确保EESAVE未编程)
    • 编程熔丝字节(对RSTDISBL和类似位要谨慎)
    • (连接晶体/谐振器/ RC / ......如有必要 - 请参阅数据表中的“时钟源”部分)
    • 编程eeprom
    • 选中“禁用闪存擦除(-D)”复选框,编程闪存和锁定位(最好只调用一次avrdude,确保{{ 1}}选项在-U:flash:w:...
    • 之前给出

    您必须使用ISP程序员,ArduinoISP就足够了。