Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Защита МК от помех
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Схемотехника
Krik99
Добрый день. Начал я тут разробатыать устройство, которое вроде как должно подходить под стандарт промышленной электроники (3-ч фазные двигатели, эл. магнитные клапана и т.д.). Сердцем всего этого должен быть МК. Программу написать не проблема, но вот погуглив увидел что у многих разработчиков возникает проблемма с зависанием МК. Сам такое наблюдал в устройстве, где через делитель снималось с силовой цепи 220в сигнал контроля. Так вот на 5-20 раз особенно когда быстро переключал можно было перезагрузить МК. Решил все это конденсатором паралельно контактам кнопки, но так и не понял почему в стеральной машине ведётся контроль подобным образом после контактов реле и все нормально.
Мое устройство питается от 24В (от этих 24В включаются клапана и пускатели). На входе платы стоит TVS диод (или варистор) и дросель с двумя обмотками. Скоростных линий не предвидится, максимум i2c. Имеется rs485.
Так вот погуглив наткнулся на книгу Г. Отта И вот сообственно хочу спросить вас, правильно ли я все понял. И так начнем:
1. Норамльной помехоустойчивости нереально добится на односторонней плате
2. Блокировочный конденсатор нужно ставить как можно ближе к выводам микросхем
3. Кварц нужно разводить согласно рекомендациям производителя
4. На двухсторонних платах одна их сторон должна быть землей (либо в виде сетки с мелкими ячейками)
5. На длинных и шумных линиях (типо катушка клапана на 24в) нужно ставить феритовое кольцо(мелкое такое) или это только на входные линии?
6. Под линиями питания на обратной стороне обязательно должна быть земля
7. От наносекундных помех не спасают даже оптотроны, но помагают резисторы в разрыв порта ввода-вывода в гашении помех
8. Необходимо использовать большое количество переходных отверстий между землеными полигонами
9. Пустые места должны быть заполнены земляными полигонами
10. Не создовать земляные петли вокруг платы
11. Индуктивность проводников питания должна быть минимальна(широкие проводники с большим количеством переходных отверстий)

Ещё возникли вопросы:
1. Как я понял земляной слой разрывать можно, но над разрывами нельзя пропускать линии питания?
2. Разводить питание можно цепочкой(DC-DC -> микроконтроллер -> часы -> логика и т.д.) или нужны отдльные линии от каждой микросхемы?
3. С точки зрения помех, если мне необходимо включать катушки клапанов на растоянии до 1.5м ,нужно ли использовать реле, или всёже нужно перейти на MOSFET?
4. Немного не понял с чистой и грязной землей, тоесть что куда подключать?
5. Что если земленой полигон получился с обеих сторон?
6. Нужно ли соединять минус питания 24в с заземлением щита, так как в книге пишут что часто земля является источником помех?
7. Есть ли смысл использования изолированого острова земли (для микроконтроллера), которая соединена с остальной землей через фиритовое кольцо либо тонкую дорожку?
8. Если входные\выходные кабеля являются источниками помех (common-mode noise), то зачем их фильтры подключать к "чистой" земле, но не к цифровой? При чем именно эта чистая земля должна быть подключена к корпусу устройства. Это подключение в любом случае или если корпус заземлен? И нужна ли такая чистая земля при использовании оптопар?
9. И как быть с rs485? По входным линиям там стоят TVS диоды. Но у 485 есть 3 провода и еще экран. Куда и как подключать экран, если сами драйвера и их питания планируется подключить через изолированый dc-dc и оптопары? При чем как я понял из книги, TVS диоды сигнальных линий должны быть соеденены именно на корпус устройства.
=AK=
Цитата(Krik99 @ Nov 12 2017, 17:08) *
у многих разработчиков возникает проблемма с зависанием МК. Сам такое наблюдал в устройстве, где через делитель снималось с силовой цепи 220в сигнал контроля. Так вот на 5-20 раз особенно когда быстро переключал можно было перезагрузить МК. Решил все это конденсатором паралельно контактам кнопки, но так и не понял почему в стеральной машине ведётся контроль подобным образом после контактов реле и все нормально.


Непонятно. Если вы снимаете сигнал с 220В через делитель, то причем тут кнопка? Что вы переключали?

Вообще-то вешать кондер параллелно контактам кнопки - это плохая идея. Законы коммутации никто не отменял. Такое включение само может стать источноком помех.
vvvv
QUOTE (Krik99 @ Nov 12 2017, 11:08) *
Добрый день...

Вопросы правильные и их много, но отвечать здесь скорее всего не будут. И тут есть причины.
Во первых много, во вторых ответы объемные, а в третьих и это самое главное, привильный
ответ на один и тот же вопрос может быть прямо противоположный. Все зависит от условий.
А вот если учитывать все условия, то ответ займет книжку страниц на 20, поэтому предлагаю
почитать соответствующую литературу и обязательно прогонять теорию через средства
моделирования. Когда число вопросов снизится до двух трех, приходите.
Krik99
Цитата
Непонятно. Если вы снимаете сигнал с 220В через делитель, то причем тут кнопка? Что вы переключали?
Если коротко, то есть лампочка кторую включает выключатель, вся эта цепь на 220в, и вот мне нужно следить включена лампочка или нет.

Цитата
Вопросы правильные и их много, но отвечать здесь скорее всего не будут. И тут есть причины.
Во первых много, во вторых ответы объемные, а в третьих и это самое главное, привильный
ответ на один и тот же вопрос может быть прямо противоположный. Все зависит от условий.
А вот если учитывать все условия, то ответ займет книжку страниц на 20, поэтому предлагаю
почитать соответствующую литературу и обязательно прогонять теорию через средства
моделирования. Когда число вопросов снизится до двух трех, приходите.

Вопроссы возникли после прочтения книги, может конечно это мой английский, или отсутствие опыта. Но хотябы грубо на пальцах можете сказать? И насколько мои выводы с 1-11 правельны или же я что-то неправельно понял?
vvvv
Короче тут вам чтобы разобраться надо почитать.
k155la3
То что Вы фундаментально подходите к этому вопросу - респект.
Но рискуете "запутаться в нулях".
Цитата
. . . . Программу написать не проблема, но вот погуглив увидел что у многих разработчиков возникает проблемма с зависанием МК.
. . . .

Для того, чтобы "сбить" контроллер с правильной программой в завес надо очень-очень постараться.
(естественно, при условии гарантированного и "чистого" от помех-наводок питания и отсутствия грубых ошибок
в схемотехнике и разводке платы, номиналах RC. Тотже узел ресета и выводов JTAG).

А вот "плюхи" в софте этому (глюк-завесам) очень даже способствуют. И большая часть из нагугленного -
возможно проблемы софта. А пока ищем настоящую причину - виноват сбойный процессор sm.gif


=AK=
Цитата(vvvv @ Nov 13 2017, 18:06) *
Мелокая сетка, нет вот так МЕЛКАЯ СЕТКА НЕ ЯВЛЯЕТСЯ ПОЛИГОНОМ. От слова совсем. Мелкая сетка работает только для выравнивания
меди. Функции полигона не выполняет никак. Чтобы это понять отправляю Вас к средствам 3D моделирования топологии, сделайте
сетку и посмотрите TDR анализом импеданс трассы над сеткой. Тут Вам потребуется симулятор AVR MWO или ANSYS EM Suite.


А можно подробнее? AWR MWO или ANSYS EM Suite у меня нет, а вопрос интересный. Я всю жизнь думал что если размер ячейки в сетке меньше, чем 1/10 длины волны, то она работает как сплошной полигон. И если чипы на плате сравнительно медленные, то им даже крупная сетка сгодится.
vvvv
нужно было диффпару 100 ом протащить.
Потребовалось снизить жесткость слоя меди, чтобы не делать сплошной полигон загнал сетку по всем канонам, 1/16 длины волны.
Естественно загнал все в модель. Импеданс диффпары развалился.
=AK=
Цитата(vvvv @ Nov 13 2017, 21:05) *
нужно было диффпару 100 ом протащить.
Потребовалось снизить жесткость слоя меди, чтобы не делать сплошной полигон загнал сетку по всем канонам, 1/16 длины волны.
Естественно загнал все в модель. Импеданс диффпары развалился.


Мне кажется, это можно объяснить. Проводник над сеткой будет иметь меньше емкость, чем над сплошной поверхностью, поэтому на низких частотах его импеданс увеличится. Кроме того, на высоких частотах, где длина волны будет сопоставима с шагом сетки, начнется чехарда за счет неоднородости волнового сопротивления по ходу распространения сигнала. Для дифф пары эффект имеет место быть, согласен. Но все-таки дифф пара - это отдельная статья, а для помех принято считать, что сетка мало отличается от сплошного полигона.
vvvv
Если же речь идет об излучении трассой помех и попытки снизить уровень излучения трассой как антенной, ну возможно сетка хорошее решение.
Krik99
Цитата
То что Вы фундаментально подходите к этому вопросу - респект.
Но рискуете "запутаться в нулях".
Цитата
. . . . Программу написать не проблема, но вот погуглив увидел что у многих разработчиков возникает проблемма с зависанием МК.
. . . .
Для того, чтобы "сбить" контроллер с правильной программой в завес надо очень-очень постараться.
(естественно, при условии гарантированного и "чистого" от помех-наводок питания и отсутствия грубых ошибок
в схемотехнике и разводке платы, номиналах RC. Тотже узел ресета и выводов JTAG).

А вот "плюхи" в софте этому (глюк-завесам) очень даже способствуют. И большая часть из нагугленного -
возможно проблемы софта. А пока ищем настоящую причину - виноват сбойный процессор sm.gif


Так в этом и проблема. Я вот сам столкнулся с устройством на пик18, которое просто соеденено по rs485 с PLC. Так в PLC RS485 вообще гальванически развязан. Соеденено все это витой парой в экране, на плату приходит только 2 провода сигнала, экран подключен к заземлению на стороне PLC. И вот когда запускаются 3-х фазные двигатели и мощные потребители мк зависает, а со сторожевым таймером все ребутится. Сам мк не включает нагрузок вообще. Смущает только включение управляюших кнопок матрицой на растоянии в 30см от платы.
Читал я рекомендации от производителя по снижению тактовой частоты, меньше использовать прерывания, но там без прерываний никак, включены все таймеры и uart. Значит у STM32 выводы отладки необходимо подтягивать к +3.3В ?
И какие грубые ошибки можно допустить в программе, может я чего не знаю?
AlexandrY
Цитата(Krik99 @ Nov 13 2017, 15:27) *
И вот когда запускаются 3-х фазные двигатели и мощные потребители мк зависает

Вполне стандатная ситуация.
Обсуждалась на этом форуме минимум несколько десятков раз.
Не решается общими рекомендациями.
Но начинать надо не с платы, а с точного чертежа с изображением всех подходящих к плате кабелей и их источников.
Бывает достаточно просто кое-где кое-что закоротить мимо платы.
A.Lex
Цитата(Krik99 @ Nov 13 2017, 15:27) *
RS485 вообще гальванически развязан. СоедИнено все это витой парой в экране, на плату приходит только 2 провода сигнала, экран подключен к заземлению на стороне PLC.

ИМХО надо так


А вообще очень полезно прочитать апноты, много ценной информации можно найти

Krik99
Цитата
ИМХО надо так
А вообще очень полезно прочитать апноты, много ценной информации можно найти

Я правельно понимаю что TVS диоды должны быть отдельно от платы? Такая схема с TVS есть на стороне PLC. И гальваническая развязка нужна на каждом устройстве подключенном к линии 485? Тогда что делать с тем что несколько устройств питаются от одного БП и фактически развязав линию RS485 сохраняем общую землю через питание. На сколько помню там использовали кабель специально предназначеный для rs485. Что делать с экраном кабеля?
k155la3
Цитата(Krik99 @ Nov 13 2017, 17:27) *
Так в этом и проблема. Я вот сам столкнулся с устройством на пик18, которое просто соеденено по rs485 с PLC.
. . .

1. Проверьте заменой систему питания платы контроллера (кстати, там блок питания на обычном трансе или импульсный ?)
Импульсный предпочтительней. Смотря какой конечно. Проверить желательно на какомнибудь Siemens-Sitop -
они "правильно" спроектированы и изготовлены, и из правильных деталей, и без оптимизации их количества.
2. Клавиатура работает опросом матрицы или выведена на прерывания ? В этом-конкретном случае использование апп.
перываний нежелательно и сомнительно. Если прописать обработчик "в тупую" то дребезг будет дергать вектор.
Ну и помехи естественно тоже.
3. Плата контроллера в металлическом экране или корпусе ?
4. Если ситуация со сбоем более-менее повторяемая (что есть очень хорошо, если повторяемая), то отловить демона будет несложно. Поставить под отладчик и дать "воздействие". Если на оборудовании подключиться нельзя, то снять контроллер
и в лаб. условиях добиться сбоя, с последующим его отловом.
5. По причинам
- плохая фильтрация-стабилизация по питанию.
- забытый вход порта с включенным прерыванием, но пустым вектором (это просто "влет" с гарантией)
(поэтому все векторы должны или содержать обработчик, или "заглушку" reti )
- проверить линии связи и "земли". Если контур земли что называетеся у электриков "отгорел" - то он САМ
становится источником-генератором помех (от всего, что на нем подключено).
Цитата(Krik99 @ Nov 13 2017, 19:37) *
. . . предназначеный для rs485. Что делать с экраном кабеля?

Экран кабеля (защитная земля) должен подключаться к клемме защитной земли на одной из сторон линии.
(чтобы в принципе не было возможности протекания по нему тока в штатном режиме из-за разности потенциалов "земель" разнесенных территориально, и соответственно запитанных по-разному устройств).
Если на PLC он подключен, то на противоположной дб неподключен.
Krik99
1. Блок питания один для 3-х плат и он импульсный.
2. Клавиатура работает без прерываний по внешнему сигналу, хотя обработка присходит в прерывании таймера развертки 7-ми сегметного дисплея. Клавиатура скрещена с дисплеем.
3. Плата в металическом щите, типа мелкого электрошкафа.
4. Ситуация повторяется но спровацировать зависание очень сложно.
5. Пишу на Си. Это мне нужно во все регистры разрешения прерываний загнать состояние "прерывания запрещены"?
Я правельно понял, что TVS диод очень эфективен против наносекундных помех с большой амплитудой?
На той плате использована схема драйвера rs485 порта со смещением и без TVS диодов
Николай Семёнович
В первую очередь нужно сделать гальваническую развязку силовых цепей от цепей MCU.
Если её нет то даже разговора о помехоустойчивости МК не стоит заводить
k155la3
Re
(1) замените блок питания как я Вам рекомендовал. Вполне возможно что при включении идет просадка по сети (или выброс, уж не знаю) и на выходе БП появляется провал в доли секунды. Запитайте БП от другой линии (без мощных нагрузок)
Ваш БП имеет "земляной" провод ?
(2) (3) норм.
(4) Вы себя недооцениваете.
(5) Просто проверьте, что все открытые на прерывания порты обеспечены векторами. Этоже касается и встроенной периферии. (к примеру, USART настроен на генерацию прерывания по приему, а вектор отсутствует).
(+) обратитесь к электрикам, чтобы проверили контур заземления.
За наносекунды и TVS не знаю. Также непонятно что означает "rs485 порта со смещением".
Это в смысле согласующие резисторы ?
Цитата(Николай Семёнович @ Nov 13 2017, 20:35) *
В первую очередь нужно сделать гальваническую развязку силовых цепей от цепей MCU.
Если её нет то даже разговора о помехоустойчивости МК не стоит заводить

Это, как-бы, аксиома.
Krik99
ОК. Я сейчас всех уже подзапутал wacko.gif и сам тоже. Но надо было начать с этого. Есть щитовая в котоой установлен PLC и вся силовая часть (реле, пускатели) и тут же стоит ИБП который питает те самые МК. К щитовой подходит стандартный силовой кабель на 3 фазы. Земля ПЛК (у него внутри БП) и ИБП соеденены на землю щита. Передача данных и питания осуществляется разными проводами. При чем от этого же питания запитаны промышленные датчики на стороне МК, которые из защиты имеют только TVS и дросель. И в итоге МК зависает намертво, а датчикам норм.
В чем вопрос. На сколько будет эфективна гальваническая развязка 485 при общем питании устройств? Может идея с питанием и не очень, но B&R в своих ПЛК используют схему с общим БП без проблем.

(синий и оранжевый это типа "А" и "В" линии)
При этом проблемма именно не с потерей данных, а именно с зависанием МК. Если с матричной клавиатурой норм (смущает что линии МК обвязаны только резисторами на 4к7 к земле), то необходима разработка нового устройства, так как изменить нужно все.
Plain
Цитата(Krik99 @ Nov 12 2017, 11:08) *
i2c ... правильно ли:
1. Норамльной помехоустойчивости нереально добится на односторонней плате
2. Блокировочный конденсатор нужно ставить как можно ближе к выводам микросхем
3. Кварц нужно разводить согласно рекомендациям производителя
4. На двухсторонних платах одна их сторон должна быть землей (либо в виде сетки с мелкими ячейками)
5. На длинных и шумных линиях (типо катушка клапана на 24в) нужно ставить феритовое кольцо(мелкое такое) или это только на входные линии?
6. Под линиями питания на обратной стороне обязательно должна быть земля
7. От наносекундных помех не спасают даже оптотроны, но помагают резисторы в разрыв порта ввода-вывода в гашении помех
8. Необходимо использовать большое количество переходных отверстий между землеными полигонами
9. Пустые места должны быть заполнены земляными полигонами
10. Не создовать земляные петли вокруг платы
11. Индуктивность проводников питания должна быть минимальна(широкие проводники с большим количеством переходных отверстий

0) мертворождённый I2C соответственно прихватит в иной мир и любую промавтоматику
1) да
2) не просто да, а у него наивысший приоритет, это написано в любой бумаге к любой ИС жирным шрифтом
3) да
4) да
5) нет, на любую внешнюю линию нужен обязательно ограничитель, либо два, либо три и т.д., а ещё дополнительно варистор, либо два, либо три, и т.д., а ещё дополнительно газовый разрядник, либо такой же с замыкателем — всё зависит от энергии помехи, которую должна поглотить вся эта цепь защиты
6) да
7) сказка, см. п.5, а конкретные резисторы следуют из всё тех же бумажек к любым ИС, когда указан предельный ток их входов
8) в общем случае
9) точнее, у ПП должно быть равное количество меди в одинаковых местах с обеих сторон, иначе её перекособочит, это требование любого производителя ПП
10) да
11) просто широкие, а отверстия только если они в слоях параллельно

Цитата
Ещё возникли вопросы:
1. Как я понял земляной слой разрывать можно, но над разрывами нельзя пропускать линии питания?
2. Разводить питание можно цепочкой(DC-DC -> микроконтроллер -> часы -> логика и т.д.) или нужны отдльные линии от каждой микросхемы?
3. С точки зрения помех, если мне необходимо включать катушки клапанов на растоянии до 1.5м ,нужно ли использовать реле, или всёже нужно перейти на MOSFET?
4. Немного не понял с чистой и грязной землей, тоесть что куда подключать?
5. Что если земленой полигон получился с обеих сторон?
6. Нужно ли соединять минус питания 24в с заземлением щита, так как в книге пишут что часто земля является источником помех?
7. Есть ли смысл использования изолированого острова земли (для микроконтроллера), которая соединена с остальной землей через фиритовое кольцо либо тонкую дорожку?
8. Если входные\выходные кабеля являются источниками помех (common-mode noise), то зачем их фильтры подключать к "чистой" земле, но не к цифровой? При чем именно эта чистая земля должна быть подключена к корпусу устройства. Это подключение в любом случае или если корпус заземлен? И нужна ли такая чистая земля при использовании оптопар?
9. И как быть с rs485? По входным линиям там стоят TVS диоды. Но у 485 есть 3 провода и еще экран. Куда и как подключать экран, если сами драйвера и их питания планируется подключить через изолированый dc-dc и оптопары? При чем как я понял из книги, TVS диоды сигнальных линий должны быть соеденены именно на корпус устройства.

1) само собой общий неразрывен, и где ж такое советуют-то
2) нет, всё разводится звездой — луч (шина) от грязного преобразователя до её центра, а от него шина до цифровой схемы, шина до аналоговой, шина до силовой, и т.д.
3) это внешние сигналы, их требуется выводить с полной защитой, т.е. от КЗ, от своего и чужого перенапряжения, от непрямого удара молнии, и т.д., и никакой предохранитель не спасёт голый транзистор
4) имеется ввиду всё та же разводка звездой
5) см. пункты выше
6) заземляется всегда центр звезды, обычно на платах для этого завальцована и/или припаяна стойка
7) нет, это сказки
8) как сказано выше, помехи отводятся шиной (лучом) звезды, именуемым "защитный общий провод", он должен быть отдельно разведён такой же сплошной медью; про оптопары всё та же сказка — они, и вообще любые изоляторы, изолируют только НЧ, т.е. постоянные потенциалы, все подключения любых выводов оптопар к любым выводам ИС требуют такой же внешней защиты, как описана выше, т.е. ограничителей и резисторов
9) этот экран подключается на развязанный общий провод, и все те компоненты, которые сделали возможной такую разность потенциалов между ним и защитным общим проводом, т.е. эмаль проводов трансформатора преобразователя напряжения, его межобмоточная жёлтая трансформаторная лента, гель оптронов, материалы ПП, и т.д., требуется защитить от указанного для каждого из них их производителями перенапряжения всё теми же либо ограничителем(ями), либо и/или варистором(ами), либо и/или газовым разрядником
Николай Семёнович
Цитата(Krik99 @ Nov 13 2017, 20:31) *
ОК. Я сейчас всех уже подзапутал wacko.gif и сам тоже.

У Вас наверное петли в кабели. Поэтому переменное магнитное поле наводит ЭДС
=AK=
Цитата(Krik99 @ Nov 14 2017, 02:31) *
Земля ПЛК (у него внутри БП) и ИБП соеденены на землю щита. Передача данных и питания осуществляется разными проводами. При чем от этого же питания запитаны промышленные датчики на стороне МК, которые из защиты имеют только TVS и дросель. И в итоге МК зависает намертво, а датчикам норм.
В чем вопрос. На сколько будет эфективна гальваническая развязка 485 при общем питании устройств?


По питанию все они гальванически связаны. Но кроме питания есть еще входы-выходы (что включает и интерфейсы). И вот из всех входов-выходов вам хочется развязать только RS485. А никакие другие почему-то не хочется. Наверное, RS485 выбран потому, что "все так делают"? И вообще ни о чем кроме гальв. развязки не упоминаете, как будто это единственное средство и панацея от всего (именно так, судя по всему, думает незабвенный "Николай Семёнович" cool.gif ).

А вы догадываетесь, почему МК зависает? Что-то я в этом сомневаюсь...

Цитата(Николай Семёнович @ Nov 14 2017, 04:41) *
У Вас наверное петли в кабели. Поэтому переменное магнитное поле наводит ЭДС

Вероятность, что это может привести к зависаниям МК, исчезающе мала.

Цитата(Plain @ Nov 14 2017, 04:09) *
7) сказка, см. п.5,

У оптрона есть проходная емкость. Или это сказка? rolleyes.gif
Николай Семёнович
Цитата(=AK= @ Nov 14 2017, 01:21) *
Вероятность, что это может привести к зависаниям МК, исчезающе мала.

Ага. То то во всех рекомендациях по трассировке плат рекомендуют избегать петель.
Хотя какие-то там петли. Максимум 10 см в диаметре.
И то.

А в кабеле петли могут быть в диаметре 10 метров и более. И при этом они никак не сказываются на работоспособности. Ага biggrin.gif
A.Lex
Цитата(Krik99 @ Nov 13 2017, 17:37) *
Я правельно понимаю что TVS диоды должны быть отдельно от платы?

Нет, зачем аж так! На плате у выходного разъема
Цитата
Такая схема с TVS есть на стороне PLC. И гальваническая развязка нужна на каждом устройстве подключенном к линии 485?

Да
Цитата
Тогда что делать с тем что несколько устройств питаются от одного БП и фактически развязав линию RS485 сохраняем общую землю через питание.

Это уже вопрос топологии - правильное соединение устройств к общему источнику, "звезда" как правило, но надо еще учитывать особенности устройств (например, импульсные помехи создаваемые устройством)
=AK=
Цитата(Николай Семёнович @ Nov 14 2017, 12:53) *
Ага. То то во всех рекомендациях по трассировке плат рекомендуют избегать петель.

Рекомендации представьте, ссылки или цитаты с указанием источников. Хотелось бы посмотреть, связаны они с помехами или с чем-то иным.

Цитата(Николай Семёнович @ Nov 14 2017, 12:53) *
А в кабеле петли могут быть в диаметре 10 метров и более. И при этом они никак не сказываются на работоспособности.

Повторяю: микроконтроллер от этого не зависнет. Сигнал может испортиться, это да.
AlexandrY
Цитата(=AK= @ Nov 14 2017, 00:21) *
Но кроме питания есть еще входы-выходы (что включает и интерфейсы). И вот из всех входов-выходов вам хочется развязать только RS485. А никакие другие почему-то не хочется.

Согласен.
Скорее всего датчики, а именно их земля и есть основная проблема. Они, кстати, не изображены почему-то.
@Ark
Цитата(Krik99 @ Nov 12 2017, 11:08) *
Добрый день. Начал я тут разрабатывать устройство, которое вроде как должно подходить под стандарт промышленной электроники (3-х фазные двигатели, эл. магнитные клапана и т.д.). Сердцем всего этого должен быть МК. Программу написать не проблема, но вот погуглив увидел что у многих разработчиков возникает проблема с зависанием МК. Сам такое наблюдал в устройстве, где через делитель снималось с силовой цепи 220в сигнал контроля...

Проблема возникает, как правило, у разработчиков, которые не имеют достаточного опыта применения МК в силовой аппаратуре. По мере его накопления - проблема обычно исчезает. От слова - совсем. Нарабатываются определенные стереотипы (часть из которых вы перечислили) - что и как можно делать, а как нельзя. Но лучше, конечно, знать и понимать, что за этими стереотипами стоит. Оставляя в стороне вопрос помехоустойчивости входных/выходных сигналов, попробуем сформулировать, что именно может привести к сбою (сбросу) МК в силовых схемах:

1) На первом месте - проблемы с питанием МК. Просадки и подъемы напряжения питания, в том числе, очень кратковременные, импульсные (порядка 1мкс и менее). На них может срабатывать встроенный детектор пониженного/повышенного напряжения питания в МК, что приводит к его сбросу. На очень короткие, наносекундные выбросы детектор может не срабатывать, но от этого не легче. Если эти импульсы ("иголки") выходят по амплитуде за разрешенный диапазон питания, то их постоянное воздействие может, со временем, привести к выходу МК из строя. Да и остальным компонентам схемы это, как минимум, не полезно. Лечится все это фильтрами на питании, правильной разводкой питания и земли, разделением цифровой и аналоговой земли при разводке. В тяжелых случаях - гальванической развязкой цифровой и аналоговой (силовой) части схемы.

2) Наводки на специальные служебные выводы МК, которые используются для аппаратного сброса, перехода в режимы программирования, отладки и т.п. Даже короткие импульсные помехи на таких выводах могут легко перевести ваш МК в режим сброса или какой-то специальный режим (программирования, отладки), что будет восприниматься вами как "зависание". Рецепт здесь простой - уделять должное внимание таким выводам при разработке схемы, фиксировать уровни на них аппаратным и/или программным способом, защищать от помех. И, уж, ни в коем случае не бросать эти выводы никуда не подключенными, в третьем состоянии, понадеявшись на встроенные "подтяжки" (если они есть).

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

4) Для многих МК является критичной скорость нарастания напряжения питания при включении. Этот параметр стоит поискать в даташите. Слишком медленное (или слишком быстрое) нарастание напряжения питания может привести к тому, что МК не стартует, остается в состоянии сброса. Это актуально, когда, например, на питании стоят электролиты большой емкости. Лечится специальными отдельными схемами сброса.

5) Паразитное питание МК через защитные диоды входов/выходов, подключенных к внешним датчикам или интерфейсам устройства. Они могут иметь отдельное питание, либо оно может появляться раньше, а пропадать позже, чем основное питание МК. В результате, МК может попытаться стартовать раньше времени, или попытаться продолжить работу после отключения основного питания за счет этой паразитной запитки. В частности, паразитная запитка может "испортить" нужную скорость нарастания напряжения питания при старте. Лечится правильной схемотехникой. Главное не забывать по эту возможную проблему.

----
P.S. Пока все, что удалось вспомнить.
Krik99
Цитата
мертворождённый I2C соответственно прихватит в иной мир и любую промавтоматику

А как тогда с внешними eeprom и rtc быть?
Цитата
Согласен.
Скорее всего датчики, а именно их земля и есть основная проблема. Они, кстати, не изображены почему-то.

Датчик питается от наплатного 7812 и выдает колисчетво импульсов по одному сигнальному проводу (длина импульса ~50мс). Всё это в 15 см от платы. Есть 7-ми сегментный индикатор и матричная клавиатура. Из входов\выходов, это все.
Цитата
5) нет, на любую внешнюю линию нужен обязательно ограничитель, либо два, либо три и т.д., а ещё дополнительно варистор, либо два, либо три, и т.д., а ещё дополнительно газовый разрядник, либо такой же с замыкателем — всё зависит от энергии помехи, которую должна поглотить вся эта цепь защиты

Тоесть если у меня выход это нормально открытая група контактов реле, то мне нужно ставить кроме предохранителя еще и варистор на этот выход?
=AK=
Цитата(Krik99 @ Nov 14 2017, 16:59) *
Есть 7-ми сегментный индикатор и матричная клавиатура.

А они как далеко расположены и от чего питаются?

Главный вопрос - как их земли подключены к плате? В одной точке? В той самой точке, где на плату приходит питание?
AlexandrY
Цитата(Krik99 @ Nov 14 2017, 09:59) *
Датчик питается от наплатного 7812 и выдает колисчетво импульсов по одному сигнальному проводу (длина импульса ~50мс). Всё это в 15 см от платы. Есть 7-ми сегментный индикатор и матричная клавиатура. Из входов\выходов, это все.

Ну что, отстегивайте клавиатуру и датчики , а главное их земли и проверяйте не сбоит ли плата.
Сохраняйте в EEPROM информацию из регистра PCON0. Вообще посматривайте чаще туда, много о чем может сказать.
k155la3
Цитата(Krik99 @ Nov 13 2017, 21:31) *
. . . Я сейчас всех уже подзапутал wacko.gif и сам тоже. Но надо было начать с этого.
. . . .

sm.gif Так у Вас питание 24V идет через кабель, удаленно ? !!!!!!
Поставьте БП 24 В рядом с контроллером и запитайте от "чистой" сети-фидера.
А для проверки - с источником бесперебойного питания.
ps - какая длина линии питания 24V ?


Цитата(Krik99 @ Nov 14 2017, 11:59) *
А как тогда с внешними eeprom и rtc быть?

1. I2C - внутриплатный интерфейс. Помехозащита очень слабая. Соотв-но требования к трассировке линий.
2. Не расплагать линии и IC с I2C в районе силовых ключей, и прочих элементов, которые могут дать импульсную помеху.
Это может ввести в завес как master, так и slave - что намного проблематичнее.
-------

Какой номинал подтягивающих резисторов I2C на Вашем контроллере ?
Krik99
Цитата
Есть 7-ми сегментный индикатор и матричная клавиатура.
А они как далеко расположены и от чего питаются?

Дисплей установлен на плате, а матричная клавиатура вынесена на панель щитовой ~30см.

Цитата
Главный вопрос - как их земли подключены к плате? В одной точке? В той самой точке, где на плату приходит питание?

Нет на сколько я помню там сделана отдельная колодка на плате и спецально для его питания 7812. Датчик имеет у себя на борту МК и не зависает.
=AK=
Цитата(Krik99 @ Nov 14 2017, 19:26) *
матричная клавиатура вынесена на панель щитовой ~30см.

Она там не заземлена? Чем черт не шутит...

Ее земля и щит какаую примерно емкость связи между собой имеют?

Цитата(Krik99 @ Nov 14 2017, 19:26) *
Нет на сколько я помню там сделана отдельная колодка на плате и спецально для его питания 7812. Датчик имеет у себя на борту МК и не зависает.

Длинный кусок провода вообще никогда не зависает, по определению, однако воткнутый куда не следует способен завесить любой микроконтроллер. Вы так и не ответили на главный вопрос - куда он воткнут. Не "как" ("отдельная колодка" и т.д. не имеет значения, хоть колодкой, хоть пайкой, хоть скруткой), а куда.
AlexandrY
Цитата(=AK= @ Nov 14 2017, 12:36) *
Ее земля и щит какаую примерно емкость связи между собой имеют?

Не меньше 10 пФ думаю будет.
Но я бы рассматривал эти провода уже как антенны.
Если взять обычные монтажные провода в PVC изоляции, то четверть волны стандатных FTB импульсов будет от 1..3 м.
Т.е. в пределах ящика получаем отличную резонансную систему.
Krik99
Цитата
Не меньше 10 пФ думаю будет.
Но я бы рассматривал эти провода уже как антенны.
Если взять обычные монтажные провода в PVC изоляции, то четверть волны стандатных FTB импульсов будет от 1..3 м.
Т.е. в пределах ящика получаем отличную резонансную систему.

Когда впервые увидел эту конструкцию, тоже засомнивался. Суть в чем, клавиатуры в стандартном понимании нет, есть 8 врезаных в щитовую кнопок, которые уже подключены между собой по схеме матричной клавиатуры. При этом все собрано обычным монтажным проводом, а из защиты входов подключены резисторы в 5к и на землю.
Plain
Цитата(Krik99 @ Nov 14 2017, 10:59) *
А как тогда с внешними eeprom и rtc быть?

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

Цитата
Датчик питается от наплатного 7812 и выдает колисчетво импульсов по одному сигнальному проводу (длина импульса ~50мс). Всё это в 15 см от платы. Есть 7-ми сегментный индикатор и матричная клавиатура. Из входов\выходов, это все.

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

Цитата
Тоесть если у меня выход это нормально открытая група контактов реле, то мне нужно ставить кроме предохранителя еще и варистор на этот выход?

Нет, по варистору с каждого контакта реле на защитный общий провод, а кроме того, туда же два ограничителя на оба вывода обмотки и соответствующий расчёт цепей на возникающие при их работе (т.е. при воздействии помехи) перенапряжения, т.е. и т.н. "ключ", и т.н. "тупо +24 В с БП" должны выдерживать 40-вольтовые импульсы.
=AK=
Цитата(Krik99 @ Nov 14 2017, 20:46) *
есть 8 врезаных в щитовую кнопок, которые уже подключены между собой по схеме матричной клавиатуры. При этом все собрано обычным монтажным проводом, а из защиты входов подключены резисторы в 5к и на землю.

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

Ну тогда вот это и есть корень зла. Развязывйте это безобразие оптронами или просто буферами на рассыпной логике, ставьте резисторные барьеры на пины микроконтроллера, и т.п.
Krik99
Цитата
Я-то думал, клавиатура в виде одного блока, а тут самый худший вариант: каждая кнопка имеет сильную емкостную связь с щитом, который заземлен вообще хрен знает где. Вдобавок к этому матрица, очевидно, напрямую соединена с пинами микроконтроллера - похоже что ни развязки, ни барьеров нет.

Ну тогда вот это и есть корень зла. Развязывйте это безобразие оптронами или просто буферами на рассыпной логике, ставьте резисторные барьеры на пины микроконтроллера, и т.п.

Именно так все и собрано, напрямую к МК. rolleyes.gif Тоесть обычные буферы помогают в этом случае? Тогда после оптопар желательно тоже ставить что-то типа тригеров Шмидта или это лишнее?
PS Если все это собрать на стандартной схеме, один конец кнопки к земле, второй через RC цепь к МК это будет работать, или всеже нужно ставить буфер? Есть вариант с подключением на общий провод +24в и снимать через стабилитрон сигнал?
alexvu
А можно изменить монтаж кнопок и поставить 8 реле около контроллера.
AlexandrY
Цитата(Krik99 @ Nov 14 2017, 15:23) *
Именно так все и собрано, напрямую к МК

Значит у вас не одна, а много проблем.
Сначала избавьтесь от зависаний.
С клавиатурой легче всего, в каждый провод идущий к клавиатуре вставьте по 100 Ом, и в земляной провод тоже.
На всякие супрессоры, TVS-ы, варисторы и конденсаторы блокировочные поначалу не отвлекайтесь.
Вы еще не знаете где у вас грязная земля, поэтому не знаете куда с них следует сливать наведенные помехи.
Грязная земля - это там откуда приходят FTB импульсы.
Может это источник питания, а может датчики. Они не источники, они просто хорошо ловят наводки.
Под платой поставьте аналогичного размера пластину фольгированного текстолита и припаяйте к ней короткими проводами все контакты на внешних разъемах платы на которые выходит земляной сигнал.
Николай Семёнович
А вообще "серебрянной пули" (типа "делай так и у тебя 100пудово всё будет ОК") не существует.
Борьба, помехами - это всегда в какой-то степени шаманство и танцы с бубном

Т.е. общие рекомендации тут мало помогут. Нужно разбираться с каждым конкретным случаем
=AK=
Цитата(Krik99 @ Nov 14 2017, 22:23) *
Именно так все и собрано, напрямую к МК. rolleyes.gif Тоесть обычные буферы помогают в этом случае? Тогда после оптопар желательно тоже ставить что-то типа тригеров Шмидта или это лишнее?


Даже просто резистор помогает, как посоветовал ув. AlexandrY.

Ваш микроконтроллер зависает от наносекундных помех. Чтобы избавиться от них, желательно дать им дорогу на землю мимо микроконтроллера, а на пути к микроконтроллерy обязательно поставить барьер.

Маленькиe конденсаторы (порядка 100 пФ) от точeк, где каждый провод с клавиатуры приходит на плату, до ближайшей земли, уведyт помехи в сторону от микроконтроллера, а барьеры справятся с остатками.

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

Если поставить буфер 74HCxx, он одновременно будет и помеху на землю отводить, и играть роль барьера. Причем он будет это делать лучше, чем оптрон. А гальваническая развязка в этом месте вообще-то совершенно не нужна.

Цитата(Николай Семёнович @ Nov 15 2017, 01:34) *
Борьба, помехами - это всегда в какой-то степени шаманство и танцы с бубном

Если не знать и не понимать происходящие процессы, а смотреть со стороны на то, что делают те, кто понимает - то да, выглядит как шаманство. А есле повторять подсмотренные приемы наобум, методом тыка, пока чего-то не получится, то это и есть танцы с бубном. Начиная с классического коленца: натыкать везде гальваническую развязку, как вы тут давеча советовали. tongue.gif
Николай Семёнович
Чушь. Помеха прет ПО ВОЗДУХУ. Поэтому никакие буфера, пикофарадные кондеры и прочее шаманство не помогут в борьбе с зависаниями МК.
Проверено более чем 40 годами практики
one_eight_seven
Цитата
Проверено более чем 40 годами практики

Похоже, что вы эти 40 лет потратили зря.
=AK=
Цитата(Николай Семёнович @ Nov 16 2017, 01:50) *
Чушь. Помеха прет ПО ВОЗДУХУ. Поэтому никакие буфера, пикофарадные кондеры и прочее шаманство не помогут в борьбе с зависаниями МК.

Угу. Прет по воздуху, на крыльях ужаса и с ма-а-леньким пропеллером в попе. И ничего от нее не помогает, кроме гальванической развязки и танцев с бубном. А оптроны помогают, потому что в них воздуха нет - помехе нет по чему переть. cranky.gif

Очень жаль, что вам 40 лет назад никто не объяснил одну из фундаментальных основ, на которых стоит электроника: для качественного анализа устройства надо нарисовать его эквивалентную схему. Причем в эту схему по мере надобности должны быть включены и паразитные свойства компонентов и монтажа, а также источники помех. И тогда в эквивалентной схеме будет ясно видно место и роль и буферов, и проходных емкостей оптронов, и паразитных емкостей связи с шасси, и всего прочего, как упомянутого выше, так и оставшегося за кадром.

Если бы вы умели создавать такие схемы, то вам бы не пришлось 40 лет плясать с бубном, жаловаться на низкую зарплату и нести ахинею на форумах. Но вы не умеете, ибо оперируете радиолюбительскими понятиями "прет по воздуху", которые никак в эквивалентную схему не отображаются. Ведь это не емкостная и не магнитная связь, и даже не радиоволна - это какое-то неизвестное науке взаимодействие, черная энергия, управляемая злыми духами. maniac.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.