Добрый день. Имеется Адуино Искра Нано. Работала нормально. Сейчас при подаче питания с ноута индикатор питания горит, но на датчики не реагирует. Скетчи заливает, но даже простейший "помигать 13 светодиодом" не работает. При заливке пару раз моргает оранжевым, вспыхивают rx tx и все. Код (C++): void setup() { pinMode(13, OUTPUT); // Настраиваем пин 13 как выход } void loop() { digitalWrite(13, HIGH); // Включаем светодиод delay(500); // Ждем одну секунду digitalWrite(13, LOW); // Выключаем светодиод delay(500); // Снова ждем одну секунду } Подключал питание от трех батареек-таблеток по 1.5V (итого 4.5V), к пинам 5V и земля, работало как надо. Могла ли сдохнуть от того что было напряжение менее 3 В? Есть ли варианты как реанимировать?
Сейчас не работает? По симптомам Вы ее где то коротнули. Поэтому в тазик! Я так когда лампу Гайвера делал Нану спалил. Пришлось выкинуть
Вот расширенный лог при заливке скетча на плату. Вроде ошибок нет. Код (C++): FQBN: arduino:avr:nano Using board 'nano' from platform in folder: C:\Users\user1\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6 Using core 'arduino' from platform in folder: C:\Users\user1\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6 Detecting libraries used... C:\Users\user1\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -IC:\Users\user1\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino -IC:\Users\user1\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\variants\eightanaloginputs C:\Users\user1\AppData\Local\Temp\arduino\sketches\906AC0C63A6F9D5EA39CC06F354F82E3\sketch\foto.ino.cpp -o nul Generating function prototypes... C:\Users\user1\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -IC:\Users\user1\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino -IC:\Users\user1\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\variants\eightanaloginputs C:\Users\user1\AppData\Local\Temp\arduino\sketches\906AC0C63A6F9D5EA39CC06F354F82E3\sketch\foto.ino.cpp -o C:\Users\user1\AppData\Local\Temp\1650748044\sketch_merged.cpp C:\Users\user1\AppData\Local\Arduino15\packages\builtin\tools\ctags\5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives C:\Users\user1\AppData\Local\Temp\1650748044\sketch_merged.cpp Компиляция скетча... "C:\\Users\\user1\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\user1\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\user1\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "C:\\Users\\user1\\AppData\\Local\\Temp\\arduino\\sketches\\906AC0C63A6F9D5EA39CC06F354F82E3\\sketch\\foto.ino.cpp" -o "C:\\Users\\user1\\AppData\\Local\\Temp\\arduino\\sketches\\906AC0C63A6F9D5EA39CC06F354F82E3\\sketch\\foto.ino.cpp.o" Compiling libraries... Compiling core... Using precompiled core: C:\Users\user1\AppData\Local\Temp\arduino\cores\arduino_avr_nano_cpu_atmega328_194d1bf8208386a700b78e198eafc30c\core.a Linking everything together... "C:\\Users\\user1\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-gcc" -w -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p -o "C:\\Users\\user1\\AppData\\Local\\Temp\\arduino\\sketches\\906AC0C63A6F9D5EA39CC06F354F82E3/foto.ino.elf" "C:\\Users\\user1\\AppData\\Local\\Temp\\arduino\\sketches\\906AC0C63A6F9D5EA39CC06F354F82E3\\sketch\\foto.ino.cpp.o" "C:\\Users\\user1\\AppData\\Local\\Temp\\arduino\\sketches\\906AC0C63A6F9D5EA39CC06F354F82E3/..\\..\\cores\\arduino_avr_nano_cpu_atmega328_194d1bf8208386a700b78e198eafc30c\\core.a" "-LC:\\Users\\user1\\AppData\\Local\\Temp\\arduino\\sketches\\906AC0C63A6F9D5EA39CC06F354F82E3" -lm "C:\\Users\\user1\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 "C:\\Users\\user1\\AppData\\Local\\Temp\\arduino\\sketches\\906AC0C63A6F9D5EA39CC06F354F82E3/foto.ino.elf" "C:\\Users\\user1\\AppData\\Local\\Temp\\arduino\\sketches\\906AC0C63A6F9D5EA39CC06F354F82E3/foto.ino.eep" "C:\\Users\\user1\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -R .eeprom "C:\\Users\\user1\\AppData\\Local\\Temp\\arduino\\sketches\\906AC0C63A6F9D5EA39CC06F354F82E3/foto.ino.elf" "C:\\Users\\user1\\AppData\\Local\\Temp\\arduino\\sketches\\906AC0C63A6F9D5EA39CC06F354F82E3/foto.ino.hex" "C:\\Users\\user1\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-size" -A "C:\\Users\\user1\\AppData\\Local\\Temp\\arduino\\sketches\\906AC0C63A6F9D5EA39CC06F354F82E3/foto.ino.elf" Скетч использует 1958 байт (6%) памяти устройства. Всего доступно 30720 байт. Глобальные переменные используют 192 байт (9%) динамической памяти, оставляя 1856 байт для локальных переменных. Максимум: 2048 байт. "C:\Users\user1\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude" "-CC:\Users\user1\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf" -v -V -patmega328p -carduino "-PCOM6" -b115200 -D "-Uflash:w:C:\Users\user1\AppData\Local\Temp\arduino\sketches\906AC0C63A6F9D5EA39CC06F354F82E3/foto.ino.hex:i" avrdude: Version 6.3-20190619 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2014 Joerg Wunsch System wide configuration file is "C:\Users\user1\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf" Using Port : COM6 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\user1\AppData\Local\Temp\arduino\sketches\906AC0C63A6F9D5EA39CC06F354F82E3/foto.ino.hex" avrdude: writing flash (1958 bytes): Writing | ################################################## | 100% 0.25s avrdude: 1958 bytes of flash written avrdude done. Thank you.
Судя по этому логу, микроконтроллер, жив в той части, что переходит в режим программирования и прошивается. Ноут способен выдавать достаточную мощность через USB шнурок, чтобы и Нано работала и все датчики подключенные к ней? Этот "13-ый светодиод" случайно не сожгли? Если подключить внешний (только правильно подключить) он будет мигать? Хотя могли сжечь конкретный выход МК, поэтому не работает "13-ый светодиод". В этом случае лучше купить новый контроллер.
Без eeprom может работать. Не везде конечно но может. У меня в разных устройствах работают 10 мег8 с битым eeprom. Он просто не используется в коде. Скорее всего выжег какие то порты, как и сказал AlexU. Хотя с какими то палеными портами тоже может работать если только это не Rx/Tx/Miso/Mosi/Sck/Reset
Я не знаю какую структуру они имеют но на МК с битым eeprom они прекрасно меняются а вот eeprom при этом пишется но читается с ошибками.
Индикатор питания работает, IDE плату видит, avrdude прошивку считывает, я даже перепрошил. Код (C++): C:\Users\user1\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17\bin>avrdude.exe -C C:\Users\user1\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17\etc\avrdude.conf -v -patmega328p -carduino -P COM6 -b115200 -Uflash:w:optiboot_atmega328.hex:i avrdude.exe: Version 6.3-20190619 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2014 Joerg Wunsch System wide configuration file is "C:\Users\user1\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17\etc\avrdude.conf" Using Port : COM6 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.exe: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.01s avrdude.exe: Device signature = 0x1e950f (probably m328p) avrdude.exe: safemode: lfuse reads as 0 avrdude.exe: safemode: hfuse reads as 0 avrdude.exe: safemode: efuse reads as 0 avrdude.exe: NOTE: "flash" memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude.exe: erasing chip avrdude.exe: reading input file "optiboot_atmega328.hex" avrdude.exe: writing flash (32768 bytes): Writing | ################################################## | 100% 0.01s avrdude.exe: 32768 bytes of flash written avrdude.exe: verifying flash memory against optiboot_atmega328.hex: avrdude.exe: load data flash data from input file optiboot_atmega328.hex: avrdude.exe: input file optiboot_atmega328.hex contains 32768 bytes avrdude.exe: reading on-chip flash data: Reading | ################################################## | 100% 0.01s avrdude.exe: verifying ... avrdude.exe: 32768 bytes of flash verified avrdude.exe: safemode: lfuse reads as 0 avrdude.exe: safemode: hfuse reads as 0 avrdude.exe: safemode: efuse reads as 0 avrdude.exe: safemode: Fuses OK (E:00, H:00, L:00) avrdude.exe done. Thank you. Скетч успешно заливает (который тестовый с 13 пином но не работает). В какой-то момент было подано напряжение менее 3V, видимо это и есть причина неисправности.
Вот для этого ISP надо под рукой держать. А фьюзы как и EEPROM у меня слетали тоже при проблемах с питанием, когда много быстрых ыкл-выкл, например при искрении проводки.
А еще можно перепрошить Лодыря переделав Нано в Уно и при этом добавится 1.5 кб флэша под програмный код. Я все так переделал—у меня все «уно»
Фьюзы не "слетели", а наоборот прошились все до единого: Код (Bash): avrdude.exe: safemode: lfuse reads as 0 avrdude.exe: safemode: hfuse reads as 0 avrdude.exe: safemode: efuse reads as 0 avrdude.exe: safemode: Fuses OK (E:00, H:00, L:00) Надо их приводить в порядок. Какие должны быть значения смотрите файл 'hardware/arduino/avr/boards.txt'. Для Nano там прописано: Код (Bash): nano.menu.cpu.atmega328.bootloader.low_fuses=0xFF nano.menu.cpu.atmega328.bootloader.high_fuses=0xDA nano.menu.cpu.atmega328.bootloader.extended_fuses=0xFD