Преобразование логических уровней UART
- Войдите на сайт для отправки комментариев
Исходные данные: имеется Arduino Nano и датчик mh-z19. Выходы RX и TX последнего не толерантны к 5 Вольтам (может по факту и толерантны, но я проверять не хочу, датчик не из дешевых). А хочется их подружить (ардуину и датчик) именно по UART интерфейсу, чтобы отправлять команды и получать данные уже в "цифре". Простым резистивным делителем, как я понял, тут не обойтись.
На Алиэксперссе есть простые дешевые преобразователи типа такого но беда в том, что их не найти в обычных магазинах с электронными компонентами, а ждать с али очень долго.
В принципе можно такой собрать и самому, тем более нужно всего два канала, а не четыре, но мне тут пришло в горову, что скорей всего существуют уже готовые устройства, решающие эту проблему, распространенные (можно купить в любом радиомагазине) и недорогие.
Посоветуйте пожалуйста, кто пользовался, есть такие устройства. Основные требования: согласовывать нужно 3.3 и 5 Вольт, минимум два канала (либо подойдут два одноканальных), двунаправленные (ну то есть, чтобы можно было через них отправлять команду и принимать ответ), с минимальной обвязкой (в идеале вообще без дополнительных внешних элементов) ну и чтоб распространенные были. Желательно не слишком мелкие, чтоб паять было удобно, хотя это не критично.
Спасибо!
Посоветуйте пожалуйста, кто пользовался, есть такие устройства. Основные требования: согласовывать нужно 3.3 и 5 Вольт, минимум два канала (либо подойдут два одноканальных), двунаправленные
Зачем двунаправленные? RX в одну сторону направлен, а TX в другую. Вам нужно два однонаправленных. Этого добра, как биоматериала за баней, например https://www.chipdip.ru/product/cd40109be . Обвязки никакой (ну кроме фильтра по питаню, как обычно). Ну и там в разделе "Логические - Преобразователи уровня" есть ещё 100500.
Больше того. Tx датчика Rx ардуины преобразователь не нужен. Tx ардуины Rx датчика согласовывается делителем из двух резисторов.
Спасибо!
А то я начитался всяких форумов с обсуждением преобразования уровней, и даже статью нашел с кучей вариантов преобразования. А оказалось все так просто. Надо было сразу на "родной" форум идти :-)
А номиналы резисторов какие лучше брать? Ну я имею в виду Омы, килоОмы десятки килоОм...? Длина провода планируется около 2-3 метров, если это важно. Планирую использовать витую пару для этого.
А номиналы резисторов какие лучше брать? Ну я имею в виду Омы, килоОмы десятки килоОм...? Длина провода планируется около 2-3 метров
в этих условиях я бы взял 1-2К
Да не нужен делитель для преобразования 5 в 3.3 и обратно
Просто последовательно резисторы 470 Ом
Пороги кмоп примерно пол питания (это 3 в 5 ) ,
а излишек в 2 мА легко уйдет в VCC через входные диоды (это 5 в 3)
но если нужно Очень скоростное преобразование 3 в 5 серия HCT идеально подойдет так как у нее пороги ниже чем пол питания для согласования с ТТЛ
Да, действительно в каждой статье по mh-z19 пишут, что нужно приведение уровней, и при этом подключают напрямую. И даже все работает.
Я почему то склонен верить даташитам производителя, где есть явное указание, что необходимо согласовать уровни напряжений. Мне не лень добавить два резистора в схему, зато я буду спокоен за датчик.
MH-Z19 имеет PWM выход, через который данные идут всегда, а не по запросу. Так что, если нужно с него только брать CO2, можно обойтись одним входом без согласования.
TX датчика можно подключить напрямую на RX ардуины, т.к. вход не подтягивается. А RX датчика подтянуть резистором на его-же 3.3В (соседняя нога) и через диод пустить на TX ардуины.