Всем привет! Делаю esp-релюшку и в ней использую сдвиговый регистр 74hc595. Проблема в том, что после сброса питания и включения в большинстве случаев у 74hc595 остается предыдущее состояние пинов, иногда рандомное. Хочу после включения что бы всегда было все по нулям. Во всех примерах в инете не показано использование пинов MR и OE - их просто вешают на vcc и gnd. Попробовал сам разобраться - не получилось. Нашел одну схемку в инете, опробовал - результата нет. Может кто подскажет как мне добиться сброса значений на ноль при включении??
ЕМНИП, нужно подать LOW на SRCLR (на пин 10) на время не менее, чем при питании 2V - 100ns при питании 4.5V - 20ns при питании 6V - 17ns если не поможет, можно прописать туда просто нули и делов-то.
Если просто LOW подать, то результата нет. Мне надо сбросить сразу после подачи питания. Между подачей питания и загрузкой МК есть промежуток времени в котором регистры могут быть в разных состояниях.
подать LOW в сетапе - это очевидное, но не слишком действенное решение, так как выходы переключаться не сразу, а только после загрузки ардуины Более правильное - использовать пин OE. В состоянии LOW этот пин разрешает работу регистра, а притянутый к питанию - выключает все выходы. Таким образом, схема получается очень простой - по схеме подключаем ОЕ к свободному пину МК и притягиваек питанию резистором 10-20К. Пока МК стартует, будет работать подтяжка и выходы будут выключены, а чтобы регистр заработал - в программе надо будет дать в этот пин низкий уровень.
А, а я думал тебе в процессе работы иногда сбрасывать надо. Тогда можно поступить как поступают с пином DTR когда USB TTL к CH340 подключают. Притянуть пин к земле и соединить с питанием через конденсатор типа 220nF (подобрать надо). При включении питания на пине окажется высокий уровень, а через какое-то время (от конденсатора зависит) восстановится низкий и будет оставаться низким пока питания не выключат и снова не включат (это если высокий ненадолго подать, а если низкий, то всё наоборот). И нет расхода пинов.
Проще RESET 595 к паровозоабдурининскому RESET-у подключить, благо, на Uno он на гребенку выведен. Тогда при сбросе будет сбрасываца и периферия, отоматически.
Так заработало, только на всякий случай через транзистор подключил После загрузки выставляю все в ноль, а потом только включаю OE. Хотя надо еще с конденсатором попробовать именно для ноги ОЕ, т.к. для MR такой фокус не удался, и скорее всего из-за того что
Использование входа управления выходами (13) - странное дело. Выходы в высокоимпедансном состоянии - вершина неопределенности их состояния.