Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Лабораторная работа 2.8Тема: Генерация 3 – фазной системы сигналов. Цель: сгенерировать комплект 3–х прямоугольных волновых сигналов 1 kHz в линиях ePWM1A, ePWM2A и ePWM3A. С помощью 4 канального осциллографа, подключенного к контактам J6–1, 2 и 3 Периферийной платы исследователя, проверить этот сигнал. Ход работы. Задание: – сгенерируйте три 1 KHz прямоугольных сигнала на ePWM1A, 2A и 3A с заполнением 50% и сдвигом фаз 120° и 240°; – зарегистрируйте все три сигнала на осциллографе. Используемые регистры: – TBPRD: определяет частоту сигнала; – TBCTL: устанавливает операционный режим и время предделителя; – AQCTLA: определяет форму сигнала ePWM1A; – TBPHS: определяет сдвиг фаз 2A и 3A.
(2.9)
Порядок выполнения. Откройте файл проекта. Откройте Lab7.pjt в «C/C++» – вкладке. Откройте файл «Lab7_1.c» и сохраните его как «Lab7_2.c» Исключите файл «Lab7_1.c» из build. Используйте правое нажатие мыши в файле «Lab7_1.c», и разрешите “Exclude File(s) from Build”. Модифицируйте Исходную Программу. В файле «Lab7_2.c» измените имя функции «Setup_ePWM1A». Поскольку мы также проинициализируем ePWM2A и ePWM3A из этой функции, имя функции теперь отчасти вводит нас в заблуждение. Измените имя на «Setup_ePWM», включите описание функции и её вызов в «main()» – цикл. В локальной функции «Gpio_select()», добавьте инструкции, чтобы проинициализировать выводы GPIO2 и GPIO4 на ePWM2A и ePWM3A соответственно. В функции «Setup_ePWM()», повторите инициализацию для ePWM1A с теми же инструкциями для ePWM2A и ePWM3A. Установите идентичные величины как для ePWM1A в следующих регистрах: – EPwm2Regs.TBCTL; – EPwm2Regs.TBPRD; – EPwm2Regs.AQCTLA; – EPwm3Regs.TBCTL; – EPwm3Regs.TBPRD; – EPwm3Regs.AQCTLA. Если Вы теперь перекомпилируете, загрузите и протестируйте Ваш новый код, Вы должны получить 3 идентичные 1 kHz – сигнала с нулевым сдвигом фаз между 3 ePWM линиями (рисунок 2.49).
Рисунок 2.49 – Сигналы с нулевым сдвигом фаз между 3 ePWM линиями
Теперь давайте добавим команды сдвига фаз между ePWM1A, ePWM2A и ePWM3A. Чтобы сделать так, мы должны запрограммировать регистры фазы ePWM2A и ePWM3A. Также, мы должны определить ePWM1A как основную фазу, чтобы сгенерировать SYNCOUT импульс всякий раз, когда регистр TBCNT равен нулю. Для ePWM2, мы должны разрешить SYNCIN – импульс и также определить SYNCIN как SYNCOUT, чтобы управлять ним модулем ePWM3. Регистр периода TBPRD ePWM1A проинициализирован величиной, которая соответствует периоду времени 1 миллисекунда. Теперь для ePWM2 и ePWM3 нам нужен сдвиг фазы 1/3 и 2/3 этой величины предустановленный в регистр TBPHS. Итог. В функцию “Setup_ePWM()” добавьте инструкции: – EPwm1Regs.TBCTL – выбор синхронизации, сгенерировать сигнал если CTR = 0; – EPwm2Regs.TBCTL – разрешает установку фазы, выбирает выход синхронизации: SYNCIN = SYNCOUT; – EPwm2Regs.TBPHS: загружает его с 1/3 TBPRD. Поскольку TBPHS –union type, правильный доступ к нему сделан подобно этому: EPwm2Regs.TBPHS.half.TBPHS. Epwm3Regs.TBCTL – разрешает установку фазы. EPwm3Regs.TBPHS – загрузка TBPHS с 2/3 TBPRD. Скомпилируйте, загрузите, протестируйте. Теперь скомпилируйте, загрузите и протестируйте модифицированный проект. Используя осциллограф, Вы должны увидеть 3 сдвинутые во времени сигналы на ePWM1A, ePWM2A и ePWM3A (рисунок 2.50).
Рисунок 2.50 – Осцилограмма сигналов на ePWM1A, ePWM2A и ePWM3A
|