Файл: Разработка лабораторного стенда по программированию микроконтроллера stm.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 23.11.2023

Просмотров: 233

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

1.БАЗОВЫЕ ПОНЯТИЯ О МИКРОКОНТРОЛЛЕРАХ

1.1.Микроконтроллеры STM32 В данной разработке лабораторного стенда используются микроконтроллеры STM32. Выбор пал именно на эти контроллеры из-за наличия в них интегрированной периферии – расширенных таймеров, которые позволяют формировать ШИМ – сигнал для управления 3-фазными двигателями, а именно такой ШИМ является целью исследований в лабораторных работах. Микроконтроллеры STM32 выполнены на базе ядра ARM Cortex. На первый взгляд разница между микроконтроллерами STM32 и микроконтроллерами другой фирмы не видна, набор встроенных УВВ (устройств ввода-вывода) такие как АЦП, таймеры общего назначения, I2C, SPI, CAN, USB и часы реального времени имеют и самые обыкновенные микроконтроллеры. Но если рассматривать каждое из этих УВВ более детально станет очевидно, что в STM32 они устроены гораздо сложнее. Например, АЦП – аналогово – цифровой преобразователь имеет разрядность в 12 бит, а также имеет встроенный датчик температуры и поддерживает несколько режимов преобразования входных данных. Таймеры оснащены блоками захвата и сравнения и могут быть использованы как отдельно, так и синхронно, что позволяет создавать большие массивы таймеров. В STM32, как было сказано ранее, имеются, так называемые, расширенные таймеры (advanced timers), их используют для управления электродвигателями. Для этого у них предусмотрено шесть комплементарных ШИМ-выводов с программируемым мертвым временем (dead-time) [20]. В отличие от других микроконтроллеров в STM32 предусмотрен модуль DMA – прямой доступ к памяти, каждый канал данного модуля может быть использован для передачи данных между регистрами любого из УВВ и запоминающими устройствами. Еще одним плюсом микроконтроллеров STM32 является сочетание характеристик малого энергопотребления и довольно высокой производительности. Они способны работать всего лишь от 2В-ого источника питания на тактовой частоте 72Мгц и потреблять в активном состоянии всего лишь 36мА, если же использовать поддерживаемые ядром Cortex экономные режимы работы, то можно снизить энергопотребление до ничтожных 2мА. За безопасность в данном типе микроконтроллеров отвечают два сторожевых таймера (watchdog), которые позволяют в случае ошибки исполнения программы перезагрузить микроконтроллер автоматически и продолжить выполнение. При разработке лабораторного стенда использовались микроконтроллеры STM32F103C8T6 (рисунок 1) и STM32F407VGT6 (рисунок 3). Рисунок 3 – Микроконтроллер STM32F407VGT6 Микроконтроллер STM32F103C8T6 имеет 64Кб Flash – памяти и тактовую частоту ядра 72МГц. Выполнен на базе процессора ARM Cortex M3 и имеет 32-х битную архитектуру. Имеет в наличии один расширенный таймер TIM1 с помощью которого можно генерировать 3-х фазный ШИМ сигнал. Микроконтроллер STM32F404VGT6 имеет 1Мб Flash- памяти и тактовую частоту ядра 192Мгц. В отличие от предыдущего STM32F4VGT6 выполнен на базе процессора ARM Cortex M4, который так же имеет 32-х битную архитектуру. В наличие имеется уже два расширенных таймера, а также двухканальный ЦАП, который будет использоваться в исследованиях. 1.2.Особенности программирования микроконтроллеров STM32 Программирование микроконтроллеров STM32 сводится к написанию алгоритма программы на языке программирования и записи исполняемой программы в память контроллера. Для написания программ будет использоваться язык C (Си). C (Си) – компилируемый статически типизированный язык программирования общего назначения, разработанный в 1969—1973 годах сотрудником Bell Labs Деннисом Ритчи как развитие языка Би. Вначале код пишется на понятном для человека языке в среде программирования IDE, затем с помощью компилятора переводится в, так называемый, машинный код и записывается с помощью программатора в память микроконтроллера. Для программирования STM32 на языке C существует множество платных и бесплатных сред разработок. Также существуют компиляторы для различных языков. Но в данной разработке используется язык программирования Си, следовательно, и компилятор будет использоваться для этого языка. Для того чтобы научиться разрабатывать программное обеспечение для микроконтроллеров, которые будут использованы в лабораторных работах, необходимо научиться общаться с ними на одном языке [17]. Комментарии Комментарии необходимы для пояснения кода программы и не являются частью кода. Комментарии бывают многострочные и однострочные. Однострочные и многострочные комментарии подробнее рассмотрены в таблице 1. Таблица 1 – Виды комментариев

1.3.Основные сведения о широтно – импульсной модуляции

2.ОПИСАНИЕ ЛАБОРАТОРНОГО СТЕНДА

2.1.Описание среды программирования

2.2.Разработка комплекса лабораторных работ

2.3.Указания по выполнению лабораторной работы 1

2.4. Характеристика лабораторной работы 2

2.5. Характеристика лабораторной работы 3

2.6. Характеристика лабораторной работы 4

2.7. Характеристика лабораторной работы 5

2.8. Характеристика лабораторной работы 6

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

2.4. Характеристика лабораторной работы 2


Тема «Программирование управляющих сигналов транзисторной стойки с генерацией «мертвого» времени (DeadTime)»

Цель: программирование ШИМ – сигналов с настройкой «мертвого времени». Описание лабораторной работы:

В процессе выполнения данной лабораторной работы, обучающиеся научатся владеть технологией разработки программного обеспечения для микроконтроллеров STM32. Познакомятся c методом генерации мертвого времени. Также вживую увидят результаты проделанной работы, что позволит наглядно убедиться в правильности выполнения задания. Краткие теоретические сведения:

«Мертвое» время (DeadTime) – задержка по времени положительных фронтов управляющих сигналов для исключения аварийных ситуаций в стойках. Стойка (рисунок 37) — это основной элемент силовой схемы, состоит из двух последовательно соединённых транзисторов и обратных диодов, соединённых параллельно с ними.


Рисунок 37 – Один из вариантов исполнения стойки


Управление стойкой происходит с помощью ШИМ, обычно для стойки с двумя транзисторами скважность задается только для верхнего ключа, а нижний ключ работает в комплементарном (со–зависимом) режиме (рисунок 38), то есть когда верхний ключ включен, то нижний выключен и наоборот, кода нижний ключ включен, верхний должен быть выключен. Такой комплементарный способ управления применяется в большинстве преобразователей. Микроконтроллер STM32F103C8T6 имеет в своем наборе таймер TIM1, с помощью которого можно назначить комплементарные выводы для генерации ШИМ – сигнала, то есть программисту необходимо задать скважность ШИМ только для верхнего ключа, а на соответствующем выводе микроконтроллера аппаратно сформируется комплементарный сигнал для нижнего ключа.


Рисунок 38 – Комплементарное управление транзисторами в стойке



Особое внимание следует обратить на момент выключения верхнего транзистора и включения нижнего. На практике время срабатывания транзисторов отлично от нуля и возможна ситуация, когда один транзистор уже успел включиться, а другой еще не успел выключится это приводит к короткому замыканию между положительным и отрицательным контактами стойки. Ток, который возникает в таком аварийном режиме называют «сквозным». Для предотвращения таких ситуаций используют генерацию «мертвого» времени, то есть происходит смещение фронтов сигналов (рисунок 39) и возникают паузы в управлении, которые гарантируют безопасное включение и отключение транзисторов в стойке.[1]




Рисунок 39 – Генерация «мертвого» времени


Содержание и порядок выполнения работы:

Представлено в ПРИЛОЖЕНИИ А.

Задание: в соответствии с назначенным преподавателем вариантом необходимо изменить значение поля TIM_DeadTime структуры BDTR на значение из таблицы 6, скомпилировать полученный проект, загрузить рабочую программу в микроконтроллер и продемонстрировать результат.

Таблица 6 – Значения для поля TIM_DeadTime

Вариант

1

2

3

4

Значение

20

30

40

50



Содержание отчёта:

  1. Название и цель работы.

  2. Код с измененными параметрами.

  3. Компоновка элементов лабораторной установки, название входящих в нее элементов, в том числе основных узлов микроконтроллера.

  4. Выводы о проделанной работе.

  5. Подготовиться к устному опросу по лабораторной работе. Вопросы для самоконтроля:

  1. Что такое мертвое время (DeadTime)?

  2. Что такое сквозной ток?

  3. Поясните как происходит управление стойкой при помощи ШИМ.

  4. Поясните способ комплементарного управления стойкой.

  5. Укажите в каком поле структуры BDTR, указывается значение мертвого времени?


2.5. Характеристика лабораторной работы 3


Тема «Изменение скважности ШИМ – сигнала с помощью кнопки

(button)»

Цель: написать программу для изменения скважности ШИМ – сигнала с помощью кнопки. Описание лабораторной работы:

В процессе выполнения данной лабораторной работы, обучающиеся научатся владеть технологией разработки программного обеспечения для микроконтроллеров STM32. Познакомятся с особенностями инициализации такого периферийного устройства как порт ввода – вывода. Научатся использовать выводы микроконтроллера для снятия входных данных, в данном случае с кнопки. Знакомство с портами ввода – вывода наиболее важная часть в процессе изучения микроконтроллеров, так как именно они используется для взаимодействия контроллера с внешним миром. После проделанной работы, обучающиеся будут лучше ориентироваться в вопросах о разработках систем управления для «умного» дома, электропривода и так далее.

Краткие теоретические сведения:

Порты ввода – вывода (GPIO) это основной элемент любого микроконтроллера, они используются для «общения» микроконтроллера с внешним миром. Устройство портов ввода – вывода представлено на рисунке 40.


Рисунок 40 –Устройство портов ввода – вывода (GPIO)


Как видно из рисунка 40, выводы микроконтроллера можно сконфигурировать как на вход, так и на выход:

  1. Входной драйвер (input driver) – позволяет сконфигурировать порт микроконтроллера как вход (аналоговый вход, альтернативная функция), с возможностью чтения входных данных, включает в себя:

а) триггер Шмитта (TTL Schmitt trigger);

б) стягивающий резистор (pull – down) –подключен к выводу G (земля), позволяет получить на выводе низкое напряжение (логический ноль);

в) подтягивающий резистор (pull – up) – подключен к питанию микро-

контроллера, позволяет получить на выводе высокое напряжение (логическую единицу);

г) защитный диод (protection diode) – защищает микроконтроллер от перенапряжения.

  1. Выходной драйвер (output driver) – позволяет сконфигурировать порт микроконтроллера как выход, с возможностью чтения и записи выходных данных, также возможна конфигурация порта в виде выхода альтернативной функции (например, для генерации ШИМ – сигналов). Выходной драйвер включает в себя:


а) управление выходом (output control);

б) транзисторы (P – MOS и N – MOS), используются для определения

на выходе микроконтроллере высокого напряжения (логической единицы), либо низкого напряжения (логического нуля);

в) защитный диод (protection diode) – защищает микроконтроллер от перенапряжения.

В данной лабораторной работе необходимо подключать кнопку. Кнопка – это устройство при нажатии, на которое происходит замыкание контактов. Для подключения кнопки к микроконтроллеру необходимо сконфигурировать порт микроконтроллера как вход и включить чтение входных данных.

Содержание и порядок выполнения работы:

Представлено в ПРИЛОЖЕНИИ Б.

Задание: в соответствии с назначенным преподавателем вариантом, необходимо изменить значение макроса TIM_PULSE_BUTTON_ONна значение из таблицы 7, скомпилировать проект, загрузить рабочую программу в микроконтроллер, результат продемонстрировать. Таблица 7 – Значения для макроса

Вариант

1

2

3

4

Значения

1600

1700

1800

2000



Содержание отчёта:

  1. Название и цель работы.

  2. Код с измененными параметрами.

  3. Компоновка элементов лабораторной установки, название входящих в нее элементов, в том числе основных узлов микроконтроллера.

  4. Выводы о проделанной работе.

  5. Подготовиться к устному опросу по лабораторной работе.



Вопросы для самоконтроля:

  1. Что такое кнопка?

  2. Напишите фрагмент кода считывания данных с вывода микроконтроллера.

  3. Для чего используется подтягивающий к питанию резистор?

  4. Напишите фрагмент кода для инициализации вывода микроконтроллера как «входа».