Причина спонтанной перезагрузки?

Messiah
Messiah аватар
Offline
Зарегистрирован: 10.11.2018

Добрый вечер.

Arduino Uno (китайская версия от зарекомендовавшего себя производителя), на нем Ethernet shield, снаружи подключена разная периферия включая 2 транзисторных ключа на пишалку и 12V реле. Источник питания импульсный 12V 1A, вилка на разъем 2.1x5.5 Arduino и катушку реле.

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

Никогда не возникает в холодном состоянии. Стабильно воспроизводится (возникает) после 20-60 минут работы если нажать Reset (в том числе повторно) - заходит в бесконечную перезагрузку. Выдернуть - вставить питание из розетки на долю секунды - моментально проходит до следующего Reset.

Грешил на все что только можно, пока решение не пришло спонтанно. Выключенная зарядка от мобильника с USB - кабелем, подключенная к Arduino решила эту проблему. Выключенная. После чего экспериментальным путем пришел к выводу что между +5 и GND разъема USB нужно воткнуть конденсатор (под руки попался 16V 220uF, емкости 3 и 10 не достаточно). При более тщательном изучении пришел к выводу что конденсатор на пин Vin Arduino Uno проблемы не решает, а вот на пине откуда все берут стабильные 5V к земле - решает и надежно.

Что это за приколы такие? Брак в стабилизаторе Uno? Отсутствие емкостей до и после стабилизации?

sadman41
Offline
Зарегистрирован: 19.10.2016

Какой стаб стоит на плате?

Messiah
Messiah аватар
Offline
Зарегистрирован: 10.11.2018

AMS1117 5v

b707
Offline
Зарегистрирован: 26.05.2017

Messiah пишет:

Что это за приколы такие? Брак в стабилизаторе Uno?

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

Ищите импульсный преобразователь напряжения 12в - 5в и делайте внешний преобразователь. а с него питайте Уно стабильными 5в через пин "5v".

sadman41
Offline
Зарегистрирован: 19.10.2016

Греется, наверное хорошо. Я не профессионал, но AMS-ы на питание кучи потребителей бы не ставил. Он хоть и амперный по даташиту, но роботдин больше чем 800mA с него не рекомендует брать. Ethernet в пике может 200mA только одним Wiznet-овским чипом употребить, к примеру.

Messiah
Messiah аватар
Offline
Зарегистрирован: 10.11.2018

Да, прилично теплый. Катушка реле питается отдельно от 12V, потребление 0.13A. Все остальное (Arduino + Ethernet + термодатчик + датчик тока и что там еще было) 0.20A. Самый прожорливый Ethernet шилд, на нем стоит AMS1117 3.3 но откуда он берет вход - с Vin или стабильных 5v я не знаю, не прозванивал.

То есть это нормальное поведение для нагретого линейного стабилизатора? Насколько я помню LM7805 при перегреве просто отключался... Почему тогда конденсатор решает проблему? Импульсный преобразователь вещь хорошая, но в наличии не имеется. Могу погасить пару вольт на входе резистором. При токе 0.2A там должно быть порядка 25 Ом чтобы гасились до 7, а с 7 уже сам AMS1117 потянет, так сработает?

b707
Offline
Зарегистрирован: 26.05.2017

sadman41 пишет:

Он хоть и амперный по даташиту,

Максимальный ток в даташите зависит от разницы входного и выходного напряжения. АМС1117 будет "амперным", если разница входа и выхода порядка 2-3в. А при входе 12 и выходе 5 никакого ампера там и близко нет.

"амперный" он при преобразовании 5в -> 3.3 :)

b707
Offline
Зарегистрирован: 26.05.2017

Messiah пишет:

Могу погасить пару вольт на входе резистором.

не надо резистором, лучше диоды (практически любые - выпрямительные, сигнальные) Их можно цепочкой ставить последовательно, на каждом будет падать примерно 0.5в

Messiah
Messiah аватар
Offline
Зарегистрирован: 10.11.2018

ОК, резистор греется и это не самое эффективное решение. Чем диоды будут лучше? Так, для общего развития. Валяется несколько дохлых импусльных источников, там выпрямительных наколядовать можно ведро, живые, проверял.

strarbit
Offline
Зарегистрирован: 12.06.2016

измените адаптер источник питания. зарядка от мобильника с USB плохо.

Messiah
Messiah аватар
Offline
Зарегистрирован: 10.11.2018

strarbit, збагойно, источник 12V 1A, а зарядка для мобильного (тоже 1А) использовалась только для тестов, потом забыл отключить кабель и чисто случайно набрел на решение проблемы, так как в любой зарядке для мобильного на выходе с импульсного транса стоит сглаживающий конденсатор. От зарядки мобилы на пинах Arduino 4 вольта вместо 5, а это гемор если нужно измерять напряжения на аналоговых входах.

b707
Offline
Зарегистрирован: 26.05.2017

Messiah пишет:

 Чем диоды будут лучше? Так, для общего развития.

падение напряжения на диоде от тока не зависит, оно всегда примерно одинаково. А с резистором падение будет плавать от нагрузки.

Например если вам надо с источника 5в получить 4.5в в диапазоне тока от 10ма скажем до 0.3А - резистором это не решить никак, а диодом - запросто, подойдет почти любой.

b707
Offline
Зарегистрирован: 26.05.2017

Messiah пишет:

От зарядки мобилы на пинах Arduino 4 вольта вместо 5

стесняюсь спросить, вы ее на пин VIN подключали что ли?

Messiah
Messiah аватар
Offline
Зарегистрирован: 10.11.2018

Ну я ж не настолько идиот каким иногда кажусь :) Ничего на 5V не тыкал и не собираюсь, он же напрямую на чип идет. С него беру напряжение для питания датчиков. На Vin тоже ничего не подключал.

Зарядка для мобилы с USB-A разъемом, в ней торчал прошивочный кабель (от принтера), воткнутый USB-B концом в Arduino. Я так тестировал с раздельным питанием, отдельно на Arduino, а отдельный источник для реле и более-менее все работало. Выдернув из розетки но забыв отключить USB, понял что нужен конденсатор, ход мыслей выше описан.

Постоянное падение напряжения на диоде это единственное преимущество? По КПД одинаково будет? Просто если свой ток я более-менее знаю, это 0.2A, если он будет скакать в интервале 0.15 - 0.25 то получится что резистор 25 будет гасить 3.75 - 6.25V, соответственно на AMS будет приходить (источник дает не ровно 12 потому округляя до целых) то ли 8 то ли не полных 6 вольт, с которыми AMS должен справиться.

 

 

sadman41
Offline
Зарегистрирован: 19.10.2016

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

На сетевой шилд с вероятностью в 99% питание заходит с того же AMS.

b707
Offline
Зарегистрирован: 26.05.2017

Messiah пишет:

 Ничего на 5V не тыкал и не собираюсь, он же напрямую на чип идет.

надеюсь это шутка? - самый правильный метод питания - это подать стабильные 5в именно на пин "5v". который "напрямую на чип идет"

 

Цитата:
соответственно на AMS будет приходить то ли 8 то ли не полных 6 вольт

"неполных 6в" стабилизатору может оказаться мало, чтобы выдать на выходе стабильные 5. Посмотрите в даташит, там должно быть указана минимальная разница между входом и выходом. Лучше. если она не будет менее 1.5 - 2х вольт. то есть на вход стаба надо подавать не менее 6.5 - 7в

sadman41
Offline
Зарегистрирован: 19.10.2016

b707 пишет:

Максимальный ток в даташите зависит от разницы входного и выходного напряжения. АМС1117 будет "амперным", если разница входа и выхода порядка 2-3в. А при входе 12 и выходе 5 никакого ампера там и близко нет.

"амперный" он при преобразовании 5в -> 3.3 :)

Это в которой табличке написано? По графику номер 4 зависимость обратная...

Messiah
Messiah аватар
Offline
Зарегистрирован: 10.11.2018

Стабильные 5V это когда уверен что этот источник питания выдает их. Например, если есть свой линейный стабилизатор с обвязкой с которого это можно взять и не бояться что там окажется больше либо меньше, но тогда зачем на плате UNO стоит AMS чтобы его не использовать? Вроде он напрямую связан c USB разъемом, в таком случае получается что пробовал. В интернетах вообще пишут что до 15 вольт спокойно, но, как видим, оказывается даже 12 нельзя.

Ну тогда 20 Ом, 1-2Вт стандартный номинал, на выходе с него будет то ли 7 то ли 9, обычно 8 вольт, должно и хватать, и меньше греться. Колбаску из 10 диодов собирать удовольствие так себе.

b707
Offline
Зарегистрирован: 26.05.2017

sadman41 пишет:

Это в которой табличке написано? По графику номер 4 зависимость обратная...

это в котором даташите? :)

Вот в этом никакого похожего графика вообще нет %)

http://www.advanced-monolithic.com/pdf/ds1117.pdf

Зато тут сказано (Note 2 под таблицей характеристик)

Line and Load regulation are guaranteed up to the maximum power dissipation of 1.2 W for SOT-223, 2.2W for TO-252 and 780mW for 8-Lead SOIC. Power dissipation is determined by the input/output differential and the output current. Guaranteed maximum power dissipation will not be available over the full input/output range.

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

sadman41
Offline
Зарегистрирован: 19.10.2016

AMS там для МК, USB-конвертора и всякой шелупони сигнального уровня потребления. В моём Freeduino стоит линейник в "кирпичном" исполнении и тянет пару шилдов, LCD. А вот на меге роботдиновской LDO закипает от экрана и сетевого модуля.

strarbit
Offline
Зарегистрирован: 12.06.2016

Messiah пишет:

Стабильные 5V это когда уверен что этот источник питания выдает их. Например, если есть свой линейный стабилизатор с обвязкой с которого это можно взять и не бояться что там окажется больше либо меньше, но тогда зачем на плате UNO стоит AMS чтобы его не использовать? Вроде он напрямую связан c USB разъемом, в таком случае получается что пробовал. В интернетах вообще пишут что до 15 вольт спокойно, но, как видим, оказывается даже 12 нельзя.

Ну тогда 20 Ом, 1-2Вт стандартный номинал, на выходе с него будет то ли 7 то ли 9, обычно 8 вольт, должно и хватать, и меньше греться. Колбаску из 10 диодов собирать удовольствие так себе.

Нет,  AMS напрямую нет не связан c USB разъемом.  Нет, резистор уменьшение наприжение от источник питания. Да, AMS от 12V HOT горячий и от большее ток потребление имеет включение режим защита.

sadman41
Offline
Зарегистрирован: 19.10.2016

b707 пишет:

sadman41 пишет:

Это в которой табличке написано? По графику номер 4 зависимость обратная...

это в котором даташите? :)

https://static.chipdip.ru/lib/552/DOC001552809.pdf

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

12 Вольт питание? С эзернетом?
Срабатывание защиты от перегрева стабилизатора.

b707
Offline
Зарегистрирован: 26.05.2017

Если ты про картинку 4 (Figure 4) - это совсем другое. Dropout voltage - это минимальное падение напряжение на регуляторе при данном токе. Например, при токе 1А разница между входом и выходом не может быть менее 1В.

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

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Мужики, а чё вы обсуждаете?

ХЗ какая программа, запущена на ХЗ какой схеме, ХЗ почему перегружается. И при этом. само собой, ТС сделал всё правильно - и память не при делах, и всё остальное.

Может, для начала пусть выложит код, схему, а лучше и фото сборки? Чем в кофейную гущу-то тыкать?

ТС уже на arduino.ua всем мозг засрал этой темой и тоже - ни схемы, ни кода. Мне кажется пусть выкладывает информацию, или ну его нах, тролля.

Messiah
Messiah аватар
Offline
Зарегистрирован: 10.11.2018

Короче если это срабатывание встроенной защиты AMS, т.е. отключение питания на микросекунду, которую сглаживает выбранный мною наугад конденсатор от того последствия в виде перезагрузки устраняются - то вообщем все логично и все сходится. Reset не приводит к остыванию AMS потому перезагрузка циклическая, выдергивание питания даже на доли секунды приводит к быстрому остыванию и защита сбрасывается.

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

> Может, для начала пусть выложит код, схему, а лучше и фото сборки?

А может еще ключ от квартиры где деньги лежат? :) Я же специально сразу написал что это не программная ошибка. Да, скетч занимает более 90% памяти, но на этапе разбирательства с этой лабутенью я его перекомпилировал без поддержки логов на карту памяти, что существенно снизило расход памяти. То что проблема аппаратная - мне стало понятно достаточно давно. Схему я вообщем описал, там пара транзисторных ключей, делитель на резисторах для замера напряжения, max-232 для общения с периферией и еще немного мелочей.

На Arduino.ua, к сожалению, нихрена толком по делу, а тут сразу тыкнули носом что это поведение стабилизатора.

gfx125
Offline
Зарегистрирован: 27.05.2017

Messiah пишет:

На Arduino.ua, к сожалению, нихрена толком по делу, а тут сразу тыкнули носом что это поведение стабилизатора.

тебе там трижды сказали: что перегрев стаба это ненормально, подай 5 В непосредственно на вход "5V",  лучше всего обеспечить питание напряжением от 7 до 9 В. Если бы ты хоть что то из этого сделал и результат оказался положительным, то ежу бы стало понятно что проблема в стабилизаторе.

Messiah
Messiah аватар
Offline
Зарегистрирован: 10.11.2018

Да, один пишет что нужно внешних 5v подать на Arduino, тут же следующий оратор что на 5v лучше ничего левого не подавать. 5 вольт от которых не срабатывает катушка реле, которая несмотря на номинал 12 экспериментально работает от 6 с чем-то? 2 раздельных источника питания на схему это сильно жирно. Что чрезмерно жрет от стаба - не нашел, для меня меньше пол ампера не ток.

В интернетах всякие гуру вообще пишут бред что 15 вольт на входе это нормально. Рекомендовать от 7 до 9 В или сказать что выше 9 нельзя что будет перегрев - немного разные вещи. Я по собственному опыту знаю что стабилизаторы серии LM ведут себя абсолютно не так при перегреве, как ведет себя AMS я не имею понятия я с ними никогда не работал, вот и не складывалось что это может быть из-за перегрева.

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

Короче, срач офф, товарищи.

Пока экспериментально висит сопля в виде 25 ом резистора на входе, греется он конечно нехило и судя по падению напряжения - ток 0.24А. Пускай так пока погреется, я потом измерю температуру стабилизатора хотя бы пальцем и если ок - подумаю что с этим делать - гасить, идти за новым импульсным БП на 7V в магазин или цеплять к где-то валявшемуся трансформатору на 9 вольт где-то валявшийся новый мост еще советского образца... Пока что всем спасибо, если будет работать не так как ожидается - отпишусь.

nik182
Offline
Зарегистрирован: 04.05.2015

Перечитал тему. Нигде не нашел про то что на+5 нельзя подавать. Как раз наоборот все пишут на +5 подать от хорошего источника это лучше всего. ТС может у вас глюки? Возьмите схему платы и увидите, что и USB и Vin развязаны от +5В. +5В это шина работы платы, поэтому дополнительный конденсатор помогал избегать глюков. Питайте плату через +5 В и волосы будут мягкие и шелковистые..

Messiah
Messiah аватар
Offline
Зарегистрирован: 10.11.2018

> На вывод 5V внешнее питание лучше не подавать

Ну может я не так понял фразу.

Все, источник меняется, при гасящем резисторе проблем не обнаружено.

Теперь другая дичь всплыла. Ethernet shield не пашет. Питание от USB, все отключено, только бутерброд на столе лежит. Карта памяти на нем же при этом ошибок не выдает.

Прога виснет на Udp.beginPacket(address, port). LED на нем моргают как и прежде, но на самом порту RJ45 ничего не светится хотя кабель исправен и подключен к хабу.

nik182
Offline
Зарегистрирован: 04.05.2015

USB ограничен 500 мА. Может оно? 

Messiah
Messiah аватар
Offline
Зарегистрирован: 10.11.2018

Точно нет, потребление 0.32А потолок, на ранних этапах разработки все на столе от USB порта компа питалось. Стандартный скетч Webserver тоже не пашет, симптомы те же - на порту не светятся никакие индикаторы, на плате - светятся... Кабель менял. При перезапуске 10я нога дергается в 4.8, потом снова на около нуля. Как раз ноль судя по информации и является признаком активности устройства.

Более того, винда всегда сообщает если устройство начинает потреблять больше чем положено. Я так в USB-IDE-SATA диски подключал, у одних потребление нормальное, у других 0.6 и привет.

Последний раз использовал Ethernet когда думал что все работает, после чего перекомпилировал без записей на SD карту и без использования сети чтобы меньше был расход памяти и исключить софтовый фактор. Больше недели точно.