Не отвечает ATmega2560 в самодельном Arduino Mega 2560

ecoo
ecoo аватар
Offline
Зарегистрирован: 03.03.2016
Всем привет.
 
1. Сделал самодельный Arduino Mega 2560 (перерисовал схему с оригинала и переразвел плату в нужном мне формате). Схема – http://sepulkary.com/wp-content/uploads/ArduinoMega.pdf.
 
2. Внешним программатором залил в ATmega16U2 Arduino-COMBINED-dfu-usbserial-atmega16u2-Mega2560-Rev3.hex из C:\Program Files (x86)\Arduino\hardware\arduino\avr\firmwares\atmegaxxu2. Со стороны ПК плата видится нормально, как COM-порт Arduino Mega. При замыкании пинцетом RX-TX, идущих в сторону ATmega2560, в мониторе порта в Arduino вижу нормальное эхо. Вроде ATmega16U2 работает нормально.
 
3. Внешним программатором залил в ATmega2560 stk500boot_v2_mega2560.hex из C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\stk500v2. При включении питания светодиод, подключенный к 26 (PB7) ноге ATmega2560, начинает моргать (моргает несколько странно, в середине импульса небольшое понижение яркости, видео https://www.youtube.com/watch?v=Nin3D5g-m4s).
 
4. При попытке залить скетч промаргивает светодиод RXL, подключенный к 10 ноге ATmega16U2. Светодиод TXL не горит, не мигает, похоже, ATmega2560 вообще не отвечает. Среда Arduino (Windows 7 64-bit) выдает следующий лог:
 
avrdude: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58
System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"
 
Using Port                    : COM8
Using Programmer              : wiring
Overriding Baud Rate          : 115200
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
avrdude done.  Thank you.
 
Пробовал следующие пути решения проблемы:
1. Менял фьюзы ATmega2560 (в интернете есть два разных варианта рекомендованных фьюзов) – не помогает.
2. Пробовал заливать в ATmega2560 файл Mega2560-prod-firmware-2011-06-29.hex из Mega2560-prod-firmware-2011-06-29.hex, не помогает.
3. Пробовал заливать в ATmega2560 файл ATmegaBOOT_168_mega2560.hex (нашел на просторах интернета, что в китайские Ардуино заливать лучше его; не пойму почему, у китайцев другая схемотехника или все-таки среда Ардуино различает фирменную плату и самодельные устройства?) плюс создавал новое устройство через boards.txt – не помогает.
 
Подскажите, куда копать... Может быть, есть какие-то предположения, могу потыкать плату осциллографом.
diger67
Offline
Зарегистрирован: 25.07.2015

Проверьте кварц mega2560, цепь ресет от USB-UART к mega. Возьмите тестер, прозвоните выводы на предмет короткого, может непротравы где есть. Пробовали заливать скетч через зажатую кнопку ресет?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

У меня так было, когда перепутал номиналы конденсаторов, которые от кварца на землю идут.

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

ЕвгенийП пишет:

У меня так было, когда перепутал номиналы конденсаторов, которые от кварца на землю идут.

оно прекрасно работает и без конденсаторов.

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

а где фото платы?

ecoo
ecoo аватар
Offline
Зарегистрирован: 03.03.2016

Дело оказалось, как ни странно, в ATmega16U2, которая, вроде бы, и так работала. Надо было соединить GND и UGND, плюс сбросить фьюз CKDIV8. Все заработало.

Фото платы: http://sepulkary.com/wp-content/uploads/P_20160306_1830501.jpg

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

хм, а с какой целью там 2560, если 328 по виду вполне должно хватить?

ecoo
ecoo аватар
Offline
Зарегистрирован: 03.03.2016

Это копия Arduino Mega 2560, заказчик, соответственно, хочет, чтобы все скетчи для Mega работали и на этой плате.

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

ну ему виднее... Хотя это дороже выходит.

Alex_Shum
Offline
Зарегистрирован: 27.12.2016

[quote=ecoo]

Дело оказалось, как ни странно, в ATmega16U2, которая, вроде бы, и так работала. Надо было соединить GND и UGND, плюс сбросить фьюз CKDIV8. Все заработало.

Фото платы: http://sepulkary.com/wp-content/uploads/P_20160306_1830501.jpg

Есть уточняющий вопрос - CKDIV8 на ATmega16U2 сбросил или на 2560?

Alex_Shum
Offline
Зарегистрирован: 27.12.2016

За подсказку с CKDIV8 спасибо!!!! Заработало.