Atmega328p загружает через ISP, но не через загрузчик
Я пытаюсь загрузить загрузчик на свой atmega328p на специальной плате, содержащей внешний генератор на 16 МГц. Можно загрузить программу через контакты ICSP, используя Arduino в качестве ISP (официальный Arduino Uno), но невозможно загрузить загрузчик. Этой плате нужен загрузчик, так как она будет использоваться через интерфейс FT232RL.
Я пытался загрузить загрузчик со скоростью 115200 бод, но это не привело к считыванию подписи устройства. Также точное определение моей микросхемы: «ATMEGA328P-AU TQFP-32 8-bit 20MHz», если это поможет.
PS Это точное определение говорит, что это 20 МГц, но я подозреваю, что это правильно, поскольку я не полностью доверяю этому магазину.
Заранее спасибо
Журнал загрузки
Sketch uses 1626 bytes (5%) of program storage space. Maximum is 32256 bytes.
Global variables use 192 bytes (9%) of dynamic memory, leaving 1856 bytes for local variables. Maximum is 2048 bytes.
/Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -carduino -P/dev/cu.usbmodem14101 -b115200 -D -Uflash:w:/var/folders/9z/8cpdsm0518x0b85yx7n4y_0c0000gn/T/arduino_build_452635/sketch_dec06a.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 "/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf"
User configuration file is "/Users/deniz/.avrduderc"
User configuration file does not exist or is not a regular file, skipping
Using Port : /dev/cu.usbmodem14101
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 "/var/folders/9z/8cpdsm0518x0b85yx7n4y_0c0000gn/T/arduino_build_452635/sketch_dec06a.ino.hex"
avrdude: writing flash (1626 bytes):
Writing | ################################################## | 100% 0.27s
avrdude: 1626 bytes of flash written
avrdude: verifying flash memory against /var/folders/9z/8cpdsm0518x0b85yx7n4y_0c0000gn/T/arduino_build_452635/sketch_dec06a.ino.hex:
avrdude: load data flash data from input file /var/folders/9z/8cpdsm0518x0b85yx7n4y_0c0000gn/T/arduino_build_452635/sketch_dec06a.ino.hex:
avrdude: input file /var/folders/9z/8cpdsm0518x0b85yx7n4y_0c0000gn/T/arduino_build_452635/sketch_dec06a.ino.hex contains 1626 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 0.21s
avrdude: verifying ...
avrdude: 1626 bytes of flash verified
avrdude done. Thank you.
Журнал загрузчика (PS все попытки синхронизации происходят одновременно)
/Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -cstk500v1 -P/dev/cu.usbmodem14101 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m
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 "/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf"
User configuration file is "/Users/deniz/.avrduderc"
User configuration file does not exist or is not a regular file, skipping
Using Port : /dev/cu.usbmodem14101
Using Programmer : stk500v1
Overriding Baud Rate : 19200
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x60
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x66
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x78
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x1e
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x06
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x7e
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xe6
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x80
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x98
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x80
avrdude done. Thank you.
@Deniz da King, 👍1
Обсуждение1 ответ
Лучший ответ:
Первая проблема может быть связана с журналом загрузки. Там упоминается programmer = arduino
(в версии до редактирования). Это означает, что вы можете загружать код не в тот Arduino. Так что скетча ArduinoISP нет и работать он не будет (ошибки getsync())
Проверьте, работает ли загрузка между двумя Arduino, это должно исключить неправильное подключение на стороне программатора и т. д.
А так как это самодельная плата, то могут быть некоторые проблемы с проводкой, без обходных конденсаторов (как выяснилось в чате - это была основная проблема)
- Невозможно использовать Arduino nano в качестве ISP, потому что он не может прочитать подпись устройства.
- Не удается снова загрузиться после смены платы
- Что означает avrdude: Device signature = 0x000000? Неисправная проводка? Проблема с программным обеспечением? Неправильная инструкция?
- Можем ли мы записать загрузчик Arduino в любой чип микроконтроллера?
- Использование Arduino Nano для программирования (как ISP) автономного 328p
- Запрограммировать новый заводской Atmega328P через контакты UART, не записывая загрузчик
- Самодельный Arduino с использованием ATMEGA328P, ISP или ICSP?
- Ошибка предохранителя avrdude при программировании ATMEGA328 без кристалла
Вы пробовали "Записать загрузчик"? Потому что по умолчанию он загружает скомпилированный скетч без загрузчика (это можно изменить в настройках платы, чтобы использовать шестнадцатеричный файл и с загрузчиком)., @KIIV
Этот вывод осуществляется с помощью кнопки «Записать загрузчик», указанной в Arduino IDE. Так можно ли загрузить загрузчик и скетч одновременно?, @Deniz da King
В каталоге сборки будет еще один шестнадцатеричный файл, подобный этому: sketch_dec06a.ino.with_bootloader.hex (однако не могу вспомнить, где именно он должен быть установлен), @KIIV
Да, я нашел это. Я буду пробовать тот. Также не будет ли проблем с прошивкой скетча с бутлоадером без переопределения фьюз-битов?, @Deniz da King
Также, если вы можете написать свой комментарий в виде подробного ответа, я могу одобрить, если он работает., @Deniz da King
А вы уверены, что первый действительно работает? Программатор = arduino обычно является загрузчиком. Вы также должны увидеть это stk500v1, если вы используете «Загрузить с помощью программатора» (программатор должен быть установлен на Arduino в качестве интернет-провайдера). Возможно, вы просто загрузили его прямо в Arduino, который вместо этого должен быть программатором (и удалили из него этот скетч ArduinoISP), @KIIV
Я снова загрузил скетч ArduinoISP и попытался загрузить только скетч с_загрузчиком и только загрузчиком, но безуспешно. Я обновил журнал загрузки в вопросе. Похоже, программист не может прочитать подпись целевого устройства. Я успешно загрузил загрузчик на две одинаковые печатные платы, но не повезло с этой., @Deniz da King
Если у вас есть время изучить это более подробно, я могу переместить этот раздел комментариев в чат. Буду очень рад, если это возможно., @Deniz da King
Давайте [продолжим обсуждение в чате](https://chat.stackexchange.com/rooms/101890/discussion-between-kiiv-and-deniz-da-king)., @KIIV