Файл: Разработка лабораторного стенда по программированию микроконтроллера stm.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 23.11.2023
Просмотров: 234
Скачиваний: 4
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
1.БАЗОВЫЕ ПОНЯТИЯ О МИКРОКОНТРОЛЛЕРАХ
1.3.Основные сведения о широтно – импульсной модуляции
2.ОПИСАНИЕ ЛАБОРАТОРНОГО СТЕНДА
2.1.Описание среды программирования
2.2.Разработка комплекса лабораторных работ
2.3.Указания по выполнению лабораторной работы 1
2.4. Характеристика лабораторной работы 2
2.5. Характеристика лабораторной работы 3
2.6. Характеристика лабораторной работы 4
2.7. Характеристика лабораторной работы 5
Рисунок 22 – Текстовой редактор кода CoIDE
Слева от редактора кода находится панель компонентов проекта и панель файлов, входящих в проект (рисунок 23). В панели компонентов отображаются все подключенные к проекту библиотеки, а также к каждой из библиотек можно посмотреть примеры программ в интернете. В панели файлов отображаются все файлы, которые находятся в папке проекта и подключены к нему, можно подключать и создавать новые файлы.
Рисунок 23 – Панель компонентов и панель файлов
Очень важной частью окна является консоль (рисунок 24). В консоли отображаются все действия, которые производит пользователь: компиляция, загрузка кода, отладка и так далее.
Рисунок 24 – Консоль
2.2.Разработка комплекса лабораторных работ
Данная разработка предназначена для студентов профиля «Энергетика» направления подготовки 44.03.04 Профессиональное обучение (по отраслям) [16]. Может применяться в рамках дисциплины «Интегрированные инженерные сети». В процессе выполнения комплекса лабораторных работ, обучающиеся познакомятся с применением микроконтроллеров в качестве систем управления, которые могут применятся в таких актуальных, на сегодняшний день, технологиях как «умный» дом. Также данный комплекс лабораторных работ может применятся в дисциплине «Электрические машины» для изучения систем управления электроприводом.
2.3.Указания по выполнению лабораторной работы 1
Тема «Программирование двухфазного генератора с синусоидальными
ШИМ – сигналами со сдвигом 90°»
Цель: программирование ШИМ – сигналов, сдвинутых на 90°. Оборудование:
-
учебный лабораторный стенд; -
персональный компьютер; -
двухканальный цифровой осциллограф.
Краткие теоретические сведения:
Сдвиг сигналов в данной лабораторной работе производится с помощью прерывания, которое генерируется системным таймером (SysTick). Системный таймер является частью ядра Cortex – M3, это 24 – битный вычитающий счетчик, с функциями автоперезагрузки и генерации прерывания по завершению счета. Данный таймер работает на тактовой частоте процессора.
Для инициализации системного таймера используется функция SysTick_Config(), в аргументах (скобках) данной функции указывается количество тактов, которое следует считать таймеру. После инициализации системного таймера, важной частью является описание функции прерывания (обработчика прерывания). Все функции прерывания можно найти в файле startup_stm32f10x_md.c[24]. На рисунке 25 представлен общий вид функции прерывания для системного таймера.
Рисунок 25 – Функция прерывания SysTick
Во время прерывания процессор приостанавливает свою текущую активность, сохраняя своё состояние и переходит к выполнению обработчика прерывания. В обработчике прерывания будет записан код, в результате которого будут получены синусоидальные напряжение, сдвинутые на 90°.
Содержание и порядок выполнения работы:
-
На рабочем столе компьютера найти и двойным щелчком левой кнопки мыши на значке CooCox CoIDE запустить среду программирования. -
После запуска CooCox CoIDE в строке меню нажать: Project -> New Project. -
В появившемся окне в поле Project name, ввести имя своему будущему проекту на английской раскладке, после этого нажать Next>. -
Выбрать поле с надписью Chip, после этого нажать Next>. -
Появится окно с выпадающими списками различных фирм микроконтроллеров (рисунок 26), необходимо открыть список ST, затем из выпадающего списка открыть подсписок STM32F103x, после этого найти микроконтроллер STM32F103C8 выбрать его левым щелчком мыши и нажать Finish.
Рисунок 26 – Выбор микроконтроллера
-
После проделанных действий появится главное окно с репозиторием для выбора необходимых для проекта библиотек, подключить следующие библиотеки:
а) RCC – для управления тактовым генератором;
б) GPIO – для управления портами ввода – вывода;
в) TIM – для управления таймерами.
-
После выбора необходимых библиотек, в панели файлов выбрать файл main.c, весь код будет находится здесь. -
С помощью директивы #include <> подключить заголовочные файлы
(рисунок 27).
Рисунок 27 – Подключенные библиотеки
9. Ввести все структуры, которые будут использоваться в коде, а также ввести массив для построения синусоидальной ШИМ (Рисунок 28). Массив имеет тип uint16_t, что означает, что данный массив не имеет отрицательных значений, а также числа, входящие в этот массив, могут принимать значения в диапазоне от 0 до 65535.
Рисунок 28 – Ввод структур и массива синуса
10. Для удобства восприятия кода, программа была разделена на несколько подпрограмм (функций), вначале необходимо ввести и заполнить функцию voidinitRcc(void) (рисунок 29) для включения тактирования всех используемых периферийных устройств. Данная функция имеет тип void.
Рисунок 29 – Функция включения тактирования
11. Ввести и заполнить функцию инициализации всех периферийных устройств voidinitAll(void), данная функция, как и предыдущая также имеет тип void. Но так как она имеет большой объем необходимо разбить ее на участки:
а) назначение портов ввода – вывода (рисунок 30). Все выводы назна-
чены как альтернативные функции с двумя состояниями;
Рисунок 30 – Назначение GPIO в функции initAll()
б) инициализация таймера TIM1 (рисунок 31):
в) инициализация ШИМ (рисунок 32):
Рисунок 32 – Инициализация ШИМ
г) необходимо инициализировать системный таймер, для этого напи-
сать функцию SysTick_
Config(), в аргументах у данной функции указывается количество тактов, необходимо указать 1200, в итоге должно получиться SysTick_Config(1200).
12. Заполнить обработчик прерывания SysTick_Handler (рисунок 33), в котором будет проходить процесс записи значений массива в регистры сравнения таймера.
Рисунок 33 – Описание функции прерывания
13. После того как все функции были введены и заполнены нужно объявить их перед функцией intmain(), как это делается представлено на рисунке 34.
Рисунок 34 – Объявление функций
14. Записать данные функции между фигурными скобками в main() (рисунок 35), цикл while, в этом проекте останется пустым. После этого код можно считать завершенным.
Рисунок 35 – Функция main()
-
После написания кода программы его необходимо скомпилировать, для этого в панели инструментов нужно нажать «Build», проект будет собираться. В случае успешной компиляции в консоли появится надпись «BUILD SUCCESSFUL», а также будет указан размер программы. Если же в коде присутствуют ошибки тогда в консоли будут указаны где именно находятся эти ошибки, а также появится надпись «BUILD FAILED». -
После завершения компиляция, последним этапом станет загрузка рабочей программы в микроконтроллер (прошивка). Для этого нужно, через специальный кабель (удлинитель USB), подключить программатор, расположенный на лабораторном стенде к компьютеру. После подключения, в панели инструментов нажать «Download Code to Flash» и дождаться окончания загрузки, в случае удачной загрузки в консоли появятся надписи: Erase: Done; Program: Done; Verify: Done. Если существуют проблемы с подключением платы к компьютеру, то появится надпись «Error: Connect failed, check config and cable connection», необходимо проверить кабель, к которому подключено устройство; 17. Для проверки работоспособности программы необходимо подключить двухканальный цифровой осциллограф «GWINSTEK GDS – 71062», к выводам на лабораторном стенде. Щупы осциллографа присоединяются к клеммам. Первый канал осциллографа необходимо подключить к клемме «G» и «1», предварительно настроив масштаб 2В на осциллографе. Второй канал осциллографа необходимо подключить к клемме «G» и «2».
Описание клемм представлено на рисунке 36.
Рисунок 36 – Лабораторный стенд для исследования сдвига двух сигналов на 90°
-
– вывод первого синусоидального сигнала, 1К – вывод первого комплементарного сигнала, -
– вывод второго синусоидального сигнала, 2К – вывод второго комплементарного сигнала, G – земля.
Задание: в соответствии с назначенным преподавателем вариантом, необходимо к каждому значению массива синусов sinPWM прибавить соответствующее значение из таблицы 5, скомпилировать полученный проект, загрузить рабочую программу в микроконтроллер, получить результат и продемонстрировать его преподавателю.
Таблица 5 – Значения для таблицы синусов
Вариант | 1 | 2 | 3 | 4 |
Значение | 50 | 60 | 70 | 80 |
Содержание отчёта:
-
Название и цель работы. -
Код с измененными параметрами. -
Компоновка элементов лабораторной установки, название входящих в нее элементов, в том числе основных узлов микроконтроллера. -
Выводы о проделанной работе. -
Подготовиться к устному опросу по лабораторной работе. Вопросы для самоконтроля:
-
Что такое компиляция? -
Дайте определение термину «прерывание». -
Объясните, как в данном коде организован сдвиг сигналов на определенный электрический угол.