2 / 2 / 2
Регистрация: 07.08.2015
Сообщений: 72
|
|
1 | |
Синхронизация ШИМ от разных устройств19.11.2016, 11:20. Показов 3278. Ответов 16
Доброго времени суток, народ. В процессе учебной деятельности, возникла одна интересная задача. Суть в следующем: имеются 3 микроконтроллера (AVR, ведомые, с тактовой частотой 16МГц) и Raspberry в качестве ведущего. Вся система служит для реализации многофазного управления подачей питания на много дофига потребляющих нагрузок. Каждый контроллер (включая Raspberry) выдает аппаратно 5-фазную ШИМ. Необходимо, чтобы выходные ШИМ импульсы от разных контроллеров были строго синхронизированы по времени, с точностью до единиц наносекунд. Прошу помощи с указанием направления в какую сторону копать или идеями каких-нибудь алгоритмов синхронизации применимых в данном случае.
P.S.: Решение мне видится в синхронизации фазы опорных генераторов микроконтроллеров, но вмешательство в схемотехнику должно быть минимальным (иначе поставил бы ФАПЧ и не парился).
0
|
19.11.2016, 11:20 | |
Ответы с готовыми решениями:
16
Два разных АЦП разных устройств к одному датчику Модуль EVO II синхронизация 50гц, На какой ножке контроллера синхронизация шим двигателя? Синхронизация мобильных устройств с компьютером Подключение к Wi-Fi с разных устройств Система 5.1 из разных устройств |
1181 / 656 / 113
Регистрация: 15.05.2012
Сообщений: 4,061
|
|
19.11.2016, 14:03 | 3 |
0
|
6770 / 2739 / 384
Регистрация: 17.02.2013
Сообщений: 4,048
|
|
21.11.2016, 20:59 | 4 |
Все контроллеры, выдающие импульсы, необходимо тактировать от одного источника и сбрасывать общим сбросом. Это что думается в первую голову. А иначе синхронизовывать асинхронные процессы задача неблагодарная.
0
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
21.11.2016, 21:18 | 6 |
1
|
Модератор
8951 / 6717 / 921
Регистрация: 14.02.2011
Сообщений: 23,714
|
|
21.11.2016, 21:41 | 7 |
и это тоже
жестко синхронизировать шим можно на жесткой логике более- менее, мастер и куча слейвов с обратной связью в одноранговом кто в лес кто по дрова но вот зачем ума не приложу может там совсем не шим нужен
0
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
21.11.2016, 21:50 | 8 |
5 фазный аппаратный ШИМ, выбирайте SI-7510, SLA5073, SLA5074
0
|
1978 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
|
25.11.2016, 23:38 | 9 |
В общем случае, наверное, да. Но вообще - сам по себе ресет - никакая не аналоговая функция. И запуск чипа после сигнала ресета - это никакое не волшебство, а просто работа цифровой его части.
Можем проверить на конкретных примерах - например, можно сделать отдельную программку, выполняющую инит порта в какое-то состояние, и далее - только ресет. Я предполагаю, что в 99% чипов мы увидим ровный генератор импульсов на выходе пина. ЗЫ: другое дело - запуск RC и/или внешних генераторов... С ними действительно ресет будет "аналоговым"... Добавлено через 1 час 7 минут ...сказал, но полез в доки. Оказалось, что, например, в AVR не так и много источников сигнала RESET. Но... Помимо чисто "аналоговых" Power-On-Reset, и Brown-Out-Detection, при сбросе которых цифра действительно может давать не детерминированный сброс, существуют относительно "цифровые" сигналы RESET от внешнего источника, и по вочдогу (который конечно можно использовать в качестве внутреннего программного сброса). И сброс по ним описан в доках на AVR с загадочной задержкой "Tout", которая нигде в документации не описана. Но я вангую, что это совершенно постоянное количество тактов процессора, которое нужно ему для инициализации всего того, что нужно для нормальной его жизни. Так что в этом случае сброс будет работать "как часы", то есть срабатывать за точно отведенное для него время.
0
|
6770 / 2739 / 384
Регистрация: 17.02.2013
Сообщений: 4,048
|
|
26.11.2016, 09:22 | 10 |
а ты его резким фронтом
Добавлено через 9 минут Вообще приходилось мне измерять время от сигнала сброса до внутренних программных событий у некоторых микроконтроллеров, правда не широкого применения. Времянки стояли как вкопанные, поскольку непосредственно с момента снятия сигнала сброса стартовала программа. Но к тому времени напряжение питания уже было устаканенным и тактовая частота тоже.
0
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
26.11.2016, 09:25 | 11 |
да я их резко, а они
https://www.youtube.com/watch?v=pSQFMJormHc
0
|
6770 / 2739 / 384
Регистрация: 17.02.2013
Сообщений: 4,048
|
|
26.11.2016, 09:38 | 12 |
А вот тут как раз и разложены грабли невидимки. Если синхронизовать асинхронные процессы внешней логикой, то какая-то гадость время от времени вылезать начнет, интерференция редкая какая-то, причем там где не ждешь. И разумно ее объяснить не получится. Сталкивался я раз с таким. Будешь тупо пялиться на схему и не понимать почему. Вроде по схеме все должно быть в ажуре и работает-то она как надо, но периодически взбрыкивает. Нормально, нормально, брык, нормально, нормально, брык ... Поэтому я и советую затактировать все от одного источника. Сбрасывать от одного источника - это я уже на всякий случай говорю. Может это лишнее и ненужное. А вот тактировать от одного оченно желательно. Избавит от возможных совершенно необъяснимых глюков.
Добавлено через 3 минуты Ну чтобы возможные моменты переключения логических уровней во всей схеме были едины. Добавлено через 4 минуты Думаю глюки у меня тогда вылезали от того, что одна микросхема иногда проверяла логический уровень как раз в тот момент когда вторая его переключала. И результат такой проверки выходил 50/50.
0
|
Модератор
8951 / 6717 / 921
Регистрация: 14.02.2011
Сообщений: 23,714
|
|
26.11.2016, 09:53 | 13 |
"гонка сигналов"
тактируем с одного генератора но одна ножка подключена по ближайшему пути, вторая как то вокруг, вот тебе и сопротивление и емкость, в результате тупо смотрим что к чему
0
|
75 / 75 / 8
Регистрация: 24.09.2015
Сообщений: 342
|
|
28.11.2016, 09:29 | 14 |
EfesXZC, самое надежное это логика (ПЛИС), формирующая сразу все ШИМы (только это уберет все биения частот и соответственно низкочастотные ЭМ помехи).
Можно попробовать еще с помощью прерывания синхронизировать внутренние таймеры ШИМ, при этом все мк и одноплатный компьютер должны будут запитаться от одного генератора. В принципе вход в прерывание это фиксированное время, если пока идет синхронизация не использовать ни каких других прерываний.
0
|
1978 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
|
05.12.2016, 20:24 | 15 |
исходя из цели задачи подобной точности, вам сначала нужно добиться синхронизации в системе программ (если несколько МК), и по возможности добиться синхронизации на уровне каждого из МК, т.к. далеко не все МК общего назначения позволят вам "держать фронты" по выходам с желаемой точностью. Ну, а потом допиливать весь проект "напильником" проб и ошибок по "проводной части" - удлиняя и укорачивая проводники, чтобы получить желаемые "единицы наносекунд". Поверьте, для такой точности придется точить на каждом уровне абстракции электроники - программном, аппаратно/цифровом и аналоговом.
Добавлено через 18 минут ...отыскал - примерная задержка сигнала в проводнике - 4нс/м. То есть для того, чтобы "придержать" сигнал на n нс - мотаете катуху длиной 25см на каждую наносекунду, бифилярным способом . Не забывая про емкость приемной стороны и емкость провода + его сопротивление...
0
|
0 / 0 / 0
Регистрация: 01.04.2017
Сообщений: 2
|
|
01.04.2017, 17:29 | 16 |
Обычно задачу синхронизации ШИМ на разных контроллерах решают использованием аппаратного пина синхронизации таймеров ШИМ. Контроллер-мастер конфигурируется испускать синхросигнал при проходе его таймером ШИм нуля, а другие контроллеры принимают синхросигнал и обнуляют таймеры ШИМ по его получении. Это синхронизирует несущие ШИМа. Такая опция обычно бывает во всех motorcontrol микроконтроллерах, например, Texas Instruments Delfino, Piccolo и других. Есть ли такое на указанных, не знаю.
Что касается синхронизации уставок сравнения, то их можно уже синхронизировать через интерфейс связи, здесь таких жестких требований уже обычно нет.
0
|
1978 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
|
03.04.2017, 10:38 | 17 |
Полезный комментарий, поддержу. Все действительно так, как вы говорите, за исключением кое-чего.
Речь идет об AVR. а в AVR ШИМ построен на таймерах, тактируемых PLL, даже в случае с умножителем (как в tiny25/45/85) до 64МГц. Поэтому, чтобы получить синхронный клок таймеров, достаточно сделать синхронный внешний клок и одинаковый код программ, чтобы сопадало количество тактов обработчиков. Просто тут еще немного другое. ТС говорил за синхронизацию с точностью до нескольких нс. Даже если предположить, что клок будет 16МГц (62,5нс) - даже один такт разницы приведет к нежелательным расхождениям. И это без учета запаздывания сигнала, разных входных уровней и завала фронтов. Вполне возможно, это вызовет некий не-большой джиттер. Но даже "небольшой джиттер" вполне может быть ощутим, если мы говорим о наносекундах.
0
|
03.04.2017, 10:38 | |
03.04.2017, 10:38 | |
Помогаю со студенческими работами здесь
17
Синхронизация БД разных структур Синхронизация таблиц из разных БД Синхронизация данных на разных листах Синхронизация данных в разных СУБД Синхронизация дерева каталогов на разных ПК Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Интеграция Arduino и ChatGPT: Практическое руководство
InfoMaster 16.01.2025
В современную эпоху технологических инноваций интеграция искусственного интеллекта с микроконтроллерами открывает принципиально новые возможности для создания умных устройств и автоматизированных. . .
|
Как создать робота, управляемого ChatGPT
InfoMaster 16.01.2025
Концепция проекта
В современную эпоху искусственный интеллект и робототехника становятся все более доступными для энтузиастов и разработчиков. Создание роботизированной руки, управляемой ChatGPT,. . .
|
Как создать ChatGPT бота в Telegram на Python
InfoMaster 16.01.2025
В современном мире технологии искусственного интеллекта становятся все более доступными для разработчиков, открывая новые возможности для создания умных и интерактивных приложений. Одним из самых. . .
|
Машинное обучение с помощью Python
InfoMaster 16.01.2025
Машинное обучение стало неотъемлемой частью современных технологий, позволяя компьютерам учиться на основе данных и принимать решения без явного программирования. В сочетании с языком. . .
|
Использование связки C# и PHP в корпоративной разработке и микросервисной архитектуре
InfoMaster 16.01.2025
Введение в интеграцию C# и PHP
В современной корпоративной разработке все чаще возникает потребность в создании гибких и масштабируемых решений, способных эффективно решать широкий спектр. . .
|
Как использовать Kerio дома для управления сетью и пользователями
InfoMaster 16.01.2025
Использование технологий для улучшения повседневной жизни стало неотъемлемой частью современного быта. Одной из таких технологий является Kerio — мощный инструмент для управления сетью и. . .
|
Есть ли будущее у DVD и Blu-ray?
InfoMaster 16.01.2025
В эпоху стремительного развития цифровых технологий и повсеместного распространения потоковых сервисов вопрос о будущем физических носителей информации становится все более актуальным. Особенно остро. . .
|
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
|
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
|
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
|
Параллельное программирование: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование
Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
|
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
|