- •Содержание
- •1.6 Регистровый файл……………………….………………………...……13
- •Введение
- •1 Микроконтроллеры msp430
- •1.1 Архитектура msp430
- •1.2 Семейство микроконтроллеров msp430f5хх
- •1.3 Адресное пространство
- •1.4 Системный сброс
- •1.5 Прерывания
- •1.6 Регистровый файл
- •1.7 Режимы работы
- •1.8 Цифровые входы/выходы
- •1.9 Функционирование цифровых портов входов/выходов
- •1.10 Сторожевой таймер
- •1.11 Регистры сторожевого таймера
- •1.12 Таймер а
- •1.13 Режим прямого счёта
- •1.14 Модуль вывода таймера в режиме прямого счёта
- •1.15 Режим непрерывного счёта
- •1.16 Режим реверсивного счёта
- •1.17 Модуль вывода таймера в режиме непрерывного счёта
- •1.18 Модуль вывода таймера в режиме реверсивного счёта
- •1.19 Прерывания Таймера а
- •1.20 Регистры Таймера а
- •1.21 Лабораторный практикум
- •1.21.1 Лабораторная работа 1
- •1.21.2 Лабораторная работа 2
- •1.21.3 Лабораторная работа 3
- •1.21.4 Лабораторная работа 4
- •1.21.5 Лабораторная работа 5
- •2 Сигнальные контроллеры
- •2.1 Типовые алгоритмы dsp
- •2.2 Цифровой сигнальный контроллер tms320f2833x
- •2.2.1 Центральный Процессор (цп)
- •2.2.2 Шинная система
- •2.2.3 Структура памяти контроллера
- •2.2.4 Конвейер команд
- •2.2.5 Прямой доступ в память
- •2.2.6 Сброс – загрузка
- •2.2.7 Режимы работы f2833x
- •2.2.8 Модуль защиты кода
- •2.2.9 Подсистема цифрового ввода – вывода
- •2.2.10 Входной фильтр
- •2.2.11 Модуль тактового генератора
- •2.2.12 Сторожевой таймер
- •2.2.13 Подсистема прерываний f2833x
- •Регистр флагов прерываний (ifr)
- •Регистр разрешения прерываний (ier)
- •2.2.14 Таймеры cpu f2833x
- •2.2.15 Модули ePwm (шим)
- •2.3 Лабораторный практикум
- •2.3.1 Лабораторная работа 2.1
- •2.3.2 Лабораторная работа 2.2
- •2.3.3 Лабораторная работа 2.3
- •2.3.4 Лабораторная работа 2.4
- •2.3.5 Лабораторная работа 2.5
- •2.3.6 Лабораторная работа 2.6
- •2.3.7 Лабораторная работа 2.7
- •2.3.8 Лабораторная работа 2.8
- •2.3.9 Лабораторная работа 2.9
- •2.3.10 Лабораторная работа 2.10
- •2.3.11 Лабораторная работа 2.11
- •2.3.12 Лабораторная работа 2.12
- •2.3.13 Лабораторная работа 2.13
- •10/2012. Формат 60 х 84/16. Ум. Друк. Арк. .
- •84313, М. Краматорськ, вул. Шкадінова, 72.
2.3.11 Лабораторная работа 2.11
Тема: независимая модуляция на ePWM1A и ePWM1B
Цель: сгенерировать прямоугольный волновой сигнал 1 kHz в линии ePWM1A и второй сигнал в ePWM1B с независимой модуляцией ширины импульса. Сигнал ePWM1A будет управляться регистром CMPA, а ePWM1B – регистром CMPB. На этот раз мы также будем изменять в реальном времени величины в CMPA и в CMPB во время работы программы.
Порядок выполнения
Откройте Файл Проекта
Откройте Lab7.pjt в «C/C++» вкладке Code Composer Studio .
Откройте файл «Lab7_4.c» и сохраните его как «Lab7_5.c»
Исключите файл «Lab7_4.c» из build. Используйте правое нажатие мыши в файле «Lab7_4.c», и разрешите “Exclude File(s) from Build”.
В функции «Setup_ePWM1()», измените строку, чтобы проинициализировать регистр EPwm1Regs.AQCTLB. Новая установка для AQCTLB должна устанавливать ePWM1B в 1 если CMPB считает вверх и очищать ePWM1B если CMPB – считает вниз.
После строки инициализации регистра TBPRD, добавьте две строки, для установки регистров CMPA и CMPB, чтобы первоначально сгенерировать ширину импульса 50%.
EPwm1Regs.CMPA.half.CMPA = EPwm1Regs.TBPRD / 2;
EPwm1Regs.CMPB = EPwm1Regs.TBPRD / 2;
Имейте в виду различие между структурными типами данных двух регистров. Это различие определяется секундным действующим режимом, называющимся “High Resolution PWM” (HRPWM), который доступен только для сигнальной линии ePWMxA. Для того, чтобы поддерживать этот режим, TI расширили структурный тип для регистра CMPA.
В функции «cpu_timer0_isr()», удалите все инструкции, для изменения ширины импульса регистром CMPA. Мы будем использовать фиксированную ширину импульса для этого упражнения, первоначально 50% для как ePWM1A так и для ePWM1B.
Скомпилируйте, загрузите и протестируйте.
Теперь скомпилируете, загрузите и протестируйте модифицированный проект. На экране осциллографа сигналы ePWM1A и ePWM1B должны выглядеть похожими на следующий график Рисунок (2.53).
Рисунок 2.53 – Сигналы ePWM1A и ePWM1B
Остановите выполнение кода:
– Target → Halt, followed by;
– Target → Reset → Reset CPU.
Теперь откройте Контрольное Окно View → Watch.
В окне «Watch 1» добавьте две переменные:
EPwm1Regs.CMPA.half.CMPA
EPwm1Regs.CMPB
Разрешите способ отладки в реальном времени:
Target → Advanced → Enable Silicon Realtime Mode.
На вашем экране появится предупреждение, чтобы сообщить Вам, что теперь Вы войдете в режим отладки в реальном времени. Ответьте на это окно «Yes».
В контрольном окне (рисунок 2.54) нажмите иконку «Continuous Refresh».
Рисунок 2.54 – Вид контрольного окна
Перезапустите ваш тест, на этот раз с новой последовательностью:
Scripts → Realtime Emulation Control → Run_Realtime_with_Restart Контрольное окно должно отображать текущие величины для CMPA и CMPB (рисунок 2.55).
Рисунок 2.55 – Контрольное окно с величинами CMPA и CMPB
Теперь, пока код все еще работает, измените величины в CMPA и CMPB на 9375 и 28125 соответственно.
Результат должен выглядеть как на рисунке 2.56.
Рисунок 2.56 – Сигналы ePWMA и ePWMB
Попробуйте другие комбинации CMPA и CMPB и проверьте изменение осциллограммы.
Если Вы сделали это упражнение, необходимо полностью остановить DSC. Мы к настоящему времени работаем в режиме реального времени, поэтому должны выполнить другую командную последовательность:
Scripts Realtime → Emulation Control → Full_Halt_with_Reset.
