TTL и CMOS логика Цифровая схемотехника на логических микросхемах. Счетчики, сдвиговые регистры, простая логика... |
16.02.2010, 02:36
|
|
Частый гость
Регистрация: 01.05.2008
Сообщений: 19
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Застрял с 74hc595
здравствуйте,
никак не подружусь с 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 (высокий).
в чем я не прав?
спасибо.
|
|
|
|
16.02.2010, 17:30
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.01.2008
Сообщений: 1,143
Сказал спасибо: 379
Сказали Спасибо 430 раз(а) в 274 сообщении(ях)
|
Re: застрял с 74hc595
Как я понял с мануэля алгоритм работы, для вывода на Q0..Q7 регистра такой:
1 1-› OE
2 Выставить в DS байт 7
3 строб 1,0 -› SH_CP
4 строб 1,0 -› ST_CP
5 повтор пунктов 2,3,4 для 6..0 байт
6 0 -› OE
И тут загвоздка, нужно 4 сигнала для управления.
Пошаманить можно, но не нужно, лучше взять другой сдвиговый регистр.
А еше лутше взять МК ATtiny2313 например.
|
|
|
|
16.02.2010, 22:39
|
|
Частый гость
Регистрация: 01.05.2008
Сообщений: 19
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: застрял с 74hc595
а разве STcp не один раз нужен, в конце передачи байта, чтобы фактически скопировать shift в storage?
при OE high по даташиту обнуляется и shift регистр и выходы Q0..Q7 (идут в OFF) - у меня при этом диод гаснет.
это значит, на выходах Q0..Q7 пропадут уровни.
а смысл в том, чтобы задвинуть новое значение в shift и потом разом поменять Q0..Q7.
а если объединить SH_CP и ST_CP?
вроде в даташите об этом сказано:
"If both clocks are connected together, the shift
register will always be one clock pulse ahead of the
storage register." - если они соединены вместе, shift регистр будет на 1 clock импульс раньше, чем storage.
|
|
|
|
16.02.2010, 23:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.01.2008
Сообщений: 1,143
Сказал спасибо: 379
Сказали Спасибо 430 раз(а) в 274 сообщении(ях)
|
Re: застрял с 74hc595
Сообщение от osetroff
|
а если объединить SH_CP и ST_CP?
|
Ну если в даташите написано то можно. Я пробовал в протеусе побаловатся, то при обединении SH_CP и ST_CP у меня регистр за один строб смещался на два байта, возможно глюк, не буду утверждать.
Я думаю в качестве стороба использовать TX.
Перевод сигнала OE в высокий уровень переводит выходы Q0..Q7,Q7' в Z состояние.
При этом регистр не сбрасывается, просто выходы отключаются.
Если не переводить выходы в Z состояние, то можно наблюдать как заполняется регистр данными от 0-го разряда к 7-му.
|
|
|
|
17.02.2010, 00:04
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.01.2008
Сообщений: 1,143
Сказал спасибо: 379
Сказали Спасибо 430 раз(а) в 274 сообщении(ях)
|
Re: застрял с 74hc595
Идеально вам может подойти 155ИР17 (аналог DM2504)
Последний раз редактировалось E97; 17.02.2010 в 00:07.
|
|
|
|
19.02.2010, 13:52
|
|
Вид на жительство
Регистрация: 12.04.2007
Сообщений: 348
Сказал спасибо: 2
Сказали Спасибо 36 раз(а) в 32 сообщении(ях)
|
Re: Застрял с 74hc595
OE - пока трубется чтобы выход работал держим ноль. Перевести в высокоимпедансное состояние - подаем 1.
Цикл записи бит:
{
Ds (data) - подаем бит
SHcp (shift reg clock) - клок, подаем 0-1-0
}
STcp (storage reg clock) - защелкиваем, подаем 0-1-0
После STcp и при OE=0 на выходе установятся биты.
Первый поданый бит будет на Q7 и так далее до Q0.
__________________
Гидравлика + электроника = POWER
Последний раз редактировалось mrKirill; 19.02.2010 в 13:54.
|
|
|
|
20.02.2010, 01:12
|
|
Частый гость
Регистрация: 01.05.2008
Сообщений: 19
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Застрял с 74hc595
спасибо, с алгоритмом разобрался.
а как быть с помехой?
нашел в интернете, что на все сигналы: SHcp, STcp и Ds советуют навесить резисторы.
как их подобрать?
и где прочитать(если это стандартная процедура) - обязательны к каждой TTL микросхеме резисторы чтобы избавиться от помех?
|
|
|
|
28.02.2010, 23:13
|
|
Прописка
Регистрация: 25.10.2008
Сообщений: 125
Сказал спасибо: 1
Сказали Спасибо 36 раз(а) в 26 сообщении(ях)
|
Re: Застрял с 74hc595
Входы желательно подтягивать резисторами к питанию +5В. Номинал резисторов колеблется от 1 до 30 кОм и является скорее борьбой компромисов. Чем выше сопротивление тем меньше потребление и ниже помехозащищенность. И наоборот при малых значениях резисторов выше помехозащита и больше потребление.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:40.
|
|