#1 2019-04-19 23:46:03

Messiah
Учасник
Зареєстрований: 2018-08-10
Повідомлень: 25

Самопроизвольная перезагрузка

Добрый вечер.
Схема следующая: Arduino UNO сидит в корпусе, на нем Ethernet shield.
Питание DC 12V через разъем 2.5 х 5.5 мм на самом корпусе. С этого разъема берется питание для Uno и питание для катушки реле.
С Uno берутся 5V для питания самодельной платы. На плате через ограничивающие резисторы стоят 2 транзисторных NPN ключа - один включает пищалку (питающуюся от 5V), второй включает реле (т.е. замыкает катушку на землю). Реле шунтировано диодом как положено.

Когда это все находилось на столе в разобранном виде - все работало, но возможно из-за того что тесты не были длительными. Как только оно все было накручено на стенки самодельного корпуса начинает происходить какая-то дичь. Иногда через пол часа работы, иногда через считанные минуты реле начинает беспорядочно щелкать, а пищалка пищать. Arduino самопроизвольно уходит в перезагрузку, при инициализации 2 ноги дергаются в логическую единицу (реле должно включиться, пищалка пикнуть 3 раза, а после успешного получения данных из интернета - еще раз). При этом оно успевает пикнуть раз и уйти в ребут, в бесконечный цикл пока не выдернешь питание.

Грешил на плохой контакт в разъеме. В Uno стоит 2.1х5.5, я изначально воткнул 2.5х5.5 которые визуально похожи. Сейчас заменил на 2.1х5.5 но проблема осталась. Отключил реле полностью - те же грабли, только пищалка пищит. Как думаете, с чем связано?

Остання редакція Messiah (2019-04-20 00:21:14)

Неактивний

#2 2019-04-21 11:59:04

Kaka
Учасник
Зареєстрований: 2018-03-21
Повідомлень: 411

Re: Самопроизвольная перезагрузка

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

Неактивний

#3 2019-04-21 15:07:41

Watchdog
Гість

Re: Самопроизвольная перезагрузка

Симтомы похожи не предсмертные ковульсии. Если у вас проблемы с EMI то никакой искусственный интелект не поможет. А переполнение памяти для UNO, при таких задачах, это нормально. Вам придётся сосчитать каждый байт для worst case.

#4 2019-04-25 18:56:28

Messiah
Учасник
Зареєстрований: 2018-08-10
Повідомлень: 25

Re: Самопроизвольная перезагрузка

Мне все же кажется что проблема аппаратная или даже какие-то наводки. Один товарищ посоветовал запитать Arduino и реле от разных независимых источников и воспроизвести. Сутки непрерывной работы, источник - USB зарядка от телефона.

Переполнение памяти исключено, я достаточно долго оптимизировал код прошивки и устранил практически все динамическое выделение памяти, строки заменил на массивы и так далее.
Еще один фактор говорящий против теории переполнения памяти - основной код в loop(), а при циклической спонтанной перезагрузке не успевает до конца отработать setup()

Остання редакція Messiah (2019-04-27 10:52:33)

Неактивний

#5 2019-04-27 21:05:36

Messiah
Учасник
Зареєстрований: 2018-08-10
Повідомлень: 25

Re: Самопроизвольная перезагрузка

Это может быть связано с питанием.
Источник 12V - на контакте Vin чуть меньше (он не связан вроде бы со штекером), на 5V - 4.99, на 3.3 стоит 3.29. В разобранном виде работает нормально (в собранном были траблы именно с этим блоком). Источник 9V трансформаторный - просаживается до 6 с чем-то, на контакте 5v только 4, контроллер не запускается. Советский "Кварц БП-1" на 9v дает на Vin порядка 7, напряжения в норме. Но если подключить на Arduino Ethernet shield - напряжение ниже и тоже не запускается. Итого работает только от 12V источника...

Итого. От источника 12 V - прилично греется AMS1117, с нижней стороны платы палец удержать довольно тяжело, сверху не трогал потому что накрыто Ethernet шилдом. От источника с меньшим напряжением - не тянет из-за просадки. Что делать?

Остання редакція Messiah (2019-04-27 22:53:54)

Неактивний

#6 2019-04-28 14:13:44

MikeM
Учасник
З Киев
Зареєстрований: 2017-11-03
Повідомлень: 160

Re: Самопроизвольная перезагрузка

Messiah пише:

Что делать?

Определиться, какой ток потребляет поделка и взять соответствующий источник. Реле лучше питать от отдельного источника.

Неактивний

#7 2019-04-28 15:06:31

Messiah
Учасник
Зареєстрований: 2018-08-10
Повідомлень: 25

Re: Самопроизвольная перезагрузка

У меня источники 12v 1A, 9v 1A, только Кварц БП1 на 9v 70mA выхода написано, но мне кажется что он умеет больше.
Adruino 50mA, W5100 shield + SD еще порядка 100, катушка реле не более 130mA, max232 1mA, термодатчик понятия не имею, а остальным можно пренебречь. Итого не более 300 mA. Реле от отдельного источника это глупость, а по тестам получилось что при отключенном реле система тоже тикала...

Остання редакція Messiah (2019-04-28 15:30:00)

Неактивний

#8 2019-04-28 15:24:22

MikeM
Учасник
З Киев
Зареєстрований: 2017-11-03
Повідомлень: 160

Re: Самопроизвольная перезагрузка

Messiah пише:

Источник 9V трансформаторный - просаживается до 6 с чем-то

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

Остання редакція MikeM (2019-04-28 15:27:27)

Неактивний

#9 2019-04-28 15:43:05

Messiah
Учасник
Зареєстрований: 2018-08-10
Повідомлень: 25

Re: Самопроизвольная перезагрузка

По измерениям 0.32A на всю систему от блока питания (включая реле), 0.29А все там же если подключить Arduino по USB к ПК.
В 3mA на работу микроконтроллера я как-то слабо верю. Чисто на Arduino + Ethernet + то что от стабильных 5V Arduino запитано - при измерении в разъеме питания Arduino 0.19A при нормальной работе и 0.20A при включенной пищалке. Итого получаю 0.13A на реле что соответствует 92 Омам, согласуется с указанными в даташите 90 Омам. Отсюда вывод что при подключении питания к Arduino от внешнего источника и от USB одновременно, стабилизатор Arduino потребляет независимо от наличия питания на USB, причем потребляет прилично.

причиной может быть сглаживающий конденсатор

Либо его отсутствие. Вскрывать рабочий БП желания нет, он от факс-модема, модем еще периодически используется для автодозвонов, но судя по размерам и весу БП там кроме солидного трансформатора и моста влезет максимум масенький конденсатор... Видал БП от хабов, выдающие вообще переменку... Не суть важно, суть в том что 3 БП, на всех происходит дичь. Если Arduino питается от USB (который включен в зарядку от смартфона), а реле от 12V БП - сутки стабильной работы есть.

Было 2 рабочих идеи - во первых прекратить насиловать стабилизатор Arduino и запитать все БП 7-9V не более, катушка реле такое напряжение переносит нормально, я проверял сразу после покупки. Позже оказалось что разъемы 2.1*5.5 и 2.5*5.5 совместимы только в одну сторону и просто потыкать штекера не получится big_smile Сейчас я хочу проверить стабильную работу системы в случае 2 независимых БП (именно для проверки как себя ведет стабилизатор Arduino, не USB) но вчера нарвался на то что сама плата + Ethernet не от каждого блока стартует. Например, от трансформаторного потребление 0.1A и кроме LED'ов не подает признаков жизни, от Кварца берет 0.17 с тем же результатом.

Этот с шилдом - 0.20А при отключенном всем остальном.
Другой, голый Uno без шилда так же как и первый ест от обоих БП 0.02A. Итого в системе 2 самых прожорливых - Ethernet shield и катушка реле.
Сейчас извлек Ethernet, подключил все без него и запустил вместе с реле от одного БП (перекомпилировав, естественно) - посмотрю чем это закончится.

Остання редакція Messiah (2019-04-28 16:10:11)

Неактивний

#10 2019-04-28 16:19:00

г0сть
Гість

Re: Самопроизвольная перезагрузка

Messiah пише:

Итого. От источника 12 V - прилично греется AMS1117, с нижней стороны платы палец удержать довольно тяжело, сверху не трогал потому что накрыто Ethernet шилдом. От источника с меньшим напряжением - не тянет из-за просадки. Что делать?

ищите из-за чего он так греется, что-то непомерно жрет от стаба. Это не нормально. Или где-то посадили соплю или что-то подгорело

#11 2019-04-28 16:51:14

Messiah
Учасник
Зареєстрований: 2018-08-10
Повідомлень: 25

Re: Самопроизвольная перезагрузка

Ну смотрите, сейчас уже больше 15 минут работает без Ethernet, все остальное подключено включая термодатчик, датчик тока и так далее (все питается от стабильных 5V платы Arduino) - 1117 еле теплый.
Ethernet постоянно потребляет около 0.17А, на стабилизаторе гасится около 7 вольт. Получается что с ним 1.5 Вт, без него 0.15 Вт рассеивается. Зависимость температуры от мощности не помню. Как бы в 10 раз отличие. Получается что греться должен?

Остання редакція Messiah (2019-04-28 16:51:54)

Неактивний

#12 2019-04-28 18:03:48

г0сть
Гість

Re: Самопроизвольная перезагрузка

Messiah пише:

Ethernet постоянно потребляет около 0.17А,

Это измеренное значение или взято из тырнетов?

#13 2019-04-28 22:17:11

Messiah
Учасник
Зареєстрований: 2018-08-10
Повідомлень: 25

Re: Самопроизвольная перезагрузка

Разность измеренного на разъеме питания Arduino Uno с шилдом и без него, последний знак +-1
В даташите на W5100, кажется, 100mA было написано, реально 170 и это я еще кабель не подключал, просто вхолостую.

Неактивний

#14 2019-04-29 13:16:01

г0сть
Гість

Re: Самопроизвольная перезагрузка

попробуйте подать 5 В непосредственно на pin 5V на ардуинке и посмотреть что будет. Дополнительно сделайте это же отдельно с шилдом и замеряйте ток.

#15 2019-04-29 17:25:24

Messiah
Учасник
Зареєстрований: 2018-08-10
Повідомлень: 25

Re: Самопроизвольная перезагрузка

Можно подавать 5V на 5V Uno? Или на Vin? Я прозванивал их на разъемы питания и +5v от USB, они там не прозваниваются, как будто стабилизации 2 уровня. Фактически вчера несколько часов непрерывной работы от 12v источника как писал - прошли без проблем... без ethernet шилда.

Остання редакція Messiah (2019-04-29 17:25:34)

Неактивний

#16 2019-04-29 17:45:51

г0сть
Гість

Re: Самопроизвольная перезагрузка

5V это выход стабилизатора, на него можно спокойно подать 5 вольт. Но не более иначе кирдык Uno !!! Vin - это вход стабилизатора, связан с USB через диод. На шилде есть свой стаб на 3,3 В, который питается от 5V ардуинки.

#17 2019-04-29 18:32:00

Вячеслав Азаров
Учасник
Зареєстрований: 2017-05-25
Повідомлень: 1,732

Re: Самопроизвольная перезагрузка

Для нормальной работы Arduino UNO, лучше всего обеспечить её питанием напряжением от 7 до 9 В, с учетем нестабильности. При этом, будет наилучший электрический и тепловой режим стабилизатора 1117. Естественно источник должен обеспечивать нужный ток потреблениея и спектральную чистоту, т.е. отсутствие различных высокочастотных пульсаций не подавляемых регулятором 1117. На вывод 5V внешнее питание лучше не подавать, хотя и так возможно, но не более 5В.

Неактивний

#18 2019-05-06 14:28:39

Messiah
Учасник
Зареєстрований: 2018-08-10
Повідомлень: 25

Re: Самопроизвольная перезагрузка

Снова добрый день!
На днях разобрал, соединил на столе, обнаружил что при шевелении одного из проводников по питанию пропадает контакт, оказалась микротрещина идущая через половину жил многожильного провода. Всю цепь питания заменил и хорошо пропаял, кроме того замкнул дополнительно минус питания на общий самодельной платы, чтобы это не шло через Arduino (там и так цоколь разъема питания связан с GND пинами, которые у меня соединены с платой).
Теперь что куда ни шевели - контакт не пропадает, в этом уверен.

Небольшое уточнение по симптомам.
Если схема холодная - проблема не наблюдается никогда. После прогрева вроде бы работает стабильно (2 часа отработала без подключенной периферии). Если нажать на микроконтроллере кнопку reset - начинает тикать все как описано выше. Повторные reset проблему не снимают, тикает. Если кратковременно выдернуть 12V 1A источник питания из розетки и сразу воткнуть обратно - агония прекращается, схема возвращается в рабочий режим. Воспроизводится стабильно. Почему кнопка reset может приводить к такому состоянию? Пока не было фактов спонтанного возникновения "тиканья", но я все таки хочу устранить эту проблему полностью чтобы исключить ее в будущем. Не имею желания ставить второй микроконтроллер который будет опрашивать первый и прерывать цепь питания на секунду в случае его агонии, это напоминает установку второго компьютера с CD приводом напротив кнопки reset для удаленной перезагрузки  big_smile

И проблема не воспроизводится если в USB-B разъем Arduino воткнуть USB кабель, подключенный обратным концом в зарядку от мобильного телефона, НИ К ЧЕМУ НЕ ПОДКЮЧЕННУЮ. Как только выдернул USB из зарядки и нажал Reset - снова начало тикать. Еще из мистики - при втыкании USB кабеля в ни во что не включенную зарядку Arduino перезагружается, при выдергивании начинает тикать. Не в каждую зарядку, есть одна предположительно неисправная (в виду того что есть лишняя - скинул в ящик не разбираясь что с ней) так с ней Arduino успевает один раз из 3х запрограммированных при включении раз пикнуть и просто зависает. При перевтыкании основного питания тикать перестает. У меня вопрос - может стоит сходить в церковь?

Прозвон свободного USB разъема при работающей схеме показывает что из USB разъема платы в обратном направлении есть питание, 4.4V на красном и 3.2 на зеленом. На белом 0. Пробовал кратковременно коротнуть на землю - перезагрузки не произошло, работает все как и раньше.

Таким образом, все что я писал выше по поводу отдельного источника питания для Arduino как решения проблемы - бред сивой кобылы, дело не в источнике а в том что на USB разъем надо повесить какую-то затычку, а что именно - конденсатор или что я пока не понял. Эту зарядку разбирать лень смотреть что в ней, стоят ли на шине данных подтягивающие резисторы или они просто не подключены а есть только +5 и земля. Там точно на выходе с трансформатора (другие зарядки изучал) должен стоять сглаживающий конденсатор, обычно LED через резистор, который с таким же успехом будет питаться от Arduino, возможно какой-то диод или стабилитрон в противофазе назначение которого не знаю, возможно защита от обратной полярности на выходе.

-----
Емкость 16V 220uF воткнутая в USB разъем между +5 и GND надежно решает проблему. Видимо эту же роль выполнял конденсатор, который есть на выходе импульсного трансформатора каждой зарядки. У меня схема поработает в таком режиме на соплях пару суток, если рецидива не будет - подумаю куда эту емкость по хорошему впихнуть. Возможно между Vin и GND Arduino, там как раз оба пина не используются и при должной сноровке можно обойтись без пайки. А возможно параллельно разъему питания в корпусе... надо будет еще проверить где она будет действовать а где нет.

Остання редакція Messiah (2019-05-06 16:48:45)

Неактивний

#19 2019-05-06 18:31:50

Watchdog
Гість

Re: Самопроизвольная перезагрузка

Messiah пише:

... При перевтыкании основного питания тикать перестает. У меня вопрос - может стоит сходить в церковь? ...

Лучше в учебное заведение.

#20 2019-05-06 19:16:34

Messiah
Учасник
Зареєстрований: 2018-08-10
Повідомлень: 25

Re: Самопроизвольная перезагрузка

Кондер на Vin до сраки, он должен быть на Vcc Arduino, там где стабильные 5V. Похоже все это на какой-то брак в стабилизаторе ардуинки, либо емкости низкого качества. Я не вникал куда именно включены 2 больших серых кондера у разъема питания, но зато теперь я знаю где кондер должен быть. В церковь потому что все это очень напоминает какую-то мистику, а осциллографа, к сожалению, нет чтобы проверить что это за дичь там происходит при нормальном уровне напряжения...

Остання редакція Messiah (2019-05-06 19:17:59)

Неактивний

#21 2019-05-06 19:27:42

Watchdog
Гість

Re: Самопроизвольная перезагрузка

Messiah пише:

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

Церковь не заменяет осциллограф. Милливольтметром переменного напряжения можно посмотреть. Конденсаторы можно выпаять и проверить. Но для начала, разберитесь с принципиальными схемами, должна быть принципиальная причина такого поведения аппаратуры. Это не похоже на деффект.

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму