Я пытаюсь сделать блок, в котором 4 цифры могут быть обновлены за небольшой промежуток времени от микроконтроллера с одним циклом (желательно, чтобы все цифры обновлялись в течение 5 мкс)
Моя схема устроена следующим образом (для простоты я исключил 7-сегментные индикаторы и резисторы). Регистры сдвига — 74HC595, а мультивибратор слева — CD4538, но я думаю, что мне нужно обновить его до 74HC4538 (кто-то подтверждает это?)
У меня есть мультивибратор, потому что сдвиговым регистрам требуется, чтобы часы регистра переключались для отображения новых данных, которые были сдвинуты, поэтому, добавив один, я устранил необходимость в третьем проводе от микро, который только обновляет значение.
Резистор 10К, конденсатор 1нФ.
Если я использую микросхему с более низкой скоростью, такую как AT89S52, которая может обновлять контакты GPIO в лучшем случае 1/2 микросекунды (с кристаллом 22 МГц), то эта схема не имеет проблем. Но если я начну использовать высокоскоростной однотактный микроконтроллер, то контакты GPIO смогут обновляться со скоростью 20 нс.
Что я могу сделать, чтобы улучшить эту схему без перестановки частей? Должен ли я просто обновить мультивибратор и уменьшить номинал конденсатора?
Имейте в виду, что у 595, используемого таким образом, есть проблема: выход гирляндной цепочки изменяется на том же фронте тактового сигнала, что и вход следующих выборок микросхемы. Чип, который действительно предназначен для такого использования (у IIRC есть один в серии CD), имеет последовательный выход с задержкой.
Вы можете смягчить эту проблему:
Я не понимаю, почему вы используете этот 4538. Если вы просто хотите всегда иметь последние (сдвигающиеся!) Данные на выходах, вы можете просто соединить SCK и SLK вместе. Вы получите некоторое ореолы, в зависимости от вашего соотношения обновления/ожидания.
Эллиот Алдерсон
Фил Джи
Перекресток
Перекресток