Заголовок сообщения: Как улучшить схему отключения входов МК?
Добавлено: Пн сен 22, 2025 20:36:14
Родился
Зарегистрирован: Пн сен 22, 2025 13:53:56 Сообщений: 7
Рейтинг сообщения:0
Привет всем, я тут новенький. Возник вопрос по улучшению схемы, пришел за советом.
Есть необходимость отсекать 4 пина МК от входящего сигнала частотой до 4Мгц. Для упрощения я захотел использовать оптроны(схема прилагается), собрал на макетке и вроде все работает. Хотя я не совсем понял могу ли я использовать один общий резистор в таких схемах с оптронами или я обязан к каждому вести по резистору(мне кажется это не логичным)?
Я уверен что можно все сделать проще, на транзисторах, но не понимаю как именно и какие где резисторы понавставлять чтобы и МК не сгорел от таких выкрутасов и сами транзисторы или источник сигнала. Нужно надежно отсекать сигнал 5в до 50ма и чтобы не было каких то лишних(например если без оптрона их нет) помех на питании итд. т.к. источник сигнала продолжит работу, а МК будет продолжать обмен данными по тем же пинам с другим чипом. Как мне это видится я нарисовал на схеме 2, но я уверен нужно что-то большее, не может быть все так просто. Смущает что источник может выдавать высокие токи на вход мк и что в схеме с транзисторами шина данных (через p-n переход) по сути будет подключена к питанию (или земле), я пока что тут не очень разобрался с теорией.
Вводные: ENABLE - logic, 5v, max 10ma, лог "1" подается непрерывно во время передачи данных по шине in->out. OUT - logic, 5v, max 10ma, шина данных МК IN - logic, 5v, max 50ma, источник сигнала (макс частота 4Мгц) У всех общая земля По сути задача сводится к тому чтобы при поданном на ENABLE логическом "1" пропускать логический "1" через in->out и все.
ЗЫ Предвещая вопросы - нет расширитель IO мне тут не поможет и что-то похожее использовать не планируется в силу особенностей и необходимых скоростей.
UPD: Пока тему одобряли немного изменил вариант с транзисторами
Хотя я не совсем понял могу ли я использовать один общий резистор в таких схемах с оптронами или я обязан к каждому вести по резистору(мне кажется это не логичным)?
При параллельном соединении светодиодов с одним резистором, ток каждого светодиода будет разным. Что может сильно влиять на открытие транзисторов в оптронах. Это может привести к нежелательным последствиям... Чтобы сделать правильно, необходимо или установить для каждого светодиода свой резистор, или если желаете использовать только один резистор, то светодиоды необходимо соединить последовательно. Но это будет работать только при достаточном входном напряжении...
Цитата:
Я уверен что можно все сделать проще, на транзисторах, но не понимаю как именно и какие где...
Ваша задача не особо понятна, так как здесь не форум экстрасенсов и потому читать ваши мысли не представляется возможным. Таким образом, вам необходимо подробно рассказать об источнике сигнала, длине линий, как проложены эти линии, есть ли возле линий данных источники электромагнитных излучений. И наконец, почему нельзя просто подать данные сигналы на выводы МК напрямую. Тогда может быть, получите необходимый ответ.
Если сигнал не превышает допуска по входам МК, то можно просто переводить ноги в режим "analog in" или подобный, не занимаясь лишним обвесом. Схема с опторазвязками плоха тем, что дешевые опторазвязки в 4МГц не очень умеют. Можно осциллографом посмотреть, что там творится на оптотранзисторах. На каждый светодиод нужен свой токозадающий резистор, иначе они постепенно будут выгорать. BJT в ключевом режиме лучше, наверное, FET'ами заменить. Но, опять же, если внешнее напряжение за рамки питания МК не выходит, то зачем заморачиваться? Вторая схема с BJT правильней, но все равно, по-моему, перебор. Кстати, бывают микросхемы-буферы с общим отключающим входом. Может, если уж так хочется почти физически отключить эти линии, использовать буфер, а не городить уйму рассыпухи?
_________________ Windows must die! And the users of this crap should either become smarter or become janitors.
"analog in" сразу отключает FT. Впрочем, FT тоже не догма. В тексте написано одно, прилагаемые схемние построения о другом (хоть и кажется схоже). Играть в угадайку я не буду, но по другой причине - бесполезно тратить время на , думающих на пинах, коннекторах и пр. языке школьников.
ток не возникает сам по себе например если макс напряжение сигнала 5V то при сопротивлении 1k последовательно с gpio ток не сможет превысить 5mA
неясно с какой целью хочется "разрывать" самый грамотный путь - просто не использовать информацию с неких gpio на время когда это не нужно самый радикальный и понятный всем кто не хочет погружаться в электронику - это реле
можно логическими элементами выполнить то что можно сделать парой инструкций mcu (напр 4 элемента 2AND могут запрещать трансляцию 4х логических сигналов от одного из своих входов к выходу по сигналу на 2м входе (H=enable) или 2OR (L=enable) ) или логические буферы с enable или логические cmos коммутаторы
но в любом случае применять оптроны в качестве транзисторов - это бррр!
Таким образом, вам необходимо подробно рассказать об источнике сигнала, длине линий, как проложены эти линии, есть ли возле линий данных источники электромагнитных излучений.
В данном случае я не указывал это т.к. именно это не принципиально, важна универсальность. Сигналы могут быть любыми, UART, I2C, SPI, что угодно в пределах частоты передачи 4Мгц. Линии - провода длинной 5-10см =) Собранное на макетке с охапкой проводов в воздухе и шумным источником питания проблем для максимально возможной скорости обмена не создает, по крайней мере на оптронах или напрямую.
И наконец, почему нельзя просто подать данные сигналы на выводы МК напрямую.
Я специально это написал - они и так идут на него напрямую, только на этих ногах сидит другой чип (который обязан быть подключен именно так (параллельно шине данных)), т.е. нужно отключить 4 ноги с IN для нормальной работы МК с чипом который сидит на ногах OUT и с которым будет общаться МК, при этом с IN по прежнему будет идти сигнал повлиять на который я иначе не могу. Разрывать землю между IN и остальным устройством с помощью всего одной оптопары тоже нельзя. Т.к. в случае, например, если источник сигнала и мое устройство будет подключено по USB их земля будет соединена и без меня.
Схема с опторазвязками плоха тем, что дешевые опторазвязки в 4МГц не очень умеют. Можно осциллографом посмотреть, что там творится на оптотранзисторах.
Я вот не понял когда читал датащиты, разве это влияет на прохождение сигнала внутри полностью включенного оптрона? Я считал что это влияет только на скорость его включения \ выключения, но у меня это делается разово, так что не должно влиять. На осциллографе до 1Мгц приемлемый сигнал, дальше искажения, на 1,5Мгц сигнал похож на пилу, но осциллограф у меня г. поэтому скорее всего просто он просто искажает сам уже. По тестам до 2Мгц проблем с потерей данных нет, 4Мгц больше пока только в планах.
На каждый светодиод нужен свой токозадающий резистор, иначе они постепенно будут выгорать.
Тогда схема на транзисторах выглядит еще более привлекательней. А нельзя это обойти подбором резистора для гарантированно низкого тока чтобы этого не происходило и одновременно достаточного для стабильной работы оптрона?
BJT в ключевом режиме лучше, наверное, FET'ами заменить. Но, опять же, если внешнее напряжение за рамки питания МК не выходит, то зачем заморачиваться?
Нет, за внешнее не выходит, логика 3.3-5в с разной скоростью приема.
Кстати, бывают микросхемы-буферы с общим отключающим входом. Может, если уж так хочется почти физически отключить эти линии, использовать буфер, а не городить уйму рассыпухи?
Да, посмотрел, это прям готовое решение - то что нужно, спасибо. Подберу потом подходящий по скорости.
можно логическими элементами выполнить то что можно сделать парой инструкций mcu (напр 4 элемента 2AND могут запрещать трансляцию 4х логических сигналов от одного из своих входов к выходу по сигналу на 2м входе (H=enable) или 2OR (L=enable) )
Хм, действительно, тоже вариант, спасибо, я что-то совсем забыл об этом пути. Но нужно быстрые будет искать, а они могут быть дорогими.
Буфер 74HC125 для вашей задачи легко подойдет. Элемент 4И тоже подойдет, 74НС08 например. Мегегерц 30-40 они спокойно осилят. 4 аналоговых ключа 4066/74НС4066 /561КТ3 тоже с данной задачей справятся.
Vr1k0, а почему именно на рассыпухе? Хочется сделать "здесь и сейчас"? На буфере будет достаточно компактно. Можно вместо буфера взять "multichannel switch" подходящий, тогда по внешнему сигналу он будет переключать ноги МК то на одно, то на другое устройство. Один из вариантов "обычного" буфера Martin76 уже подсказал. Еще, например, 74HC126, который от 125 лишь полярностью сигнала Enable отличается.
_________________ Windows must die! And the users of this crap should either become smarter or become janitors.
Vr1k0, а почему именно на рассыпухе? Хочется сделать "здесь и сейчас"?
Честно да, увлечен, поэтому хочется пока простейший вариант. И заодно потренироваться проектировать и разводить дешевые платы самому, ЛУТом Но посмотрев схемы такого буфера предлагаемые гуглом - я поумерил пыл, там на один вход-выход нужно: 4 транзистора, 4 резистора и диод , это явно перебор.
Согласен, не знал что именно это уже есть и как оно может называться. Даже забавно что микросхему подобного функционала назвали буфером. Спасибо еще раз за помощь .
Я специально это написал - они и так идут на него напрямую, только на этих ногах сидит другой чип (который обязан быть подключен именно так (параллельно шине данных)), т.е. нужно отключить 4 ноги с IN для нормальной работы МК с чипом который сидит на ногах OUT и с которым будет общаться МК, при этом с IN по прежнему будет идти сигнал повлиять на который я иначе не могу. Разрывать землю между IN и остальным устройством с помощью всего одной оптопары тоже нельзя. Т.к. в случае, например, если источник сигнала и мое устройство будет подключено по USB их земля будет соединена и без меня.
Для подобных целей необходимо чтобы выход той или иной микросхемы (или ключа) умел переключатся в Z состояние, чтобы не влиял на шину при параллельной работе. Таким образом можно задействовать повторитель (буфер) к примеру К561ЛН3 или коммутаторы (мультиплексоры) к примеру К561КТ1…
Несколько различных по функционалу микросхем и одна "голова" на общей шине. Типичное решение для классических систем с I8080/Z80 (та же шина адреса/данных как пример). Там вариаций сколько душе угодно найти можно. Только сегодня для МК это зачем? Неуж то лапок не хватает? Или попытка сцепить несколько собственных устройств - так там на сегодня практически всюду последовательная передача данных - лапок на то тем более в достатке. Разумно распределить ресурсы аппаратных модулей МК да программными реализациями дополнить...
Vr1k0, простой вопрос: а зачем нужно отключать входы внешними цепями? вместо сигнала ENABLE входы можно запретить программно, а когда нужно, разрешить программно.
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Типичное решение для классических систем с I8080/Z80 (та же шина адреса/данных как пример). Там вариаций сколько душе угодно найти можно. Только сегодня для МК это зачем? Неуж то лапок не хватает?
Для этой проблемы есть куча готовых копеечных решений и на транзисторах такое собирать было бы сложновато, так что нет. Тут просто особенности и специфичности решений выбранных не мной в угоду скорости.
Современный МК + некоторые технологии эпохи i8086, так что вы были близки. Пока не хочу вдаваться в подробности эксперимента, потому что сам не знаю что из всего это выйдет и выйдет ли. На текущий момент задача состояла именно в изоляции источника от схемы по сигналу управления(для удобства автоматизации процесса). МК не пишу потому что сейчас это одно, завтра может быть другое, это не принципиально в данном случае(а холивара хотелось бы избежать).
2алл: Если получится как задумано - то все будет выложено в открытый доступ и хотелось бы чтобы любой мог дома это повторить ничего особо не покупая(это как бы заложено в изначальный концепт). Я все еще держу в голове самый простой вариант - вывести физическую кнопку и когда есть необходимость отключить IN - помигать светодиодом, после чего оператор вручную выключает источник сигнала и нажимает кнопку, работа продолжается, в качестве демонстрации - то что нужно. 3 state буферы правильное и дешевое решение естественно проверю и напишу, уверен все будет нормально. Но может у кого-то все же есть идеи как организовать такой простейший общий ключ для 4 однонаправленных каналов всего на нескольких транзисторах? Который смог бы повторить каждый из хлама в ящике? Или это трудно-достижимо? Тут ведь по сути даже переключение не нужно, нужно именно отключение (близкое к Z state, но не обязательно прям >10Мом).
Проверил обе схемы(оптроны vs транзисторы) на эмуляторе, "в вакууме" они работают вроде одинаково, ток эмиттера-коллектора при полностью закрытом Q7 (около 5-20pA, 5-20mV) даже меньше такого же тока закрытого оптрона (20nA, 300mV). Смущает что напряжение на OUT 3.3v c током 5pA, в то время как на IN логический "0" или Z state. Но это при необходимости решится pull-down резистором на 10к на коллекторе выходных транзисторов, как я понимаю. Думаю собрать транзисторный вариант на макетке и погонять сначала на светодиодах(замедлив скорость в 100000 раз), замерить все токи-напруги, посмотреть осциллографом на полной скорости и только потом подключать к на шину данных к МК. Если потерь данных до нужных скоростей не будет - приму это за "бомж" вариант сборки .
Vr1k0, простой вопрос: а зачем нужно отключать входы внешними цепями? вместо сигнала ENABLE входы можно запретить программно, а когда нужно, разрешить программно.
Представьте что IN (на схеме) постоянно подключен 4 пинами к +5v, вы можете на МК что угодно програмно менять, это никак не повлияет на факт логической единицы у вас на шине данных. Шина подразумевает что на ней может находиться что-то еще, так вот МК никак не сможет с этим чем-то еще пообщаться потому что в ответ будет получать 1111 на любой запрос. Я уже писал что мы не контролируем IN, в этом и проблема.
Для таких дел вполне достаточно стандартных шинных формирователей/буферных регистров из старых комплектов поддержки МП с шинной структурой. На кой чего то выдумывать? Правда жрут те микрухи раз в пять больше "рядового МК" (А то и по более). Но вполне вероятно есть и аналоги в современных сериях "рассыпухи". Ищем мультиплексоры, коммутаторы, шинные формирователей, регистры и прочие возможные к применению. Да кучу всего прочего. .. Порой и простейших элементов "И" может быть достаточно.
Схема с закороченными базами биполярных транзисторов работать не будет. BJT транзистор - это не реле или управляемый клапан. База не управляет уровнем и не изолирована от других электродов в насыщенном состоянии. Ето просто набор электронных компонентов на прямоугольном белом листе. Коллеги упомянули: реле, управляемые буферы, если хотите - можно и мультиплексоры. Простые вещи - для простых схем.
Есть необходимость отсекать 4 пина МК от входящего сигнала частотой до 4Мгц.
Вариант решения. Блокировка DO по внешнему сигналу сторожевой собаки. Другой вариант. Взять цифровой изолятор, например, ADuM1400 и через оптрон завести на Ve2 разрешение выхода. Убогий движок сайта не даёт вставить картинку, поэтому описываю словами. https://disk.yandex.ru/d/rC6q4hZLGvFfhw
P.S. Похоже, что сайт не даёт загрузить картинку из-за её размера,ибо это скриншот с монитора 4К.
Зачем ставить дорогую мс опторазвязки, если можно дешевую логику всего один корпус поставить? Или 4066. Хотя автору все равно КТ361 ближе, даже, если он не умеет их готовить.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения