Восстановление Arduino Uno r3

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем fwilde, 16 июл 2013.

  1. fwilde

    fwilde Нуб

    Добрый день

    По невнимательности подал 12В на PIN, перестали заливаться скетчи. Но нормально определяется на компе. Loop Back Test проходит успешно.

    Заказал в Интернете ATmega с прошитым бутлоадером, когда вставил светодиод моргает сериями по 3 раза в секунду с перерывом в 2 секунды. Если загрузить скетч, то светодиод гаснет и скетч работает корректно.

    Но как только отсоединить питание и снова подсоединить, скетч слетает и снова повторяется прерывистое свечение индикатора.

    Помогите советом, пожалуйста!
     
  2. nailxx

    nailxx Официальный Нерд Администратор

    Вполне может быть, что досталось не только основной ATmega328, но и ATmega16U2, служащей мостом между МК и USB. По симптомам у вас скетч остаётся на месте, но после перезагрузки на пару секунд включается бутлоадер: мигание — это его приветствие. По-хорошему через эту пару секунд Arduino должна выйти в нормальный режим, но у вас она остаётся в буте.

    Попробуйте:

    1. Отключить Arduino
    2. Зажать кнопку Reset
    3. Подключить питание
    4. Отпустить Reset

    Начинает ли в этом случае исполняться скетч?
     
  3. Yoda

    Yoda Нерд

    ООООчень интересно! Что это за такой хитрый режим? Что при этом происходит? Даже боюсь предположить..... Фьюзы не трогаются, бутлоадер - тем более. Сотрётся программа, залитая в контроллер? Так ТС вроде новый контроллер ставил.... Или проигнорируются ошибки инициализации МК?
    Чем "зажатие при включении" отличается от простого нажатия на резет? Правда интересно. (ну выдайте уже секретную фичу народу!)
    Это какой-то принудительный вывод контроллера на режим исполнения проги?
    (чую, надо покурить даташит на днях....)
     
  4. fwilde

    fwilde Нуб

    Не помогли волшебные манипуляции... =(
    Видео моргания. Наверняка, такие подмаргивания что-то значат?!
     
  5. Yoda

    Yoda Нерд

    Так-то этот светодиод - встроенная в пин 13 лампочка. И я бы сказал, что это похоже на работу залитой внутрь программы.
    Эти троекратные моргания - появляются сразу после включения дуньки?
    Обычное включение - поморгает Rx и Tx около секунды - и всё, МК готов исполнять программу.
    У вас в программе точно нету обращения к пину 13?
     
  6. fwilde

    fwilde Нуб

    Да, появляются сразу. После подачи напряжения морганию не предшествует моргания Rx и Tx.
    Когда заливаю скетч – помаргивают Rx и Tx. Затем нормально выполняется программа. До отключения питания...
    Для теста залил скетч без обращения на 13 ногу – всё то же. Мне кажется, что частыми морганиями Arduino мне хочет что-то сказать, сообщить о проблеме. Но вот о какой?!
     
  7. nailxx

    nailxx Официальный Нерд Администратор

    Происходит то, что при включении RESET оказывается притянутым к земле, МК не начинает исполнять инструкции, давая время на стабилизацию питания, если проблема была как-то связана с питанием. Просто предположение. Оно оказалось не верным.

    Я до сих пор не могу понять, как прошивка может исчезнуть из флеша при обесточивании. Что-то мне подсказывает, что она на самом деле остаётся на месте, но по каким-то причинам до её исполнения дело не доходит.

    А вы не пробовали с помощью avrdude после выключения-включения скачать прошивку и сравнить полученный `.hex` с тем `.hex`ом, что накомпилировала Arduino IDE для заливки. Совпадают ли они один-в-один?
     
  8. Yoda

    Yoda Нерд

    Понятно. Мне самому иногда так приходилось делать, когда я хотел увидеть на управляемых устройствах результаты работы программы с самого начала, а не с секции loop.
    После этих слов готов был сказать что накрылась микросхема УСБ хаба. Потому что при перезагрузке ардуинка регистрируется на компике как устройство, при этом визуально проскакивают моргания Rx и Tx. Или при выключении питания?!?!?! (вроде при нажатие на резет платы, компик не теряет устройство) А эти "тройные моргалки" появляются сразу И ПРИ ПОДАЧЕ ПИТАНИЯ тоже?
    А после слов
    подумал, что УСБ хаб всё-таки жив.
    На самом деле, попробуйте блинк на всех портах (светодиод с резистором по очереди в каждый порт и блинк из примеров на каждый порт) - будет ли моргать светодиодом?

    Что означает это троекратное помаргивание - может сказать тот, кто декомпилировал бутовую прошивку. Там наверняка встроена какая-то процедура инициализации платы (опрос того же УСБ хаба, ещё кого-нибудь). И эти "мыргалки" возможно аналог "пищалок" материнской платы компьютера (процедура POST).

    Может на инглише этот вопрос на http://forum.arduino.cc/ задать?
     
  9. Yoda

    Yoda Нерд

    Вот в этой теме на второй странице было описание похожей на вашу проблемы: http://forum.arduino.cc/index.php?PHPSESSID=fvkij18ddupr4e3nj889aq67l0&topic=28686.15 Только по-моему, ему ничего вразумительного не ответили...
    немножко текста с той темы:
    "The problem's with the Arduino software, not the board... That is, there's already a ready to receive signal - an LED on pin 13 flashes three times when the bootloader starts, after which you have 5-6 seconds for the upload to begin. For simplicity, however, the Arduino environment recompiles your code every time you upload (I want to do something about this, but it's not been the highest priority), which on some machines seems to be very slow for reasons I don't really understand. Thus, by the time the upload begins, the bootloader has already timed out.

    The suggestion of pressing the reset button after the hitting upload is mentioned on the troubleshooting page http://www.arduino.cc/en/Guide/Troubleshooting, but it's certainly easy to miss. I'll take a look at improving the error message in the environment.
    "
    Гуглоперевод:
    "Проблема это с программным обеспечением Arduino, а не совет ... То есть, уже готов к приему сигнала - светодиод на вывод 13 мигает три раза, когда начинается загрузчик, после чего у вас есть 5-6 секунд для загрузки, чтобы начать. Для простоты, однако, окружающая среда Arduino перекомпилирует код каждый раз, когда вы загружаете (я хочу сделать что-то об этом, но это не был самый высокий приоритет), который на некоторых машинах, кажется, очень медленно по причинам, я не очень понимаю . Таким образом, к моменту, когда начинается загрузка, загрузчик уже истекло.

    Предложением нажать кнопку сброса после удара Загрузить упоминается по устранению неисправностей http://www.arduino.cc/en/Guide/Troubleshooting страницы, но это, конечно, легко пропустить. Я буду смотреть на улучшение сообщение об ошибке в окружающей среде.
    "
     
  10. Yoda

    Yoda Нерд

    подумалось.... (неужели)))
    А вам прислали МК с какой версией прошивки(бутлоадера)? Если прочитать выдернутый текст с импортного форума, то похоже на поведение старого контроллера. Может прошивка в микроконтроллере "заточена" не под USB хаб, а ещё на сериал порт? может перепрошивка поможет? (только на свой страх и риск, я за последствия не отвечаю)
     
  11. fwilde

    fwilde Нуб

    Склонен думать, что именно отсутствие питания вводит Ардуино в такой режим.
    Пробовал залить скетч, подключить внешнее питание 12В, отключить USB. Работает.
    Но когда выключаю внешнюю батарейку и включаю, сразу вижу тройное моргание...
    Может такое быть, что при отсутствии питания затирается скетч в МК?

    P.S. Вот, похоже, ответ.
     
  12. Citrus

    Citrus Нерд

    скетч хранится в энергонезависимой памяти.
     
  13. silvan_sa

    silvan_sa Нуб

    Добрый день! Вам нужно просто залить bootloader в атмегу328 через isp и собственно все. как это сделать можно посмотреть здесь:

     
  14. Stalker_cs

    Stalker_cs Нуб

    Есть простой способ решить вашу проблему. Достаточно лишь подтянуть Reset ардуино к +5в. (Только не забывайте убирать перемычку при прошивке. И учтите, что если ресет притянут к +5 и в этот момент нажать кнопку ресет, то произойдёт замыкание +5 на землю. Это не критично, но лучше перестраховаться)
     
  15. b707

    b707 Гуру

    Ресет подтягивается к +5в черех резистор 10к и не будет никаких замыканий.
     
  16. parovoZZ

    parovoZZ Гуру

    reset и так внутри подтянут к Vcc.
    а если у меня 4.5 вольта, то надо где-то 5 вольт искать?
     
  17. нече что тема 13 года?