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

скорость GPIO

Добавлено: Вт май 15, 2012 14:06:20
RusL
Здраствуйте.
Хотел бы уточнить, может кто замечал, на каких контроллерах - какая "досягаемая" скорость
"ногодрыгания" - к чему может быть привязанна?
В процентах от тактовой частоты например, либо для определенного семейства микросхем?
Разумеется без учета программной части...

Re: скорость GPIO

Добавлено: Вт май 15, 2012 14:36:59
Psych
1 команда на поднятие ноги вверх, 1 команда на "поднятие вниз" --- вот сколько тактов отъедают эти 2 команды--вот столько и будет длительность периода.

Re: скорость GPIO

Добавлено: Вт май 15, 2012 14:43:40
Alkul
RusL писал(а):Здраствуйте.
Хотел бы уточнить, может кто замечал, на каких контроллерах - какая "досягаемая" скорость
"ногодрыгания" - к чему может быть привязанна?

Разумеется без учета программной части...
"Скорость ногодрыгания" определяется тем, сколько тактов требуется на машинный цикл и сколько машинных циклов выполняется команда вывода в порт.
Например, на контроллерах x51 на один машинный цикл требуется 12 тактов, команда вывода в порт требует 2 машинных цикла, т.е. команда будет выполнена за 24 такта. При тактовой частоте, к примеру, 12МГц команда будет выполнена за 2мс
Для генерации меандра требуется циклично подавать две команды - установку "1" и сброс в "0", значит, один период меандра составит 4мс, частота меандра, соответственно, 250кГц. Но это в теории - если Вам нужно сгенерировать небольшую пачку импульсов. Если нужна длительная генерация - не обойтись без организации цикла, то есть, ввести команду возврата на начало цикла. Эта команда увеличит скважность импульсов, поэтому для сохранения меандра потребуется ввести задержку для увеличения длительности импульса.
У AVRов на машинный цикл требуется 1 такт, команда вывода в порт выполняется за один машинный цикл. Поэтому в теории возможна генерация меандра с частотой, в два раза меньшей тактовой. Но это лишь в теории - смотрите объяснения выше.

И не учитывать программную часть никак не получится.

Re: скорость GPIO

Добавлено: Вт май 15, 2012 14:53:26
RusL
В данном случае кроме как тактов на код и время на переключение - больше нет никаких ограничений?
Т.е. имея проц в 200 мГц с переключением "за такт" - в теории можно достичь 100 мГц?

Re: скорость GPIO

Добавлено: Вт май 15, 2012 15:01:45
Alkul
RusL писал(а):В данном случае кроме как тактов на код и время на переключение - больше нет никаких ограничений?
В теории - нет, на практике при работе на высоких частотах вряд ли удастся получить прямоугольные импульсы - нужно смотреть в параметрах конкретного контроллера время нарастания и время спада фронтов. Ну и схемотехника выходных цепей будет играть существенную роль в форме выдаваемого сигнала...
Вы вопрос конкретизируйте. Или это вопрос из серии: "А что будет, если в футбольный мяч под давлением закачать вакуум?" :))
RusL писал(а):имея проц в 200 мГц
Двести миллигерц? Интересный проц :))

Re: скорость GPIO

Добавлено: Вт май 15, 2012 15:10:22
RusL
По цепям это понятно, это другое :))
Грубо говоря есть AT91SAM9260, но к нему пока нету флеши :)))
Вот и думаю есть ли смысл собирать дальше и пытать или с него можно выжать хотяб процентов 10 от тактовой частоты
А проц - да - интересный - бум перемещения планет отслеживать :)))

Re: скорость GPIO

Добавлено: Вт май 15, 2012 15:18:31
ploop
Т.е. имея проц в 200 мГц с переключением "за такт" - в теории можно достичь 100 мГц?
Нет. Цикл чем организовывать?

Re: скорость GPIO

Добавлено: Вт май 15, 2012 15:24:07
RusL
ploop писал(а):
...достичь 100 мГц?
Нет. Цикл чем организовывать?
Ну это образно...

Re: скорость GPIO

Добавлено: Вт май 15, 2012 15:28:18
Alkul
RusL писал(а):Ну это образно...
Схемотехника и программирование "образности" не приемлют, это Вам не литературное творчество. Если реализация невозможна, то она невозможна.

Re: скорость GPIO

Добавлено: Вт май 15, 2012 15:35:02
RusL
Ну хорошо, допустим по такту на вкл выкл вызов и переход(кажется), итого 50 МГц (из 200) снять реально?

Re: скорость GPIO

Добавлено: Вт май 15, 2012 15:37:19
Gudd-Head
Если там есть режим FAST PWM или есть выход тактов ядра, то можно получить 100 или 200 МГц соотв.

Re: скорость GPIO

Добавлено: Вт май 15, 2012 15:45:43
Satyr
Ждите LPC43xx . там с ногодрыганием будет полная фантастика :))

Re: скорость GPIO

Добавлено: Вт май 15, 2012 15:58:00
Gudd-Head
Глянул ДШ. Что вы людям мозги еб*те, у вас в кристалле 2 тактовые петли ФАПЧ с выводом на 3 пина и скоростью до 240 МГц.

Re: скорость GPIO

Добавлено: Вт май 15, 2012 16:16:19
RusL
Gudd-Head писал(а): ФАПЧ с выводом на 3 пина и скоростью до 240 МГц.
Если бы все ноги были под ФАПЧ...
В моем случае трабл в том, что нужно управлять гораздо большим количеством устройств с жесткой синхронизацией, и естественно все устройства критичны ко времени

Re: скорость GPIO

Добавлено: Вт май 15, 2012 17:33:20
Psych
ПЛИС

Re: скорость GPIO

Добавлено: Вт май 15, 2012 17:51:33
koyodza
RusL писал(а):Грубо говоря есть AT91SAM9260
Это ARM9, у него доступ к GPIO происходит через внутренние шины, которые работают на частоте значительно ниже частоты ядра. Именно с этим МК я не работал, но другие МК такого класса имеют по 10 и больше тактов на одно обращение к GPIO, к тому же это время зависит от кучи разных факторов типа выравнивания данных и вероятности попадания в кэш предварительной выборки. Вероятнее всего выше 10МГц ногодрыгом здесь не получится.
МК с ядром Cortex-M3 в этом отношении получше, там в среднем 2-3 такта на одно обращение к GPIO
В любом случае если нужна очень высокая скорость, то нужно смотреть в сторону использования аппаратных модулей контроллера (DMA, таймеры, возможно SPI/SSP или ещё что-то - смотря зачем нужен быстрый ногодрыг) или внешней логики

Re: скорость GPIO

Добавлено: Вт май 15, 2012 18:10:29
RusL
Благодарю всех за ответы, в общем не попробуешь - не узнаешь :)))
Но думаю что эту плату все-таки допытаю :))