Входной сдвиговый регистр 74HC165

В данный форуме Вы можете создавать темы посвящённые расширению функционала программы или сайта. После рассмотрения Ваше предложение будет перенесено в соответствующее место
Astrologius
Рядовой
Сообщения: 2
Зарегистрирован: 16.11.2015{, 18:10}
Репутация: 0

Входной сдвиговый регистр 74HC165

#1

Сообщение Astrologius » 26.03.2016{, 19:32}

Для увеличения количества выходных линий 74HC595 удобен хотелось бы удивить модуль для 74HC165. чтобы можно было увеличивать количество входных линий.

ivelan
Рядовой
Сообщения: 4
Зарегистрирован: 30.04.2016{, 17:03}
Репутация: 0

Входной сдвиговый регистр 74HC165

#2

Сообщение ivelan » 30.04.2016{, 17:42}

Поддерживаю просьбу Astrologius, и чтобы работали  используя общие линии SPI. Заранее спасибо.

Аватара пользователя
Skull
Лейтенант
Сообщения: 424
Зарегистрирован: 08.09.2015{, 16:18}
Репутация: 4
Откуда: Мариуполь

Входной сдвиговый регистр 74HC165

#3

Сообщение Skull » 30.04.2016{, 20:58}

Присоединяюсь к просьбе

tagan61
Рядовой
Сообщения: 21
Зарегистрирован: 07.09.2015{, 18:47}
Репутация: 0
Откуда: Россия
Имя: Александр

Входной сдвиговый регистр 74HC165

#4

Сообщение tagan61 » 30.04.2016{, 23:06}

В принципе не плохо было бы, но есть замена, блок MCP 23017.

DWD
Лейтенант
Сообщения: 353
Зарегистрирован: 18.10.2015{, 13:51}
Репутация: 5
Откуда: Кривой Рог

Входной сдвиговый регистр 74HC165

#5

Сообщение DWD » 01.05.2016{, 11:00}

А мне немного непонятно, зачем?..

Скажем, для микросхем или устройств, работающих с каким нибудь протоколом типа SPI, RS-232, CAN и т.п. да, удобно иметь блоки поддержки работы с ними без необходиомсти изучения этих протоколов. Кстати, довольно сложных (например, для меня).

Но для управления простой логикой, какой является 74HC165, достаточно выдачи простой комбинации сигналов на её управляющих входах, о которой можно узнать из даташита.

Судите сами.
Для параллельной загрузки данных в регистр достаточно просто выставить ноль на входе управления загрузкой - состояние уровней всех сигналов на входах сразу запишутся в регистр. Всё.
То есть, для параллельной записи Ардуинка должна выдать на микросхему ноль по одной линии и замолкнуть, так как протокол передачи завершён. Очень сложно, не правда ли?.. 

А для последовательной загрузки-выгрузки нужно подать на тот же вход управления загрузкой единицу и на вход тактирования подавать импульсы - все уровни, записанные ранее в регистр (или подаваемые на вход последовательной загрузки) будут продвигаться по регисру и последовательно появляться на выходе последовательной выгрузки.
То есть, Ардуинка должна на предыдущем выходе регистра выставить единицу и на другой вход (тактирование) выдать несколько импульсов для продвижения данных по регистру и получения этой последовательности на последовательном выходе. Или для записи в регистр данных на ходе последовательной загрузки.

А ведь логических микросхем, выполняющих функции регистра, очень много. Для каждой будем просить автора FLP пристроить блок управления?..
Так дойдёт до просьбы встроить поддержку микросхемы 74HC00...  Изображение
Изображение

Аватара пользователя
Skull
Лейтенант
Сообщения: 424
Зарегистрирован: 08.09.2015{, 16:18}
Репутация: 4
Откуда: Мариуполь

Входной сдвиговый регистр 74HC165

#6

Сообщение Skull » 02.05.2016{, 10:44}

В этом случае полезен будет простые блоки ввода\ вывода в SPI. Тогда можно будет управлять и диммерами на сколь угодно каналов которые тут регулярно просят организовать используя вот такую простую схему из статьи на РадиоКоте:
http://radiokot.ru/circuit/digital/automat/74/

ivelan
Рядовой
Сообщения: 4
Зарегистрирован: 30.04.2016{, 17:03}
Репутация: 0

Входной сдвиговый регистр 74HC165

#7

Сообщение ivelan » 02.05.2016{, 23:29}

tagan61, так то разницу в цене зацените как нибудь между MCP 23017 и
74HC165

Добавлено (02.05.2016, 23:29)
---------------------------------------------
DWD, ну раз Вам понятно напишите тогда пользовательский блок... Буду признателен.

tagan61
Рядовой
Сообщения: 21
Зарегистрирован: 07.09.2015{, 18:47}
Репутация: 0
Откуда: Россия
Имя: Александр

Входной сдвиговый регистр 74HC165

#8

Сообщение tagan61 » 03.05.2016{, 21:33}

ivelan писал(а):tagan61, так то разницу в цене зацените как нибудь между MCP 23017 и74HC165
Я купил пару штук (160 р за пару)

ivelan
Рядовой
Сообщения: 4
Зарегистрирован: 30.04.2016{, 17:03}
Репутация: 0

Входной сдвиговый регистр 74HC165

#9

Сообщение ivelan » 04.05.2016{, 13:53}

tagan61, За эти деньги десяток 74HC165 купить можно. И вроде бы быстродействие цепочки из 165 ых повыше будет  Изображение

tagan61
Рядовой
Сообщения: 21
Зарегистрирован: 07.09.2015{, 18:47}
Репутация: 0
Откуда: Россия
Имя: Александр

Входной сдвиговый регистр 74HC165

#10

Сообщение tagan61 » 07.05.2016{, 17:06}

ivelan писал(а):За эти деньги десяток 74HC165 купить можно.
Не спорю, но пока блока для них нет поэтому пользуюсь MCP 23017.

arisov77
Рядовой
Сообщения: 54
Зарегистрирован: 11.06.2016{, 12:42}
Репутация: 8
Откуда: Инза

Входной сдвиговый регистр 74HC165

#11

Сообщение arisov77 » 14.08.2016{, 18:55}

Подключил 74НС595 и 74НС165 по этой схеме http://robocraft.ru/blog/arduino/541.html , но возникла проблема с "пропаданием" выхода D13 (SCK) http://forum.flprogwiki.ru/viewtopic.php?f=5&t=1248 .
Я поддерживаю добавление блока для 74HC165 и желательно, чтобы их можно было совместно использовать с НС595.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Входной сдвиговый регистр 74HC165

#12

Сообщение Слимпер » 08.09.2016{, 12:15}

arisov77 писал(а):Подключил 74НС595 и 74НС165 по этой схеме http://robocraft.ru/blog/arduino/541.html , но возникла проблема с "пропаданием" выхода D13 (SCK) http://forum.flprogwiki.ru/viewtopic.php?f=5&t=1248 . Я поддерживаю добавление блока для 74HC165 и желательно, чтобы их можно было совместно использовать с НС595.
Использовал эту статью сделал на пробу пару боков и тестовый проект для работы одновременно 74НС595 и 74НС165. Но проверить не могу, нет микросхемы  74НС165. Но блок для  74НС595 работает.

Если у кого есть желание по тестируйте.
Это просто эксперимент, если все заработает можно будет попробовать сделать блок и для каскадов
Вложения
T2.flp
(719.06 КБ) 180 скачиваний
Последний раз редактировалось Слимпер 08.09.2016{, 12:16}, всего редактировалось 1 раз.

arisov77
Рядовой
Сообщения: 54
Зарегистрирован: 11.06.2016{, 12:42}
Репутация: 8
Откуда: Инза

Входной сдвиговый регистр 74HC165

#13

Сообщение arisov77 » 09.09.2016{, 03:19}

Попровал сделать блоки для 74HC165 (для одной и двух регистров в касакаде).
В прилагаемом архиве: блоки, примеры в FLProg, проекты под этот пример в Proteus и .hex для них. Тестировал блоки только в Proteus-e.
Просьба проверить и отписаться.
Т.к. это мой первый проект на Си, то просьба не ругаться на синтаксис, я "ассемблерщик"
Вложения
9109778.jpg
9253468.jpg
74HC165_Code.rar
(405.95 КБ) 154 скачивания

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Входной сдвиговый регистр 74HC165

#14

Сообщение Слимпер » 09.09.2016{, 07:56}

arisov77 писал(а):Попровал сделать блоки для 74HC165 (для одной и двух регистров в касакаде). В прилагаемом архиве: блоки, примеры в FLProg, проекты под этот пример в Proteus и .hex для них. Тестировал блоки только в Proteus-e.
Просьба проверить и отписаться.
Т.к. это мой первый проект на Си, то просьба не ругаться на синтаксис, я "ассемблерщик"
Я так понял вы не стали использовать аппаратный порт SPI, а написали, программный порт. А вот такое для меня за облачно.
Код у вас не самый оптимальный, лишние переменные и операции. Исправил, один из примеров, проверти должно так же работать, а код компактнее будет.
Вложения
7165_8bit_2.flp
(147.69 КБ) 155 скачиваний

arisov77
Рядовой
Сообщения: 54
Зарегистрирован: 11.06.2016{, 12:42}
Репутация: 8
Откуда: Инза

Входной сдвиговый регистр 74HC165

#15

Сообщение arisov77 » 11.09.2016{, 09:24}

Слимпер писал(а):Я так понял вы не стали использовать аппаратный порт SPI...
SPI не понравился из за "жёсткой" привязки к определённым пинам, так получается более "гибкое" решение. Поэтому, также для «гибкости», сделал выхода с «прямыми» и «инверсными» переменными, например, для того чтобы без дополнительных преобразований передавать по Модбасу состояния входов 74НС165. «Прямой» выход используется при соединение 9в. регистра со входом Ардуины, а «инверсный» при связи с 7в. 74НС165.

Спасибо за исправления, попробовал в Proteus - работает. Плохо, что на Си нельзя как на Ассемблере присвоить определённому биту в байте символьное имя (я не нашёл как это сделать), так код получился бы гораздо компактнее и с меньшим количеством занятых переменных (байт).

Внёс изменения в блоки и объединил их в одну папку, изменённый архивчик прилагаю.

Добавлено (11.09.2016, 09:24)
---------------------------------------------
Протестировал 8-битный блок "в железе" - работает.
Создал темку в разделе "Блоки пользователей" http://flprog.ru/load/bloki_polzovatele ... /2-1-0-129 .
Вложения
0544313.rar
(404.35 КБ) 122 скачивания
Последний раз редактировалось arisov77 11.09.2016{, 09:28}, всего редактировалось 1 раз.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Входной сдвиговый регистр 74HC165

#16

Сообщение Слимпер » 11.09.2016{, 11:29}

arisov77, А можете проверить тот блок, что я выкладывал в сообщении 12.
Мне интересно будет работать или нет, та библиотека еще много, что вкусного позволяет.

arisov77
Рядовой
Сообщения: 54
Зарегистрирован: 11.06.2016{, 12:42}
Репутация: 8
Откуда: Инза

Входной сдвиговый регистр 74HC165

#17

Сообщение arisov77 » 11.09.2016{, 14:38}

Слимпер писал(а):А можете проверить тот блок, что я выкладывал в сообщении 12.
Попозже попробую.

Начал сегодня применять "в железе" свой блок и обнаружил, что в моём применении необходимо побитное инверсирование входов 74HC165 (для передачи по Модбасу "байтовых" переменных).

Переделал блоки и перезалил архив http://flprog.ru/load/bloki_polzovatele ... /2-1-0-129 .

У меня используются две 74НС165, но подключенны они не в каскаде, а раздельно (так было удобнее печатку разводить). Для экономии тэгов SimpleScada2 я объединил 2 байта в одну переменную типа Integer, с помощью простенького блока, состоящего из одной строчки (int Out_Int = Hi_Byte <<8 | Lo_Byte; ). Кому то надо такой блочёк, выложить?
Последний раз редактировалось arisov77 11.09.2016{, 14:39}, всего редактировалось 1 раз.

arisov77
Рядовой
Сообщения: 54
Зарегистрирован: 11.06.2016{, 12:42}
Репутация: 8
Откуда: Инза

Входной сдвиговый регистр 74HC165

#18

Сообщение arisov77 » 11.09.2016{, 15:53}

Слимпер, блок проверил.
Выхода получились инверсными относительно входа 74НС165 (при соединении 7в.НС165, как на схеме http://robocraft.ru/files/spi/bunch_chematics.jpg ).
При изменении входов D0, D1 (HC165) выхода D3, D2 Ардуинки в Протеусе меняются с задержкой ~1сек.

Выхода 74НС595 непонятно как работают, при многократном переключении кнопок "лампочки" c Q0 (U3 и U4) перемещаются последовательно вниз, на обоих регистрах синхронно.

По сравнению с программным "клоком" частота импульсов по SPI значительно выше. Длительность одного "программного" тактого импульса ~15мкс (с удалёнными 1мкс задержками между тактами), а c SPI ~ 0,25мкс. Возможно, поэтому в Протеусе и "тормозят" переключения D2 и D3 - из-за высокой тактовой частоты и соответсвенно это всё компу надо обсчитать...
Вложения
SPI_Proteus_01.rar
(21.87 КБ) 119 скачиваний
4118766.jpg
Последний раз редактировалось arisov77 11.09.2016{, 19:09}, всего редактировалось 1 раз.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Входной сдвиговый регистр 74HC165

#19

Сообщение Слимпер » 12.09.2016{, 19:22}

Цитата Стало интересно, купил пару штук в магазине в городе. В очередной раз офигел от разницы в ценах. Брал в DIP корпусе, в магазине 50руб -1шт, на али 6-10руб за 1шт   
arisov77 писал(а):Выхода получились инверсными относительно входа 74НС165
Ну так и должно быть, все входа исходно подтянуты к питанию, значит до нажатия на всех 1.
Потестил 1 микросхему, работает быстро, задержек не заметил.
Это я про те блоки, что сам делал.

Добавлено (12.09.2016, 19:22)
---------------------------------------------
Слимпер писал(а):Ну так и должно быть, все входа исходно подтянуты к питанию, значит до нажатия на всех 1.
Не прав был, оказывается 
есть два входа микросхемы 
QH — последовательный вывод, MISO (SPI)
Q͞H — инверсный вывод, на нём идут биты с QH, но инвертированные

streetone
Рядовой
Сообщения: 10
Зарегистрирован: 15.09.2016{, 16:28}
Репутация: 1

Входной сдвиговый регистр 74HC165

#20

Сообщение streetone » 22.09.2016{, 01:36}

Всеми руками поддерживаю просьбу Astrologius, и чтобы работали  используя общие линии SPI. Очень полезный блок будет. Сейчас делаю одну вещицу, использовал Nano, не хватило, прикрутил 595, не хватило, и вот пришлось покупать Arduino Mega 2560.  Сижу жду её. А была бы поддержка 165, всё сделал бы на Nano. Надеюсь что наши просьбы будут услышаны ) А ведь желающих, как и я много )

Ответить

Вернуться в «Новые»