Pro mini (Invalid device signature)

Тема в разделе "Arduino & Shields", создана пользователем Temyxxa, 10 ноя 2018.

  1. Temyxxa

    Temyxxa Нуб

    Приветствую, форумчане!
    Прошиваю Arduino Pro mini через Arduino UNO.
    Так как скорость работы мне была крайне не важна.
    Решил поэкспериментировать с энергопотреблением своей Pro mini(5v), и начал с уменьшения тактовой частоты в 256 раз этим скетчем:
    Код (C++):
    #include <avr/power.h>
    void setup() {
      clock_prescale_set(clock_div_256);
    }
    void loop() {
    }
    При следующей попытке загрузки скетча Выдало ошибку:
    Код (Text):
    avrdude: Yikes!  Invalid device signature.
             Double check connections and try again, or use -F to override
             this check.

    Произошла ошибка при загрузке скетча
    Подробный вывод загрузки:
    Код (Text):

    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 "D:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

             Using Port                    : COM5
             Using Programmer              : stk500v1
             Overriding Baud Rate          : 19200
             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 : STK500
             Description     : Atmel STK500 Version 1.x firmware
             Hardware Version: 2
             Firmware Version: 1.18
             Topcard         : Unknown
             Vtarget         : 0.0 V
             Varef           : 0.0 V
             Oscillator      : Off
             SCK period      : 0.1 us

    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.02s

    avrdude: Device signature = 0x000000 (retrying)

    Reading | ################################################## | 100% 0.02s

    avrdude: Device signature = 0x000000 (retrying)

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

    avrdude: Device signature = 0x000000
    avrdude: Yikes!  Invalid device signature.
             Double check connections and try again, or use -F to override
             this check.


    avrdude done.  Thank you.
    Есть возможность оживить? Если да, то подскажите как, пожалуйста)
     
  2. подключение проверяйте
     
  3. Temyxxa

    Temyxxa Нуб

    Все контакты пропаяны.
     
  4. b707

    b707 Гуру

    вы понизили частоту ядра настолько, что ардуина теперь не успевает отвечать программатору. Вариант решения - понизить скорость работы АВРДуде опцией -B , как описано в этой ветке:
    https://www.avrfreaks.net/forum/clockprescalesetclockdiv256-makes-programming-fail

    Заодно кстати, народ там пишет, что понижать частоту ядра - не слишком эффективный путь экономии энергии, куда правильнее быстро делать нужные действия и переходить в сон
     
    arkadyf нравится это.
  5. parovoZZ

    parovoZZ Гуру

    да. Т.к. энергия потребляется на фронтах, а количество фронтов и в том и в другом случае одинаково, то это лишняя операция.
    Экономию надо начинать с изучения регистра PRR и режимов сна.
     
  6. parovoZZ

    parovoZZ Гуру

    И обязательно перейти на внутренний осциллятор - внешний очень жручий. Обязательно выключить BOD.
     
  7. Temyxxa

    Temyxxa Нуб

    Спасибо за статью, она протянула в правильное направление. Изменение скорости АВЕРДуда ничего не дало, но помогло изменение скорости в скетче ArduinoISP c "#define SPI_CLOCK (1000000/6)" до "#define SPI_CLOCK (128000/6)"