Мёртвая Arduino, или Как спасти плату
Недавно возникла у меня такая ситуация: купил я Arduino Leonardo, пользовался ей в течение года. И вдруг она перестала работать. Стал усиленно гуглить, пытаясь понять, как же спасти плату. И понял, что гайдов, описывающих способы спасения, не так уж много, вот я и решил написать свой.
Итак, нам дана плата Arduino (неважно, какая), в которую не вгружается скетч. Что же с ней делать?
Проверить настройки IDE.
Да-да, часто проблема кроется именно в неправильных настройках. Поэтому первым делом нужно проверить, выбран ли правильный порт, правильная ли выбрана плата, программатор, загрузчик и др. Подробные инструкции по настройке IDE для практически любой платы можно нагуглить, не буду перечислять здесь их все.
Иногда проблема кроется в отсутствии драйверов для работы с платой. Если на плате есть микросхема CH340, то для неё нужно установить драйвер, и тогда всё скорее всего заработает. Найти его можно, например, здесь
Если Ваша плата общается с другими программами на компьютере (Putty, монитор порта и др.), то отключите от неё все программы, с вероятностью 90% все заработает.
Если в Вашем проекте к пинам RX и TX (имеются в виду 0-ой и 1-ый пины), то отключите от них всё, иначе прошивка не будет загружаться
Если всё вышеперечисленное не помогло, то проблема кроется в микроконтроллере. Для решения этой проблемы есть несколько способов:
Прошивка через программатор
Если у Вас есть программатор, поддерживаемый Arduino IDE, то подключите к нему свою плату и попробуйте записать загрузчик. Если не помогает, то переходите к пункту 2. Если же у Вас нет программатора, то можно сделать его из другой платы Arduino, загрузив в неё стандартный пример ArduinoISP, и собрав всё по схеме. Конденсатор ставим обязательно, без него может не работать. Потом выбираем тип платы, которую будем прошивать, и выбираем программатор «Arduino as ISP». Потом заливаем прошивку.
Если же Вам не помогла и прошивка через программатор, то с вероятностью 99,9% ваша плата умерла.
Однако, у меня был похожий случай с платой Arduino Leonardo, и мне чудом удалось её спасти. Проблема была такова: При подключении платы к компьютеру он замечал её только минуты через 2. При загрузке прошивки компиляция проводилась успешно, но перед началом загрузки прошивки плата, как обычно сбрасывалась (это происходит всегда и для всех плат), и компьютер переставал её видеть вообще, даже после 10 минут ожидания. Решением стала установка такого же конденсатора между пином RESET и GND. Он предотвращает сброс платы.
CH340C и ремонт ардуины
- Цена: примерно $2 с доставкой за 5 штук CH340C
- Перейти в магазин
Брательнику как-то перепала парочка нерабочих ардуин. В одной был очевидно снесён кварц, в другой была явно дохлая микросхема USB интерфейса. Предположительно, могут быть дохлые порты ;) Но выкинуть всё равно жалко, нужно попробовать восстановить
Замена кварца — это просто. Но сам кварц… Он маленький. Он совсем маленький. Примерно 3.2х1.3х0.75мм. Куплен тут. Понятно что десяток, который обошелся опять же чуть меньше $2.
Вот упаковка:
Вот сам кварц:
В сравнении с обычным:
Ну и запаянный на место:
Платка замечательно определилась компом, значит можно браться за вторую.
Вторая немножко отличается, в том числе типом микросхемы. На первой была CH340G, с внешним кварцем, а тут — CH340C, ей внешний кварц не нужен.
Как видим, тут уже паяли феном ;)
Микросхемы:
Как видите, микросхемы несколько отличаются, а именно — разная маркировка первого вывода. У пятой микросхемы — то же самое что и у помеченных зелеными стрелками. Цвета стрелок, как вы уже видимо догадались, выбраны не случайно. ;)
Запаиваем микросхему, смываем флюс, и что мы видим?
Оба-на! Vid-pid по нулям, однако. Ок, давай другую!
Хм… И я решил понятное деле перепробовать все. Ну и получилось что три работают нормально, а две, которые с глубокой маркировкой — нет. Мы предположили что это может быть вариант G, которому нужен внешний кварц. Я запаял внешний кварц. Не взлетело. Я перепаял микросхему на вторую плату, где кварц уже запаян и всё работает. Не заработала. Можно предположить, что нужно обвесить кварц конденсаторами, согласно даташита , но другая микросхема-то там работает, значит дело не в конденсаторах (плюс мне всегда казалось что у трехвыводных кварцев конденсаторы уже встроены, но я могу сильно ошибаться). Ну и в таком корпусе, если верить документации, есть ровно три варианта — B, С и G. G с кварцем, B и С без, к тому же В имеет встроенный епром и вывод reset, и я не думаю что китайцы станут продавать «более дорогой мех» под видом более дешевого, так что этот вариант тоже маловероятен. Можете предложить в комментах ваши варианты, если они отличаются от «выкинь» ;)
Таким образом ардуины отремонтированы, полезный опыт получен, ну и то что китайцы могут подделывать сами себя в очередной раз доказано. Вы можете сказать, что две ардуины стоят дешевле приобретенных для их ремонта деталей, на что я возражу что детали эти во-первых приобретены с избытком, то есть пригодятся и в будущем, и во-вторых пригодятся они не только для ардуин.
Arduino.ru
Сжёг Arduino Nano. Есть смысл чинить?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Здравствуйте. 2 ардуиды соединил на макетке по питанию и земле. Случайно закоротил плюс на землю. Одна ардуина нормально работает, но только с внешним питанием (тоесть определяется, прошивается, работает), вторая работает с питанием от USB, определяется, прошивается, считывает состояние пинов, но не может выставить HIGH ни на одном пине.
Вопросы по поводу второй ардуины:
Есть смысл пытаться починить? Что чинить?
в распоряжении паяльная станция без фена, ни одного SMD компонента. Кое-какая «большая» рассыпуха, возможность заказать любой элемент, который есть в свободной продаже (если он не дороже новой ардуины :)).
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Лично в нашем регионе (72) микросхемы atmega328 не продаются, а в инете где смотрел — дорого, дороже чем из Китая заказать готовую нану за 300 рублей. Так что для нас — не стоит ремонтировать. А для вас — смотри сам.
SMD или не SMD компоненты по моему не важно, ну будет у тебя крупнее детали. нет ведь электрически разницы?
П.С. Я свою . atmega8a (в поделке) неоднократно замыкал по питанию. Ардуине хоть бы хны, перезагружается и все. Ведь замыкание по питанию — это КЗ для БП и пропадание питания для Ардуины.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А какое у тебя питание было подключено в момент краха? USB ?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Нужно провести детальную диагностику и выяснить что именно не работает. Выполняется ли основной цикл, работает ли сериал, ШИМ, АЦП и т.д.
Лично мне слабо верится что при КЗ питания выгорели ВСЕ выходные транзисторы.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
вторая работает с питанием от USB, определяется, прошивается, считывает состояние пинов, но не может выставить HIGH ни на одном пине.
Раз «определяется, прошивается», то, как минимум, пин D1 (TX) должен работать в полном объеме.
Кстати, как вы определили, что на считывание пины работают нормально?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А какое у тебя питание было подключено в момент краха? USB ?
Раз «определяется, прошивается», то, как минимум, пин D1 (TX) должен работать в полном объеме.
Кстати, как вы определили, что на считывание пины работают нормально?
Сконфигурировал все пины в инпут, написал соотв.скетч с выводом в Serial и замыкал пины на плюс через резизтор.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
вот гляжу я схему ардуино нано и не вижу, через что такое проходит питание (+5), что бы при замыкании это что то сгорело.
Погляди своими глазами, может найдешь. Вот в это нужно смотреть. По крайней мере ты сказал, что замкнул питание.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
>>Сконфигурировал все пины в инпут, написал соотв.скетч с выводом в Serial и замыкал пины на плюс через резизтор. >По крайней мере ты сказал, что замкнул питание. Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
При замыкании по питанию проц никак выгореть не может. А вот стабилизатор и/или селектор питания — легко. Проц может работать (на вход) при плохом питании, а для выходов может не хватить. Для точной диагностики нужно смотреть питание на процессоре при работе осциллографом. Если не планируется использовать внешнее питание, то можно просто все цепи питания выпаять, вместо диода шоттки D1 можно поставить перемычку — тогда только от USB. Ну или поменять этот диод и микросхему питания U3
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А еще лучше, выводи результаты, включая по очереди ноги на выход
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Недоговаривает. Или сам не понял что сделал.
Недоговариваю, да. Не замкнул, а перепутал плюс и землю. Сейчас вдруг подумал, что это не одно и то-же.
И что? Какая реакция. И для чего вы это делали ? Промеряйте мультиметром.
И. увидел в мониторе порта, что состояние пинов меняется с LOW на HIGH.
В общем, сегодня — завтра найду время. Проверю всё ещё раз, посмотрю мультиметром, что происходит на выводах и отпишусь. Собственно, ардуины мне не жалко, уже заказал новые. Починить хотелось бы из спортивного интереса.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
>>Недоговариваю, да. Не замкнул, а перепутал плюс и землю. Сейчас вдруг подумал, что это не одно и то-же. Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
>>Недоговариваю, да. Не замкнул, а перепутал плюс и землю. Сейчас вдруг подумал, что это не одно и то-же. Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Наиболее вероятен вариант: А — процу хана, Б — сдох диод выбора источника питания (Б может работать только от внешнего питания).
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Я извиняюсь. Я краб.
Обе ардуины полностью живые, не считай того, что одной из них нужно строго внешнее питание. Просто я пытался подать HIGH на пин командой pinMode(pin, HIGH)
>Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
>>Просто я пытался подать HIGH на пин командой pinMode(pin, HIGH) Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
>>Просто я пытался подать HIGH на пин командой pinMode(pin, HIGH) Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Я вам изначально говорил провести детальную диагностику.
По-хорошему, надо бы правильную статейку, под заглавием «Ардуино: жизнь после короткого замыкания», в которой были бы перечислены в правильном порядке способы диагностики.
У меня, например, то-ли LCD дисплей 1602 сдох, то-ли все цифровые пины на ардуине. Грешу на пинцет, который лежал рядом с работающими платами и мог коротнуть что-то между платой DS1307 и ардуиной. Экран сдох прямо на глазах: сначала исправно рисовал время и дату, потом с правого края артефакты посыпались и через несколько секунд он почернел (искр и пламени — не было). И теперь при подключении пинов D4-D0 тут же гаснет с некоторым мерцанием.
Светодиодом и шим-скетчем проверял — все цифровые пины работают. В принципе — есть второй такой же экран, но еще не распаянный. Хочется понять — не спалю ли я и второй, подключив к неисправной плате ардуины?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
>>По-хорошему, надо бы правильную статейку, под заглавием «Ардуино: жизнь после короткого замыкания», в которой были бы перечислены в правильном порядке способы диагностики. >Светодиодом и шим-скетчем проверял — все цифровые пины работают. В принципе — есть второй такой же экран, но еще не распаянный. Хочется понять — не спалю ли я и второй, подключив к неисправной плате ардуины? Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
>>По-хорошему, надо бы правильную статейку, под заглавием «Ардуино: жизнь после короткого замыкания», в которой были бы перечислены в правильном порядке способы диагностики. Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
>>Не все же рождаются со знаниями основ радиотехники. Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Знания закона Ома , на первых порах , хватает вполне.
Да чем Вам поможет знание закона Ома, если нет контрольных точек на плате и мануала по диагностике? :) Возможно, все это можно по крупицам собрать в интернете, но зачем тогда этот форум? Каждый раз начинать диагностику с вопроса «поступает ли питание на плату», а если поступает, то какое и сколько?
зы: Мне не надо объяснять преимущества мягкого кончика.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Знания закона Ома , на первых порах , хватает вполне.
Да на 90% задач хватает. Я свой личный «схемотехнически уровень» именно так и характеризую «закон Ома+зравый смысл» ;)
Вторая составляющая это на 80% это «законы Кирхгофа». Только «Кирхгофа» — страшно звучит :) Их можно не знать, но пользоватся ими исходя из обыкновенной «водопроводно-бытовой логики».
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Каждый раз начинать диагностику с вопроса «поступает ли питание на плату», а если поступает, то какое и сколько?
Так таки «да». По другому «диагностика» — не делается. И таки нужно для этого хотя-бы в общем виде представлять «как схема рабоает», что-бы найти «что пошло не так».
Иначае возникает вопрос «а зачем нужны врачи?», автомеханики? Почему бы на профильных форумах просто не написать «что делать если машина не заводится» или «какую таблетку скушать если колет в боку».
Как бы вам не хотелось, но свести «диагностику» к «сборнику рецептов» — не выйдет. В одних случаях рецепт подойдет, в других закончится «да будте вы прокляты, насоветуют а мне теперь материнку в ноуте менять».
Так что обычно «ремонтник» начинает, все-таки, с разъглядывания схемы и попыток понять «как оно должно работать».
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Как бы вам не хотелось, но свести «диагностику» к «сборнику рецептов» — не выйдет.
Ок, тогда хотелось бы, чтобы кто-то рассказал, как с помощью Заона Ома (и китайского тестера) провести диагностику цифрового пина номер 8.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Похоже что вам хочется не «что-бы кто-то рассказал», а доказать что «это не возможно». Никто не обещал что «китайским тестером» можно диагностировать что угодно (хотя в данном случае — можно).
Если бы вам не «доказать» хотелось, то можно было-бы применить вторую часть «здравый смысл». Даже без особых знаний электротехники.
Ну вот банально тестером прозвонить дорожку от разъема до ноги камня можно? Как говорили — открываем схему, смотрим к какой ноге камня подведен D8 и одинм щупом в разъем дуины, другим аккуратно в ногу камня. Можно об этом просто самому сообразить? Даже закон Ома не потребовался.
Далее. Мы знаем что, по нормальному пин, должен находится в высокоомном состоянии. То есть не быть закороченым ни на питание, ни на землю.
Звоним «пин и земля». Если «звенит» — занчит карачун ему. Защитный диод пробит на землю. То же самое с «пин-питание» — если звенит значит трындец.
Если все нормально — проверяем как он на выход работает. делаем pinMode(8,OUTPUT);digitalWrite(8,HIGH) — если тестером видем на этой ноге 5v- все хорошо. digitalWrite(8,LOW) — появился ноль — замечательно.
Потом тоже самое делаем но без pinMode(8,OUTPUT) — проверяем что подтягивающий резистор работает.
ПОтом делаем Serial.println(digitalRead(8)); в loop() и тыкаем соединяем пин то с землей, то с питанием. Смотрим меняются ли показания с 0 на 1 и обратно. Если меняются — значит и вход работает хорошо.
Вообщем, как видите, абсолютно никаких «специальных знаний». Толко представление что такое «цифровой пин» и чтение документации «как он должен работать», А тестером просто проверяем соотвествует ли его поведение тому что «должно быть».
И все это «только про пин». А вы хотели «сборник рецептов про все, да еще для разных плат/камней» (если тут вспомнить еще что проблемы могут быть в USB кабеле, порте компьютера, кривых дровах, плохом блоке питания, наводках/помехах и т.д. и т.п.). Вообщем, если хотите — можете сами озадачится написанием такой статьи :) Попробовать перебрать все варианты.
Теоретически — возможно. Можно даже экспертную диагностическую систему написать (было такое, писали, вообщем-то они в 80-тых годах именно для таких задач и «зародились»). Вопрос только в том «кто это профинансирует?» (деньгами или временем).