У меня есть входы 40 x 5V, которые я хочу прочитать, используя контакты GPIO 3V на черном биглбоне. Я планирую использовать 5 мультиплексоров (например, 74HC151 или 74HC251), которые будут совместно использовать 3 линии выбора.
Я не уверен, какой будет лучшая стратегия для смены уровня:
Я действительно надеюсь, что смогу сделать (1). В техническом описании указано, что входное напряжение должно быть между GND и VCC. Насколько плохо будет запитать его 3В, а на входы оставить 5В?
Спасибо!
Почему бы просто не использовать мультиплексор с открытым коллектором, питаемый 5 В и подтягивающий до 3, как 74LS156?
Вы можете использовать делитель напряжения на каждом сигнале. Например, 18K + 33K даст вам около 3,2 В на выходе для 5 В на входе.
Это несколько замедлит сигналы, но если вас не интересуют частоты МГц, это не будет иметь большого значения.
Если у вас высокие частоты, обязательно используйте микросхему сдвига уровня.
Другим вариантом является использование буферов/инверторов CMOS семейства LVC. Они могут питаться от 3,3 В, но их вход устойчив к 5 В, т. е. они будут обрабатывать и распознавать логические уровни TTL на своих входах. К сожалению, они поставляются только в корпусах SMT, поэтому в этом семействе нет деталей со сквозными отверстиями.
Например, см. техническое описание инвертора 74LVC04 (NXP) или техническое описание линейного буфера 74LVC244 (NXP) .
Выдержка с первой страницы (выделено желтым цветом):
Спасибо за ответы!
В конечном итоге я собираюсь использовать один восьмеричный буфер (74LV245) для сдвига 3 общих строк выбора и 5 отдельных строк данных. Одна дополнительная ИС проще и быстрее, чем 40 делителей напряжения, и также будет лучше разветвлять 3 общие линии выбора на 5 мультиплексоров при прохождении через буфер, а не напрямую через контакты GPIO.
Спехро Пефхани