здравствуйте,
никак не подружусь с
74hc595 :(
что имею:
1)роутер асус с linux на борту,
2)желание получать информацию с датчиков (например, температуры ds1621) и управлять устройствами (например, включать и выключать телефон, через который роутер выходит в интернет)
3)Usb to com переходник на
pl2303 (фактически разобранный шнур dcu-510
для телефона siemens),
4)несколько оптронов
4n35 для развязки,
5)несколько микросхем serial to parallel 74hc595.
что сделал:
могу из linux сигналами DTR и RTS управлять двумя оптронами.
третий оптрон управляется TX, который не удается перманентно выставить в низкий уровень. но, передавая на TX непрерывно, напряжение на нем падает, следовательно, оптрон тоже будет срабатывать.
через оптроны, получаю в linux информацию с DCD,DSR и CTS (на него через оптрон вывел с apc ups сигнал "ups питается от батареи" и теперь роутер отсылает мне на сотовый смс, что дома отключено электричество).
RI на pl2303 почему-то не работает, RX пока не придумал как использовать.
вопрос:
как подключить 74hc595 к этим трем оптронам (DTR, RTS и странному TX),
чтобы можно было последовательно занести байт в shift регистр, а потом вывести его на ноги Q0..Q7?
думал просто должно быть, а вот два дня убил - не работает 74hc595 :(
с ds1621 и то быстрее разобрался.
мне мешает то, что по непонятной причине светодиод, подключенный к Q0 то горит, то гаснет.
недавно понял, что, наверное, помеха.
значит, надо менять алгоритм работы с 74hc595 и в основном на SHcp (shift reg clock) и STcp (storage reg clock) держать высокий уровень, чтобы не ловить помеху?
много вариантов пробовал - уже запутался.
вручную пробовал по даташиту reset (оторвал MR от VCC и подал VCC на STcp) - получилось - микросхема сбрасывает shift и storage регистр в 0 и светодиод гаснет.
по сигналам:
Ds (serial data) соединяю с оптроном от RTS.
STcp (storage reg clock) соединяю с оптроном от DTR.
SHcp (shift reg clock) соединяю с оптроном, работающим от сигнала TX.
OE (output enable) напрямую к VCC , т.е. по высокому фронту на STcp данные из shift регистра попадают в storage регистр и тут же появляются на Q0..Q7, я правильно понимаю?
MR напрямую к GND.
на Q0 вешаю светодиод для контроля.
при включении usb to com с pl2303, на RTS, DTR и TX высокие уровни, соответственно, оптроны срабатывают и на Ds,SHcp,Stcp тоже высокие уровни.
никакой обвязки нет.
питание 4.8V от 4х NiMh аккумуляторов типа AA.
алгоритм посылки байта такой:
STcp (DTR) -› low (низкий);
цикл по битам с 7го до 0го{
бит -› Ds (RTS).
пауза (какая?)
255-›SHcp (TX).
пауза (какая?)
}
STcp (DTR) -› high (высокий).
в чем я не прав?
спасибо.