【问题标题】:reading the hex file of atmega8读取 atmega8 的 hex 文件
【发布时间】:2016-08-14 12:16:03
【问题描述】:

我想用 atmega8 克隆电路,我有原理图,PCB 没问题,问题是我想读取 atmega8 芯片上的 hex 文件,我的问题是它可行吗?如果我想检测 avrdudes 上的芯片类型,是否需要写入锁定字节和高保险丝和低保险丝,还是只需要预测锁定字节?

【问题讨论】:

    标签: arduino microcontroller avr atmega avrdude


    【解决方案1】:
    1. 问题是我想读取 atmega8 芯片上的 hex 文件,我的问题是它是否可行?

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

    2. 如果我想检测 avrdudes 上的芯片类型,是否需要写入锁定字节和高保险丝和低保险丝,还是只需要预测锁定字节? p>

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

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

      也许我们应该从不同的角度来解决这个问题:你有 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 中,那么如果不复制其内容,程序将无法按预期工作。 如您所见,复制它更安全,除非您有充分的反驳(一些技术问题或您绝对确定 Flash 中的程序不使用 eeprom 或其他东西)。

    5. 对不起,我犯了一个错误,我的意思是将闪存和 eeprom 写入一个空的 atmega8 我已经读取了现在我想克隆我该怎么做我有高保险丝和低保险丝和锁字节我用 avrdudess 把它们变红
      我需要只写闪存还是我也必须写 eeprom

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

      • 读取原芯片的eeprom和闪存,熔断和锁定字节
      • (原芯片放在一边)
      • 在您想成为原始芯片副本的芯片上执行擦除周期(确保 EESAVE 未编程)
      • 对熔丝字节进行编程(注意 RSTDISBL 和类似位)
      • (如有必要,连接晶体/谐振器/RC/... - 请参阅数据表中的“时钟源”部分)
      • 对 eeprom 进行编程
      • 选中“禁用闪存擦除 (-D)”复选框, 对闪存和锁定位进行编程(最好通过一次调用 avrdude 来完成,确保之前给出了 -U:flash:w:... 选项-U:lock:w:...)

      您必须使用 ISP 编程器,ArduinoISP 就足够了。

    【讨论】:

    • 感谢您抽出宝贵时间,我尝试仅点击检测,但我得到“arduino stk500_getsync() 不同步 resp=0x30”
    • 我有另一个带有 Arduino 引导加载程序的 atmega8,如果我点击检测,我会得到同样的错误,但如果我更改波特率并点击检测 GUI 检测到的芯片。我有另一个带有不同引导加载程序的 atmega8,我改变了波特率什么也没发生我得到同样的错误
    • 尝试以下波特率:1200、2400、4800、9600、19200、38400、57600、115200。
    • 好的,我会尽力让你知道结果。谢谢 :)
    • 嗨,Aleksander,不幸的是,上述波特率都没有与读取芯片的类型有关,是否需要提供锁定字节才能读取芯片?
    猜你喜欢
    • 2013-08-07
    • 2017-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多