Jump to content
Mono-S

Проблема. STM32C8T6 + ULN2003a зависает.

Recommended Posts

Здравствуйте! Имею следующую схему - STM32C8T6 к ней подключена сборка UNL2003. ULN управляет включением и выключением реле 12в по массе.  А вот реле уже коммутирует 220вольт переменного тока шаровый кран (0.2А но большая индуктивность) или катушку электромагнитного клапана. Разводка выполнена на печатной плате, зазоры от 220 вольт до ближайшей линии +3.3 или данных - минимум 2.5см. При включении без нагрузки вся схема работает стабильно - никаких перезагрузок по ватчдогу или зависаний. Отрабатывает все верно.

Подключаю нагрузку - (кран ) и тут же 2-3 включения реле - система виснет наглухо. Уже попробовал поставить диод в реле(хотя он есть в схеме ULN) дополнительный конденсатор 100nF на питание самой ULN. Питание +12в от реле и +3.3в для МК берется с разных источников. -  результата нет. 

Тут же рядом на этой схеме. Реле коммутируется через оптопару PC817, которая через полевой транзистор включает так же реле +12в. И при этом индуктивная нагрузка на этом канале не дает такого эффекта. Все работает стабильно. 

Отсюда вопрос - понятное дело, что ULN2003 не имеет гальванической развязки, но в его даташите четко сказано применение с реле. Схема взята из него же. Видел много автомобильных сигналок - там так же эта схема рулит каналами от концевиков дверей, правда там нет 220 вольт. Получается  я что ловлю помехи в обратную через биполярный транзистор ULN ? есть какие-нибудь способы борьбы с этим ? Разбирал разные пром схемы - там так же ULNка рулит релюхами, и ничего умного сильно там нет.  Есть у кого-то подобный опыт - как с этим делом боротьcя ?

Share this post


Link to post
Share on other sites

А подключить отладчик и посмотреть? МК вообще не умеет виснуть.

Share this post


Link to post
Share on other sites
Только что, MasterElectric сказал:

А подключить отладчик и посмотреть? МК вообще не умеет виснуть.

Вот в том то и беда. Без вачдога просто виснет в 0. И рвется связь по отладке. Это первое что я сделал. Но ничего не видно. И не видно так же скачков по земле или питанию осциллом.

Share this post


Link to post
Share on other sites

Тестирование литиевых батареек Fanso в нормальных условиях

Компания Компэл, эксклюзивный дистрибьютор компании Fanso, предлагает широкий перечень ЛХИТ, позволяющий подобрать элемент питания, в наибольшей степени соответствующий конкретным требованиям. Для тестирования параметров, указанных в Datasheet, специалисты Компэл организовали в апреле 2019 г. полугодовой тест на постоянный разряд в нормальных условиях четырех наиболее популярных моделей литий-тионилхлоридных и литий-диоксидмарганцевых батареек Fanso.

Посмотреть результаты первого среза

Posted (edited)

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

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

Edited by GalatZ

Share this post


Link to post
Share on other sites
9 часов назад, GalatZ сказал:

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

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

Что бы повесить снаббер надо точно знать частоту помехи...  Ее я не знаю. Пробовал сделать конденсатор 0.1мкф 630в и резистор 27ом - пробовал и конденсатор на 10мкф. Результат так же нулевой. Видимо НЕЛЬЗЯ так использовать ULN  и их пробивает обратным током по транзисторам. На полевых транзисторах такого нет.

Share this post


Link to post
Share on other sites

Новое бюджетное семейство микроконтроллеров STM32G0 и планы его развития

Семейство STM32G0 сочетает в себе лучшие качества представителей семейств STM32F0 и STM32L0 - относительно высокую производительность и низкое энергопотребление. Модели STM32G0 имеют упрощенную схему питания, улучшенную периферию, систему тактирования и быстрые порты в/в, доп.средства защиты ПО, повышенную устойчивость к статическим разрядам, широкий ассортимент корпусов, обновленные пакеты библиотек для STM32CubeMX. STMicroelectronics планирует развивать новое семейство.

Подробнее...

Покажите разводку платы.
Обычно 90% подобных проблем именно в ней.

Share this post


Link to post
Share on other sites

А заодно и всю схему. Блокировочные конденсаторы по питанию МК и ULN стоят?

Share this post


Link to post
Share on other sites

постоянно такой front-end применяю и ни разу ничего не глючило. Правда ULN-ки не с алиэкспресса :)

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

Есть еще один вариант - плату с релюшками сделай выносной и отодвинь подальше

Share this post


Link to post
Share on other sites
52 минуты назад, mail_robot сказал:

А вот от искры контроллер карачун может ловить, если кварц хреновый или разведен неправильно.

Чисто теоретически, при правильной настройке МК сбой кварца не должен приводить к зависанию, просто должен включаться внутренний генератор.

Share this post


Link to post
Share on other sites

image.png.77f6a5b97c701c9e118b712d9d67dd34.pngimage.png.eed8fd4a1ace838f08961071f3e77fd7.png

Эта часть платы шилда. Она стоит в 5 см от той платы, где стоит проц. В верхнем правом углу разъем, там приходят аналоговые сигналы и управление 595м регистром.

А это уже плата шилда, на которой висит дисплей и сама STM32

image.png.3ec2fcf4991b5561f9e9b231160e1770.pngimage.png.b4b79abf3cf2785c436b284f38667025.png

Относил плату управления шлейфом на метр - результата так же не было. Все же я думаю, что надо уходить от ULN и делать схему на оптопарах и полевых транзисторах. Линии 220в и управления с МК на платах у меня не пересекаются. Да и забыл сказать раньше, управляю я такой нагрузкой через 595 сдвиговые регистры, в с целью экономии портов. Хотя на сколько я знаю 595 не дает гальванической развязки.

Edited by Mono-S

Share this post


Link to post
Share on other sites

Гальваническую развязку даёт лишь то, что имеет два независимых питания. У меня есть плата с stm32f429, стоит в блоке рядом с 6 контакторами, коммутирующими 380В. Управляющий ими через оптореле. Никаких проблем нет.

Отправлено с моего Nexus 5 через Tapatalk

Share this post


Link to post
Share on other sites

Спасибо большое! Вот именно так я теперь и буду делать. Все через оптопару и никаких там ULN.  Просто если я ставлю оптопару  -то в ULN смысла 0.  Причем я коммутирую нагрузку постоянного тока  - дозаторы по 0.4А - все ок никаких помех. Сделал все на 220 и тут получил себе гемор. Вобщем нельзя коммутировать реле UNLкой, которое включает 220.

Share this post


Link to post
Share on other sites
7 минут назад, Mono-S сказал:

Вобщем нельзя коммутировать реле UNLкой, которое включает 220.

чушь.  оставь только шильд с стмкой и дисплеем и включи возле него пускатель 2-3 величины в режиме генерации и посмотри че будет.

Share this post


Link to post
Share on other sites
19 минут назад, IMXO сказал:

чушь.  оставь только шильд с стмкой и дисплеем и включи возле него пускатель 2-3 величины в режиме генерации и посмотри че будет.

Это  мы уже говорим про разводку платы. Дисплей там вобще сидит на SPI шине 2мгц. Ох там все не просто было. поэтому Все силовое управление вынесено на отдельную плату. 

Share this post


Link to post
Share on other sites
1 час назад, Mono-S сказал:

Все через оптопару и никаких там ULN

Не оптопара, а оптореле. Это разные вещи. Когда делал бортовой комп в машину, рулил парой релюх 12В тупо через мелкие транзисторы. Одна релюха включала габариты, вторая включала реле, которое включало фары. И тоже никаких проблем. В блоке с контакторами оптореле стоят чисто для защиты МК. Мало ли, провод отвалится и упадет на линию 380В. Это первое. Второе, трассировка плат у вас довольно паршивая. Первое, что бросается в глаза - огромное количество ни с чем не соединенных полигонов. Вы сами себе делаете отличные антенны для приема наводок. Все полигоны надо прошить переходными отверстиями и соединить с GND. В противном случае - убрать совсем. STM, как я понимаю, используется в виде китаезной платы? Вот вам еще один источник проблем. Вообще непонятно, нафига лепить сдвиговый регистр для экономии выводов, если вместо китаезной платы с МК можно было поставить более многоногий МК? Далее, как организовано питание МК? Фильтры типа BLM, блокировочные конденсаторы? Китайцы на свои платы такого не ставят, а какой-либо фильтрации я на плате вообще не вижу. Далее надо взять осцилл и отловить, где прилетает импульс на плату. Ибо заставить прошивку повиснуть не так и просто. У меня есть плата с STM, которая стоит в ИИП на 3 КВт почтив  упор к выходному дросселю. ЭМИ там будь здоров, однако МК работает стабильно. И это при том, что он связан по питанию с низковольтным питанием ИИП и на него заходит пачка аналоговых сигналов. У вас, пока что, видится кривое питание МК.

Share this post


Link to post
Share on other sites
11 часов назад, Mono-S сказал:

мы уже говорим про разводку платы.

 

10 часов назад, BARS_ сказал:

У вас, пока что, видится кривое питание МК.

согласен,  и UNLка здесь не причем.

Share this post


Link to post
Share on other sites
13 часов назад, BARS_ сказал:

 Второе, трассировка плат у вас довольно паршивая. 

Это еще мягко сказано. Полный трэш. Всегда было интересно - как люди умудряются так разводить платы? У меня 14 летний пацан лучше разводит.
Топикстартеру:
Можете моему сыну заказать нормальную разводку платы. Он пока не дорого берет - учится.
И вот BARS_ вам правильно сказал - бросьте вы эти синие пилюли и прочую дребедень. Ставьте проц прямо на плату и разводите аккуратно - со всеми фильтрами, с правильной разводкой земли и прочим. Тогда не возникнет проблем с дисплеем и прочей периферией.

Share this post


Link to post
Share on other sites

Малогабаритные реле бывают двух типов: для максимального тока и для индуктивной нагрузки. Различие чисто конструкционное - в центральном силовом контакте. Для большого тока его пропускают через каркас катушки. Для индуктивных нагрузок - группа контактов полностью изолированна от катушки и её магнитопровода.

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

Share this post


Link to post
Share on other sites
4 часа назад, LiVit сказал:

Это еще мягко сказано. Полный трэш. Всегда было интересно - как люди умудряются так разводить платы? У меня 14 летний пацан лучше разводит.
Топикстартеру:
Можете моему сыну заказать нормальную разводку платы. Он пока не дорого берет - учится.
И вот BARS_ вам правильно сказал - бросьте вы эти синие пилюли и прочую дребедень. Ставьте проц прямо на плату и разводите аккуратно - со всеми фильтрами, с правильной разводкой земли и прочим. Тогда не возникнет проблем с дисплеем и прочей периферией.

Ну не спорю это всего лишь моя 5ая плата, может я и не гений по разводке плат. но все же сразу гениями рождаются. Без опыта никак. Решение взять готовую плату STM blue Pill определено многими факторами - во первых на готовой плате нормально припаян проц - и паять руками серию в 10 изделий нафиг не надо. Если бы делалось изделие в 1000 штук - то конечно при наличии бютжета я бы поискал профи и взял бы уже проц на плату. А так где у меня кривое питание на проце, когда на отдельную плату приходит 12В, затем через MCP158 получается 5в и 3.3В и уже потом идет на проц. Именно поэтому я взял 2 платы, и уж как там выведена земля на 2ой плате глубоко должно быть процессору пофигу. Вобщем моя проблема решилась установкой оптопар и выброшенными ULNками. Реле самые дешевые китайские SRD-12V. А зачем дороже и лучше для шарового крана ? С ними у меня ардуино работает годами и горя не знает. Нагрузку побольше типа насоса - я уже коммутирую таким реле, зашунтированным симистором через конденсаторно-транзистроную схему. И никаких помех. 

Share this post


Link to post
Share on other sites

Да бога ради.
Вот только продавать такое, или даже просто людям показывать....
Какую плату не разводи - ее надо разводить правильно. И красиво. Тогда не будет проблем с дисплеем на аж 2(!)МГц.

А 10 штук - это как раз такая серия, когда еще можно руками запаять. Заодно научитесь это делать.

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

Сименс такое вытворял на платах промышленной автоматики.
Все работало, в том числе в условиях сильных промышленных помех.

Share this post


Link to post
Share on other sites

Ну не беда. Что делать - учусь мало мало. Насчет изоляции линии данных - да надо попробовать будет сделать. Спасибо большое. Мысль мне эта приходила в голову - но не решался. Причем ведь можно и на 165м регистре такое сделать - и все какая не была бы кривая разводка(но над этим я работаю) все равно работать будет.  А для конечного пользователя важнее результат - должен проходить хим процесс очистки воды и по моему алгоритму - оно работает - значит можно делать дальше. Насчет дисплея проблемы уже нет - просто до этого я пытался это все дело повесить на шлейф IDC -  и получил печальный результат. Теперь остановился на шилде проц + дисплей + аналоговая часть где нет 220, и далее вторая плата в 3см от нее над ней прямо в корпусе - где включается уже 220 вольт. В понедельник придут платы - попробую запять посмотреть что будет - но уже на проводках все работает, так что думаю и такое тоже запашет. 

 

Кстати наткнулся вот на такую микруху https://www.chipdip.ru/product/74hct245d . Видимо на ней  и надо делать развяку. Там как раз реализована диодная защита линии даннных. image.png.ca95cd02f8b167f2b76cc1918b8de4ea.png

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

Edited by Mono-S

Share this post


Link to post
Share on other sites

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

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

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

Я взял конденсатор на несколько микрофарад, зарядил от розетки (через диод) и разрядил рядом с его платой. Результат - зависание, стыд, позор.
Потом я проделал такой фокус со своей платой - зависаний не было. Я даже вообще нечестно поступил - разрядил конденсатор прямо на землю моего устройства. И всё в порядке.
Ну, я попросил показать его разводку. Там было что-то вроде вашего. После подсказок он переделал разводку и с тех пор не сбоило.

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

Всё у них было хорошо, пока на разъемы компортов статические разряды не попадали. Как только искра - всё, зависало. Часы реального времени висли, Карл! А в работе касс есть одна специфика - как только какой сбой, и не закрыта сесия работы с фискальной памятью, там начинается ад и израиль. 
Плата там была настолько плоха, что ваша - просто образчик хорошей работы.

Вот как-то так.

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

Кстати, схему вы не показали - вам тут и по ней дельных советов надавали бы, раз вы уж настолько начинающий ))

Share this post


Link to post
Share on other sites

Ну схема так схема. Если в кратце описание. Сенсорный экран  2.8 висящий на SPI1 Экран и SPI2 Сенсор. 4 канала аналогового измерения - защищено резисторным делителем и стабилитроном на 3.3 вольта (логика то у платы 3х вольтовая, а датчики все 5в). Канал Расходомера частотный так же защищен как и аналоговый. 

image.png.86a537e6dcb92dd60d4cc80a67bc6bf5.png

Питание всей схемы осуществляется От импульсного 12в блока питания. Через микросхему MP1584EN (конвертер 2мгц) получаю напряжение 5в, затем через AMS-111-3.3 получаю 3.3. На входах в преобразователи стоят танталовые конденсаторы 10мкф согласно даташитам. 

Цифровые датчики реализованы через программный SPI на 165 входном регистре. 

image.png.d1c7bb9663d9da498ec29e7508cb522d.png

Вход в 165 схему предаварительно зашунтирован диодами с двух сторон, что бы избежать импульса от наводок по входу.

 

image.png.f8c6ead9c84a8d3ea0f7f8a6a20a1d53.png

А вот та часть, которая выносила мне мозг. Вот тут вместо оптопары просто была ULN2003. Это управление 3х ходовым краном через простoe дешевoe реле SRDТеперь тут оптопара, биполярный транзистор с токоограничивающим резистором и защитный диод шоттки. Реле связано с общей землей, питание реле +12В. После установки оптопары индуктивные наводки пропали. 

Насосы включаю чуть посложнее 

image.png.1dc9db54fc5fc634dc77b1ecf8b67fb9.png

Тут реле зашунтированное симистором через конденсаторно-резистрную задержку. Схема работает прекрасно уже долго. Никаких помех с этой схемы не было никогда. ЧТо бы не подгорали контакты реле - 1сек оно включается симистором, затем переходит на реле. Выключение в обратном порядке. Схему нашел на просторах инета. 

Ну как-то так выглядит схема.

Share this post


Link to post
Share on other sites

мдя...

вы уж ребята простите, но тут даже коментить как то стыдно. Чудеса смехотехники

Edited by mail_robot

Share this post


Link to post
Share on other sites
17.08.2019 в 17:44, Mono-S сказал:

во первых на готовой плате нормально припаян проц - и паять руками серию в 10 изделий нафиг не надо.

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

 

17.08.2019 в 17:44, Mono-S сказал:

А так где у меня кривое питание на проце, когда на отдельную плату приходит 12В, затем через MCP158 получается 5в и 3.3В и уже потом идет на проц.

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

 

17.08.2019 в 21:52, Mono-S сказал:

Насчет изоляции линии данных - да надо попробовать будет сделать.

При правильной схемотехнике она там нафиг не нужна. Приведу пример. У меня есть плата, управляющая хитрым БП. Там 12 модулей питания 380В->50В. Нагрузка импульсная, шумит будь здоров. На каждом модуле стоит АЦП и измеряет пачку параметров. Моя плата довольно большая, 400мм в длинну, и соединена со всеми модулями. По всей длине платы идут линии SPI, на каждой линии висит 6 АЦП. Питание моей платы приходит отдельно, 24В. Так вот, единственное, что у меня стоит на линиях SPI - это резисторы для сглаживания дребезга при переключении уровней. SPI работает на максимальной для АЦП тактовой  - 2МГц. И никаких сбоев в работе нет. И схему и трассировку сделал собственноручно. Единственное, где стоит развязка - кнопки, ибо их жгут проходит рядом с силовым и бывают наводки. Поэтому там стоят обычные мелкие оптореле. Так что правильная трассировка - залог нормальной работы девайса. Откройте для себя Altium, сильно упростит задачу.

 

16.08.2019 в 22:47, Mono-S сказал:

Дисплей там вобще сидит на SPI шине 2мгц.

Что за фуфлыжный дисплей? У меня даже на проводах дисплеи работают на 36МГц, а тут плата и всего 2МГц.

 

10 часов назад, Mono-S сказал:

Цифровые датчики реализованы через программный SPI на 165 входном регистре. 

Нахрена? Вот серьезно, на кой хрен лепить десяток микрух логики, когда можно взять МК с большим числом выводов?

 

10 часов назад, Mono-S сказал:

(логика то у платы 3х вольтовая, а датчики все 5в)

А если внимательно читать даташит, то можно увидеть, что почти все выводы GPIO у МК спокойной работают и с 5В.

 

10 часов назад, Mono-S сказал:

На входах в преобразователи стоят танталовые конденсаторы 10мкф согласно даташитам. 

А на выходе?

 

10 часов назад, Mono-S сказал:

Это управление 3х ходовым краном

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

 

10 часов назад, Mono-S сказал:

защитный диод шоттки

Диодами Шоттки никогда не шунтируют реле!!!

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Особенно на К547КП1В. Самый идеальный вариант для предусилителя. Неужели нельзя посмотреть хотя бы назначение микросхем? КП- коммутатор, УЛ и AN - предварительные усилители воспроизведения для магнитофонов, и только УД2 - двухканальный операционный усилитель универсального назначения, обладающий низким уровнем собственных шумов. Вывод, надеюсь, сами сделаете?
    • Мне, ч.г. пофиг чьи ссылки, я мониторю в целом. А буржуйским там даже и не пахнет. Или ты второй Песков, всё на финансирование госдепа будешь валить? Знай, что кроме кремля ни кто платить не будет за неправду.
    • Далее Земля налетит на небесную ось и мы все умрём.
    • Для начала просто предположи, что этих "даже не 50%" нет.  А теперь предположи что их уже нет лет как пять, а то что называют "даже не 50%" это просто проедается взятый на покупку обору лошадей плугов и посевного материала кредит. Ибо уже давно никто себестоимость добычи точно не называет. Существуюшие месторождения иссякают. На разработку новых взятый кредит... ну ты понял уже.  
    • Иногда и читать полезно.
    • Была тема "Как измерить ток в розетке" хотел ответить, но ее "грохнули". Силу тока в розетке измеряют вот таким прибором.  
    • Тоже вариант, но есть свои нюансы.
×
×
  • Create New...