Приветствую, форумчане! Прошиваю 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. Есть возможность оживить? Если да, то подскажите как, пожалуйста)
вы понизили частоту ядра настолько, что ардуина теперь не успевает отвечать программатору. Вариант решения - понизить скорость работы АВРДуде опцией -B , как описано в этой ветке: https://www.avrfreaks.net/forum/clockprescalesetclockdiv256-makes-programming-fail Заодно кстати, народ там пишет, что понижать частоту ядра - не слишком эффективный путь экономии энергии, куда правильнее быстро делать нужные действия и переходить в сон
да. Т.к. энергия потребляется на фронтах, а количество фронтов и в том и в другом случае одинаково, то это лишняя операция. Экономию надо начинать с изучения регистра PRR и режимов сна.
Спасибо за статью, она протянула в правильное направление. Изменение скорости АВЕРДуда ничего не дало, но помогло изменение скорости в скетче ArduinoISP c "#define SPI_CLOCK (1000000/6)" до "#define SPI_CLOCK (128000/6)"