Форум программистов, компьютерный форум, киберфорум
Наши страницы

Микроконтроллеры

Войти
Регистрация
Восстановить пароль
 
 
EfesXZC
2 / 2 / 1
Регистрация: 07.08.2015
Сообщений: 72
#1

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

19.11.2016, 11:20. Просмотров 473. Ответов 16

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

P.S.: Решение мне видится в синхронизации фазы опорных генераторов микроконтроллеров, но вмешательство в схемотехнику должно быть минимальным (иначе поставил бы ФАПЧ и не парился).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2016, 11:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Синхронизация ШИМ от разных устройств (Микроконтроллеры):

ШИМ на Atmega8535 - AVR
Доброго времени суток. MK Atmega8535. Необходимо калибровать яркость светодиода, подключенного к пину PB3, он же выход сравнения нулевого...

ATMega8515. ШИМ - AVR
Срочно завтар экзамен, сдавать нужно, программа для микро контроллера ATMega8535. Задание: Двигатель крутится с максимальной...

ШИМ до 1кГц - AVR
Всем доброго времени суток. Прошу, по возможности, подсказать, как решить задачу. Необходимо на МК Atmega8 реализовать 2 ШИМ...

Трехфазный ШИМ - AVR
Всем привет! В общем, пытаюсь вывести на ноги контроллера Атмега2560 трехфазный ШИМ. Сам ШИМ - двухполярный. Проход задается с помощью...

ШИМ на ATMega16 cо скважностью 3 - AVR
Помогитет написать программу: Выдать последовательность прямоугольных импульсов скважности 3 на разряд (pb2 светоидиод ) с частотой...

Attiny13. Реализация ШИМ - AVR
Добрый вечер уважаемые !! В этой теме прошу о помощи программистовAttiny13/ Просьба не пинать и относится снисходительно к новичку...

16
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,187
19.11.2016, 12:08 #2
Цитата Сообщение от EfesXZC Посмотреть сообщение
выдает аппаратно 5-фазную ШИМ.
а может проще поменять весь этот зоопарк на одну STMку
там до проха таймеров и в каждом(практически) есть 4 канальный шим
0
pyzhman
705 / 401 / 56
Регистрация: 15.05.2012
Сообщений: 2,194
19.11.2016, 14:03 #3
Цитата Сообщение от EfesXZC Посмотреть сообщение
синхронизации фазы опорных генераторов
Ничто не мешает настроить фьюзы на тактирование от внешнего источника.
0
Ethereal
2853 / 1193 / 146
Регистрация: 17.02.2013
Сообщений: 1,970
21.11.2016, 20:59 #4
Все контроллеры, выдающие импульсы, необходимо тактировать от одного источника и сбрасывать общим сбросом. Это что думается в первую голову. А иначе синхронизовывать асинхронные процессы задача неблагодарная.
0
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,187
21.11.2016, 21:10 #5
Цитата Сообщение от Ethereal Посмотреть сообщение
необходимо тактировать от одного источника и сбрасывать общим сбросом.
и подсчитывать количество команд чтобы камни не разбежались
0
Витальич
1204 / 1115 / 159
Регистрация: 02.12.2013
Сообщений: 4,568
21.11.2016, 21:18 #6
Цитата Сообщение от ValeryS Посмотреть сообщение
чтобы камни не разбежались
ой разбегутся, ресет вещь веселая аналоговая, со всеми вытекающими
1
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,187
21.11.2016, 21:41 #7
Цитата Сообщение от Витальич Посмотреть сообщение
вещь веселая аналоговая,
и это тоже
жестко синхронизировать шим можно на жесткой логике
более- менее, мастер и куча слейвов с обратной связью
в одноранговом кто в лес кто по дрова
но вот зачем
Цитата Сообщение от EfesXZC Посмотреть сообщение
Необходимо, чтобы выходные ШИМ импульсы от разных контроллеров были строго синхронизированы по времени, с точностью до единиц наносекунд.
ума не приложу
может там совсем не шим нужен
0
Витальич
1204 / 1115 / 159
Регистрация: 02.12.2013
Сообщений: 4,568
21.11.2016, 21:50 #8
5 фазный аппаратный ШИМ, выбирайте SI-7510, SLA5073, SLA5074
0
Voland_
1447 / 950 / 91
Регистрация: 04.01.2010
Сообщений: 3,070
25.11.2016, 23:38 #9
Цитата Сообщение от Витальич Посмотреть сообщение
ресет вещь веселая аналоговая, со всеми вытекающими
В общем случае, наверное, да. Но вообще - сам по себе ресет - никакая не аналоговая функция. И запуск чипа после сигнала ресета - это никакое не волшебство, а просто работа цифровой его части.

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

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

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

Добавлено через 9 минут
Вообще приходилось мне измерять время от сигнала сброса до внутренних программных событий у некоторых микроконтроллеров, правда не широкого применения. Времянки стояли как вкопанные, поскольку непосредственно с момента снятия сигнала сброса стартовала программа. Но к тому времени напряжение питания уже было устаканенным и тактовая частота тоже.
0
Витальич
1204 / 1115 / 159
Регистрация: 02.12.2013
Сообщений: 4,568
26.11.2016, 09:25 #11
да я их резко, а они
https://www.youtube.com/watch?v=pSQFMJormHc
0
Ethereal
2853 / 1193 / 146
Регистрация: 17.02.2013
Сообщений: 1,970
26.11.2016, 09:38 #12
Цитата Сообщение от ValeryS Посмотреть сообщение
жестко синхронизировать шим можно на жесткой логике
А вот тут как раз и разложены грабли невидимки. Если синхронизовать асинхронные процессы внешней логикой, то какая-то гадость время от времени вылезать начнет, интерференция редкая какая-то, причем там где не ждешь. И разумно ее объяснить не получится. Сталкивался я раз с таким. Будешь тупо пялиться на схему и не понимать почему. Вроде по схеме все должно быть в ажуре и работает-то она как надо, но периодически взбрыкивает. Нормально, нормально, брык, нормально, нормально, брык ... Поэтому я и советую затактировать все от одного источника. Сбрасывать от одного источника - это я уже на всякий случай говорю. Может это лишнее и ненужное. А вот тактировать от одного оченно желательно. Избавит от возможных совершенно необъяснимых глюков.

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

Добавлено через 4 минуты
Думаю глюки у меня тогда вылезали от того, что одна микросхема иногда проверяла логический уровень как раз в тот момент когда вторая его переключала. И результат такой проверки выходил 50/50.
0
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,187
26.11.2016, 09:53 #13
Цитата Сообщение от Ethereal Посмотреть сообщение
у чтобы возможные моменты переключения логических уровней во всей схеме были едины.
Цитата Сообщение от Ethereal Посмотреть сообщение
проверяла логический уровень как раз в тот момент когда вторая его переключала.
"гонка сигналов"
тактируем с одного генератора но одна ножка подключена по ближайшему пути, вторая как то вокруг, вот тебе и сопротивление и емкость, в результате тупо смотрим что к чему
0
Papayaved
75 / 75 / 8
Регистрация: 24.09.2015
Сообщений: 308
28.11.2016, 09:29 #14
EfesXZC, самое надежное это логика (ПЛИС), формирующая сразу все ШИМы (только это уберет все биения частот и соответственно низкочастотные ЭМ помехи).

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

Добавлено через 18 минут
...отыскал - примерная задержка сигнала в проводнике - 4нс/м. То есть для того, чтобы "придержать" сигнал на n нс - мотаете катуху длиной 25см на каждую наносекунду, бифилярным способом . Не забывая про емкость приемной стороны и емкость провода + его сопротивление...
0
05.12.2016, 20:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2016, 20:24
Привет! Вот еще темы с ответами:

ATtiny13. PWM (ШИМ) - Микроконтроллеры
прошу знающих пояснить принцип управления аппаратным ШИМом, а именно: 1. как в коде Си это выглядит, 2. какие переменные необходимо...

Не работает ШИМ МК AtMega8 - AVR
Делаю импульсный блок питания 30В, 5А. Пишу не сложную прошивку для МК AtMega 8, в протеусе все работает великолепно, но на железе...

Шим одновременно со SPI - AVR
На меге16 в работает шим: TCCR2 = 0b011111101, в цикле по spi принимаю мощность с компьютера OCR2=255-Spi(); При запуске мк мощьность...

ШИМ на переменном токе - Микроконтроллеры
Добрый вечер. Делаю многоканальную иллюминацию из ламп на 220в и столкнулся с проблемой регулирования их яркости. По интернету гуляет схема...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru