Страница 1 из 4

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

Добавлено: 26.03.2016{, 19:32}
Astrologius
Для увеличения количества выходных линий 74HC595 удобен хотелось бы удивить модуль для 74HC165. чтобы можно было увеличивать количество входных линий.

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

Добавлено: 30.04.2016{, 17:42}
ivelan
Поддерживаю просьбу Astrologius, и чтобы работали  используя общие линии SPI. Заранее спасибо.

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

Добавлено: 30.04.2016{, 20:58}
Skull
Присоединяюсь к просьбе

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

Добавлено: 30.04.2016{, 23:06}
tagan61
В принципе не плохо было бы, но есть замена, блок MCP 23017.

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

Добавлено: 01.05.2016{, 11:00}
DWD
А мне немного непонятно, зачем?..

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

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

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

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

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

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

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

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

Добавлено: 02.05.2016{, 23:29}
ivelan
tagan61, так то разницу в цене зацените как нибудь между MCP 23017 и
74HC165

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

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

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

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

Добавлено: 04.05.2016{, 13:53}
ivelan
tagan61, За эти деньги десяток 74HC165 купить можно. И вроде бы быстродействие цепочки из 165 ых повыше будет  Изображение

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

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

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

Добавлено: 14.08.2016{, 18:55}
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.

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

Добавлено: 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 работает.

Если у кого есть желание по тестируйте.
Это просто эксперимент, если все заработает можно будет попробовать сделать блок и для каскадов

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

Добавлено: 09.09.2016{, 03:19}
arisov77
Попровал сделать блоки для 74HC165 (для одной и двух регистров в касакаде).
В прилагаемом архиве: блоки, примеры в FLProg, проекты под этот пример в Proteus и .hex для них. Тестировал блоки только в Proteus-e.
Просьба проверить и отписаться.
Т.к. это мой первый проект на Си, то просьба не ругаться на синтаксис, я "ассемблерщик"

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

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

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

Добавлено: 11.09.2016{, 09:24}
arisov77
Слимпер писал(а):Я так понял вы не стали использовать аппаратный порт 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 .

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

Добавлено: 11.09.2016{, 11:29}
Слимпер
arisov77, А можете проверить тот блок, что я выкладывал в сообщении 12.
Мне интересно будет работать или нет, та библиотека еще много, что вкусного позволяет.

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

Добавлено: 11.09.2016{, 14:38}
arisov77
Слимпер писал(а):А можете проверить тот блок, что я выкладывал в сообщении 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; ). Кому то надо такой блочёк, выложить?

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

Добавлено: 11.09.2016{, 15:53}
arisov77
Слимпер, блок проверил.
Выхода получились инверсными относительно входа 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 - из-за высокой тактовой частоты и соответсвенно это всё компу надо обсчитать...

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

Добавлено: 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, но инвертированные

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

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