avrdude: verification error; content mismatch

Тема в разделе "Arduino & Shields", создана пользователем gich, 15 май 2018.

  1. gich

    gich Нуб

    Моя Ардуинка Уно внезапно не захотела прошиваться. Не знаю в чем беда. Подскажите
    Archiving built core (caching) in: C:\Users\3C5C~1\AppData\Local\Temp\arduino_cache_325014\core\core_arduino_avr_uno_0c812875ac70eb4a9b385d8fb077f54c.a
    Скетч использует 928 байт (2%) памяти устройства. Всего доступно 32256 байт.
    Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2039 байт для локальных переменных. Максимум: 2048 байт.
    C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM5 -b115200 -D -Uflash:w:C:\Users\3C5C~1\AppData\Local\Temp\arduino_build_939587/Blink.ino.hex:i

    avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
    Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
    Copyright (c) 2007-2014 Joerg Wunsch

    System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

    Using Port : COM5
    Using Programmer : arduino
    Overriding Baud Rate : 115200
    AVR Part : ATmega328P
    Chip Erase delay : 9000 us
    PAGEL : PD7
    BS2 : PC2
    RESET disposition : dedicated
    RETRY pulse : SCK
    serial program mode : yes
    parallel program mode : yes
    Timeout : 200
    StabDelay : 100
    CmdexeDelay : 25
    SyncLoops : 32
    ByteDelay : 0
    PollIndex : 3
    PollValue : 0x53
    Memory Detail :

    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
    eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
    flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
    lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
    signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

    Programmer Type : Arduino
    Description : Arduino
    Hardware Version: 3
    Firmware Version: 4.4
    Vtarget : 0.3 V
    Varef : 0.3 V
    Oscillator : 28.800 kHz
    SCK period : 3.3 us

    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.00s

    avrdude: Device signature = 0x1e950f (probably m328p)
    avrdude: reading input file "C:\Users\3C5C~1\AppData\Local\Temp\arduino_build_939587/Blink.ino.hex"
    avrdude: writing flash (928 bytes):

    Writing | ################################################## | 100% 0.19s

    avrdude: 928 bytes of flash written
    avrdude: verifying flash memory against C:\Users\3C5C~1\AppData\Local\Temp\arduino_build_939587/Blink.ino.hex:
    avrdude: load data flash data from input file C:\Users\3C5C~1\AppData\Local\Temp\arduino_build_939587/Blink.ino.hex:
    avrdude: input file C:\Users\3C5C~1\AppData\Local\Temp\arduino_build_939587/Blink.ino.hex contains 928 bytes
    avrdude: reading on-chip flash data:

    Reading | ###########################################Произошла ошибка при загрузке скетча
    ####### | 100% 0.15s

    avrdude: verifying ...
    avrdude: verification error, first mismatch at byte 0x0000
    0x62 != 0x0c
    avrdude: verification error; content mismatch

    avrdude done. Thank you.
     
  2. AlexU

    AlexU Гуру

    Ну как же не знаете? В названии темы указали в чём беда-то. Посмотрите внимательно на "выхлоп" работы avrdude. Там же всё ясно написано: сначала идёт загрузка прошивки в память контроллера, а потом проверка того, что память контроллера после прошивки содержит правильные данные. Вот тут-то и .......
    Я думаю догадаетесь, что случилось с микроконтроллером.
     
  3. b707

    b707 Гуру

    хм, простите мой вопрос - а что с ним случилось? Флеш сдох?
    Там, в выводе, кстати, попадаются странные параметры:

    Vtarget : 0.3 V
    Varef : 0.3 V
    Oscillator : 28.800 kHz

    Ну напряжения-то ладно, а вот что за осциллятор 28.8 МГц на Уно?
     
  4. AlexU

    AlexU Гуру

    Да.
    Т.е. то, что программатор сообщает, что напряжение питания программируемого микроконтроллера 0.3V -- это нормально?
    А то что программатор выдаёт частоту 28.8 кГц, которую можно использовать для тактирования программируемого микроконтроллера -- это вызывает вопросы?
    Но в целом на эти параметры:
    Код (Text):
    Vtarget : 0.3 V
    Varef : 0.3 V
    Oscillator : 28.800 kHz
    SCK period : 3.3 us
    в контексте штатного программирования Arduino UNO (т.е. через последовательный интерфейс при использовании встроенного бутлоадера) обращать внимание не надо (ни какого влияния не оказывают). Vtarget и Varef -- сообщают о напряжении питания программируемого контроллера только в том случае, если программатор умеет это напряжение замерять. Oscillator -- это частота тактового сигнала, которую выдаёт программатор (опять же, если такой функционал в нём реализован). Этот тактовый сигнал можно использовать для тактирования программируемого микроконтроллера, например, вместо кварца (если в программируемом МК соответствующие фьюзы прошиты). SCK period -- период SCK, определяет с какой скоростью будет шиться МК при использовании SPI (MOSI+MISO+SCK). Частота SCK должна быть в четыре раза меньше частоты MK, если МК тактируется от программатора, то в четыре раза меньше, чем значение 'Oscillator'
     
    b707 нравится это.
  5. b707

    b707 Гуру

    Я, честно, железо до сих пор знаю очень поверхностно. Поэтому огромное спасибо за ликбез.