вот на этот процесс может уйти куда как больше времени, про что никто как-то не обратил внимания. Ибо стрелять 40 упакованных байт или 320 по биту на байт, да каждую миллисекунду .. то бишь 40/320 ТЫСЯЧ шт в сек .. их хде столько брать "предполагается"? :)
спроси у ТС :)
Да почему "не справится"-то? Вполне решаемая задача .. самый оптимальный вариант занять 1 порт целиком. Подойдет любая дунька, все регистры открывать разом с отдельной ноги. К-т допустимого разветвления тут думаю даже и прикидывать не стоит, ибо КМОП. Кончилаль уже К155 серия .. тут тока один вопрос: откуда он столько битиков наковыряет?
Но .. если это некий автомат гоняющий подготовленный массив (пусть и большой), то Мега2560 - самое то. 256кб флеша, в который его же и прошить как кусок проги .. и пусть "шепелявит" себе регистрами .. :)
Да почему "не справится"-то? Вполне решаемая задача .. самый оптимальный вариант занять 1 порт целиком. Подойдет любая дунька, все регистры открывать разом с отдельной ноги. К-т допустимого разветвления тут думаю даже и прикидывать не стоит, ибо КМОП. Кончилаль уже К155 серия .. тут тока один вопрос: откуда он столько битиков наковыряет?
Но .. если это некий автомат гоняющий подготовленный массив (пусть и большой), то Мега2560 - самое то. 256кб флеша, в который его же и прошить как кусок проги .. и пусть "шепелявит" себе регистрами .. :)
Ну .. с компа, так с компа .. вопрос КАК они оттудова "идти будут". С компа, как вариант - перезаливать скетч в Мегу .. вполне приличная пачка в 256 килобайт за раз. :)
Ну .. с компа, так с компа .. вопрос КАК они оттудова "идти будут". С компа, как вариант - перезаливать скетч в Мегу .. вполне приличная пачка в 256 килобайт за раз. :)
сколько времени сожрет загрузка (256 килобайт за раз) с учетом таймингов USB и исполнения кода - не уверен, но 1мс пролетает мимо Ардуино.... и нагружает комп на 100% и имеет высший приоритет - тут бы компу управиться с шиной USB, больше нужно грузить, чтоб комп остыть успел )))))))))))))))
А если серъезно, то передать в дуньку 40 байт быстрее чем за миллисекунду - тоже не проблема.
и чего ТС удумал взяться за такую задачу?! Я в смысле этого топика. Если он вообще возник - шансов у ТС решить эту проблуму самому - почти нет. Даже если перечитает все посты топика, и поймет, что теоретически задача выполнима, он решит ее не раньше чем через год, при добросовестном стремлении.
Гриша , для развития , если у вас есть время.....
почему нельзя послать на эту хрень в 320 выходных сигналов код раз в секунду ? лучше - 50 раз в секунду....
я заблудился , чесна !!!! :(
сорри гайзз) я тут отошёл, а тут такое)) я так понял мнения разошлись с синхрой и с защёлкой? кто-то говорит надо их усиливать для 40-ка регисторов, а кто-то - ничего не надо делать. так как правильно то?
А я согласен с Гришей, не справится ТС с задачей. Только на словах всё гладко. На деле грамотно спроектировать разводку платы на 40 корпусов задача для профессионала, учитывая что всё это будет работать на высокой частоте, нагружены выходы скорее всего будет по полной, большие токи, большая частота -огромное раздолье для ловли больших и малых глюков. Это ещё не учитывая вообще сомнительную возможность вешать много корпусов на одну синхру например. Паразитная ёмкость входов регистров и проводников , паразитная индуктивность лихо начнёт давить фронты и создавать вч-дребезг, в общем всё сложно...
А я согласен с Гришей, не справится ТС с задачей. Только на словах всё гладко. На деле грамотно спроектировать разводку платы на 40 корпусов задача для профессионала, учитывая что всё это будет работать на высокой частоте, нагружены выходы скорее всего будет по полной, большие токи, большая частота -огромное раздолье для ловли больших и малых глюков. Это ещё не учитывая вообще сомнительную возможность вешать много корпусов на одну синхру например. Паразитная ёмкость входов регистров и проводников , паразитная индуктивность лихо начнёт давить фронты и создавать вч-дребезг, в общем всё сложно...
320 ног вообще не показатель, здесь определяет все время, отправлять нужно не 40 байт, а Х*40 , а то комп опухнет работать на USB.
самое простое: подключаем 8 групп по 5шт к порту контроллера, отправляем сразу байт, защелкиваем в регистр. И так 5х8 раз, потом отправляем разрешение на выход - и они все сменились, разом !!! Делаем запрос на комп и получаем следующую пачку (тут необходимо считать, сколько пачек за раз мы способны принять) - в 1 мс, лично Вам, задав такой вопрос на форуме, будет очень проблемотично уложиться (никто из нас специально считать такты выполнения мк не будет). Если хотите 1Гц получить - без проблем, но 1кГц - требует серьезного подхода - это Вам в раздел "ищу исполнителя". Да и даже для 1Гц никто ничего не напишет - максимум где поискать, как вопрос задать, может чего почитать (уже ссылкой делились)
для прокачки 40шт стробов необходимо поставить драйверы (Shift Register Clock, Storage Register Clock ): убежден, что будет достаточно простых транзисторов.
разводка питания - можно новый топик начинать
блок питания - а что за нагрузка??? конкретные параметры - может там 1000В
sined23, пост 78 - судя по написанному, Вы вообще не поняли, что сдесь обсуждали!!!!!!
топик называется:
время заполнения 40-ка сдвиговых регистров 74hc595
и это время нужно считать - это не так просто, как кажется. Выше написано, что можно уложиться и в 1мс, но с танцами с бубном и не средствами програмирования "под Ардуино", а в 1с достаточно просто.
Мой ХШ ярко высвечивает предыдущую надпись: "нифига ТС-у ДЕЛАТЬ не надо, ему в курсовик ЧТО написать?" :)
to ТС:
Если у вас не стоит вопрос КАК загнать эти 40 байт в дуньку правильно, то ответ на вопрос поставленный в заголовок я вам УЖЕ привел в #49. Итого:
минимально записать и потом показать одновременно можно за время около 20 МИКРОСЕКУНД при тактовой в 16 МЕГАГЕРЦ. Всё, так и напишите в пояснительной записке к курсовику. :)
Все остальные вопросы, как "всплывут" - приходите ещё. А пока это действительно вопросы не для уровня ТС. Не грузите парня ерундой.
Кстати, а почему никто не упомянул вариант решения задачи на дешифраторах? Понадобится 9 линий данных. Если брать 4 на 16 бит дешифраторы, то понадобится 20 корпусов. Насколько я помню они каскадируются так же просто, как и 595 сдвиговые. И со скоростью уже точно проблем не будет, это-же паралельный вывод данных.
Кстати, а почему никто не упомянул вариант решениязадачи на дешифраторах? Понадобится 9 линий данных. Если брать 4 на 16 бит дешифраторы, то понадобится 20 корпусов. Насколько я помню они каскадируются так же просто, как и 595 сдвиговые. И со скоростью уже точно проблем не будет, это-же паралельный вывод данных.
Угу, и все с этой платой увязать, а Ардуино рядом положить – и пусть комп сам рулит, все одно с него данные поступают, а не с флешки.
Так как Latch дергается только когда все данные отправлены по нему и можно судить сколько времени нужно для отправки 40байт через spi с дерганьем ноги latch: 75 мкс. Данные измерены с пинов ардуины, это не симуляция или предположения
На 8-ми Мегагерцах клока ( 1.25 микросекунд периода) передаём грубо за 320 х 1.25 = 400 микросекунд
Ошибся на порядок, конечно период 0.125, поэтому 40 микросекунд на всё-про-всё....
Скорости SPI для "бытовых" применений хватает выше крыши.....
Даже можно снижать достаточно сильно.
Представляю себе какие звоны могут возникнуть после разводки платы на 8-ми мегагерцах.
А подать сигнал на 40 входов не проблемма, выходного тока в статике хватит
там главное чтобы фронты не завалить из-за ёмкости параллельных входов.
Не читая пдф: допустим 10 пик минимум с разводкой на каждом, умножим на 40 - уже 400.
Почти как средний полевик...... Формировать надо бы эти фронты....
Вроде бывают и 16-ти разрядные регистры, 20 корпусов- это солидный выигрыш
да плату еще надо уметь разводить для такой частоты цифрового сигнала так как линии длинные получатся. предполагаю опитимальнее еще применить логику вроде И, ИЛИ или двух НЕ, и с них уже подавать clock и lacth. например на 1 повторитель 8 штук 74HC595
а можно пояснения для тех, кто в коде несилен? пост 91
Как я понял, SPI постоянно слал в порт по кругу 0xAB??? Иначе говоря гнал один и тот же известный байт?
void spi_write(byte c)
{
SPI_ON; // запустить SPI
SPDR = c; //передать байт с
SPI_WAIT; // ожидать окончания передачи, модуль сам все передаст...
SPI_OFF; // остановить работу SPI
} // ниже выполнение других программ по необходимости (подготовка нового байта "с")
узнал что ногодрыг тоже максимум 8 мгц, а раз такой быстрый то можно переписать немного либу для nrf24l01 и использовать любые пины, так как неудобная немного печатка получается
sined23 ,
может быть так проше будет ? про ленту WS2812 ?
http://samopal.pro/led-pixel1/
вот на этот процесс может уйти куда как больше времени, про что никто как-то не обратил внимания. Ибо стрелять 40 упакованных байт или 320 по биту на байт, да каждую миллисекунду .. то бишь 40/320 ТЫСЯЧ шт в сек .. их хде столько брать "предполагается"? :)
спроси у ТС :)
ИМХО
тему можно закрыть!!! пост 49 и 50
судя по вопросу, ТС не в состоянии справиться с поставленной задачей
ИМХО
Да почему "не справится"-то? Вполне решаемая задача .. самый оптимальный вариант занять 1 порт целиком. Подойдет любая дунька, все регистры открывать разом с отдельной ноги. К-т допустимого разветвления тут думаю даже и прикидывать не стоит, ибо КМОП. Кончилаль уже К155 серия .. тут тока один вопрос: откуда он столько битиков наковыряет?
Но .. если это некий автомат гоняющий подготовленный массив (пусть и большой), то Мега2560 - самое то. 256кб флеша, в который его же и прошить как кусок проги .. и пусть "шепелявит" себе регистрами .. :)
не согласен !
с кем ?
с обоими !!!!
"Собачье сердце"
ТС может быть и не может , но вы - оба - можете.....
:)
Да почему "не справится"-то? Вполне решаемая задача .. самый оптимальный вариант занять 1 порт целиком. Подойдет любая дунька, все регистры открывать разом с отдельной ноги. К-т допустимого разветвления тут думаю даже и прикидывать не стоит, ибо КМОП. Кончилаль уже К155 серия .. тут тока один вопрос: откуда он столько битиков наковыряет?
Но .. если это некий автомат гоняющий подготовленный массив (пусть и большой), то Мега2560 - самое то. 256кб флеша, в который его же и прошить как кусок проги .. и пусть "шепелявит" себе регистрами .. :)
ахаа ! да !
Кончилаль уже К155 серия ..
неприличными словами не вырожаться !
читаем ПОСТ 50 !!!!!!!!!!!!
читаем ПОСТ 50 !!!!!!!!!!!!
как прочитаете, можем оффтопнуть, немного ))))))))))
тут другое схемотехническое решение нужно искать
чуть-чуть , если времени есть....
:)
Ну .. с компа, так с компа .. вопрос КАК они оттудова "идти будут". С компа, как вариант - перезаливать скетч в Мегу .. вполне приличная пачка в 256 килобайт за раз. :)
А если серъезно, то передать в дуньку 40 байт быстрее чем за миллисекунду - тоже не проблема.
Ну .. с компа, так с компа .. вопрос КАК они оттудова "идти будут". С компа, как вариант - перезаливать скетч в Мегу .. вполне приличная пачка в 256 килобайт за раз. :)
сколько времени сожрет загрузка (256 килобайт за раз) с учетом таймингов USB и исполнения кода - не уверен, но 1мс пролетает мимо Ардуино.... и нагружает комп на 100% и имеет высший приоритет - тут бы компу управиться с шиной USB, больше нужно грузить, чтоб комп остыть успел )))))))))))))))
А если серъезно, то передать в дуньку 40 байт быстрее чем за миллисекунду - тоже не проблема.
и чего ТС удумал взяться за такую задачу?! Я в смысле этого топика. Если он вообще возник - шансов у ТС решить эту проблуму самому - почти нет. Даже если перечитает все посты топика, и поймет, что теоретически задача выполнима, он решит ее не раньше чем через год, при добросовестном стремлении.
Мой ХШ говорит что "курсовик у него горит" .. не надо ему "делать" .. накатать надо тексту побольше. :)
Гриша , для развития , если у вас есть время.....
почему нельзя послать на эту хрень в 320 выходных сигналов код раз в секунду ? лучше - 50 раз в секунду....
я заблудился , чесна !!!! :(
сорри гайзз) я тут отошёл, а тут такое)) я так понял мнения разошлись с синхрой и с защёлкой? кто-то говорит надо их усиливать для 40-ка регисторов, а кто-то - ничего не надо делать. так как правильно то?
Правильно - это детально изложить чего хочется, а не развлекать народ заставляя их доставать свои ХШ с полок .. :)
Правильно - это детально изложить чего хочется, а не развлекать народ заставляя их доставать свои ХШ с полок .. :)
да не вопрос. комп передает ардуино по serial 40 байт инфы каждые X времени.
задача ардуино в соответствии с входной инфой заполнить сдвиговые регистры и по окончанию дернуть защёлку.
потом поступают ещё 40 байт - опять ардуино заполняет ренистры, дергает защёлку
и т.д.
40байт = 320 бит, т.е. 320 состояний
вопрос в передачи инфы ардуино не стоит.
вопрос именно в 320-и ногах
А я согласен с Гришей, не справится ТС с задачей. Только на словах всё гладко. На деле грамотно спроектировать разводку платы на 40 корпусов задача для профессионала, учитывая что всё это будет работать на высокой частоте, нагружены выходы скорее всего будет по полной, большие токи, большая частота -огромное раздолье для ловли больших и малых глюков. Это ещё не учитывая вообще сомнительную возможность вешать много корпусов на одну синхру например. Паразитная ёмкость входов регистров и проводников , паразитная индуктивность лихо начнёт давить фронты и создавать вч-дребезг, в общем всё сложно...
А я согласен с Гришей, не справится ТС с задачей. Только на словах всё гладко. На деле грамотно спроектировать разводку платы на 40 корпусов задача для профессионала, учитывая что всё это будет работать на высокой частоте, нагружены выходы скорее всего будет по полной, большие токи, большая частота -огромное раздолье для ловли больших и малых глюков. Это ещё не учитывая вообще сомнительную возможность вешать много корпусов на одну синхру например. Паразитная ёмкость входов регистров и проводников , паразитная индуктивность лихо начнёт давить фронты и создавать вч-дребезг, в общем всё сложно...
ну а кто здесь профессионал? :) есть такие?)
ТС , вы так и не описали ТЗ !!!!
задача - как правильно сделать 320 ног? как правильно подключить ардуино к регисторам?
может использовать не регистры, а что-то другое...
нужен реальный совет профи....
конечно я сам то не профи, иначе бы вас не спрашивал...
так и делай ! сдвиг на 40 регистров....
...остальные измышления - какие-то виртуальные....
....если чё не получится - вали на миня :)
так и делай ! сдвиг на 40 регистров....
...остальные измышления - какие-то виртуальные....
....если чё не получится - вали на миня :)
спасибо кэп! выручил)
как записать ? это одно.... что записать - это другое - чего моя и не понял :(
так и делай ! сдвиг на 40 регистров....
...остальные измышления - какие-то виртуальные....
....если чё не получится - вали на миня :)
спасибо кэп! выручил)
ааааа, то !!!
моя - ХЗ , старшие застращали :(
вопрос именно в 320-и ногах
320 ног вообще не показатель, здесь определяет все время, отправлять нужно не 40 байт, а Х*40 , а то комп опухнет работать на USB.
самое простое: подключаем 8 групп по 5шт к порту контроллера, отправляем сразу байт, защелкиваем в регистр. И так 5х8 раз, потом отправляем разрешение на выход - и они все сменились, разом !!! Делаем запрос на комп и получаем следующую пачку (тут необходимо считать, сколько пачек за раз мы способны принять) - в 1 мс, лично Вам, задав такой вопрос на форуме, будет очень проблемотично уложиться (никто из нас специально считать такты выполнения мк не будет). Если хотите 1Гц получить - без проблем, но 1кГц - требует серьезного подхода - это Вам в раздел "ищу исполнителя". Да и даже для 1Гц никто ничего не напишет - максимум где поискать, как вопрос задать, может чего почитать (уже ссылкой делились)
для прокачки 40шт стробов необходимо поставить драйверы (Shift Register Clock, Storage Register Clock ): убежден, что будет достаточно простых транзисторов.
разводка питания - можно новый топик начинать
блок питания - а что за нагрузка??? конкретные параметры - может там 1000В
самое простое 320*10мА -3,2А это уже серьезно.
как записать ? это одно.... что записать - это другое - чего моя и не понял :(
дружище биты записать...
смотри, пример из двух регистров. комп на ардуионо передал два байта 234 и 75 (OCT). т.е. последовательность бит такова:
10011100 00111101
эти биты записываются в два регистра. защёлкиваем. на выходах получаем там где 0 - нет сигнала, там, где 1 - сигнал 5в
всё же понятно уже должно быть))
как записать ? это одно.... что записать - это другое - чего моя и не понял :(
дружище биты записать...
смотри, пример из двух регистров. комп на ардуионо передал два байта 234 и 75 (OCT). т.е. последовательность бит такова:
10011100 00111101
эти биты записываются в два регистра. защёлкиваем. на выходах получаем там где 0 - нет сигнала, там, где 1 - сигнал 5в
всё же понятно уже должно быть))
КЛАССНО !
sined23, пост 78 - судя по написанному, Вы вообще не поняли, что сдесь обсуждали!!!!!!
топик называется:
время заполнения 40-ка сдвиговых регистров 74hc595
и это время нужно считать - это не так просто, как кажется. Выше написано, что можно уложиться и в 1мс, но с танцами с бубном и не средствами програмирования "под Ардуино", а в 1с достаточно просто.
и при чём здесь вывод в порты и чтение из сериала ?
...в смысле - про скорости ?
по поводу времени заполнения мне ответили в начале. далее тема зашла в реализацию... в соединение регистров...
а сейчас что-то всё стало ниочем)) надо закрывать тему тогда...
и при чём здесь вывод в порты и чтение из сериала ?
...в смысле - про скорости ?
да забей на сериал. представь, что байты уже на ардуино...
и при чём здесь вывод в порты и чтение из сериала ?
...в смысле - про скорости ?
за всем стоит время обработки МК преврящаясь в частоту обновления
да забей на сериал. представь, что байты уже на ардуино...
пост 49, там много вариантов
и при чём здесь вывод в порты и чтение из сериала ?
...в смысле - про скорости ?
за всем стоит время обработки МК преврящаясь в частоту обновления
"а я её за что держал ?"
ПОРУЧИК ! - быстрее
ПОРУЧИК ! - левееее
ПОРУЧИК ! - медленнееееее
Мадам ? это вы миня еб*те или я вас ?
ничё личного !!!!!!!!!!!!! :)
Мой ХШ ярко высвечивает предыдущую надпись: "нифига ТС-у ДЕЛАТЬ не надо, ему в курсовик ЧТО написать?" :)
to ТС:
Если у вас не стоит вопрос КАК загнать эти 40 байт в дуньку правильно, то ответ на вопрос поставленный в заголовок я вам УЖЕ привел в #49. Итого:
минимально записать и потом показать одновременно можно за время около 20 МИКРОСЕКУНД при тактовой в 16 МЕГАГЕРЦ. Всё, так и напишите в пояснительной записке к курсовику. :)
Все остальные вопросы, как "всплывут" - приходите ещё. А пока это действительно вопросы не для уровня ТС. Не грузите парня ерундой.
Кстати, а почему никто не упомянул вариант решения задачи на дешифраторах? Понадобится 9 линий данных. Если брать 4 на 16 бит дешифраторы, то понадобится 20 корпусов. Насколько я помню они каскадируются так же просто, как и 595 сдвиговые. И со скоростью уже точно проблем не будет, это-же паралельный вывод данных.
Кстати, а почему никто не упомянул вариант решения задачи на дешифраторах? Понадобится 9 линий данных. Если брать 4 на 16 бит дешифраторы, то понадобится 20 корпусов. Насколько я помню они каскадируются так же просто, как и 595 сдвиговые. И со скоростью уже точно проблем не будет, это-же паралельный вывод данных.
Угу, и все с этой платой увязать, а Ардуино рядом положить – и пусть комп сам рулит, все одно с него данные поступают, а не с флешки.
ну как то так
Clock
Data
Latch
Так как Latch дергается только когда все данные отправлены по нему и можно судить сколько времени нужно для отправки 40байт через spi с дерганьем ноги latch: 75 мкс. Данные измерены с пинов ардуины, это не симуляция или предположения
Сам себя цитирую, сам исправляю......
На 8-ми Мегагерцах клока ( 1.25 микросекунд периода) передаём грубо за 320 х 1.25 = 400 микросекунд
Ошибся на порядок, конечно период 0.125, поэтому 40 микросекунд на всё-про-всё....
Скорости SPI для "бытовых" применений хватает выше крыши.....
Даже можно снижать достаточно сильно.
Представляю себе какие звоны могут возникнуть после разводки платы на 8-ми мегагерцах.
А подать сигнал на 40 входов не проблемма, выходного тока в статике хватит
там главное чтобы фронты не завалить из-за ёмкости параллельных входов.
Не читая пдф: допустим 10 пик минимум с разводкой на каждом, умножим на 40 - уже 400.
Почти как средний полевик...... Формировать надо бы эти фронты....
Вроде бывают и 16-ти разрядные регистры, 20 корпусов- это солидный выигрыш
да плату еще надо уметь разводить для такой частоты цифрового сигнала так как линии длинные получатся. предполагаю опитимальнее еще применить логику вроде И, ИЛИ или двух НЕ, и с них уже подавать clock и lacth. например на 1 повторитель 8 штук 74HC595
а можно пояснения для тех, кто в коде несилен? пост 91
Как я понял, SPI постоянно слал в порт по кругу 0xAB??? Иначе говоря гнал один и тот же известный байт?
я правильно описал?
ага. нужно было что то слать же
75 мкс занимает отправка 40 байт - ответ на название темы, сколько займет подготовка данных другой вопрос
ага. нужно было что то слать же
спасибо! может даже и запомню... пока не используешь - забываешь... много хороших вещей забывается, а потом репу чешешь "где бы взять" ))))))))))))
сам забываю. поэтому сюда код и кинул
к тому же когда проверял еще в этой теме
http://arduino.ru/forum/apparatnye-voprosy/bibilioteka-lcd-nokia-1616-sp...
узнал что ногодрыг тоже максимум 8 мгц, а раз такой быстрый то можно переписать немного либу для nrf24l01 и использовать любые пины, так как неудобная немного печатка получается
jeka_tm, trembo, Datak, спасибо вам большое! Ваши ответы очень полезные и адекватные!
Остальные, к сожалению, не о чём ((