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

Каскадирование (daisy chain)

Сдвиговые регистры, драйверы светодиодов и многие другие микросхемы можно соединить цепочкой: последовательный выход одной подают на последовательный вход другой. Цепочка из N микросхем занимает у микроконтроллера столько же выводов, сколько одна, а данных передаётся в N раз больше.

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

Каскадирование (daisy chain — «гирлянда») — способ соединить несколько одинаковых микросхем цепочкой: последовательный выход каждой подаётся на последовательный вход следующей, а тактовые и управляющие линии у всех общие. Для микроконтроллера цепочка выглядит как одна длинная микросхема: выводов нужно столько же, а данных — в N раз больше.

Типичные примеры — сдвиговые регистры:

МикросхемаВход цепочкиВыход цепочкиНаправление данных
74HC595SERQH'от микроконтроллера к выходам
74HC165SERQHот входов к микроконтроллеру

У 74HC595 по даташиту TI есть отдельный последовательный выход QH' для каскадирования. Цепочка из двух микросхем работает так: микроконтроллер выдвигает 16 бит, первый байт проходит через первую микросхему во вторую, а затем один импульс на такте регистра хранения выводит оба байта одновременно. Выходы не мелькают во время сдвига, потому что регистр хранения отделён от сдвигового.

У 74HC165 TI описывает обратную цепочку: выход QH каждой микросхемы соединяют со входом SER предыдущей, ближайшая к микроконтроллеру отдаёт свои биты первой, а за ними выдвигаются данные остальных. Одна загрузка и 8 · N тактов читают N байт входов.

Чем платят за экономию выводов:

  • Время. Обновить один выход в середине цепочки можно только переписав её целиком: 8 · N тактов.
  • Нагрузка на линии. Такты и защёлка общие для всех микросхем, и каждая добавляет входную ёмкость, поэтому длинную цепочку тактуют медленнее или буферизуют.
  • Отказ звена. Если одна микросхема в середине не работает, данные дальних не доходят.

Подробности подключения — в карточках 74HC595 и 74HC165, другие способы добавить выводы — в статье о расширителях портов.

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

Как соединить два 74HC595 каскадом?

Выход QH' первой микросхемы подают на вход SER второй, а тактовые линии SRCLK и RCLK соединяют параллельно. TI называет QH' последовательным выходом для каскадирования. После 16 тактов сдвига в первой микросхеме окажется последний переданный байт, во второй — первый, и импульс на RCLK выведет оба одновременно.

Сколько микросхем можно соединить в цепочку?

Логически — сколько угодно: каждая добавляет 8 бит и 8 тактов. Ограничивают время обновления и нагрузка на общие тактовые линии: каждый вход добавляет ёмкость, и при длинной цепочке фронты затягиваются. Сколько входов выдержит один выход, показывает его нагрузочная способность.

В каком порядке приходят биты из цепочки 74HC165?

Первыми выходят данные микросхемы, ближайшей к микроконтроллеру: её выход QH подключён к нему напрямую. По TI выход QH каждой следующей микросхемы соединён со входом SER предыдущей, поэтому за ними по очереди выдвигаются байты дальних микросхем.

Источники

  1. Texas Instruments. SN54HC595, SN74HC595 8-Bit Shift Registers With 3-State Output Registers (SCLS041J, revised October 2021) — разд. 1 и 3 — у сдвигового регистра последовательный вход SER и последовательный выход QH' для каскадирования, отдельные такты регистра сдвига и регистра хранения, выходы с третьим состоянием
  2. Texas Instruments. SNx4HC165 8-Bit Parallel-Load Shift Registers (SCLS116H, revised December 2015) — разд. 9.1 — несколько SNx4HC165 каскадируют, соединяя выход QH одной с последовательным входом SER следующей, чтобы читать больше входов одним процессором; данные идут только в процессор

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