roboforum.ru

Технический форум по робототехнике.

Синхронизация микроконтроллеров

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Синхронизация микроконтроллеров

Сообщение baralgin » 04 дек 2004, 02:26

Имеется две платы на  DSP tms320lf2406a(40Мц). На каждой по три пары ШИМ для мощьного  источника питания(240кВт :) ). Одна плата работает на один транс,а вторая на второй(на каждом трансе соответственно по три первички). Так возникла проблема: генерация шимов не синхронна(разное время включения, разная частота работы и тд.). В общеемм нужен алгоритм синхронизации.
Придумали способ: от внешнего генератора(128Гц) подаются на модули захвата(CAP) импульсы обеим платам. Они его ловят и сразу же обнуляют таймера. При проверке метода обнаружилось пару неприятных вещей: во первых во время обнуления текущий импульс обрывается и сразу начинается с начала новый - это приводит к порче(рис) пары PWM в месте синхронизации(должны работать в противофазе + мёртвое время) - получается на два импульса одного канала идёт один покрывающий на втором, что ведёт к бешеным скачкам тока в первичке и срабатыванию защиты; вторая проблема что на первый импульс синхронизирующего генератора одна плата не отвечает и тока второй ловит, что приводит к здвигу работы ШИМ в импульсном режиме - пачками(но эта проблема связана сорее всего с платой, а не программой - они идентичны для обеих плат) - решение было найдено в принципе, но  немного кривое.
Раньше предпологалось использовать информационный канал между процессорами(по CAN), но щас нема времени его заводить. Принцип такой: по внешнему генератору таймера сравниваются и выравниваются от меньшего к большему, но тут нужно передавать постоянно значения таймеров от процессора к процессору.
Есть ещё несколько идей с ведомым и ведущим процессором, но неохота заводить разные программы на процессоры. Сегодня решили пойти по другому пути: просто подали на CLKIN обеих процессоров импульсы с одного тактового генератора(10Мц) - таким образом расчитывали на полную синхронность(нужно было бы только раз синхронизировать при старте), но на деле вышла лажа - один процесоор выдавал значительно более быстрые импульсы ШИМ. Как такое ваще может быть?
Подсажите ещё какие нибудь методы или поправте по моим. Заранее благодарен.
зы: Для измерений использовался буржуйский четырёхполосный тектроникс.
Вложения
pwm.GIF
кривая синхронизация
pwm.GIF (4.99 КиБ) Просмотров: 4476
baralgin
 
Сообщения: 3
Зарегистрирован: 04 дек 2004, 00:28
Откуда: Кишинёв, Молдавия

Сообщение setar » 06 дек 2004, 13:58

Общие соображения следующие:
1. во первых желательно почитать доку , выложите здесь что имеется или линк пришлите, а то на datasheetarchive.com я ничего не нашёл.
2. если при одинаковых задающих частотах параметры шим отличаются то безусловно требуется внутренняя калибровка осцляторов (или чтого то там ещё) в контроллерах.
3. я бы предложил сбособ при котором один из контроллеров был бы ведущим и выдавал синхроимпульсы, причем приход синхроимпульса к ведомому должен означать не фронт сигнала а примерно половину высокого уровня ШИМ  сигнала, в таком случае даже при разной калибровке контроллеров мы получим не сбой по запуску синхроимпульсов, а лишь небольшую разницу в скважности.
Последний раз редактировалось setar 07 дек 2004, 12:45, всего редактировалось 1 раз.
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Сообщение baralgin » 07 дек 2004, 01:03

setar
1: http://focus.ti.com/docs/prod/folders/p ... 2406a.html
вот тут можно почитать про него - мощьный довольно контроллер.
а вот по этому я работаю http://www-s.ti.com/sc/psheets/spru357b/spru357b.pdf .
2: В принципе мы решили проблему. Просто при передаче 10-ти мегерцового сигнала провод касался экраном за землю агрегата(а плата имеет свою землю) и из за этого сигнал доходил искажённым(скорее всего плата ловила кроме 10 Мц ещё парочку вследствии чего работала быстрее). Всё поправили и они заработали такт в такт. Далше оставалось решить проблему с включением. Под включением я имею ввиду не подачу питания, а разрешение на работу. Щас я их включаю с компа и к каждому из ком порта(ком1 одному и ком2 второму) идёт свой сигнал на включение. Но команда естесно идёт по очереди из-за этого они включаются в разное время. Зделали так: при приёме сигнала на включение каждый процессор выставляет определённую ногу в 0. Эти два сигнала идут на логику И-НЕ(совковая микруха какая-то) и и когда на выходе будет 1 тогда на CAP1 обейх процессоров подаётся импульс(генератором). Они его одновременно ловят и уже врубуют всё что надо, предварительно сравняв таймера в ноль. Работает идеально - главное чётко передавать 10-ти мегагерцовый сигнал конроллеру.
3: я продумывал этот вариант, но во первых не хочется разные программы заводить, а во вторых этот способ сложно разрулить. Ведь ШИМ у этого контроллера аппаратный и управлять его включением и настройками довольно сложно во времени.
baralgin
 
Сообщения: 3
Зарегистрирован: 04 дек 2004, 00:28
Откуда: Кишинёв, Молдавия

Сообщение setar » 07 дек 2004, 12:47

8) Поделитесь, если не военная или коммерческая тайна что вы такое интересне разрабатываете с ШИМ питанием на 240кВт ??
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Сообщение baralgin » 10 дек 2004, 02:06

Поделитесь, если не военная или коммерческая тайна

немного военная :) . В общем суперстанок, которому американцы позавидуют.
baralgin
 
Сообщения: 3
Зарегистрирован: 04 дек 2004, 00:28
Откуда: Кишинёв, Молдавия

Сообщение Виталий » 11 дек 2004, 00:16

baralgin Мы с тобой! Давим пиндосов!
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий


Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 25