Микропроцессорный передатчик и приемники

an2an
realsystem:

Я вот просто сделал по таймеру формирование нужных импульсов

Какой джитер получился? Вы его мерили?

realsystem

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

SAN
realsystem:

А что конкретно вы имеете в виду под джиттером?

Дрожание заднего фронта канального импульса

an2an
SAN:

Дрожание заднего фронта канального импульса

Именно.

Потому как если вы дергаете ножкой из прерывания от таймера, от недетерминированное время входа в прерывания, возможность нахождения в другом прерывании или при запрещенных прерываниях приводят к значительному джитеру. Исключить его полностью, в такой реализации почти невозможно, но и загнать в приемлемые рамки - задача не простая. Если конечно процессор ни чем другим не занимается…

tumbzik
an2an:

… но и загнать в приемлемые рамки - задача не простая. Если конечно процессор ни чем другим не занимается…

ПЛИ-СИ-НА, ПЛИ-СИ-НА😆

Usr1
an2an:

Именно.
Если конечно процессор ни чем другим не занимается…

Угу. Именно так. Единственное приемлимое решение это заниматься процессору только этим. Поэтому я сразу и сориентировался на встроеный контроллер и внешнее мультиплексирование. Все таки дергать чипселект и перепускать ШИМ раз в пять милисекунд гораздо менее затратно для проца. И джиттера быть не должно. будет только смещение передних фронтов каждой четверки относительно друг друга в течение 20 мс.

Володимир
Usr1:

Ясно. Спасибо всем. Я действительно поспешил, не проработав аналоговую часть.

А давайте я вам предложу лучшее место для приложения сил и знаний?
Вот рулевые машинки управляются длительностью импульса, и из-за использования схемотехники одновибраторов сильно подвержены воздействию помех как по питанию, так и по наведению на сигнальный провод.
Однако и приемник (кроме РРМ) и цифровая сервомашинка уже имеют в себе цифровую часть - надо сделать передачу данных приемник-машинка в цифровом виде!

realsystem
Володимир:

А давайте я вам предложу лучшее место для приложения сил и знаний?
Вот рулевые машинки управляются длительностью импульса, и из-за использования схемотехники одновибраторов сильно подвержены воздействию помех как по питанию, так и по наведению на сигнальный провод.
Однако и приемник (кроме РРМ) и цифровая сервомашинка уже имеют в себе цифровую часть - надо сделать передачу данных приемник-машинка в цифровом виде!

А разве openservo недостаточно? Там команды на сервы поступают по I2C.

Володимир
realsystem:

А разве openservo недостаточно? Там команды на сервы поступают по I2C.

Кто генерит команды?
Нужен ведь РС-приемник…

Boroda-msk
Володимир:

надо сделать передачу данных приемник-машинка в цифровом виде!

Сделать то все можно…, только нужно-ли? При управляющем ШИМе цепляй любую серву и в путь!, … а при передаче управляющего кода - еще и с сервами шаманить… 😃 … ну и соответственно свой регуль на електричку клепать …

Володимир
Boroda-msk:

Сделать то все можно…, только нужно-ли? При управляющем ШИМе цепляй любую серву и в путь!, … а при передаче управляющего кода - еще и с сервами шаманить… 😃 … ну и соответственно свой регуль на електричку клепать …

С появлением аппаратуры на 2.4ГГц фактически пропали помехи из эфира. Остались и обострились помехи на самом борту…
Да, если уж переходить на новый протокол передачи данных приемник-исполнительный механизм, то надо менять и машинки (электронику) и регули…
И когда-то это произойдет (если еще раньше в каждой РМ не поселится по одноканальному приемнику, “подшиваемому” на нужный канал передатчика…

Boroda-msk
Володимир:

если уж переходить на новый протокол передачи данных приемник-исполнительный механизм, то надо менять и машинки (электронику) и регули…

Все надо… 😃 Но не так быстро… 😃

Остались и обострились помехи на самом борту…

Помехи на борту не обострились… Просто надо грамотно монтировать борт и проблем не будет… 😃 На сервы и так сигнал идет в виде логических уровней по амплитуде и если там есть помехи - то все вопросы к правильной разводке, а вот дрожание фронта в ШИМ - это уже вопрос схемотехники и реализации…
Для передачи сигналов на такие расстояния в рамках реальных рабочих точностей отработки вовсе не надо уходить на передачу кода…

Володимир
Boroda-msk:

Все надо… 😃 Но не так быстро… 😃

Все более нужное дело, чем новый передатчик-приемник…

Помехи на борту не обострились… Просто надо грамотно монтировать борт и проблем не будет… 😃 На сервы и так сигнал идет в виде логических уровней по амплитуде и если там есть помехи - то все вопросы к правильной разводке, а вот дрожание фронта в ШИМ - это уже вопрос схемотехники и реализации…
Для передачи сигналов на такие расстояния в рамках реальных рабочих точностей отработки вовсе не надо уходить на передачу кода…

От логического уровня сигнала на сервы никому ни холодно ни жарко - он не используется ни как. Работают фронты, что для цифровой техники позапрошлый век.
“Такие расстояния” - это около метра, а то и больше. Рядом с силовыми проводами а-ля электросварка и точно с такими же фронтами токов…

Usr1
realsystem:

А разве openservo недостаточно? Там команды на сервы поступают по I2C.

Классный проект! Надо взять на заметку. Как-нибудь попробую прикрутить…

realsystem
Володимир:

Кто генерит команды?
Нужен ведь РС-приемник…

МК, ну их проект можно взять за основу, он вроде как отлажен

Usr1
realsystem:

МК, ну их проект можно взять за основу, он вроде как отлажен

Главное чтобы у них API был достаточно отлажен…

Boroda-msk
Володимир:

Работают фронты, что для цифровой техники позапрошлый век. “Такие расстояния” - это около метра, а то и больше. Рядом с силовыми проводами а-ля электросварка и точно с такими же фронтами токов…

Переходите на оптоволокно… 😃

an2an
Boroda-msk:

Переходите на оптоволокно…

Согласованной дифференциальной линии будет достаточно.

avalanch

Исключить полностью возможно (даже без аппаратного ШИМ), если прогу аккуратненько написать. А приемлемые для сервы рамки - это сколько мкс в цифрах ?

an2an:

Исключить его полностью, в такой реализации почти невозможно, но и загнать в приемлемые рамки - задача не простая.

an2an
avalanch:

Исключить полностью возможно (даже без аппаратного ШИМ), если прогу аккуратненько написать. А приемлемые для сервы рамки - это сколько мкс в цифрах ?

Современная аппаратура имеет разрешение 11 бит, что соответствует примерно 500 наносекунд, джитер хочется иметь хотябы вдвое меньше разрешения, иначе нахера оно нужно… Даже при использовании вложенных прерываний обеспечить такой джитер будет ооооочень сложно, если у вас есть потребности обрабатывать и другие прерывания.