Подача 60 сигналов по одному в постоянной последовательности

У меня есть приложение, в котором мне нужно включать/выключать один из 60 сигналов один за другим в постоянном порядке, когда-либо повторяясь. (1, 2, 3, ... 59, 60, 1, 2, ...) В любой момент времени включен только один сигнал. Нагрузка падает до 500 мА каждый. Я ищу идеи о том, как добиться этого самым простым (не обязательно дешевым) способом. Очевидно, что это мог бы сделать большой микроконтроллер или ПЛИС, но это было бы излишеством, поскольку логика схемы очень проста.

Порядок включения выходов одинаков или различается?
Что сигнализирует о переходе от одного к другому? Внешний триггер, время, ... ?
Вы имеете в виду выход 1, затем выход 2, а затем выход 3? Или это более случайно, чем это?
Вы можете исследовать «Счетчик колец».
@Andyaka Andyaka Я думаю, он просит 60-битный счетчик звонков.
@nidhin я тоже, но важно, чтобы саар ответил
Счетчик звонков / SR является одним из решений. Когда я разместил вопрос, я надеялся на какое-то нетривиальное умное решение;)
Как быстро происходит переключение с одного выхода на другой или, наоборот, как долго каждый выход будет включен до переключения на следующий?
@Olin Около секунды

Ответы (3)

Вероятно, самым простым методом является банк сдвиговых регистров с подключенными к ним ULN2803. Синхронизируйте 1 с первым битом, затем синхронизируйте все 0 с остальными и (если вы используете регистр сдвига без фиксации или регистр с фиксацией, в котором защелка постоянно находится в открытом состоянии), наблюдайте, как 1 проходит через все ваши выходы по очереди.

Проблема с ответом HC595 заключается в том, что он не учитывает поведение сдвиговых регистров при включении питания, и нет гарантии, что только один выход будет активен, пока вы не выдадите 60 команд сдвига или не предоставите другой вывод MCU для управления. все линии МР.

Другой подход, который потребует еще 1 IC и еще 3 линии MCU, заключается в создании демультиплексора от 6 до 64, используя что-то вроде 74HC138.

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

Эта настройка обеспечит до 64 выходных линий, при этом выбранная линия будет на низком уровне, а остальные на высоком. Если вам нужен активный высокий, используйте 74HC238 для правых блоков, но не для левых. Как показано, я показал только 24 строки вывода, но вы должны быть в состоянии заполнить промежуточные этапы.

Для этого требуется еще пара линий управления от MCU и дополнительный 16-контактный DIP, но у этого есть пара преимуществ:

1) Вы можете напрямую обратиться к нужной строке, если вам когда-либо понадобится создать выходную последовательность, которая не является строго 0,1,2 и т. д.

2) Нет необходимости выполнять импульс инициализации или набор из 60 сдвигов

3) Шум на линии тактового сигнала сдвига не может привести к непреднамеренному выходу.

Вы можете легко сделать это, подключив 74HC595 последовательно друг к другу. 74HC595 представляет собой сдвиговый регистр с последовательным входом и параллельным выходом, в котором вы сдвигаете данные, включаете защелку, а затем значения устанавливаются на всех выходных контактах одновременно. Это можно сделать с помощью очень простого микроконтроллера.

С каждым сдвиговым регистром вы получаете 8 параллельных выводов. Схема управления описана на этой картинке. Вы подключаете линии синхронизации и защелки к каждому регистру сдвига, а затем линия данных проталкивается через контакт Q7':

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

Однако, чтобы получить емкость привода 500 мА, вам может потребоваться объединить это с источником тока, таким как M54564P или ULN2803 , или любой другой массив транзисторов Дарлингтона, способный подавать 500 мА.

А как насчет тока нагрузки 500 мА?
Вы можете использовать M54564P или ULN2803, чтобы добавить возможности источника более высокого тока. это всего лишь массивы транзисторов дарлингтона