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

В данный форуме Вы можете создавать темы посвящённые расширению функционала программы или сайта. После рассмотрения Ваше предложение будет перенесено в соответствующее место
Аватара пользователя
Sancho
Полковник
Сообщения: 3715
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 503
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#41

Сообщение Sancho » 15.03.2018{, 09:25}

KulibinOrsk, seri0shka,
Просьба попробовать. Пока только 165.
Вложения
165_595.ubl
Только 74НС165
(69.55 КБ) 80 скачиваний
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

KulibinOrsk
Лейтенант
Сообщения: 356
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 18
Откуда: Оренбург
Имя: Александр

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

#42

Сообщение KulibinOrsk » 15.03.2018{, 09:32}

Со дня на день приедут микросхемы (заказал и те и те т.к. надо 32 входа и 32 выхода) и сразу начну проверять.

Аватара пользователя
Sancho
Полковник
Сообщения: 3715
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 503
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#43

Сообщение Sancho » 15.03.2018{, 10:17}

KulibinOrsk писал(а):
15.03.2018{, 04:57}
А если будет блок описанный в 22 посте: блок, позволяющие работать по 5-проводной схеме SPI одновременно с несколькими 74HC165 на входах и 74HC595 на выходах то будет совсем полное гармоничное решение всех вопросов.
У 165 защёлка входов срабатывать должна перед чтением(вниз-вверх), это не SPI, плюс один пин на вход данных.
У 595 защёлка должна притянуться к общему перед приёмом и "отлипнуть"(High) после него, плюс один пин на выход данных. Это SPI.
Сделаем, но мы сэкономим лишь один вывод, CLK...
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 20
Откуда: Кременчуг
Имя: Сергей

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

#44

Сообщение seri0shka » 15.03.2018{, 12:04}

Sancho, проверил блок 165general + 4 штуки read byte, всё работает отлично. Остальные проверю в выходные, не должно быть проблем. Мне кажется, general слишком пафосно, может лучше master / slave, как принято в компьютерах?
По 5-проводной схеме статья здесьhttp://robocraft.ru/blog/arduino/541.html
Если не забуду, в выходные выложу блоки, работающие по ээтой схеме.
Sancho писал(а):
15.03.2018{, 10:17}
У 165 защёлка входов срабатывать должна перед чтением(вниз-вверх), это не SPI, плюс один пин на вход данных.
У 595 защёлка должна притянуться к общему перед приёмом и "отлипнуть"(High) после него
А что если попробовать так: притянули защёлку вниз, серия импульсов на CLK- отправили данные на 595, потом защёлку вверх, дальше переключили вывод данных на вход, серия импульсов на CLK- приняли данные с 165, снова переключили вывод данных на вЫход, закончили упражнение. Получится трёхпроводная схема. Такой ещё не встречал, но стоит попробовать. Я подобным образом добавил на днях блок вывода светодиодной индикации через десятичный счётчик, не используя ни одного дополнительного пина (задействовал 2 пина, работающие с регистрами 165)

Аватара пользователя
Sancho
Полковник
Сообщения: 3715
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 503
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#45

Сообщение Sancho » 15.03.2018{, 12:15}

seri0shka писал(а):
15.03.2018{, 12:04}
general слишком пафосно
Принято, согласен, исправится в следующих версиях... :haha:
Насчёт менять вход на выход - надо подумать, ведь вроде пинов уже хватает?

Отправлено спустя 4 минуты 37 секунд:
seri0shka писал(а):
15.03.2018{, 12:04}
По 5-проводной схеме статья здесь
Посмотрел - это то, о чём я и писал выше - общий лишь CLK.

Отправлено спустя 2 минуты 9 секунд:
seri0shka писал(а):
15.03.2018{, 12:04}
А что если попробовать так: притянули защёлку вниз, серия импульсов на CLK- отправили данные на 595, потом защёлку вверх, дальше переключили вывод данных на вход, серия импульсов на CLK- приняли данные с 165, снова переключили вывод данных на вЫход, закончили упражнение. Получится трёхпроводная схема.
Надо подумать, что с чем можно менять...
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 20
Откуда: Кременчуг
Имя: Сергей

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

#46

Сообщение seri0shka » 15.03.2018{, 12:25}

Sancho писал(а):
15.03.2018{, 12:21}
ведь вроде пинов уже хватает?
Нет предела совершенству. :ohyes:

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 20
Откуда: Кременчуг
Имя: Сергей

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

#47

Сообщение seri0shka » 16.03.2018{, 11:45}

Sancho писал(а):
15.03.2018{, 12:21}
Насчёт менять вход на выход - надо подумать
Пожалуй, погорячился я насчёт трёхпроводной схемы, там возникнут аппаратные проблемы при передаче данных и от 165, и к 595 (хотя их можно решить). А вот если использовать два пина данных, то четырёхпроводная схема вполне реализуема по вышеописанной технологии. На днях постараюсь попробовать реализовать четырёхпроводную схему.

Аватара пользователя
Sancho
Полковник
Сообщения: 3715
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 503
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#48

Сообщение Sancho » 16.03.2018{, 11:59}

seri0shka писал(а):
16.03.2018{, 11:45}
На днях постараюсь попробовать реализовать четырёхпроводную схему.
Если для входного, 165-го регистра передёргивание при работе на выход, на 595, до фонаря, то при работе на вход, момент срабатывания защёлки не особо - может защёлкнуть не то в 595. но не до конца додумал, так, рассуждения.
Вариант один: сначала работает выход, потом, при защёлкивании 595-го, этим же фронтом защёлкнуть 165-й... Но вариант распределённого по схеме универсального модуля входа -выхода как-бы улетучивается.
Приносим в жертву один пин и провод гибкости рисования...
Просто мысли вслух..
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

KulibinOrsk
Лейтенант
Сообщения: 356
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 18
Откуда: Оренбург
Имя: Александр

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

#49

Сообщение KulibinOrsk » 16.03.2018{, 12:52}

Почитал.Подумал.Вывод:
Не стоит минимизировать процессию.
Давайте отдельно расширение по входам и отдельно расширение по выходам.
Главное блоки с байтами и битами грамотно сделать.
А то борьба за 1-2 пина приведут к казусам и возможным проблемам в дальнейшем. Оно того не стОит.
Заранее благодарен Sancho за его работу нужную всем.
И отдельная просьба - оформить блок хорошо: структурно с описанием куда что и для чего. Лучше добавить лишние пару строк, чем скупиться на описание и заставлять рыть инет.

Аватара пользователя
Sancho
Полковник
Сообщения: 3715
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 503
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#50

Сообщение Sancho » 16.03.2018{, 13:01}

KulibinOrsk писал(а):
16.03.2018{, 12:52}
оформить блок хорошо:
Сначала потестите - нету такого железа, (правда 595 заказал - уж больно дёшево 32р за десяток с беспл. дост)
а потом оформится...
Ну что, приступим к 595-м.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Oleg1345140
Лейтенант
Сообщения: 536
Зарегистрирован: 06.09.2015{, 07:09}
Репутация: 1
Откуда: Курган

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

#51

Сообщение Oleg1345140 » 16.03.2018{, 21:03}

Запрос на добавление этой микросхемы создавал еще на первом сайте (который самописный был), заявка была принята, но похоже отложена в долгий ящик...

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 20
Откуда: Кременчуг
Имя: Сергей

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

#52

Сообщение seri0shka » 17.03.2018{, 12:16}

Sancho писал(а):
15.03.2018{, 09:25}
Просьба попробовать
Проверил блоки 165_Byte_8_Bits (4 штуки)- работает

Отправлено спустя 2 минуты 7 секунд:
Oleg1345140 писал(а):
16.03.2018{, 21:03}
заявка была принята, но похоже отложена в долгий ящик...
Ой, так много уже создано блоков, которые давно должны быть в "стандартных"...

Отправлено спустя 8 часов 28 минут 24 секунды:
Ура! Опробовал управление расширениями по 4 проводам! Регистры 74HC165-4 штуки, плюс 74HC595- 4 штуки работают нормально. Итого имеем 32 входа плюс 32 выхода, используя всего 4 пина. При этом никаких сбоев не видно (светодиоды очень хорошо отображают ложные импульсы, даже несколько миллисекунд импульса дают небольшую засветку не включённого светодиода, здесь такого не наблюдается). В коде тоже не вижу никаких моментов, где могли бы быть проблемы. Выкладываю блок на пробу, просьба отписаться о результатах применения. Блок легко масштабируется на другое количество как входных, так и выходных регистров, причём количество входных с количеством выходных никак не связаны. Если кто не может сам, могу изменить на нужное количество. Мой блок работает с байтами (мне так удобнее), байты в биты и обратно перевожу блоками Бороды 8_bit_to_byte и byte_to_8_bit, тоже прилагаю. Подробнейшее описание подключения в описании блока, пины можно настроить любые от 0 до 19 (то есть и аналоговые).
74HC165_32bit_74HC595_32bit-01_(CODE).ubi
(213.71 КБ) 74 скачивания
To_bit.ubl
(184.33 КБ) 74 скачивания
Sancho, посмотрите код, какие будут замечания (да, знаю, что с функциями будет оптимальнее, но, во-первых, путаюсь я в них, а, во-вторых, без функций мы имеем строго определённый порядок выполнения программы без неожиданностей).

Аватара пользователя
Sancho
Полковник
Сообщения: 3715
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 503
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#53

Сообщение Sancho » 18.03.2018{, 14:16}

pan писал(а):
18.03.2018{, 14:12}
похоже
Алексей, согласен.
Но!
Допилим - поедем!
По-ходу - недолго.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

KulibinOrsk
Лейтенант
Сообщения: 356
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 18
Откуда: Оренбург
Имя: Александр

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

#54

Сообщение KulibinOrsk » 18.03.2018{, 15:45}

Микросхемы мои еще в пути. По прибытию я еще проверю.
Вопросы:
1. По описанию автора: схему в этот раздел можно вставлять или только текст ?
2. Какое быстродействие у входов-выходов получается в миллисекундах ?
3. Как много блок забирает ресурсов у МК ? наверное в процентах или в сравнении с опросом аналоговых входов.
На днях проверял несколько блоков: LCD i2C + опрос 2-х аналоговых + серва + трансформатор тока. После подключения трансформаторного
блока программа стала отрабатываться с задержкой = 0.4сек. Поэтому входа-выхода актуальнее в плане времени обработки.
4. Имеет ли смысл сделать отключение опроса некоторых входов-выходов, для сбережения ресурсов, но только не так как выполнена инверсия
инверсия должна быть наглядно (инверсию надо у Бороды попросить).
5. Вопрос в целом по программе: если я ставлю блок пользователя то нужно ли мне в настройках выбирать входа и выхода на пинах или блок
это сам пропишет ?

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 20
Откуда: Кременчуг
Имя: Сергей

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

#55

Сообщение seri0shka » 18.03.2018{, 16:35}

KulibinOrsk писал(а):
18.03.2018{, 15:45}
Вопросы
Это к кому?

KulibinOrsk
Лейтенант
Сообщения: 356
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 18
Откуда: Оренбург
Имя: Александр

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

#56

Сообщение KulibinOrsk » 18.03.2018{, 16:58}

Sancho, Вопросы к автору. п.54

Отправлено спустя 2 часа 40 минут 28 секунд:
И еще один вопрос: может имеет смысл установить частоту опроса входов и частоту отработки сигналов на выходах ?
Наверняка если используются "расширители" то на входах как правило датчики (концевики) и кнопки, а на выходах реле, светодиоды и прочее. Т.е. не быстродействующие элементы. Для которых вполне достаточно скорости 0.1 сек. Это позволит не загружать работу контроллера на отработку логических элементов. Хотя я может и не прав. Но для вариаций можно сделать скорость отработки 0.01 сек ... 0.1 сек.

Аватара пользователя
Sancho
Полковник
Сообщения: 3715
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 503
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#57

Сообщение Sancho » 19.03.2018{, 13:41}

На основе блока seri0shka, и моего предыдущего два варианта:
V1 быстрые пины, выбрать не получиться, зашиты в программу - замена корректировкой кода. По умолчанию как в стандартном, 2-ом.
V2 стандартные пины, можно выбрать любые, по умолчанию 12-15.
Скорость работы:
стандарт - блок и входы выходы - за 970 мкс
быстрый - блок и входы выходы - за 196 мкс
Размеры в приложенных файлах.
Файл "Исходный размер" - этот тара, её "вес" нужно вычесть из конечных цифр (брутто) - получим чистый вес блоков, нетто.
Есть вход разрешения работы( по просьбам)
Блоки входы и выходы можно располагать в произвольных местах, главное - смотреть номера регистров.
Просьба оценить.

20.57 Косяк со стандартными входами поправил, исправленый в файле Набор блоков 165 595.flp
Уже есть слегка облегчённый вариант, но надо эти потестить...
СпойлерПоказать
Исходный размер.png
Тара
Размер с блоком Серёжки.png
С Серёгиным
Размер с блоком V1.png
Блок "быстрый"
Размер с блоком V2.png
Блок стандарт
Вложения
Набор блоков 165 595.flp
(433 КБ) 79 скачиваний
74НС 165 и 595.ubl
Набор блоков
(393.42 КБ) 78 скачиваний
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
AlexCrane
Лейтенант
Сообщения: 567
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 138
Откуда: Ульяновск
Имя: Александр

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

#58

Сообщение AlexCrane » 19.03.2018{, 19:37}

Sancho, не пойму что-то, если v2 это стандартные входы и выходы, то почему без cyberlib'а не компилится, и в коде жестко прописано D14_Low; D14_High; хотя написано можно выбрать другие, странно как-то...
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 20
Откуда: Кременчуг
Имя: Сергей

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

#59

Сообщение seri0shka » 19.03.2018{, 21:41}

AlexCrane, сейчас редактирую, ждите через часок

Отправлено спустя 23 минуты 48 секунд:
AlexCrane, отредактировал 5 блоков, попробуйте пока те, что без библиотеки. С библиотекой ещё нужно смотреть. Через час сам проверю в действии.
74НС 165 и 595 -01.ubl
(393.38 КБ) 65 скачиваний
Отправлено спустя 2 часа 1 минуту 7 секунд:
Sancho, огромное спасибо за проделанную работу, сделано довольно удобно для использования, особенно размещение в произвольном месте проекта. Блоки поправил (были нерабочие), добавил комментарии в коде для понимания работы. Проверил в действии. Теперь всё работает. Попрошу вас по той же технологии проверить скорость работы скоростного варианта при pauza=0. И перезалейте исправленный вариант. Прилагаю полностью исправленные
165_595_Master_4_reg_speed_v1_(CODE).ubi
(147.1 КБ) 77 скачиваний
165_595_Master_4_reg_v2,1_(CODE).ubi
(310.6 КБ) 70 скачиваний
165_Read_Byte_1,1_(CODE).ubi
(17 КБ) 74 скачивания
Надо также исправить 165_Read_Byte_2 165_Read_Byte_3 165_Read_Byte_4

Отправлено спустя 6 минут 39 секунд:
Ещё одна особенность вылазит. Независимо от количества применённых регистров блок отрабатывает чтение четырёх байтов и запись четырёх байтов, с соответствующим временем цикла. Возможно, стоит в блок добавить два параметра пользователя, чтоб менять количество отрабатываемых чтений и записей. В стандартных некоторых можно менять количество входов или выходов, не знаю, возможно ли так в пользовательских.

Отправлено спустя 4 минуты 28 секунд:
KulibinOrsk,
KulibinOrsk писал(а):
18.03.2018{, 19:39}
Но для вариаций можно сделать скорость отработки 0.01 сек ... 0.1 сек.
Теперь есть вход _EN_Work, туда можно подать разрешение хоть раз в час, соответственно обработка данных раз в час будет.

Аватара пользователя
Sancho
Полковник
Сообщения: 3715
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 503
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#60

Сообщение Sancho » 20.03.2018{, 08:55}

seri0shka,
Ответь мне, ПОЖАЛУЙСТА, почему, ты удаляешь строку PL High после записи 595??????????????
Это не правильно!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ЧИТАЙ ДАТАШИИТ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Latch Clock (Pin 12)
Storage Latch Clock Input. A low−to−high transition on
this input latches the shift register data.

Что там происходит, если оставить как есть?
В приёмной части регистра данные висят, в первых восьми D- триггерах. По фронту на 12-м они записываются во вторые восемь, т.е на выходы.
Если этого не делать, то на выходах сигналы появятся только с началом следующего цикла, когда начнёт работать часть, относящаяся к 165.
А в теле программы может быть и несколько датчиков влажности, температуры, дисплеи и т.д., а мы всё ждём, где сигнал на выходе....
Надоело читать - исправил, без аргументов, как те англичане сейчас....
Вариант на 4 входных и выходных. Версия 2.
С настройкой необходимого количества регистров будут, но позже- нужно разобраться - как есть сейчас работают или нет???
Вложения
74НС 165 и 595_V2.ubl
ОГРОМНАЯ просьба отписываться - работает или нет.
(277.54 КБ) 67 скачиваний
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей