Итак, найдена причина проблем сбоев в работе. Дело оказалось вовсе не в разводке, а в том, что возникает импульсная помеха при работе двигателя!
Удалось помеху отловить только с помощью логического анализатора. Осциллограф кстати не фиксировал. Удивительно, но факт. Помеха реально очень короткая и необходимо было выполнять запись на всех линиях, чтобы увидеть иголки.
Поставил дросселя, емкости и экранировку вместе с разводкой питания изменил. Но при этом ушли наносекундные "иголки". После устранения иголок на линиях, все проблемы исчезли напрочь. ПИК оказался более устойчивым, как ни странно, чем АВР. Так что всем спасибо за участие.
Гы. "Не люблю кошек. Да ты просто не умеешь их готовить!". Я к чему. Некоторые мои устройства и блоки управления сделаны на AVR-микроконтроллерах. Работают КРУГЛОСУТОЧНО. В ТЕЧЕНИИ НЕСКОЛЬКИХ ЛЕТ. Одно изделие отправили на консервацию, в итоге выбросили сами станки, по причине покупки современных. Электроника без нареканий, механика тупо сдохла. Так что PIC or AVR або любой другой МК нужно правильно готовить. И не кидаться какашками, не разобравшись...
MaxDaniel писал(а):Дело оказалось вовсе не в разводке, а в том, что возникает импульсная помеха при работе двигателя!
Не может быть! ТС в самом начале пути удивительных открытий.
MaxDaniel писал(а):...Поставил дросселя, емкости и экранировку вместе с разводкой питания изменил... все проблемы исчезли напрочь.
Надо же. А как же вот с этим
[uquote="MaxDaniel",url="/forum/viewtopic.php?p=3853256#p3853256"]... Все разведено и "не на коленке" а вполне корректно. Супервайзер, стабилизатор напряжения прямо на плате, емкости и все такое, кварц...
Варианты типа не та разводка и прочее, не рулят. Рекомендации по размещению МК, их обвязке, питанию, частоте кварца и прочее, изложенные в доках от производителя, строго выполнены.[/uquote]
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Пока сам не нашел причину, все обсуждали РАЗВОДКУ с кварцем. Ну и что толку с этих обсуждений? Кварц тут вообще оказался ни причем. Помеха проскальзывает сквозь микроконтроллер и начинает проявляться на разных выходах и входах. И помехи эти не видимы на осциллографе. Или наверное правильнее сказать далеко не на всяком видимы. На логическом анализаторе видны. Кто об этом написал? Может AlexVi написал? Он знал и скромно молчал? Как бы не так, судя по последнему его посту.
Так что НИКАКИХ реальных и работающих идей участниками обсуждения темы высказано не было. Теперь конечно можно обсуждать, что дело не в плате, не в кварце и не в том, с какой стороны что стоит. Все это уже не имеет значения. Ни один не сказал, что могут быть наносекундные помехи, с которыми он сталкивался и которые успешно победил.
Всем спасибо. Закрываем обсуждение, все предельно понятно.
[uquote="MaxDaniel",url="/forum/viewtopic.php?p=3864378#p3864378"]Пока сам не нашел причину, все обсуждали РАЗВОДКУ с кварцем. Ну и что толку с этих обсуждений? Кварц тут вообще оказался ни причем. Помеха проскальзывает[/uquote]
а ведь в документе, по ссылке в этом сообщении: https://www.radiokot.ru/forum/viewtopic ... 3#p3853263
было и про импульсные помехи и также как бороться с "проскальзыванием" оных:
Источников помех, способных вызвать сбой или отказ устройства, существует бесчисленное множество. Однако наиболее часто встречаются следующие помехи:
Наносекундные помехи, вызванные срабатыванием механических контактов выключателей и реле. В зарубежной литературе этот вид помех называется EFT - Electric Fast Transients
Микросекундные помехи, связанные с работой реактивных элементов в цепях мощных нагрузок (зарядка конденсаторов, а также отдача энергии, накопленной в обмотках моторов, соленоидов, и пр.). В зарубежной литературе этот вид помех называется surge.
MaxDaniel писал(а):Пока сам не нашел причину, все обсуждали РАЗВОДКУ с кварцем
Чукча не читатель? Вы только про кварц увидели? Вот это что:
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3853232#p3853232"]...открою секрет - скорее всего через косяк в разводке или монтаже[/uquote][uquote="ARV",url="/forum/viewtopic.php?p=3853246#p3853246"]...в особенностях трассировки проводников, нюансах схемы наверняка и кроется ваша нестабильность...[/uquote][uquote="BOB51",url="/forum/viewtopic.php?p=3853342#p3853342"]Народ верно подсказывает - или трассировка устройства или некорректность программы.[/uquote][uquote="Demiurg",url="/forum/viewtopic.php?p=3853549#p3853549"]... схему и топологию тщательно проверять на предмет помехозащищенности. Опять же, как питание к МК подводится?[/uquote][uquote="AlexVi",url="/forum/viewtopic.php?p=3853561#p3853561"]2313 не имеет такого "врожденного дефекта". Такой дефект бывает у разработчиков ПО и плат...[/uquote]
MaxDaniel писал(а):Ни один не сказал, что могут быть наносекундные помехи, с которыми он сталкивался и которые успешно победил.
Практически все вам сказали, что при правильной разводке с помехами бороться не придется. С ними "борются" на этапе написания софта и разводки платы. Но корм сразу был не в коня:[uquote="MaxDaniel",url="/forum/viewtopic.php?p=3853256#p3853256"]Варианты типа не та разводка и прочее, не рулят. Рекомендации по размещению МК, их обвязке, питанию, частоте кварца и прочее, изложенные в доках от производителя, строго выполнены.[/uquote]
Да ладно, хватит оправдываться. Все понятно. Сейчас это больше напоминает судебные разборки - кто что сказал и с приведением доказательств и свидетельских показаний.
Не было таких мыслей, значит не было. Все остальное болтовня, общие рассуждения и "неконкертика". Не было проблем с разводкой платы и с софтом. Так что не солидно, для профессионалов, коими себя считаете. Тема закрыта.
[uquote="MaxDaniel",url="/forum/viewtopic.php?p=3864536#p3864536"]Да ладно, хватит оправдываться. Все понятно. Сейчас это больше напоминает судебные разборки - кто что сказал и с приведением доказательств и свидетельских показаний.
Не было таких мыслей, значит не было. Все остальное болтовня, общие рассуждения и "неконкертика". Не было проблем с разводкой платы и с софтом. Так что не солидно, для профессионалов, коими себя считаете. Тема закрыта.[/uquote]
При таком подходе будущие ошибки ГАРАНТИРОВАНЫ.
На форуме или дают подсказки или "сделайте для меня....."
Подсказка - не догма, а повод собственными мозгами пошевелить. А эти навыки не сразу появляются (особо ежли тому в школе не учили ).
Остается надежда, что со временем эта "нетерпимость" пройдет и заменится на возможность восприятия любых данных с их соответствующим применением.
Аналогичная проблема - контролер на 2313 управляет мостом в который включен электродвигатель, задача схемы очень быстро остановить его ротор (коллекторный спецдвигатель), номинальный ток 4А (шимиться) при 4-6 вольтах в момент остановки дается ПРОТИВОТОК примерно 250+/-50А (берется из батареи конденсаторов 22-32 вольта с открытием диагонали моста на полную) (надо с 1000 об/мин до 0 за примерно 5 градусов поворота остановить) (ограничен сопротивлением каналов ключей, проводниками и внутренним сопротивлением батарей конденсаторов, от БП отделена дросселем)- вот тогда прилетает контролеру. Контролер с драйверами гальванически связан но питается от персонального DC-DC изолированного. Расстояние до силовых шин 50 мм (дальше никак), плата со сплошной металлизацией по одной стороне, кварц правильно, конденсаторы вроде-бы правильно - все равно примерно 1 раз из 10 уходит по вектору сброса. Параллельные проводники присутствуют увы - по другому не сделать. Имеющиеся осциллографы на питании ничего криминального не видят (подключение к выводам питания или земле/сбросу). ОС нет выдается импульс фиксированной длительности.
При таких условиях меняем алгоритм программы (спецограничения по набору команд/способам адресации и хранения данных), меняем тактовую частоту МК, меняем семейство МК.
И/или дополнительно устанавливаем управляемую периферию на рассыпухе (промышленные стандарты СССР) с гальванразвязкой на токовой петле.
Гальванику-то можно. МК поменять неможно, тактовую - а смысл ? Процессор уходит на сброс - это не программная проблема. Решение на рассыпухе есть и работает - вопрос с процессором.
[uquote="Wladimir_TS",url="/forum/viewtopic.php?p=3864802#p3864802"]плата со сплошной металлизацией по одной стороне[/uquote]Я правильно понимаю, что плата двухсторонняя? Забывай такое как страшный сон. В условиях неприятной электромагнитной обстановки плата должна, просто обязана быть минимум четырёхслойной, причём наружные слои - общий провод питания (если он отличается от общего сигнального) и плюс питания, все сигнальные проводники - только на внутренних слоях. Одна из моих последних плат - десятислойная.
[uquote="Wladimir_TS",url="/forum/viewtopic.php?p=3864802#p3864802"]Аналогичная проблема - контролер на 2313 управляет мостом в который включен электродвигатель.[/uquote]
Ну вот так это та самая проблема и есть. Провал питания, сброс контроллера и иголки. Все конечно хорошо лечится, когда знаешь что лечить.
Разводка платы и расположение кварца ни при чем.
if (MCUSR & (1<<PORF))
{
// Power-on Reset
MCUSR=0;
// Place your code here
}
else if (MCUSR & (1<<EXTRF))
{
// External Reset
MCUSR=0;
// Place your code here
}
else if (MCUSR & (1<<BORF))
{
// Brown-Out Reset
MCUSR=0;
// Place your code here
}
else
{
// Watchdog Reset
MCUSR=0;
// Place your code here
}
Для тех, кто не учил магию мир полон физики
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Уточняю AT90S2313 - нету у него. Технически верно Tiny воткнуть можно - благо есть экземпляр с панелькой, попробую. Провал питания имеющимися средствами не обнаруживается. Вот и хочется знать что лечить.
По питанию непосредственно у выводов стоят - конденсатор 0,1 мкФ (прямо на выводах) и тантал 68х6В с дорожками порядка 10-15 мм. RST подтянут к "+" через 1 кОм к земле через тантал 10 мкФ на нем провала тоже не наблюдаю.
Программная война - да ладно... Попробуйте например восстановить состояние счетчиков в программе на момент сброса - не тут то было. Ну и что, что удастся поймать, где был сброс. Еще кстати не факт. Потому что вторым импульсом может сброситься еще раз. Ну два ладно, допустим. Ну а состояние программы в данный момент времени полная неясность. И что толку. Тем более, тут уже написали, что сброс из-за напряжения может быть столь кратковременным, что никакой осциллограф и не увидит. Тем более когда МК сам "играет" на портах сигналами.
В каждом случае все индивидуально.
Кстати теперь понятно, почему КРАСУХА валит беспилотники. Можно в принципе создать такие иголки на корпусе ракеты или БПЛА, что никакая экранировка и защита входов не сработает. Все зависит от уровня сигнала и частоты. Можно так вот любую электронику запаять внутри неразбирая внешнего корпуса так, что микросхемы напрочь слипнутся. Ну это при должной энергетике конечно.
Добавлено after 14 minutes 50 seconds:
Был такой случай. В 1994 году запущенный к Луне космический аппарат Клементина спустя 4 месяца полета немного сошел с ума. Слил все топливо, стал вытворять акробатические номера, послал своего оператора куда-то по известному маршруту и пока не растратил весь свой ресурс, не успокоился. Ну потом вышел на связь и сообщил, что больше работать не может...
Собственно я это к чему. В программе Клементины не был предусмотрен сторожевой пес.
Мне приходилось делать автономно работающие штуки, которые должны если что работать всегда и во-что бы то ни стало. Поставил сторожевую собаку, но все равно пришлось делать массу вещей, чтобы правильно проинициализировать запуск программы, если что. Непростая это задача, как выяснилось. Ох не простая. Вообще все навороты с программным обеспечением требуют длительной отладки и времени для того, чтобы быть действительно надежными. Поэтому программные войны лучше не начинать. Искать помехи и устранять условия, при которых они вредят работе. Устранить сами помехи не получится. А тем более исправлять .
Добавлено after 4 minutes 22 seconds:
А вообще я конечно благодарен тем, кто принял активное участие в обсуждении. Бывает, что казалось бы простая вещь, подсказанная вовремя или даже что-то что натолкнет на мысль в нужном направлении, поможет в решении. Вот за это спасибо. Возможно кому-то это будет тоже полезно.