Реанимация Arduino
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Реанимация Arduino
От пользователя Marvin в нашу arduino-реанимацию поступили две платы - Uno и Mega 2560. Описание болезни на сайте roboforum.ru. Попробуем разобраться и если получится, то оживить их.
Начнем с Arduino Uno.
По внешним признакам - это китайский клон Arduino Uno R1.
Пациент Оригинал Адаптер USB-Serial выполнен на чипе ATmega8U2. При подключении к компу (Windows 7) опредеяется как "Communications Port".
Для проверки пробую слать в COM-порт символы из терминала (putty). На плате Arduino в это время должен загораться индикатор RX, но он не горит. Ага. Может быть дело в кривой прошивке 8U2 как в прошлый раз.
Пробую залить прошивку через Arduino ISP с помощью avrdude. avrdude показывает вот такую сигнатуру чипа:
avrdude: Device signature = 0xffffff
А должно быть 0x1e9389. Похоже, что ATmega8U2 каюк.
С платой Mega 2560 ситуация такая же.
Считаю, что решением проблемы в обоих случаях будет замена чипов ATmega8U2.
Начнем с Arduino Uno.
По внешним признакам - это китайский клон Arduino Uno R1.
Пациент Оригинал Адаптер USB-Serial выполнен на чипе ATmega8U2. При подключении к компу (Windows 7) опредеяется как "Communications Port".
Для проверки пробую слать в COM-порт символы из терминала (putty). На плате Arduino в это время должен загораться индикатор RX, но он не горит. Ага. Может быть дело в кривой прошивке 8U2 как в прошлый раз.
Пробую залить прошивку через Arduino ISP с помощью avrdude. avrdude показывает вот такую сигнатуру чипа:
avrdude: Device signature = 0xffffff
А должно быть 0x1e9389. Похоже, что ATmega8U2 каюк.
С платой Mega 2560 ситуация такая же.
Считаю, что решением проблемы в обоих случаях будет замена чипов ATmega8U2.
Re: Реанимация Arduino
Не пробовали ли Вы заливать скейтчи мимо ATmega8U2 ?
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Реанимация Arduino
Нет. Скетчи не пробовал заливать.
На Меге обновил загрузчик через ICSP - с ATMEGA2560 все нормально.
На Меге обновил загрузчик через ICSP - с ATMEGA2560 все нормально.
Re: Реанимация Arduino
Доктор, вы волшебник!Mr.Kubikus писал(а):Нет. Скетчи не пробовал заливать.
На Меге обновил загрузчик через ICSP - с ATMEGA2560 все нормально.
Re: Реанимация Arduino
Подключаю в винде, Led13 мигает сериями "один длинный, два коротких", ОС устройство не видит.Mr.Kubikus писал(а):Нет. Скетчи не пробовал заливать.
На Меге обновил загрузчик через ICSP - с ATMEGA2560 все нормально.
Отдолжили на день Arduino Mega R3, пытаюсь попробовать скейтчи залить на свои полутрупы, пока ни чего не получается.
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Реанимация Arduino
ОС видеть не будет. Там же контроллер 8U2 мертвый. На этой плате ATMEGA2560 я прошивал через ICSP без 8U2.
Re: Реанимация Arduino
Как это сделать при помощи живой Меги? В сети что-то попадается, но большей частью это прошивка загрузчикаMr.Kubikus писал(а):ОС видеть не будет. Там же контроллер 8U2 мертвый. На этой плате ATMEGA2560 я прошивал через ICSP без 8U2.
Делаю по http://arduino.cc/en/Tutorial/ArduinoISP : заливаю скейтч программатора, подключаю мегу к меге через ICSP (но reset больного подключаю к 10 ноге "программатора" ), ставлю какой-то резистор между ресетом и +5 программатора. Прицепляю светодид на 9 пин. Наблюдаю мерцание 9пин. Гружу в IDE blink, выбираю tools->Programmer->Arduino as ISP, говорю "загрузить". Наблюдаю несколько минут:
9 пим мерцает, кратковременно мигают TX/RX и сразу перестает мерцать 9 пин. Через некоторре время мигание TX/RX вновь запускает мерцание 9 пин. Затем все начинается сначала... Дождаться окончания я не смог.
Re: Реанимация Arduino
На Mega2560 yа других ногах же ICSP! Поэтому схема подключения не верная. Читаем мануалы, код скейтча, переделываем..
В меню Arduino IDE выбираю Tools -> Programmer -> Arduino as ISP
Превращаю живую Мегу при помощи скечтча ArduinoISP(из примеров) в программатор. На ней начинает мерцать LED_HB.
Подключаю светодиодны на программаторе к:
#define LED_HB 9
#define LED_ERR 8
#define LED_PMODE 7
Резистором 1кОм замыкаю на программаторе Reset и 5v.
Далее подключаю Mega(программатор)->Mega(труп)
50-50
51-51
52-52
53-reset
Земля, питание.
При наличии кабелей мама-мама, например от CD-ROM, можно подключать через разъемы ICSP (которые справа на плате).
В меню Arduino IDE выбираю Tools -> Programmer -> AVR ISP
Заливаю Blink, который прошивается в... программатор ))
Пробую несколько раз, думаю...
Подключаю Mega(программатор)->Uno(труп)
50-12
51-11
52-13
53-reset
Земля, питание.
Tools -> Board -> Arduino Uno.
После того, как Blink скомпилился, на программаторе гаснет LED_HB, несколько раз RX, затем пауза, еще несколько раз RX, потом пару раз LED_PMODE, пару раз LED_ERR, начинает мерцать LED_HB.
После чего получаю
Binary sketch size: 1026 bytes (of a 32256 byte maximum)
avrdude: stk500_getsync(): not in sync: resp=0x00
Почему в случае с двумя Мегами Blink оказывается в программаторе? Не нужно ли резать Reset-En на программаторе?
В меню Arduino IDE выбираю Tools -> Programmer -> Arduino as ISP
Превращаю живую Мегу при помощи скечтча ArduinoISP(из примеров) в программатор. На ней начинает мерцать LED_HB.
Подключаю светодиодны на программаторе к:
#define LED_HB 9
#define LED_ERR 8
#define LED_PMODE 7
Резистором 1кОм замыкаю на программаторе Reset и 5v.
Далее подключаю Mega(программатор)->Mega(труп)
50-50
51-51
52-52
53-reset
Земля, питание.
При наличии кабелей мама-мама, например от CD-ROM, можно подключать через разъемы ICSP (которые справа на плате).
В меню Arduino IDE выбираю Tools -> Programmer -> AVR ISP
Заливаю Blink, который прошивается в... программатор ))
Пробую несколько раз, думаю...
Подключаю Mega(программатор)->Uno(труп)
50-12
51-11
52-13
53-reset
Земля, питание.
Tools -> Board -> Arduino Uno.
После того, как Blink скомпилился, на программаторе гаснет LED_HB, несколько раз RX, затем пауза, еще несколько раз RX, потом пару раз LED_PMODE, пару раз LED_ERR, начинает мерцать LED_HB.
После чего получаю
Binary sketch size: 1026 bytes (of a 32256 byte maximum)
avrdude: stk500_getsync(): not in sync: resp=0x00
Почему в случае с двумя Мегами Blink оказывается в программаторе? Не нужно ли резать Reset-En на программаторе?
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Реанимация Arduino
Ага. Я то в качестве программатора использовал UNO.
Re: Реанимация Arduino
Чем определяется льеться скейтч в программатор или в труп?Mr.Kubikus писал(а):Ага. Я то в качестве программатора использовал UNO.