Сжёг Arduino Nano. Есть смысл чинить?

uscr
Offline
Зарегистрирован: 17.08.2012

Здравствуйте. 2 ардуиды соединил на макетке по питанию и земле. Случайно закоротил плюс на землю. Одна ардуина нормально работает, но только с внешним питанием (тоесть определяется, прошивается, работает), вторая работает с питанием от USB, определяется, прошивается, считывает состояние пинов, но не может выставить HIGH ни на одном пине.

 

Вопросы по поводу второй ардуины:

Есть смысл пытаться починить? Что чинить?
в распоряжении паяльная станция без фена, ни одного SMD компонента. Кое-какая "большая" рассыпуха, возможность заказать любой элемент, который есть в свободной продаже (если он не дороже новой ардуины :)).

usr-bin
Offline
Зарегистрирован: 04.09.2012

Лично в нашем регионе (72) микросхемы atmega328 не продаются, а в инете где смотрел - дорого, дороже чем из Китая заказать готовую нану за 300 рублей. Так что для нас - не стоит ремонтировать. А для вас - смотри сам.

SMD или не SMD компоненты по моему не важно, ну будет у тебя крупнее детали... нет ведь электрически разницы?

 

П.С. Я свою ... atmega8a (в поделке) неоднократно замыкал по питанию. Ардуине хоть бы хны, перезагружается и все. Ведь замыкание по питанию - это КЗ для БП и пропадание питания для Ардуины.

 

usr-bin
Offline
Зарегистрирован: 04.09.2012

А какое у тебя питание было подключено в момент краха? USB ?

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

Нужно провести детальную диагностику и выяснить что именно не работает. Выполняется ли основной цикл, работает ли сериал, ШИМ, АЦП и т.д.

Лично мне слабо верится что при КЗ питания выгорели ВСЕ выходные транзисторы.

step962
Offline
Зарегистрирован: 23.05.2011

uscr пишет:

[...]

вторая работает с питанием от USB, определяется, прошивается, считывает состояние пинов, но не может выставить HIGH ни на одном пине.

Раз "определяется, прошивается", то, как минимум, пин D1 (TX) должен работать в полном объеме. 

Кстати, как вы определили, что на считывание пины работают нормально?

uscr
Offline
Зарегистрирован: 17.08.2012

usr-bin пишет:

А какое у тебя питание было подключено в момент краха? USB ?

Да.

 

step962 пишет:

Раз "определяется, прошивается", то, как минимум, пин D1 (TX) должен работать в полном объеме. 

Кстати, как вы определили, что на считывание пины работают нормально?

Сконфигурировал все пины в инпут, написал соотв.скетч с выводом в Serial и замыкал пины на плюс через резизтор.

usr-bin
Offline
Зарегистрирован: 04.09.2012

вот гляжу я схему ардуино нано и не вижу, через что такое проходит питание (+5), что бы при замыкании это что то сгорело.

Погляди своими глазами, может найдешь. Вот в это нужно смотреть. По крайней мере ты сказал, что замкнул питание.

 

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>Сконфигурировал все пины в инпут, написал соотв.скетч с выводом в Serial и замыкал пины на плюс через резизтор.<<

И что ? Какая реакция. И для чего вы это делали ? Промеряйте мультиметром.

>>По крайней мере ты сказал, что замкнул питание.<<

Недоговаривает. Или сам не понял что сделал.

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

При замыкании по питанию проц никак выгореть не может. А вот стабилизатор и/или селектор питания - легко. Проц может работать (на вход) при плохом питании, а для выходов может не хватить. Для точной диагностики нужно смотреть питание на процессоре при работе осциллографом. Если не планируется использовать внешнее питание, то можно просто все цепи питания выпаять, вместо диода шоттки D1 можно поставить перемычку - тогда только от USB. Ну или поменять этот диод и микросхему питания U3

step962
Offline
Зарегистрирован: 23.05.2011
AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

А еще лучше, выводи результаты, включая по очереди ноги на выход

uscr
Offline
Зарегистрирован: 17.08.2012

nestandart пишет:

Недоговаривает. Или сам не понял что сделал.

Недоговариваю, да. Не замкнул, а перепутал плюс и землю. Сейчас вдруг подумал, что это не одно и то-же.

 

nestandart пишет:

И что? Какая реакция. И для чего вы это делали ? Промеряйте мультиметром.

И... увидел в мониторе порта, что состояние пинов меняется с LOW на HIGH. 

В общем, сегодня - завтра найду время. Проверю всё ещё раз, посмотрю мультиметром, что происходит на выводах и отпишусь. Собственно, ардуины мне не жалко, уже заказал новые. Починить хотелось бы из спортивного интереса.

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>Недоговариваю, да. Не замкнул, а перепутал плюс и землю. Сейчас вдруг подумал, что это не одно и то-же.<<

Где именно вы перепутали плюс и минус ?   по входу общего питания дуины ? Какое питание USB ли внешнее ? 

Если по входу , то мог пострадать лишь стаб. Очень маленькая вероятность того что он выгорел ипустил в МК напругу 7в и выше (это моментальная смерть МК), плюс диод.

Вобщем вы опять недоговариваете. При каких обстоятельствах произошла переполюсовка ?

uscr
Offline
Зарегистрирован: 17.08.2012

nestandart пишет:

>>Недоговариваю, да. Не замкнул, а перепутал плюс и землю. Сейчас вдруг подумал, что это не одно и то-же.<<

Где именно вы перепутали плюс и минус ?   по входу общего питания дуины ? Какое питание USB ли внешнее ? 

Если по входу , то мог пострадать лишь стаб. Очень маленькая вероятность того что он выгорел ипустил в МК напругу 7в и выше (это моментальная смерть МК), плюс диод.

Вобщем вы опять недоговариваете. При каких обстоятельствах произошла переполюсовка ?

 

2 ардуины на макетке. Одна (А) пинами +5 и GND подключена к соответсвующим рельсам макетки. К другой (Б) подключаю USB. От (Б) тяну провода к рельсам питания с пинов +5 и GND, что бы запитать (А). Тыкаю +5 в рельсу земли, землю в плюсовую рельсу. Смотрю, как на (А) вспыхивает и мееедленно гаснет светодиод на 13 пине. Понимаю, что я сделал, привожу всё в порядок. Имею то, что описано.

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Наиболее вероятен вариант: А - процу хана, Б - сдох диод выбора источника питания (Б может работать только от внешнего питания).

uscr
Offline
Зарегистрирован: 17.08.2012

Я извиняюсь. Я краб. 

Обе ардуины полностью живые, не считай того, что одной из них нужно строго внешнее питание. Просто я пытался подать HIGH на пин командой pinMode(pin, HIGH)

><

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>Просто я пытался подать HIGH на пин командой pinMode(pin, HIGH)<<

У меня нет слов.

Я вам изначально говорил провести детальную диагностику.

uscr
Offline
Зарегистрирован: 17.08.2012

nestandart пишет:

>>Просто я пытался подать HIGH на пин командой pinMode(pin, HIGH)<<

У меня нет слов.

Я вам изначально говорил провести детальную диагностику.

 

Собственно, чем я и занялся в итоге.

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

nestandart пишет:

Я вам изначально говорил провести детальную диагностику.

По-хорошему, надо бы правильную статейку, под заглавием "Ардуино: жизнь после короткого замыкания", в которой были бы перечислены в правильном порядке способы диагностики.

У меня, например, то-ли LCD дисплей 1602 сдох, то-ли все цифровые пины на ардуине. Грешу на пинцет, который лежал рядом с работающими платами и мог коротнуть что-то между платой DS1307 и ардуиной. Экран сдох прямо на глазах: сначала исправно рисовал время и дату, потом с правого края артефакты посыпались и через несколько секунд он почернел (искр и пламени - не было).  И теперь при подключении пинов D4-D0 тут же гаснет с некоторым мерцанием.

Светодиодом и шим-скетчем проверял - все цифровые пины работают. В принципе - есть второй такой же экран, но еще не распаянный. Хочется понять - не спалю ли я и второй, подключив к неисправной плате ардуины?

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>По-хорошему, надо бы правильную статейку, под заглавием "Ардуино: жизнь после короткого замыкания", в которой были бы перечислены в правильном порядке способы диагностики.<<

Дуина задесь не причем. Это основы радиотехники.

С переполюсовкой можно бороться диодным мостом. Против КЗ помогает самовостанавливающийся предохранитель миллиампер на 500. Не на всех дуинах он есть.

А для грамотной статейки нужно штук десять дуин каждого вида и месяц экспериментов.

>>Светодиодом и шим-скетчем проверял - все цифровые пины работают. В принципе - есть второй такой же экран, но еще не распаянный. Хочется понять - не спалю ли я и второй, подключив к неисправной плате ардуины?<<

С чего вы взяли что она не исправна ? Вы же ее проверили.  Если пин выгорает то это сразу и навсегда.

У меня было два подобных случая.

Первый , подал 12в на общую шину питания МК. МК умер сразу и на реанимационные действия не реагировал.

Второй , вытянул с пина 12 ток около 300-500мА. Случайно замкнул базу транзистора-ключа с его коллектором. В нагрузке висело что то вроде мощной релюшки.

Результат . По началу МК не реагировал ни на что. Полежав несколько часов начал прошиваться , но с десятого раза.

Стал жутко греться и жрать около 500мА. Все рабочие функции сохранились , за исключением того что пин 12 умер совсем.

Рабоатет уже больше года.

Кстати, все перечисленные случаи происходили на "Голых МК". Т.е. самодельная плата с минимальной объвязкой и без USB-UART конвертера.

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

nestandart пишет:

>>По-хорошему, надо бы правильную статейку, под заглавием "Ардуино: жизнь после короткого замыкания", в которой были бы перечислены в правильном порядке способы диагностики.<<

Дуина задесь не причем. Это основы радиотехники.

Диагностика - это указание контрольных точек и номиналов при исправной схеме. Чтобы можно было, потыкав тестером или светодиодом, грубо определить: нет питания, у контроллера вход отгорел, или надо смотреть другую сторону... Не все же рождаются со знаниями основ радиотехники. :)

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>Не все же рождаются со знаниями основ радиотехники.<<

Согласен, ни кто не рождается.

Но почитать мануалы по этому поводу не лишнее.

Вообще, человек работающий с МК это некая смесь программиста и радиотехника. По крайней мере так должно быть.

При работе с дуиной должны присутствовать , хотя бы знания закона Ома (для участка цепи), расчет резисторов , расчет конденсаторов и т.д.

Знания закона Ома , на первых порах , хватает вполне.

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

nestandart пишет:

Знания закона Ома , на первых порах , хватает вполне.

Да чем Вам поможет знание закона Ома, если нет контрольных точек на плате и мануала по диагностике? :) Возможно, все это можно по крупицам собрать в интернете, но зачем тогда этот форум? Каждый раз начинать диагностику с вопроса "поступает ли питание на плату", а если поступает, то какое и сколько?

зы: Мне не надо объяснять преимущества мягкого кончика.

leshak
Offline
Зарегистрирован: 29.09.2011

nestandart пишет:

Знания закона Ома , на первых порах , хватает вполне.

Да на 90% задач хватает. Я свой личный "схемотехнически уровень" именно так и характеризую "закон Ома+зравый смысл" ;)

Вторая составляющая это на 80% это "законы Кирхгофа". Только "Кирхгофа" - страшно звучит :)  Их можно не знать, но пользоватся ими исходя из  обыкновенной "водопроводно-бытовой логики".

leshak
Offline
Зарегистрирован: 29.09.2011

 

Andrey_Y_Ostanovsky пишет:

Каждый раз начинать диагностику с вопроса "поступает ли питание на плату", а если поступает, то какое и сколько?

Так таки "да". По другому "диагностика" - не делается. И таки нужно для этого хотя-бы в общем виде представлять "как схема рабоает", что-бы найти "что пошло не так".

Иначае возникает вопрос "а зачем нужны врачи?", автомеханики? Почему бы на профильных форумах просто не написать "что делать если машина не заводится" или "какую таблетку скушать если колет в боку".

Как бы вам не хотелось, но свести "диагностику" к "сборнику рецептов" - не выйдет. В одних случаях рецепт подойдет, в других закончится "да будте вы прокляты, насоветуют а мне теперь материнку в ноуте менять".

Так что обычно "ремонтник" начинает, все-таки, с разъглядывания схемы и попыток понять "как оно должно работать".

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

leshak пишет:

Как бы вам не хотелось, но свести "диагностику" к "сборнику рецептов" - не выйдет.

Ок, тогда хотелось бы, чтобы кто-то рассказал, как с помощью Заона Ома (и китайского тестера) провести диагностику цифрового пина номер 8.

leshak
Offline
Зарегистрирован: 29.09.2011

Похоже что вам хочется не "что-бы кто-то рассказал", а доказать что "это не возможно". Никто не обещал что "китайским тестером" можно диагностировать что угодно (хотя в данном случае - можно).

Если бы вам не "доказать" хотелось, то можно было-бы применить вторую часть "здравый смысл". Даже без особых знаний электротехники.

Ну вот банально тестером прозвонить дорожку от разъема до ноги камня можно? Как говорили - открываем схему, смотрим к какой ноге камня подведен D8 и одинм щупом в разъем дуины, другим аккуратно в ногу камня. Можно об этом просто самому сообразить? Даже закон Ома не потребовался.

Далее. Мы знаем что, по нормальному пин, должен находится в высокоомном состоянии. То есть не быть закороченым ни на питание, ни на землю.

Звоним "пин и земля". Если "звенит" - занчит карачун ему. Защитный диод пробит на землю. То же самое с "пин-питание" - если звенит значит трындец.

Если все нормально - проверяем как он на выход работает. делаем pinMode(8,OUTPUT);digitalWrite(8,HIGH) - если тестером видем на этой ноге 5v- все хорошо. digitalWrite(8,LOW) - появился ноль - замечательно.

Потом тоже самое делаем но без pinMode(8,OUTPUT) - проверяем что подтягивающий резистор работает.

 

ПОтом делаем Serial.println(digitalRead(8)); в loop() и тыкаем соединяем пин то с землей, то с питанием. Смотрим меняются ли показания с 0 на 1  и обратно. Если меняются - значит и вход работает хорошо.

Вообщем, как видите, абсолютно никаких "специальных знаний". Толко представление что такое "цифровой пин" и чтение документации "как он должен работать", А тестером просто проверяем соотвествует ли его поведение тому что "должно быть".

 

И все это "только про пин". А вы хотели "сборник рецептов про все, да еще для разных плат/камней" (если тут вспомнить еще что проблемы могут быть в USB кабеле, порте компьютера, кривых дровах, плохом блоке питания, наводках/помехах и т.д. и т.п.). Вообщем, если хотите - можете сами озадачится написанием такой статьи :) Попробовать перебрать все варианты.

Теоретически - возможно. Можно даже экспертную диагностическую систему написать (было такое, писали, вообщем-то они в 80-тых годах именно для таких задач и "зародились"). Вопрос только в том "кто это профинансирует?" (деньгами или временем).

P.S. А вообще конечно было-бы интерестно такое написать. Вспомнить детство и язык Prolog ;)

 

 

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

leshak пишет:

Далее. Мы знаем что, по нормальному пин, должен находится в высокоомном состоянии. То есть не быть закороченым ни на питание, ни на землю. Звоним "пин и земля". Если "звенит" - занчит карачун ему. Защитный диод пробит на землю. То же самое с "пин-питание" - если звенит значит трындец.

"Звоним" тестером на любом диапазоне измерения, сколько там должно быть в исправном состоянии (у меня показывает бесконечность относительно земли и vcc)? Ногу у камня не попалим? Далее, берем схему распиновки и смотрим - куда у нас приходит 8-й пин. Путем прозвонки всех ног выяснил - на 14-ю. Вот что значит - закон Ома! Глядя в схему - ни за что бы не догадался. :)

ATmega328 корпус 28DIP

leshak пишет:

Вообщем, как видите, абсолютно никаких "специальных знаний". Толко представление что такое "цифровой пин" и чтение документации "как он должен работать", А тестером просто проверяем соотвествует ли его поведение тому что "должно быть".

P.S. А вообще конечно было-бы интерестно такое написать. Вспомнить детство и язык Prolog ;)

Дак я и спрашивал: что должно быть и где на исправной плате? :) А Вы мне про закон Ома... Попадалась где-то хорошая цветная картинка, на которой было явно промаркировано номера пинов и ноги процессора, а когда понадобилась - не нашел. :( Потому и нужен небольшой справочный HowTo, куда можно было бы сунуть нос и посмотреть то, что надо.

leshak
Offline
Зарегистрирован: 29.09.2011

 

Andrey_Y_Ostanovsky пишет:

"Звоним" тестером на любом диапазоне измерения, сколько там должно быть в исправном состоянии (у меня показывает бесконечность относительно земли и vcc)? Ногу у камня не попалим?

Во первых у любого, даже дешового цифрового тестера есть специальный режим "прозвонки". Конгда он звенит/пищит при замкнутых щупах. При сопротивленяих близких к нулю.  Именно что-бы "искать обрыв/замыкание". В этом режиме - нет не попалим. Исправный порт, включенный на вход должен иметь сопротивление в мегаомы. Если это не так - он уже дохлый. Именно это мы и проверяем.

Andrey_Y_Ostanovsky пишет:

Далее, берем схему распиновки и смотрим - куда у нас приходит 8-й пин. Путем прозвонки всех ног выяснил - на 14-ю. Вот что значит - закон Ома! Глядя в схему - ни за что бы не догадался. :)

Вы не внимательно читали. Говорилось что "закона Ома" - достаточно в большинстве случаев. Но "достаточно", это не значит "обязательно". В данном случае даже его знания не особо требует.

А смотрели вы, в цоколевку кристала. Это хорошо, конечно, что вы ее нашли. Вдвойне здорово - если в даташите. Но... в данном случае мы чиним ардуину, следовательно и смотреть нужно схему ардуины, а не одного только камня. 

Вот идем на описание любой платы. Скажем уны. http://arduino.ru/Hardware/ArduinoBoardUno

Там есть такой люпытный раздел, под названием Схема и исходные данные". Который содрежит в себе :

Принципиальная схема: arduino-duemilanove-schematic.pdf

Где совсем не трудно найти куда идет проводок от восьмого выхода.

 

А можно и в готовом виде найти эти соответсвия например тут  Прямое управления выходами через регистры микроконтроллера Atmega

Можно конечно сказать "ой, ну кто же знал что в этой статье искать нужно", но статья эта находится в разделе Программирование, в самом верху, в подразедел "Базовые и полезные знания, необходимые для успешного программирования под платформу Arduino".

А как бы предполагается что ремотник ознакомился с "базовыми знаниями".

Ну и гугл - не хранит молчание "arduino pin mapping"

http://arduino.cc/en/Hacking/PinMapping
http://arduino.cc/en/Hacking/PinMapping168
http://arduino.cc/en/Hacking/PinMapping2560

А чинить что-то не найдя "схемы пренципиальной" - ну это странно. Это как заниматся медициной не зная анатомии. Как вы будете искать неисправность, если не знаете "что должно быть"? Ну вызвонили вы дорогу. Повезло. А если бы она была оборвана? 

И схему с перечислением "что куда идти" - никто вам на форуме на расскажет. Для того схема уже есть в документации. И на этом сайте и на arduino.cc

Andrey_Y_Ostanovsky пишет:

Дак я и спрашивал: что должно быть и где на исправной плате? :)

Опять 25-ть. Вам всю схему пересказывать? Смотрите схему, пытаетесь понять как она работает.

Andrey_Y_Ostanovsky пишет:

Потому и нужен небольшой справочный HowTo, куда можно было бы сунуть нос и посмотреть то, что надо.

"Доктор, что-то мне херово, дайте мне таблетку".

Небольшой - не поможет (а может навредить). Большой - огромный кусок работы. Да и толку? Все равно читать будет 0.5% кому это нужно.  Вот и схема и пин-мапинги есть в доках, вы их нашли?  Или вы думаете что это первая ветка, где сгоревшую плату диагностят. И про отгоревшие питание, и с картинками и диодами - все это было. И что первым что начинают проверять это "питание и земля не замкнуты", какое напряжение на пинах и т.п. Все это было. Но... вообщем что тут не напиши - а все равно каждый будет заводить новую ветку. Да еще, в 20% случаев с одним названием "помогите новичку".

 

 

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

leshak пишет:

Исправный порт, включенный на вход должен иметь сопротивление в мегаомы. Если это не так - он уже дохлый. Именно это мы и проверяем.

Вот ведь как... А мне казалось, что измерять сопротивление на пробой надо в выключенном состоянии. :) И ведь никто не акцентировал этот момент!

leshak пишет:

 

Вот и схема и пин-мапинги есть в доках, вы их нашли?  

Это о чем, по-Вашему говорит? О том, что не надо было их туда класть? :)

leshak пишет:

Или вы думаете что это первая ветка, где сгоревшую плату диагностят. И про отгоревшие питание, и с картинками и диодами - все это было. И что первым что начинают проверять это "питание и земля не замкнуты", какое напряжение на пинах и т.п. Все это было. Но... вообщем что тут не напиши - а все равно каждый будет заводить новую ветку. Да еще, в 20% случаев с одним названием "помогите новичку".

Тем не менее, если ткнуться в интернет - там найдется сотня методик поиска неисправностей в блоках питания, мониторах и т.п., но мне еще не попадалось ни одной такой методики для ардуино. Наверное потому, что их, при цене $10 за штуку, никто не ремонтирует...

leshak
Offline
Зарегистрирован: 29.09.2011

Andrey_Y_Ostanovsky пишет:

leshak пишет:

Исправный порт, включенный на вход должен иметь сопротивление в мегаомы. Если это не так - он уже дохлый. Именно это мы и проверяем.

Вот ведь как... А мне казалось, что измерять сопротивление на пробой надо в выключенном состоянии. :) И ведь никто не акцентировал этот момент!

А зачем? Это одно и тоже. По умолчанию все порты и есть "на вход включены". Изначально. Да очем вообще речь? Вам нужно было "проверить пин" - общую идеолгоию проверки пина - вам дали (не всю плату целиком, когда же вы поймете что "вся плата" - это громадный кусок работы).

Тут еще какая-то нотка "претензий" проскочила. Ах, нехороший, не заострил внимания. Ну так может тогда просто пойдете к ремонтнику, который вам отремонтирует за денежку? Вы же занимаетесь "самолечением по форумам". И да - это иногда заканчивается плохо. По куче разных причин.

Andrey_Y_Ostanovsky пишет:

Тем не менее, если ткнуться в интернет - там найдется сотня методик поиска неисправностей в блоках питания, мониторах и т.п., но мне еще не попадалось ни одной такой методики для ардуино. Наверное потому, что их, при цене $10 за штуку, никто не ремонтирует...

Ладно. OK. Убедили. Мир устроен не справедливо. Должна быть такая статья для ардуины, а ее - нет. Что дальше? Разберетесь и сами напишите? Буде ждать пока кто-нибудь напишет? Пойдете в раздел "ищу исполнителя" и наймете кого-то для выполнения этой работы? Или удовлетворитесь прочто тем что "мне что-то доказали". Ну ладно. "Должна такая статья быть".

А если вы погуглите, то вы и найдете такие статьи. Только не "как починить", а в что-то типа "микроконтроллеры для начинающих", где описываются принципы, как устроены порты, как сделать свою минимальную ардуину и т.п. Возмете схему и каждую "непонятную детальнку" прогуглите и попытаетесь понять "зачем она тут". После чего вы и пойтмете что "написать для всех плат", перебрать "все возможные" - большая и бесмысленная работа.

Так как все эти "проверки" - это обычные базовые навыки работы со схемами. Уметь читать схему, проверить какой ток идет. Проверить "не оборвалась ли дорожка", проверить поступает ли питание, проверить не замкунты ли земля и питание, проверить не просаживаети ли питание.... Добавлять ко всему этому слово "ардуина" - никто не будет.

 

 

maksim
Offline
Зарегистрирован: 12.02.2012

Вот простенькая тестилка работоспособности портов и наличия КЗ между выводами:

#define FIRST_PIN 0 // первый вывод
#define LAST_PIN 19 // последний вывод

void Test1(byte pin)
{
  if(pin < 10) Serial.print(" PIN:  ");
  else Serial.print(" PIN: ");
  Serial.print(pin);
  pinMode(pin, OUTPUT);
  digitalWrite(pin, 0);
  Serial.print("    LOW: ");
  if(!digitalRead(pin)) Serial.print("OK  ");
  else Serial.print("FAIL");
  digitalWrite(pin, 1);
  Serial.print("  HIGH: ");
  if(digitalRead(pin)) Serial.print("OK  "); 
  else Serial.print("FAIL");
  pinMode(pin, INPUT);
  Serial.print("  PULL UP: ");
  if(digitalRead(pin)) Serial.print("OK  ");
  else Serial.print("FAIL");
  digitalWrite(pin, 0);
}

void Test2(byte pin)
{
  Serial.print("     ");
  pinMode(pin, OUTPUT);
  digitalWrite(pin, 1);
  delay(5);
  if(!digitalRead(pin))Serial.println("SHORT");
  else Serial.println("OK");
  pinMode(pin, INPUT); 
  digitalWrite(pin, 0);

}

void setup() {
  Serial.begin(9600); 

  Serial.println("Test of short circuit on GND or VCC and between pins:");
  Serial.println();
  for(byte i = FIRST_PIN; i <= LAST_PIN; i++) 
  {
    for(byte j = FIRST_PIN; j <= LAST_PIN; j++) 
    {
      pinMode(j, INPUT);
      digitalWrite(j, 0);
    }
    Test1(i);

    for(byte j = FIRST_PIN; j <= LAST_PIN; j++) 
    {
      pinMode(j, OUTPUT);
      digitalWrite(j, 0);
    }
    Test2(i);
  }

  for(byte j = FIRST_PIN; j <= LAST_PIN; j++) 
  {
    pinMode(j, INPUT);
    digitalWrite(j, 0);
  }
}

void loop() {}

 

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

maksim пишет:

Вот простенькая тестилка работоспособности портов и наличия КЗ между выводами:

Вот за это - большущее спасибо! Я бы не догадался, что пины можно изнутри потестить...

maksim
Offline
Зарегистрирован: 12.02.2012

Кстати, вот лог теста исправной дуины:

Test of short circuit on GND or VCC and between pins:

 PIN:  0    LOW: FAIL  HIGH: OK    PULL UP: OK       OK
 PIN:  1    LOW: OK    HIGH: FAIL  PULL UP: FAIL     SHORT
 PIN:  2    LOW: OK    HIGH: OK    PULL UP: OK       OK
 PIN:  3    LOW: OK    HIGH: OK    PULL UP: OK       OK
 PIN:  4    LOW: OK    HIGH: OK    PULL UP: OK       OK
 PIN:  5    LOW: OK    HIGH: OK    PULL UP: OK       OK
 PIN:  6    LOW: OK    HIGH: OK    PULL UP: OK       OK
 PIN:  7    LOW: OK    HIGH: OK    PULL UP: OK       OK
 PIN:  8    LOW: OK    HIGH: OK    PULL UP: OK       OK
 PIN:  9    LOW: OK    HIGH: OK    PULL UP: OK       OK
 PIN: 10    LOW: OK    HIGH: OK    PULL UP: OK       OK
 PIN: 11    LOW: OK    HIGH: OK    PULL UP: OK       OK
 PIN: 12    LOW: OK    HIGH: OK    PULL UP: OK       OK
 PIN: 13    LOW: OK    HIGH: OK    PULL UP: FAIL     OK
 PIN: 14    LOW: OK    HIGH: OK    PULL UP: OK       OK
 PIN: 15    LOW: OK    HIGH: OK    PULL UP: OK       OK
 PIN: 16    LOW: OK    HIGH: OK    PULL UP: OK       OK
 PIN: 17    LOW: OK    HIGH: OK    PULL UP: OK       OK
 PIN: 18    LOW: OK    HIGH: OK    PULL UP: OK       OK
 PIN: 19    LOW: OK    HIGH: OK    PULL UP: OK       OK

как видно из лога на 0, 1 и 13 выводах выявлены неисправности - это нормально, потому как 0 и 1 выводы заняты UARTом, а на 13 выводе светодиод.

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

maksim пишет:

а на 13 выводе светодиод.

У меня pin0-1 - так же, как в логе, а вот на 13-м не показывает неисправности, (светодиод моргает). Включил тестовый светодиод между 5V и Pin8 - тоже ошибки нет, а вот если между землей и Pin8 - тут пишет, что FAIL.

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

У наны светодиод на 13-ю ногу через буфер повешен, поэтому не мешает работе ноги.

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

AlexFisher пишет:

У наны светодиод на 13-ю ногу через буфер повешен, поэтому не мешает работе ноги.

Похоже на UNO - тоже, т.к. я эту ногу использовал в тестовых целях когда дисплей был жив - работало...

antosha.usov
Offline
Зарегистрирован: 12.12.2012

Andrey_Y_Ostanovsky]</p> <p>[quote=leshak пишет:

P.S. А вообще конечно было-бы интерестно такое написать. Вспомнить детство и язык Prolog ;)

Удивительно, не все рождаются взрослыми. И детей нужно тоже учить.

Arezus
Arezus аватар
Offline
Зарегистрирован: 26.06.2013

В поддержку темы спрошу и про свое выгорание.

Arduino nano v3 AtMega168, было питание по USB, четкое КЗ на пине D2.

Результат: Выгорел диод D1, выгорели A6, A7, D6-D12.

Работает внешнее питание, после замены диода работает и питание по юсб, также работают выводы D0-D5 и А0-А5. По вышеизложенному коду проверки пинов вообще все работает.

Самая грусть, что выгорели незаменимые miso(12) и mosi(11), которые были нужны.

Вопрос: Почему выгорели А6 и А7 можно предположить -- им просто не повезло, А0-А5 висят на порту РС, поэтому они хоть как-то скучковались, но вот что мне не понятно, так это почему при КЗ на D2 избирательно выгорели D6-D12, ведь они висят на PD6-PD7 и PB0-PB4 самой ATMega, плюс при этом соседи остались живы. Такое ощущение, что по топологии выгорела "геометрическая сторона квадрата" чипа, но КЗ же было на другой стороне...

inhelp
inhelp аватар
Offline
Зарегистрирован: 23.09.2012

AlexFisher пишет:

Наиболее вероятен вариант: А - процу хана, Б - сдох диод выбора источника питания (Б может работать только от внешнего питания).

Сгорел именно диод, я уже так 3 диода сжег и поменял... 

Arezus
Arezus аватар
Offline
Зарегистрирован: 26.06.2013

Да, диод точно сгорел, я его сразу и заменил, меня смутило другое, что при коротком на втором цифровом пине он сам не выгорел, а выгорели части двух других физических портов АтМеги и два аналоговых пина. После замены диода питание на схему восстановилось и все, кроме A6, A7, D6-D12 работает. Понятно, что для работы по SPI теперь надо заменить сам контроллер, но интересно было разобраться в первопричине нелогичного выгорания.

Arezus
Arezus аватар
Offline
Зарегистрирован: 26.06.2013

В общем, я заменил пригоревшую Мегу328, поставил ATMega328P-AU. Надо прошить бутлоудер. У меня есть человеческий программатор AVRISP. Как я не изголялся с конфигами Arduino ISP, так мне и не удалось родными средствами прошить загрузчик. Я взял прошивку из Arduino ISP, из конфига прочитал фьюзы, через CodeVisionAVR прошил и то и другое, ардуина завелась, но прошить скетч в нее можно только один раз, при повторной прошивке того же самого скетча либо выдает ошибку синхронизации либо бесконечно загружает скетч. При этом постоянно горит светодиод ТХ на плате. Если прошить загрузчик через кодвижн и аврайэспи, то снова один раз можно загрузить скетч.

Что это может быть?

 

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Всем привет, вот тоже сжёг камень своей UNO, сжёг подав на порт А0 напряжение в 15 В, случайно конечно, теперь МК не отвечает ни на что и греется, однозначно камень умер.

Так вот, хочу заказать новый камушек atmega328-pu, так вот, я так понимаю что тупо воткнуть в панельку не выйдет, нужно ещё какие-то манипуляции провести, не подскажете какие именно.

Покупать уже с загрузчиком пока не разберусь не буду, что-то мне подсказывает что Arduino UNO имеет на борту всё что нужно для заливки нужного бутлоадера.

И ещё вопрос на вскидку, можно пока будет лететь с Китая atmega328-pu перебиться мегой 8-й ? которую без проблем можно достать у меня в городе на рынке.

Arezus
Arezus аватар
Offline
Зарегистрирован: 26.06.2013

После того, как проковырялся со своим бутлоудером, скажу, что прощереально купить готовый чип и воткнуть его в панель, потому как пля прошивки булоудера нужна либо еще одна ардуина либо нормальный программатор. Плюс еще надо не набочить с фьюзами. Сегодня попробую повторно перешить свой чип от другой арбуины черед IDE, может легче станет...

Arezus
Arezus аватар
Offline
Зарегистрирован: 26.06.2013

Пришел домой, достал вторую нану, загрузил скетч Arduino as ISP из базового набора сэмплов, выставил программатор "Arduino as ISP", подключил по стандартной схеме к SPI 6-pin:

  Arduino без     |  Arduino as ISP
   bootloader     | как программатор
__________________|________________
ICSP pin#1 (MISO) |      D12
ICSP pin#2 (+5V)  |      5V
ICSP pin#3 (SCK)  |      D13
ICSP pin#4 (MOSI) |      D11
ICSP pin#5 (RST)  |      D10
ICSP pin#6 (GND)  |      GND
__________________|________________

Запустил стандартный пункт меню "Записать загрузчик". Сразу после компиляции вылетела ошибка синхронизации, но не с нулями как раньше, а 0х15:

avrdude: stk500_getsync(): not in sync: resp=0x15

нахально запустил повторную перешивку, все стало на свои места, прошилось и скетчи не сбоят при заливке.

Как причину того, что у меня не получилось адекватно шивануть через взрослый программатор вижу то, что мог, таки, набочить с фьюзами или же то, что бутлоудер надо шить с каким-то оффсетом, а не с нулевого адреса, тк НЕХ-прошивка или первый записаный скетч просто перетилали, возможно, бутлоудер и Arduino ISP не могла найти радные байты сигнатур или адекватного ответа от бутлоудера.

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Просто по цене микруха с бутлоадером не намного то и дороже той же мини, а мне что 16 кБ что 32 как-то без разницы, наибольший проект который я использовал весил 14 кБ, вот и думаю стоит ли менять или же оставить как было и иметь юарт с уно и мини как рабочая лошадка.

mikdmst
Offline
Зарегистрирован: 10.01.2015

а я перепутал 5V и GND на плате ардуино нано(китай) - теперь не определяется COM-порт - однозначно кирдык да? чинить не умею, думаю придется новый заказать)

Arezus
Arezus аватар
Offline
Зарегистрирован: 26.06.2013

Вероятность велика, да, но чисто на всякий случай проверьте живость диода Шоттки, маленький черный прямоугольничек с двумя выводами. Подключить по юсб и пинцетом аккуратно замкнуть эти два контакта.

mikdmst
Offline
Зарегистрирован: 10.01.2015

который на картинке? что такое диод Шоттки?)

 

Arezus
Arezus аватар
Offline
Зарегистрирован: 26.06.2013

Нижняя фота, праваяполовина платы, сверху большая деталь, четыре вывода, похожа на транзистор полевой, это стабилизатор 5В, под ним электролит конденсатор по питанию оранжевый, слева от оранжевого черный вертикальный прикол на два контакта - это и есть диод Шоттки, его можно попробовать АККУРАТНО коротнуть пинцетом, на ардуине он очень часто вылетает из-за проблем с питанием.

mikdmst
Offline
Зарегистрирован: 10.01.2015

сори! у меня оказывается такая на обороте, на работе был смотрел в инете)
в самом низу слева как будто вздулось чуть, это он?