
Придумали способ: от внешнего генератора(128Гц) подаются на модули захвата(CAP) импульсы обеим платам. Они его ловят и сразу же обнуляют таймера. При проверке метода обнаружилось пару неприятных вещей: во первых во время обнуления текущий импульс обрывается и сразу начинается с начала новый - это приводит к порче(рис) пары PWM в месте синхронизации(должны работать в противофазе + мёртвое время) - получается на два импульса одного канала идёт один покрывающий на втором, что ведёт к бешеным скачкам тока в первичке и срабатыванию защиты; вторая проблема что на первый импульс синхронизирующего генератора одна плата не отвечает и тока второй ловит, что приводит к здвигу работы ШИМ в импульсном режиме - пачками(но эта проблема связана сорее всего с платой, а не программой - они идентичны для обеих плат) - решение было найдено в принципе, но немного кривое.
Раньше предпологалось использовать информационный канал между процессорами(по CAN), но щас нема времени его заводить. Принцип такой: по внешнему генератору таймера сравниваются и выравниваются от меньшего к большему, но тут нужно передавать постоянно значения таймеров от процессора к процессору.
Есть ещё несколько идей с ведомым и ведущим процессором, но неохота заводить разные программы на процессоры. Сегодня решили пойти по другому пути: просто подали на CLKIN обеих процессоров импульсы с одного тактового генератора(10Мц) - таким образом расчитывали на полную синхронность(нужно было бы только раз синхронизировать при старте), но на деле вышла лажа - один процесоор выдавал значительно более быстрые импульсы ШИМ. Как такое ваще может быть?
Подсажите ещё какие нибудь методы или поправте по моим. Заранее благодарен.
зы: Для измерений использовался буржуйский четырёхполосный тектроникс.