Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основной текст.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2.21 Mб
Скачать

2.3.12 Лабораторная работа 2.12

Тема: модуль Dead Band для ePWM1A и ePWM1B.

Цель: ввести время задержки фронтов в паре комплементарных сигналов PWM в ePWM1A и ePWM1B. Желаемый режим – «Active High Complementary» (AHC)) и два выходных сигнала генерируются с входного сигнала ePWM1A – в устройстве классификатора действия.

Ход работы.

Задание:

– добавьте время задержки для фронтов пары комплементарных сигналов на ePWM1A и ePWM1B;

– режим – Active High Complementary (AHC);

– входной сигнал для мертвой зоны из ePWM1A;

– сгенерируйте сигналы на ePWM1A и ePWM1B с мертвой зоной;

– используйте Lab 2.10 как основу.

Задействованные новые регистры:

– DBRED: Dead Band модуль задержка фронта;

– DBFED: Dead Band модуль задержка среза;

– DBCTL: Dead Band регистр управления.

Порядок выполнения.

Откройте Файл Проекта.

Откройте Lab7.pjt в «C/C++» вкладке Code Composer Studio .

Откройте файл «Lab7_4.c» и сохраните его как «Lab7_6.c»

Исключите файл «Lab7_5.c» из build. Используйте правое нажатие мыши в файле «Lab7_5.c», и разрешите «Exclude File(s) from Build».

Отредактируйте в файле «Lab7_6.c» функцию «cpu_timer0_isr()». Удалите все инструкции для изменения ширины импульса регистром CMPA. Мы будем использовать фиксированную ширину импульса 50% для этого упражнения, как для ePWM1A так и ePWM1B.

В функции «Setup_ePWM1()», инициализируйте ширину импульса на 50% TBPRD:

EPwm1Regs.CMPA.half.CMPA = EPwm1Regs.TBPRD / 2;

Затем, в функции «Setup_ePWM1()», удалите инструкцию инициализации регистра AQCTLB. Используйте модуль зоны нечувствительности, оба выхода ШИМ ePWM1A и ePWM1B синхронизируются от единственного входного сигнала, обычно с внутреннего сигнала ePWM1A модуля классификатора действия.

В функции «Setup_ePWM1()», добавьте строки, чтобы проинициализировать устройство зоны нечувствительности. Время задержки вычисляется в периодах TBCLK, период которого мы вычислили в начале Lab7_1 непосредственно от SYSCLKOUT, с CLKDIV установленным в 1 и HSPCLKDIV установленным на 2. В случае работы F28335ControlCard на 150MHz, TBCLK равны 13.33334 ns. В нашем примере мы установим время задержки 10 микросекунд, пример,

EPwm1Regs.DBRED = 750;

EPwm1Regs.DBFED = 750;

Чтобы проинициализировать регистр DBCTL, мы должны принять во внимание ключи S0 – S5:

– установим S4 и S5 на 0: в этом режиме мы будем использовать входной сигнал ePWM1A с устройства AQCTL, чтобы сгенерировать два выходных сигнала ePWM1A и ePWM1B;

– установим S2 = 0 и S3=1, чтобы инвертировать полярность сигнала ePWM1B относительно ePWM1A;

– установим S0 = 1 и S1 = 1, чтобы включить задержку времени для двух точек переключения.

Скомпилируйте, загрузите и протестируйте.

Теперь скомпилируйте, загрузите и протестируйте модифицированный проект. Осциллограммы сигналов ePWM1A и ePWM1B (рисунок 2.57) отображают синхронизацию от переднего фронта канала 1 (ePWM1A).

Рисунок 2.57 – Осциллограммы сигналов ePWM1A и ePWM1B с синхронизацией от переднего фронта канала 1

Если Вы запускаете развертку от среза канала 1 , Вы должны увидеть задержанный фронт, теперь на сигнале ePWM1B (рисунок 2.58).

Рисунок 2.58 – Осциллограммы сигналов ePWM1A и ePWM1B с задержкой по фронту на сигнале ePWM1B