Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
 Аватар для EfesXZC
2 / 2 / 2
Регистрация: 07.08.2015
Сообщений: 72

Синхронизация ШИМ от разных устройств

19.11.2016, 11:20. Показов 3802. Ответов 16

Студворк — интернет-сервис помощи студентам
Доброго времени суток, народ. В процессе учебной деятельности, возникла одна интересная задача. Суть в следующем: имеются 3 микроконтроллера (AVR, ведомые, с тактовой частотой 16МГц) и Raspberry в качестве ведущего. Вся система служит для реализации многофазного управления подачей питания на много дофига потребляющих нагрузок. Каждый контроллер (включая Raspberry) выдает аппаратно 5-фазную ШИМ. Необходимо, чтобы выходные ШИМ импульсы от разных контроллеров были строго синхронизированы по времени, с точностью до единиц наносекунд. Прошу помощи с указанием направления в какую сторону копать или идеями каких-нибудь алгоритмов синхронизации применимых в данном случае.

P.S.: Решение мне видится в синхронизации фазы опорных генераторов микроконтроллеров, но вмешательство в схемотехнику должно быть минимальным (иначе поставил бы ФАПЧ и не парился).
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.11.2016, 11:20
Ответы с готовыми решениями:

Два разных АЦП разных устройств к одному датчику
похожий вопрос вроде поднимался по-моему пару лет назад. но теперь условия несколько иные, и добавилось конкретики. вот есть у меня...

Модуль EVO II синхронизация 50гц, На какой ножке контроллера синхронизация шим двигателя?
Частый дефект для модулей EVO II с коллекторным двигателем - нет управления двигателем при помехах в сети. Помехи создают диммеры, блоки...

Синхронизация мобильных устройств с компьютером
Здравствуйте. Подскажите пожалуйста где можно почитать про синхронизацию (считывание, запись, и т.д.) мобильников (в частности Nokia) через...

16
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
19.11.2016, 12:08
Цитата Сообщение от EfesXZC Посмотреть сообщение
выдает аппаратно 5-фазную ШИМ.
а может проще поменять весь этот зоопарк на одну STMку
там до проха таймеров и в каждом(практически) есть 4 канальный шим
0
1184 / 670 / 113
Регистрация: 15.05.2012
Сообщений: 4,080
19.11.2016, 14:03
Цитата Сообщение от EfesXZC Посмотреть сообщение
синхронизации фазы опорных генераторов
Ничто не мешает настроить фьюзы на тактирование от внешнего источника.
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
21.11.2016, 20:59
Все контроллеры, выдающие импульсы, необходимо тактировать от одного источника и сбрасывать общим сбросом. Это что думается в первую голову. А иначе синхронизовывать асинхронные процессы задача неблагодарная.
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
21.11.2016, 21:10
Цитата Сообщение от Ethereal Посмотреть сообщение
необходимо тактировать от одного источника и сбрасывать общим сбросом.
и подсчитывать количество команд чтобы камни не разбежались
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
21.11.2016, 21:18
Цитата Сообщение от ValeryS Посмотреть сообщение
чтобы камни не разбежались
ой разбегутся, ресет вещь веселая аналоговая, со всеми вытекающими
1
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
21.11.2016, 21:41
Цитата Сообщение от Витальич Посмотреть сообщение
вещь веселая аналоговая,
и это тоже
жестко синхронизировать шим можно на жесткой логике
более- менее, мастер и куча слейвов с обратной связью
в одноранговом кто в лес кто по дрова
но вот зачем
Цитата Сообщение от EfesXZC Посмотреть сообщение
Необходимо, чтобы выходные ШИМ импульсы от разных контроллеров были строго синхронизированы по времени, с точностью до единиц наносекунд.
ума не приложу
может там совсем не шим нужен
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
21.11.2016, 21:50
5 фазный аппаратный ШИМ, выбирайте SI-7510, SLA5073, SLA5074
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
25.11.2016, 23:38
Цитата Сообщение от Витальич Посмотреть сообщение
ресет вещь веселая аналоговая, со всеми вытекающими
В общем случае, наверное, да. Но вообще - сам по себе ресет - никакая не аналоговая функция. И запуск чипа после сигнала ресета - это никакое не волшебство, а просто работа цифровой его части.

Можем проверить на конкретных примерах - например, можно сделать отдельную программку, выполняющую инит порта в какое-то состояние, и далее - только ресет. Я предполагаю, что в 99% чипов мы увидим ровный генератор импульсов на выходе пина.

ЗЫ: другое дело - запуск RC и/или внешних генераторов... С ними действительно ресет будет "аналоговым"...

Добавлено через 1 час 7 минут
...сказал, но полез в доки. Оказалось, что, например, в AVR не так и много источников сигнала RESET. Но... Помимо чисто "аналоговых" Power-On-Reset, и Brown-Out-Detection, при сбросе которых цифра действительно может давать не детерминированный сброс, существуют относительно "цифровые" сигналы RESET от внешнего источника, и по вочдогу (который конечно можно использовать в качестве внутреннего программного сброса). И сброс по ним описан в доках на AVR с загадочной задержкой "Tout", которая нигде в документации не описана. Но я вангую, что это совершенно постоянное количество тактов процессора, которое нужно ему для инициализации всего того, что нужно для нормальной его жизни. Так что в этом случае сброс будет работать "как часы", то есть срабатывать за точно отведенное для него время.
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
26.11.2016, 09:22
Цитата Сообщение от Витальич Посмотреть сообщение
ой разбегутся, ресет вещь веселая аналоговая, со всеми вытекающими
а ты его резким фронтом

Добавлено через 9 минут
Вообще приходилось мне измерять время от сигнала сброса до внутренних программных событий у некоторых микроконтроллеров, правда не широкого применения. Времянки стояли как вкопанные, поскольку непосредственно с момента снятия сигнала сброса стартовала программа. Но к тому времени напряжение питания уже было устаканенным и тактовая частота тоже.
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
26.11.2016, 09:25
да я их резко, а они
https://www.youtube.com/watch?v=pSQFMJormHc
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
26.11.2016, 09:38
Цитата Сообщение от ValeryS Посмотреть сообщение
жестко синхронизировать шим можно на жесткой логике
А вот тут как раз и разложены грабли невидимки. Если синхронизовать асинхронные процессы внешней логикой, то какая-то гадость время от времени вылезать начнет, интерференция редкая какая-то, причем там где не ждешь. И разумно ее объяснить не получится. Сталкивался я раз с таким. Будешь тупо пялиться на схему и не понимать почему. Вроде по схеме все должно быть в ажуре и работает-то она как надо, но периодически взбрыкивает. Нормально, нормально, брык, нормально, нормально, брык ... Поэтому я и советую затактировать все от одного источника. Сбрасывать от одного источника - это я уже на всякий случай говорю. Может это лишнее и ненужное. А вот тактировать от одного оченно желательно. Избавит от возможных совершенно необъяснимых глюков.

Добавлено через 3 минуты
Ну чтобы возможные моменты переключения логических уровней во всей схеме были едины.

Добавлено через 4 минуты
Думаю глюки у меня тогда вылезали от того, что одна микросхема иногда проверяла логический уровень как раз в тот момент когда вторая его переключала. И результат такой проверки выходил 50/50.
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
26.11.2016, 09:53
Цитата Сообщение от Ethereal Посмотреть сообщение
у чтобы возможные моменты переключения логических уровней во всей схеме были едины.
Цитата Сообщение от Ethereal Посмотреть сообщение
проверяла логический уровень как раз в тот момент когда вторая его переключала.
"гонка сигналов"
тактируем с одного генератора но одна ножка подключена по ближайшему пути, вторая как то вокруг, вот тебе и сопротивление и емкость, в результате тупо смотрим что к чему
0
 Аватар для Papayaved
75 / 75 / 8
Регистрация: 24.09.2015
Сообщений: 342
28.11.2016, 09:29
EfesXZC, самое надежное это логика (ПЛИС), формирующая сразу все ШИМы (только это уберет все биения частот и соответственно низкочастотные ЭМ помехи).

Можно попробовать еще с помощью прерывания синхронизировать внутренние таймеры ШИМ, при этом все мк и одноплатный компьютер должны будут запитаться от одного генератора. В принципе вход в прерывание это фиксированное время, если пока идет синхронизация не использовать ни каких других прерываний.
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
05.12.2016, 20:24
Цитата Сообщение от EfesXZC Посмотреть сообщение
чтобы выходные ШИМ импульсы от разных контроллеров были строго синхронизированы по времени, с точностью до единиц наносекунд.
исходя из цели задачи подобной точности, вам сначала нужно добиться синхронизации в системе программ (если несколько МК), и по возможности добиться синхронизации на уровне каждого из МК, т.к. далеко не все МК общего назначения позволят вам "держать фронты" по выходам с желаемой точностью. Ну, а потом допиливать весь проект "напильником" проб и ошибок по "проводной части" - удлиняя и укорачивая проводники, чтобы получить желаемые "единицы наносекунд". Поверьте, для такой точности придется точить на каждом уровне абстракции электроники - программном, аппаратно/цифровом и аналоговом.

Добавлено через 18 минут
...отыскал - примерная задержка сигнала в проводнике - 4нс/м. То есть для того, чтобы "придержать" сигнал на n нс - мотаете катуху длиной 25см на каждую наносекунду, бифилярным способом . Не забывая про емкость приемной стороны и емкость провода + его сопротивление...
0
0 / 0 / 0
Регистрация: 01.04.2017
Сообщений: 2
01.04.2017, 17:29
Обычно задачу синхронизации ШИМ на разных контроллерах решают использованием аппаратного пина синхронизации таймеров ШИМ. Контроллер-мастер конфигурируется испускать синхросигнал при проходе его таймером ШИм нуля, а другие контроллеры принимают синхросигнал и обнуляют таймеры ШИМ по его получении. Это синхронизирует несущие ШИМа. Такая опция обычно бывает во всех motorcontrol микроконтроллерах, например, Texas Instruments Delfino, Piccolo и других. Есть ли такое на указанных, не знаю.

Что касается синхронизации уставок сравнения, то их можно уже синхронизировать через интерфейс связи, здесь таких жестких требований уже обычно нет.
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
03.04.2017, 10:38
Цитата Сообщение от Лашкевич Максим Посмотреть сообщение
Обычно задачу синхронизации ШИМ на разных контроллерах решают использованием аппаратного пина синхронизации таймеров ШИМ.
Полезный комментарий, поддержу. Все действительно так, как вы говорите, за исключением кое-чего.

Речь идет об AVR. а в AVR ШИМ построен на таймерах, тактируемых PLL, даже в случае с умножителем (как в tiny25/45/85) до 64МГц. Поэтому, чтобы получить синхронный клок таймеров, достаточно сделать синхронный внешний клок и одинаковый код программ, чтобы сопадало количество тактов обработчиков.

Просто тут еще немного другое. ТС говорил за синхронизацию с точностью до нескольких нс. Даже если предположить, что клок будет 16МГц (62,5нс) - даже один такт разницы приведет к нежелательным расхождениям. И это без учета запаздывания сигнала, разных входных уровней и завала фронтов. Вполне возможно, это вызовет некий не-большой джиттер. Но даже "небольшой джиттер" вполне может быть ощутим, если мы говорим о наносекундах.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.04.2017, 10:38
Помогаю со студенческими работами здесь

Подключение к Wi-Fi с разных устройств
Итак, имеется роутер Asus WL-500GP V2, проблема в подключении к нему. IPad и два других компа подключаются без проблема (через модули...

Система 5.1 из разных устройств
Есть колонки с буфером подключенные через jack, есть колонки в мониторе через hdmi и есть аудиосистема, подключенная через bluetooth. Хочу...

Синхронизация БД разных структур
Доброго времени суток. Пожскажите, пожалуйста, или поделитесь опытом, если у кого был такой. Задача: есть БД БД1, БД2 (одинаковой...

Синхронизация таблиц из разных БД
ЭстЪ две БД. В одной таблица, так исторически сложилось, на пару-тройку полей больше. При помощи приблуды данные из длинной таблицы...

Синхронизация данных на разных листах
Доброго времени суток, друзья! Я новичок на данном ресурсе. Совсем мало знаю о макросах и о EXCEL. Рою интернет в поисках уже несколько...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru