время заполнения 40-ка сдвиговых регистров 74hc595

sined23
Offline
Зарегистрирован: 11.12.2015

Добрый день, знатокам! Нужно одновременно в каждый момент времени управлять 320-ю выходами. Сигналы на выходах должны появляться одновременно. Хочу просчитать вариант каскадного соединения сдвиговых регистров 74hc595. Подскажите плиз как расчитать время заполнения 40-ка сдвиговых регистров 74hc595. Например с arduino uno 16MHz. Сколько нужно мкс, мс или сек для заполнения всех 40-ка регистров?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

максимальная частора spi 8мгц. дергать ногами тоже (не через digitalWrite конечно)

короче почитай посмотри

http://arduino.ru/forum/apparatnye-voprosy/bibilioteka-lcd-nokia-1616-sp...

sined23
Offline
Зарегистрирован: 11.12.2015

спасибо большое! подскажите, а если взять arduino due с частотой 84 МГц, предельная частота SPI будет 42 МГц или тоже 8 ?

Datak
Offline
Зарегистрирован: 09.10.2014

Если ног не жалко, можно подключить 40 регистров не последовательно, а в 8 параллельных цепочек по 5 регистров в каждой. Соответственно, писать данные не битами, а сразу байтами.

 

sined23
Offline
Зарегистрирован: 11.12.2015

а какой командой можно побайтно писать сразу в 8 цепочек? мк же не может сразу на 8 ног слать данные...

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

сразу на 8 ног - может...   http://arduino.ru/Tutorial/Upravlenie_portami_cherez_registry

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Нужно одновременно в каждый момент времени управлять 320-ю выходами. Сигналы на выходах должны появляться одновременно.
...даже и допуска нет по группам каким-то ? все 320 ног и - одновременно ? что за система ?

sined23
Offline
Зарегистрирован: 11.12.2015

аа вот так?

byte c = B10010;

PORTB = c;

А мк реально паралельно подаст сигналы на 8 ног без дополнительных задержек или уменьшения скорости передачи бит на каждой ноге? Т.е. регистры будут реально быстрее заполняться, нежели бы запись шла с одной ноги на весь каскад?

sined23
Offline
Зарегистрирован: 11.12.2015

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

Гриша
Offline
Зарегистрирован: 27.04.2014

для ТС - былобы проще, узнав ответ на этот вопрос.

SU-27-16 пишет:

Нужно одновременно в каждый момент времени управлять 320-ю выходами. Сигналы на выходах должны появляться одновременно.
...даже и допуска нет по группам каким-то ? все 320 ног и - одновременно ? что за система ?

Logik
Offline
Зарегистрирован: 05.08.2014

На елочную гирлянду смахивает, бегущие огни или другая какая иллюминация. Судя по вопросам - проект первый, может даже последний.

sined23
Offline
Зарегистрирован: 11.12.2015

что за TC? управление световыми приборами

sined23
Offline
Зарегистрирован: 11.12.2015

да хорош ))))

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

sined23 пишет:

аа вот так?

byte c = B10010;

PORTB = c;

А мк реально паралельно подаст сигналы на 8 ног без дополнительных задержек или уменьшения скорости передачи бит на каждой ноге? Т.е. регистры будут реально быстрее заполняться, нежели бы запись шла с одной ноги на весь каскад?

религия 40-ка каскадированных 595-ых позволяет выдать 320 сигналов ОДНОВРЕМЕННО , но для заполнения нужно время ( у тибя какая предельная частота обновления 320-ти сигналов ? )

параллельная запись в 40 регистров через мультиплексоры - уменьшит скорость записи , но создаст сдвиг по времени появления сигналов на регистрах ( у тибя какой допуск по времени на обновление сигналов на регистре 39 относительно 0-вого ? ) , да и не 595-ые здесь нужны :(

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

320 выходов - это 320 БИТ    ( 40 байт, значит 40 регистров)

На 8-ми Мегагерцах клока  ( 1.25 микросекунд периода)  передаём грубо за 320 х 1.25 = 400 микросекунд

А одновременно они все появятся по определению
( после подачи на все регистры сигналов защёлки- 12 нога  и, возможно,  разрешения выхода -13 нога).

http://atmega32-avr.com/how-to-use-a-74hc595-shift-register-with-a-using...
Вот только возможно сигнал на 40 параллельных ножек придётся как-то буферизовать....
 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

sined23 пишет:

что за TC? управление световыми приборами

неужели не хватит 30...50 Гц ( для световых приборов ) обновления состояния выходов 40-ка 595-ых ?
Жека_ТМ писАл же - прикинь , посчитай....

sined23
Offline
Зарегистрирован: 11.12.2015

порядка несколько мс. смотри, если частота SPI будет 1MHz, то время записи в 40 регисторов будет: 40 * 8 * 1/10^6 = 320 мкс. это же ваще быстро. или мои расчёты не верны?

sined23
Offline
Зарегистрирован: 11.12.2015

да! и если защёлка будет общая для всех регисторов и на неё подать HIGH после заполнения всех регисторов, то данные выйдут одновременно. 74hc595 подойдут для этого? или ещё лучше есть для данной задачи?

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

trembo пишет:

Вот только возможно сигнал на 40 параллельных ножек придётся как-то буферизовать....

аха , типа К155ЛП8 , ЛП9 , ЛП10 , ЛП11 - аналоги вражеские сам ищи

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

sined23 пишет:

да! и если защёлка будет общая для всех регисторов и на неё подать HIGH после заполнения всех регисторов, то данные выйдут одновременно.
74hc595 подойдут для этого?
или ещё лучше есть для данной задачи?

они и придуманы для одновременности-синхронности
....может и есть , тибе этого хватит :)

 

sined23
Offline
Зарегистрирован: 11.12.2015

SU-27-16 пишет:

аха , типа К155ЛП8 , ЛП9 , ЛП10 , ЛП11 - аналоги вражеские сам ищи

так 74hc595 - нормуль?

sined23
Offline
Зарегистрирован: 11.12.2015

SU-27-16 пишет:

sined23 пишет:

да! и если защёлка будет общая для всех регисторов и на неё подать HIGH после заполнения всех регисторов, то данные выйдут одновременно.
74hc595 подойдут для этого?
или ещё лучше есть для данной задачи?

они и придуманы для одновременности-синхронности
....может и есть , тибе этого хватит :)

 

ок. спасибо

Гриша
Offline
Зарегистрирован: 27.04.2014

sined23 пишет:

что за TC? управление световыми приборами

Топик Стартер - автор темы.

sined23
Offline
Зарегистрирован: 11.12.2015

так лучше заполнять с одной ноги все 40 каскадом или разбить на несколько групп и упралять несколькими ногами?

Гриша
Offline
Зарегистрирован: 27.04.2014

sined23 пишет:

так лучше заполнять с одной ноги все 40 каскадом или разбить на несколько групп и упралять несколькими ногами?

Какая нужна частота? 1сек достаточно?

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

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

Гриша
Offline
Зарегистрирован: 27.04.2014

sined23 пишет:

так лучше заполнять с одной ноги все 40 каскадом или разбить на несколько групп и упралять несколькими ногами?

группами быстрее - но алгоритм может оказаться очень сложным.

sined23
Offline
Зарегистрирован: 11.12.2015

Гриша пишет:

Какая нужна частота? 1сек достаточно?

1мс на всё

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

sined23 пишет:

так лучше заполнять с одной ноги все 40 каскадом или разбить на несколько групп и упралять несколькими ногами?

тогда появится разница по времени !!! читай выше

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

для видеоЭффектов здесь время не важно ( МК обеспечит частоты гораздо больше чем глазки различают )
мне кажется , что разделение на группы не сыграет рояля для глазков...
а вот буферизацию сигналов ТАКТ и ЗАЩЁЛКА можно обойти разбиением на группы регистров , НО !
...придётся ВЫЧИСЛИТЬ по ДШ - сколько входов 595-го гарантированно потянет выходной пин ардуины ( без перегрузок ) - схемотехника , однако.....

Гриша
Offline
Зарегистрирован: 27.04.2014

для SU-27-16,  пост 27

sined23 пишет:

Гриша пишет:

Какая нужна частота? 1сек достаточно?

1мс на всё

Гриша
Offline
Зарегистрирован: 27.04.2014

если вытаскивать из памяти нечто заранее определенное (зашитое в МК) и написать на чистом СИ - можно и 40*8

sined23
Offline
Зарегистрирован: 11.12.2015

а можете плиз поподробнее написать про буферизацию? непонятно что имеется ввиду...

буферизацию же делают регистры у себя до тех пор пока не подашь сигнал защёлки...

sined23
Offline
Зарегистрирован: 11.12.2015

Гриша пишет:

если вытаскивать из памяти нечто заранее определенное (зашитое в МК) и написать на чистом СИ - можно и 40*8

первичные данные будут идти с компа. мк должен просто управлять

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

не вникал , не нужно было.....
СССР
К155   по выходу тянет 10 входов К155
К555   по выходу тянет 20 входов К555
К1533 по выходу тянет 40 входов К1533
К531   по выходу тянет 10 входов К531

сколько пин ардуины потянет входов 595-го ? не считал.... да и не буду - сам считай :)

Гриша
Offline
Зарегистрирован: 27.04.2014

SU-27-16 пишет:

сколько пин ардуины потянет входов 595-го ? не считал.... да и не буду - сам считай :)

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

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

sined23 пишет:

а можете плиз поподробнее написать про буферизацию? непонятно что имеется ввиду...

буферизацию же делают регистры у себя до тех пор пока не подашь сигнал защёлки...

другая буферизация !!!!!! - лучше говорить - усиление сигнала
при каскаде в 40 595-ых им нужно дать сигналы "такт" , "защёлка" ( "данные" - регистр от регистра их сам сформирует - т.е. - САМ ПЕРЕДАСТ :)-   )
...ТАК ВОТ - при передаче сигнала "такт" ( как и "защёлка" )  пин ардуины может не потянуть , не смочь , не смогнуть !!!!! потянуть все 40 входов 595-ых :(

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Гриша пишет:

SU-27-16 пишет:

сколько пин ардуины потянет входов 595-го ? не считал.... да и не буду - сам считай :)

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

моя вас уважает , но не лучше ли поискать аналоги из #34 - логические МС всё-таки , нет ?

Гриша
Offline
Зарегистрирован: 27.04.2014

SU-27-16, без обид, посмотрите пост 30 и 35 и если можно, комменты на них, особенно 30.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

нога меги тянет до 40ма, рекомендуют не более 20ма. Сколько "жрет" один вход КМОП 595? микроампер, или меньше? :)

Гриша
Offline
Зарегистрирован: 27.04.2014

SU-27-16 пишет:

Гриша пишет:

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

... но не лучше ли поискать аналоги из #34 - логические МС всё-таки , нет ?

бессмысленно лепить огород, просто очень быстро усилить ток и все - транзистора хватит, а вот время 1МС - мне самому интересно, я в цифре не силен - учусь.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Гриша пишет:

SU-27-16, без обид, посмотрите пост 30 и 35 и если можно, комменты на них, особенно 30.

да мне ли на вас ? :) какие обиды ?
..посмотрел , мне проще корпус логики впаять , чем эмПовт рассчитывать....
или я вас не так понял :(

Гриша
Offline
Зарегистрирован: 27.04.2014

Arhat109-2 пишет:

нога меги тянет до 40ма, рекомендуют не более 20ма. Сколько "жрет" один вход КМОП 595? микроампер, или меньше? :)

емкостей печатки никто не отменял - нужен ток (легко проверить после сборки, заложив вмонтаж буферный элемент)! там скорость 1мс - на все!!!!

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Arhat109-2 пишет:

нога меги тянет до 40ма, рекомендуют не более 20ма. Сколько "жрет" один вход КМОП 595? микроампер, или меньше? :)

блиииииин !
чему равен коэффициент размножения от пина ардуины на вход 595-го ????!!!!!!!!!
:)
int ? :)

Гриша
Offline
Зарегистрирован: 27.04.2014

SU-27-16 пишет:

да мне ли на вас ? :) какие обиды ?
..посмотрел , мне проще корпус логики впаять , чем эмПовт рассчитывать....
или я вас не так понял :(

все верно, просто у меня с аналогом немного лучше - любой транзистор считать очень просто, схем море, место займет минимум...

Закон Ома - 80% максимального тока транзистора и напряжение питания. Делим одно на другое получаем номинал сопрота. (если необходимо, отнимаем напряжение падения коллектор-эмиттер)

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Гриша пишет:

SU-27-16 пишет:

да мне ли на вас ? :) какие обиды ?
..посмотрел , мне проще корпус логики впаять , чем эмПовт рассчитывать....
или я вас не так понял :(

все верно, просто у меня с аналогом немного лучше - любой транзистор считать очень просто, схем море, место займет минимум...

Закон Ома - 80% максимального тока транзистора и напряжение питания. Делим одно на другое получаем номинал сопрота. (если необходимо, отнимаем напряжение падения коллектор-эмиттер)

пусть ТС решает.....
...моя бы микруху для этого впаял , не люблю дискретные эл-ты :(

Гриша
Offline
Зарегистрирован: 27.04.2014

sined23 пишет:

Гриша пишет:

Какая нужна частота? 1сек достаточно?

1мс на всё

вопрос еще открыт....

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Arhat109-2 пишет:

нога меги тянет до 40ма, рекомендуют не более 20ма. Сколько "жрет" один вход КМОП 595? микроампер, или меньше? :)

я же не удивлю вас своими познаниями ?
коэфф "размножения выходов" != ток выхода / ток входа
не продолжайте ! мы поняли друг друга :)

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Гриша пишет:

sined23 пишет:

Гриша пишет:

Какая нужна частота? 1сек достаточно?

1мс на всё

вопрос еще открыт....

мне кажется - НЕТ !
ТС это озвучил с запасом в 500 раз.... может быть не просчитав....
ждём ТС-а ? :)

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

320 выходов =320бит. / 8 = 40 байт или 40 шт HC595. Если их все повесить на ОДНУ ногу дуньки, то потребуется 320 пинков от дуньки по нескольку команд каждая: считать байт из памяти (косвенно-индексным автоинкрементом), вычленить из него битик (сдвинуть во флаг), запихнуть флаг в ногу, подать свисток регистрам на сдвиг, декрементировать счетчик, проверить всЁ? нет: повторить все сначала. Итого 4-5 команд на ассемблере. На "С" будет с десяток. Итого около 3000 команд "влоб" на заранее подготовленном массиве данных, как миниум из 40 байт. На 16Мгц получим время записи в регистры в районе 190мксек. Устроит?

Те же 40 байт можно распихать по 8 ногам одного порта. Получится 5 регистров на каждую ногу и 40 байтовых пинков на продвижение. Занято будет 8 дунькиных лапок. Для записи предварительно подготовленного массива из 40 байт потребуется .. 40 команд записи в простом цикле: взять байт - записать, пихнуть, декрементировать счетчик, проверить всё, повторить. Итого 300 команд или около 20мксек.

Если взять Мегу2560, то у неё можно наскрести все 5 портов и повесить все 40 регистров по ОДНОМУ на лапку порта. Займем 40 лапок из 70. И потребуются теже 40 байт записи, но уже только 8 пинков регистрам. Получится за 15-18мксек.

Тут только одна "загвоздка" - пропихивать надо подготовленные данные. Их бы ещё понять как ТС собирается "готовить".. вот на этот процесс может уйти куда как больше времени, про что никто как-то не обратил внимания. Ибо стрелять 40 упакованных байт или 320 по биту на байт, да каждую миллисекунду .. то бишь 40/320 ТЫСЯЧ шт в сек .. их хде столько брать "предполагается"?  :)

Гриша
Offline
Зарегистрирован: 27.04.2014

SU-27-16 пишет:

мне кажется - НЕТ !
ТС это озвучил с запасом в 500 раз.... может быть не просчитав....
ждём ТС-а ? :)

sined23 пишет:

Гриша пишет:

если вытаскивать из памяти нечто заранее определенное (зашитое в МК) и написать на чистом СИ - можно и 40*8

первичные данные будут идти с компа. мк должен просто управлять

ИМХО

даже если и можно, но не с Ардуино!!!! Ждать ТС бессмысленно - тут другое схемотехническое решение нужно искать