Перейти к содержанию

74HC165 — сдвиговый регистр с параллельным входом

74HC165 — обратная пара к 74HC595: он защёлкивает восемь входов разом и отдаёт их микроконтроллеру по одному проводу. Цепочка таких микросхем читает десятки кнопок и переключателей тремя выводами. Разбираем по даташитам TI и onsemi выводы, порядок чтения и подводные камни.

Обновлено Редакция GAW

74HC165 — восьмиразрядный сдвиговый регистр с параллельной загрузкой: он одновременно фиксирует уровни на восьми входах A–H, а затем выдвигает их по одному на выход QH. Это обратная задача к 74HC595, который принимает данные последовательно и выдаёт параллельно. Вместе они — классический способ расширить выводы микроконтроллера: TI называет среди применений клавиатуры и программируемые контроллеры.

Распиновка

74HC165, вид сверху: 1 SH/LD, 2 CLK, 3 E, 4 F, 5 G, 6 H, 7 Q̄H, 8 GND, 9 QH, 10 SER, 11 A, 12 B, 13 C, 14 D, 15 CLK INH, 16 VCC74HC1651SH/LD2CLK3E4F5G6H7Q̄H8GND9QH10SER11A12B13C14D15INH16VCCвид сверху
74HC165 в корпусе DIP-16 и SOIC-16, вид сверху
ВыводНазначение
A–H (11–14, 3–6)параллельные входы
SH/LD (1)низкий уровень — загрузка входов, высокий — сдвиг
CLK (2) и CLK INH (15)такт и запрет такта; по TI их функции взаимозаменяемы
QH (9) и Q̄H (7)последовательный выход и его инверсия
SER (10)последовательный вход — к QH предыдущей микросхемы цепочки

Как работает

Таблица истинности по даташиту TI:

SH/LDCLKCLK INHЧто происходит
0любойлюбойпараллельная загрузка входов A–H
11любойбез изменений
1любой1без изменений
10фронт ↑сдвиг к QH
1фронт ↑0сдвиг к QH

Загрузка асинхронная: пока SH/LD в нуле, регистр повторяет входы независимо от тактов. После перевода SH/LD в единицу на QH уже стоит бит H, и каждый фронт CLK выдвигает следующий: G, F, … A. В освободившийся первый разряд попадает уровень на входе SER. TI предупреждает: так как сдвиг происходит и по фронту CLK INH при низком CLK, менять CLK INH в единицу можно только при высоком CLK.

Порядок чтения восьми входов:

  1. Подать 0 на SH/LD и вернуть в 1 — входы зафиксированы.
  2. Прочитать QH — это вход H.
  3. Подать фронт на CLK и прочитать следующий бит; повторить ещё шесть раз.

Параметры

ПараметрSN74HC165 (TI)MC74HC165A (onsemi)
Питание2–6 В2–6 В (HC), 4,5–5,5 В (HCT)
Ток покоядо 80 мкА (−40…85 °C)—
Входной токдо ±1 мкА1 мкА
Выход±4 мА при 5 В, 10 нагрузок LSTTL10 нагрузок LSTTL
Наибольшая частота при 4,5 В31 МГц минимум, 50 МГц типично при 25 °C30 МГц при 25 °C, 24 МГц при 85 °C, 20 МГц при 125 °C
Задержка13 нс типично—

Версия MC74HCT165A по onsemi рассчитана на входные уровни ТТЛ и служит преобразователем уровней от ТТЛ- и NMOS-выходов к КМОП.

Каскад и чтение по SPI

Микросхемы соединяют в цепочку: QH первой — к SER второй, тактовые линии и SH/LD — общие. Тогда за одну загрузку и 8 · N тактов читается N байт. Удобно подключить цепочку к аппаратному SPI: SCK — к CLK, MISO — к QH последней микросхемы, отдельный вывод — к SH/LD. Первый бит выходит до первого фронта, поэтому режим SPI выбирают так, чтобы чтение шло до сдвига.

Кнопки на входах

Входы КМОП нельзя оставлять висящими: TI требует подключать неиспользуемые входы к VCC или GND, а вход с разомкнутой кнопкой тоже висит. Обычная схема — кнопка между входом и общим проводом и резистор от входа к питанию: нажатая кнопка читается как 0. Дребезг контактов регистр не убирает — его подавляют в программе, опрашивая входы с интервалом в несколько миллисекунд. Другие логические микросхемы — в разделе «Логика».

Частые вопросы

Какая распиновка у 74HC165?

В корпусе DIP-16 и SOIC-16 по даташиту TI: 1 — SH/LD (загрузка и сдвиг), 2 — CLK, 3–6 — входы E, F, G, H, 7 — инверсный выход Q̄H, 8 — GND, 9 — последовательный выход QH, 10 — SER (последовательный вход для каскада), 11–14 — входы A, B, C, D, 15 — CLK INH (запрет тактов), 16 — VCC.

В каком порядке 74HC165 отдаёт биты?

Сразу после загрузки на выходе QH — состояние входа H. Каждый фронт CLK сдвигает данные к выходу, и следом выходят G, F, … A. Значит, микроконтроллер сначала читает H, а восемь бит получает за загрузку и семь фронтов тактов. Если подключён следующий регистр, в его вход SER уходят данные предыдущей микросхемы.

Можно ли читать 74HC165 по SPI?

Да: CLK подключают к SCK, QH — к MISO, а SH/LD управляют отдельным выводом — опускают в ноль для загрузки входов и поднимают перед чтением. CLK INH держат в нуле. Нужно учесть, что первый бит H уже стоит на выходе до первого фронта, поэтому режим SPI выбирают так, чтобы микроконтроллер читал бит до сдвига.

Нужны ли подтягивающие резисторы к кнопкам на входах 74HC165?

Да. Входы КМОП не должны висеть в воздухе: TI требует держать все неиспользуемые входы на VCC или GND, и то же касается входа с разомкнутой кнопкой. Кнопку подключают между входом и общим проводом, а вход подтягивают резистором к питанию — тогда нажатая кнопка читается как 0. Дребезг контактов при этом остаётся, его подавляют программно.

Источники

  1. Texas Instruments. SNx4HC165 8-Bit Parallel-Load Shift Registers (SCLS116H, revised December 2015) — разд. 1 и 3 — питание 2–6 В, 10 нагрузок LSTTL, ток покоя до 80 мкА, выход ±4 мА при 5 В, входной ток до 1 мкА, задержка 13 нс типично; загрузка при низком SH/LD независимо от тактов, сдвиг по фронту CLK при высоком SH/LD и низком CLK INH, CLK и CLK INH взаимозаменяемы, CLK INH менять только при высоком CLK; табл. Pin Functions — выводы; разд. 6.8 — fmax 31 МГц минимум и 50 МГц типично при 4,5 В; табл. 1 — таблица истинности; все неиспользуемые входы — на VCC или GND
  2. onsemi. MC74HC165A, MC74HCT165A: 8-Bit Serial or Parallel-Input/Serial-Output Shift Register (MC74HC165A/D, Rev. 13, April 2025) — асинхронная параллельная загрузка при низком SERIAL SHIFT/PARALLEL LOAD, сдвиг по фронту Clock или Clock Inhibit (2-входовое ИЛИ-НЕ); рис. 1 — выводы; HC 2–6 В, HCT 4.5–5.5 В для входов ТТЛ и NMOS; fmax при 4,5 В — 30, 24 и 20 МГц при 25, 85 и 125 °C; исполнения -Q по AEC-Q100

Нашли ошибку?