Могу ли я также использовать линейный мультиплексор в качестве преобразователя уровня?

У меня есть входы 40 x 5V, которые я хочу прочитать, используя контакты GPIO 3V на черном биглбоне. Я планирую использовать 5 мультиплексоров (например, 74HC151 или 74HC251), которые будут совместно использовать 3 линии выбора.

Я не уверен, какой будет лучшая стратегия для смены уровня:

  1. Включите мультиплексор с помощью 3V VCC и надейтесь, что он будет работать с входами 5V.
  2. Вкинуть перед каждым мультиплексором сдвигатель/буфер уровня, что-то вроде 74LV245.
  3. Используйте последовательный резистор для ограничения тока на каждом из входов, так как мне просто нужно однонаправленное смещение 5 В -> 3 В (да, я знаю, что это не изменит напряжение, но, возможно, это защитит мультиплексор от сигнала 5 В за счет уменьшения тока? )
  4. Есть ли другой мультиплексор, на который я должен смотреть, который будет терпим к разным напряжениям?

Я действительно надеюсь, что смогу сделать (1). В техническом описании указано, что входное напряжение должно быть между GND и VCC. Насколько плохо будет запитать его 3В, а на входы оставить 5В?

Спасибо!

Вы не можете этого сделать. Входы должны оставаться только в диапазоне 0V~Vcc. Вам нужно будет обратиться к документу, указанному в таблице данных, чтобы убедиться в этом самостоятельно.

Ответы (4)

Почему бы просто не использовать мультиплексор с открытым коллектором, питаемый 5 В и подтягивающий до 3, как 74LS156?

Глядя на таблицу данных для SN74LS256 - ti.com/lit/ds/symlink/sn74ls156.pdf , кажется, я не могу питаться от 3 В? Я использую мультиплексоры для чтения 5-вольтовых входов с использованием 3-вольтовых контактов GPIO.
Вы не питаете его от 3В. Вы включаете его в 5 и получаете 3 В, используя открытый коллектор, подтягивая до 3 В.
Понятно. Думаю, мне стоит прочитать об открытых коллекционерах!

Вы можете использовать делитель напряжения на каждом сигнале. Например, 18K + 33K даст вам около 3,2 В на выходе для 5 В на входе.

Это несколько замедлит сигналы, но если вас не интересуют частоты МГц, это не будет иметь большого значения.

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

Другим вариантом является использование буферов/инверторов CMOS семейства LVC. Они могут питаться от 3,3 В, но их вход устойчив к 5 В, т. е. они будут обрабатывать и распознавать логические уровни TTL на своих входах. К сожалению, они поставляются только в корпусах SMT, поэтому в этом семействе нет деталей со сквозными отверстиями.

Например, см. техническое описание инвертора 74LVC04 (NXP) или техническое описание линейного буфера 74LVC244 (NXP) .

Выдержка с первой страницы (выделено желтым цветом):

введите описание изображения здесь

Спасибо! По сути это вариант №2. Я не возражаю против пакета SMT, но я надеялся избежать дополнительных микросхем.

Спасибо за ответы!

В конечном итоге я собираюсь использовать один восьмеричный буфер (74LV245) для сдвига 3 общих строк выбора и 5 отдельных строк данных. Одна дополнительная ИС проще и быстрее, чем 40 делителей напряжения, и также будет лучше разветвлять 3 общие линии выбора на 5 мультиплексоров при прохождении через буфер, а не напрямую через контакты GPIO.