Страница 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}
Слимпер
Использовал эту статью сделал на пробу пару боков и тестовый проект для работы одновременно 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. Надеюсь что наши просьбы будут услышаны ) А ведь желающих, как и я много )