В моем проекте у меня есть две ИС, которые работают при разных напряжениях. IC_A на 3 В и IC_B на 3,3 В, и они общаются друг с другом через UART.
В моем прототипе я использую MOSFET с двумя резисторами для каждого сигнала в UART (TX, RX) в качестве преобразователя уровня.
Мой вопрос:
Могу ли я опустить MOSFET и подключить их напрямую или только с последовательным резистором? И если да, то как узнать номинал резистора? например закон Ома?
редактировать: 3 В и 3,3 В - теоретические напряжения. Когда я измеряю их, они составляют 2,85 В и 3,3 В ...
На самом деле вам все равно, какой уровень напряжения VCC или VDD, но вас больше интересуют требования к V (вход Lo) и V (вход High) для обоих устройств.
Для элементов вашей системы 3 В и 3,3 В настоящие вопросы таковы:
Для многих элементов интерфейса вход рекламируется как безопасный для 5 В, поэтому для этих элементов выход 3,3 В может напрямую подключаться к системе 3 В.
Я бы предположил, что нет условий, при которых это не сработает или нанесет ущерб.
Некоторая логика имеет структуры зажима во входных элементах, так что есть еще что рассмотреть. Для этих элементов это может выглядеть примерно так:
В этих условиях (высокий уровень сигнала), когда входные диодные зажимы представляют собой планарные диоды с типичным значением Vf 650 мВ, маловероятно, что ток, протекающий с выхода 3,3 В в структуру/источник питания 3-вольтовых элементов VDD.
В целях безопасности вы можете добавить небольшой резистор для ограничения тока.
Так как V (выходной высокий уровень) элемента 3 В будет приближаться к 3 В, это легко удовлетворит требованиям, которые вероятны на уровне 1-1,8 В. Вы можете напрямую подключить выход элемента 3 В к входу элемента 3,3 В.
Здесь следует учитывать важный принцип:
Даже если они работают при одном и том же номинальном напряжении, вам нужно беспокоиться о подключении одного к другому, если они работают от разных источников питания.
Обычно пределы входного напряжения абс. макс. от Vdd до GND +/- 300 мВ. Когда один из них выключен, это означает, что более чем +/- 300 мВ вы нарушаете абсолютную максимальную спецификацию. Если ток не ограничен, может произойти повреждение, особенно при повторном подаче питания на выключенный.
Есть несколько способов справиться с этим (в порядке возрастания стоимости и производительности):
Последовательный резистор (или делитель напряжения) ограничит ток, а делитель немного снизит его.
BJT или MOSFET можно использовать с подтяжкой к соответствующему источнику питания. BJT немного дешевле и прочнее.
Можно использовать микросхему преобразователя напряжения с раздельным питанием (оба питания идут на микросхему). Некоторые микросхемы принимают напряжение от 1,8 до 5,5 В с обеих сторон или другие широкие диапазоны. Например , 74AVCH2T45 преобразует один бит в каждом направлении из любого источника 0,8~3,6 в любой источник 0,8~3,6 со временем распространения < 10 нс в любом направлении.
Чтобы использовать резистор, вы должны довольствоваться относительно небольшими задержками распространения. Для 3 В-> 3,3 В вы почти наверняка можете просто использовать последовательный резистор. Большинство 3-вольтовых устройств являются CMOS, и большинство из них довольны 0,7 Вдд или 2,31 В для питания 3,3 В, поэтому у вас все равно будет запас по шуму 600-700 мВ, что достаточно.
Если скорость не является проблемой, подойдет что-то вроде 10K, которое ограничивает входной ток до действительно безопасного уровня. Чтобы пойти другим путем, вы, возможно, снова сможете уйти с 10 000, но было бы лучше разделить его примерно на 10%, поэтому 10 000 / 100 000:
смоделируйте эту схему - схема, созданная с помощью CircuitLab
С точки зрения скорости, если бы емкостная нагрузка была довольно большой (скажем, 100 пФ) из-за кабеля или чего-то еще, то постоянная времени была бы 1 мкс. Вероятно, это не проблема для UART, по крайней мере, на скорости 115 кбод или меньше.
Конечно, транзисторы инвертируют сигнал, а резисторы (и большинство преобразователей напряжения) — нет, но вы это знали.
Если (напряжение на выходе) драйвера выше минимального (требуемое напряжение на входе) ресивера, у вас все хорошо.
Здесь нужно думать о двух разных вещах.
Во-первых, низковольтное устройство разговаривает с более высоковольтным устройством. Как упомянул @BrianCarlton, если напряжение, выдаваемое низковольтным устройством для ВЫСОКОГО значения, превышает ВЫСОКИЙ порог для логического входа (если выше ), то его можно напрямую подключить. Если нет, то вам понадобится какой-то способ поднять напряжение выше .
Второй — это устройство высокого напряжения, разговаривающее с устройством низкого напряжения. Это больше связано с риском перегрузки входа, чем с любыми логическими уровнями (хотя вы можете просто проверить пороги НИЗКОГО логического уровня так же, как и для ВЫСОКОГО уровня в другом направлении).
Сначала вы должны проверить абсолютные максимальные значения для низковольтного устройства, чтобы убедиться, что более высокое напряжение не будет слишком высоким. Если оно находится в пределах абсолютного максимума для входа (обычно что-то вроде Vcc + 0,3 В), то все должно быть в порядке, хотя для устойчивых ВЫСОКИХ значений оно может быть «хитрым».
Большинство устройств имеют некоторую форму защиты на входах (хотя и не все, поэтому сначала проверьте) в виде диодов между контактом и землей и Vcc. Это позволяет подавать любое избыточное напряжение выше Vcc (или ниже земли) на соответствующую шину, а не на вывод IO (зажим диода). Однако они имеют только ограниченную токовую мощность, и в этом сценарии помогает добавление резистора к входу - ограничение тока, чтобы избежать повреждения этих диодов (при условии, что они существуют - вы также всегда можете добавить свой собственный).
Некоторые спецификации включают в свои характеристики «максимальный предел тока перенапряжения». Это в основном номинальный ток этих диодов. Вы можете использовать это, чтобы определить наименьшее значение резистора, которое все еще будет безопасным. В целом, тем не менее, чем выше, тем лучше, но не слишком высоко, чтобы неблагоприятно повлиять на форму вашего сигнала. Для данных UART это не проблема, поскольку вы работаете на относительно низких частотах.
Однако за цену, скажем, BSS138P и пары резисторов по 10К, действительно ли стоит рисковать?
Все довольно просто. Вам не нужно ничего делать, и просто подключите обе цепи напрямую. Разница между шинами на самом деле находится в пределах нормального допуска 10% для интерфейса LVCMOS-33.
Оба устройства являются устройствами CMOS. Устройства CMOS имеют логический (переключающий) порог где-то посередине шин напряжения. Точка переключения пропорциональна пропорционально напряжению питания. Таким образом, одно устройство будет иметь его на 1,5 В, другое на 1,65 В, плюс-минус 300-400 мВ в худшем случае. Стандарт для низковольтных CMOS-33 определяет запасы безопасности и требует уровня 2 В как минимального входного сигнала HIGH. Следовательно, пока обе стороны управляют своими соответствующими сигналами почти от рельса к рельсу (как обычно для малонагруженных КМОП-схем) и HIGH выше 2 В, а LOW ниже 0,8 В, все будет в порядке.
Теди
Чарли
Теди