Не отвечает ATmega2560 в самодельном Arduino Mega 2560
- Войдите на сайт для отправки комментариев
Чт, 03/03/2016 - 08:47
Всем привет.
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 – не помогает.
Подскажите, куда копать... Может быть, есть какие-то предположения, могу потыкать плату осциллографом.
Проверьте кварц mega2560, цепь ресет от USB-UART к mega. Возьмите тестер, прозвоните выводы на предмет короткого, может непротравы где есть. Пробовали заливать скетч через зажатую кнопку ресет?
У меня так было, когда перепутал номиналы конденсаторов, которые от кварца на землю идут.
У меня так было, когда перепутал номиналы конденсаторов, которые от кварца на землю идут.
оно прекрасно работает и без конденсаторов.
а где фото платы?
Дело оказалось, как ни странно, в ATmega16U2, которая, вроде бы, и так работала. Надо было соединить GND и UGND, плюс сбросить фьюз CKDIV8. Все заработало.
Фото платы: http://sepulkary.com/wp-content/uploads/P_20160306_1830501.jpg
хм, а с какой целью там 2560, если 328 по виду вполне должно хватить?
Это копия Arduino Mega 2560, заказчик, соответственно, хочет, чтобы все скетчи для Mega работали и на этой плате.
ну ему виднее... Хотя это дороже выходит.
[quote=ecoo]
Дело оказалось, как ни странно, в ATmega16U2, которая, вроде бы, и так работала. Надо было соединить GND и UGND, плюс сбросить фьюз CKDIV8. Все заработало.
Фото платы: http://sepulkary.com/wp-content/uploads/P_20160306_1830501.jpg
Есть уточняющий вопрос - CKDIV8 на ATmega16U2 сбросил или на 2560?
За подсказку с CKDIV8 спасибо!!!! Заработало.