Максимальная частота дискретизации цифровых выходов

AntonM
Offline
Зарегистрирован: 22.10.2015

Уважаемые коллеги!
Сейчас для проекта выбираю контроллер, вся система сделана на Ардуино. И тут ко мне в руки попало блинкерное табло с магнитными секторами. Проблема в том, что нужно очень быстро (с частотой 800гц) перебирать все блинкеры. Блинкеры без фиксации, управляются с помощью дешифраторов и удерживаются путем пульсации раз в 0.5 сек. В связи с этим вопрос - какова максимальная частота дискретизации цифровых выходов? Сможет ли вытянуть Ардуино 800гц? Интересует модель Due, Mega, Mega2560.
Спасибо.

b707
Offline
Зарегистрирован: 26.05.2017

ну 800 Гц это вообще не частота. Без особых ухищрений на Уно или Нано получается 30- 50 КГц, а если с "ухищрениями", то теоретически почти до 8МГц

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Все упирается в ваше умение программировать на Ардуино. Уроверь digilalRead() - одна скорость, розкрыв эту команду быстрее, управлять напрямую портами и таймерами еще выше. Вот в таком напрвлении и развивайте свой проект.От медленой скорости и вменяемо читаемой программы к побыстрее.

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

AntonM, быстродействие портов [общего назначения] AVR - 62.5 наносекунд. Ещё какие-то цифры нужны?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Надо писать не в абсолютных цифрах, кварц у разных камней разный, сатвецтвенно, и быстродействие

axill
Offline
Зарегистрирован: 05.09.2011

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

 

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

Канечно плевое. Правда половине форума попутать Гц, КГц и МГц не менее плевое. Потому ответ - ХЗ.

Onkel
Offline
Зарегистрирован: 22.02.2016

Voodoo Doll пишет:

AntonM, быстродействие портов [общего назначения] AVR - 62.5 наносекунд. Ещё какие-то цифры нужны?

Нужны, тс нужны. Время отработки команды digitalWrite() 6 мкс. Поэтому, в зависимости от нужной скорости, придется отказаться от функции digitalWrite() Arduino IDE и применять команды прямой записи в регистр PORTx= или побитных команд.

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Onkel пишет:

Поэтому, в зависимости от нужной скорости, придется отказаться от функции digitalWrite() Arduino IDE и применять команды прямой записи в регистр PORTx= или побитных команд.

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

Только вот. сдаётся мне, что тем интересна всем, акромя ТС :)