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

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

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

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

Добавлен: 23.11.2023

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

Скачиваний: 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.6. Характеристика лабораторной работы 4


Тема «Программирование трехфазного генератора с синусоидальными

ШИМ – сигналами со сдвигом 120°»

Цель: программирование ШИМ – сигналов, сдвинутых на 120°.

Описание лабораторной работы:

В процессе выполнения данной лабораторной работы, обучающиеся научатся владеть технологией разработки программного обеспечения для микроконтроллеров STM32. Познакомятся с одним из методов формирования трехфазных синусоидальных ШИМ – сигналов, сдвинутых на 120°, узнают о таком периферийном устройстве как DMA – прямой доступ к памяти, также узнают, как использовать его чтобы получать выходные сигналы заданной формы. Данная лабораторная работа позволит обучающимся глубже понять принципы работы частотных преобразователей и формируемых в них ШИМ – сигналов.

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

В основе данной лабораторной работы лежит принцип формирования синусоидальных ШИМ – сигналов, сдвинутых на определенных электрический угол. Таблицы для синусов можно рассчитать по формулам 2.

⎧ ???????? = ????∗????????????(????0????)2;????

???????? = ???????????????????? ; (2)

⎨ 2????

⎩???????? = ???????????????????? , где U* – относительное значение амплитуды напряжения.

Для расчета данных таблиц можно использовать любой расширенный калькулятор, например, можно воспользоваться средствами MS Excel.

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

Для того чтобы запустить DMA необходимо:

  1. Включить модуль и канал DMA.

  2. Указать адрес источника и адрес получателя.

  3. Задать некоторые параметры передачи.

После этого необходимо только дать устройству DMA команду «Старт» и передача данных начнется. Независимо от объема данных эта операция происходит без участия процессора. У микроконтроллера STM32F103C8T6 в наличии имеется один 7 – канальный модуль DMA.


Возможны три направления передачи данных по DMA:

  1. Периферия – память, для приема данных и складирование их в буфер.

  2. Память – периферия, для передачи данных из буфера.

  3. Память – память, копирование блока данных из одного участка памяти в другой.

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

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

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

Таблица 8 – значения для поля TIM_Prescaler

Вариант

1

2

3

4

Значения

5

10

15

20



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

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

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

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

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

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

  1. Объясните, как в данном коде организован сдвиг сигналов на определенный электрический угол.

  2. Что такое DMA?

  3. Назовите направления передачи DMA.

  4. По каким формулам строятся таблицы для ШИМ – сигналов?

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


Тема «Регулирование скважности сигнала при помощи аналогового потенциометра с настройкой «мертвого» времени (DeadTime)»

Цель: использовать АЦП (аналогово – цифровой преобразователь) для снятия данных с потенциометра для регулирования скважности сигнала.

Описание лабораторной работы:

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

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

Настройка тактирования всегда начинается с выбора кварцевого резонатора. По умолчанию контроллер тактируется от внутреннего кварцевого резонатора (HSI) на 8 МГц, эта частота не может быть изменена. Но микроконтроллер STM32F103C8T6 может работать на частоте до 72 МГЦ, поэтому на отладочной плате установлен внешний кварцевый резонатор (HSE) на 8МГц при инициализации которого, частоту можно изменить, умножив ее на некий коэффициент. PLL – множитель частоты, коэффициент на который умножается частота внешнего кварцевого резонатора. В данном случае максимально возможный коэффициент 9. Далее настраиваются делители частоты на шинах AHB, APB1, APB2.

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


В микроконтроллере STM32F103C8T6 в наличии имеются два 12-ти разрядных АЦП. Данные с АЦП можно считывать в буфер при помощи DMA, что реализовано в данной работе. Также запуск АЦП можно организовать по триггеру, в качестве триггера, например, можно использовать таймер, то есть АЦП будет запускаться, когда таймер досчитает до определенного значения. Данное АЦП является 18-ти канальным, шестнадцать внешних каналов и два внутренних.

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

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

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

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

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

Вариант

1

2

3

4

Значение

150

170

200

255



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

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

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

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

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

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

  1. Что такое АЦП?

  2. Для чего используется PLL?

  3. Объясните в чем отличие внутреннего и внешнего кварцевого резонатора в микроконтроллере STM32?

  4. Какое максимальное значение множителя частоты может быть для микроконтроллера, используемого в лабораторной работе?

  5. Каким образом организовано снятие данных с потенциометра в данной лабораторной работе?

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


Тема «Программирование синусоидального и пилообразного сигнала с помощью цифро – аналогового преобразователя (ЦАП)»

Цель: использовать цифро – аналоговый преобразователь (ЦАП) для генерации синусоидального и пилообразного сигнала.

Описание лабораторной работы:

В процессе выполнения данной лабораторной работы, обучающиеся научатся владеть технологией использования ЦАП для генерации аналоговых сигналов заданной формы. Познакомятся с особенностями настройки цифро – аналогового преобразователя, узнают об использовании ЦАП совместно с триггером (в данном случае с таймером), а также совместно с DMA. Краткие теоретические сведения:

ЦАП (DAC) – цифро – аналоговый преобразователь, устройство для преобразования входного дискретного (обычно двоичного) кода в аналоговый сигнал. ЦАП являются интерфейсом между дискретным цифровым миром и реальным аналоговым.

ЦАП в STM32F407VGT6 имеет следующие характеристики:

  • напряжение от 0 до 3.3В;

  • аппаратная генерация шума и треугольных импульсов;

  • два независимых канала;

  • возможно переключатся между 8 и 12-ти разрядным режимами с выравниванием битов по левому или по правому краю.

ЦАП использует два вывода отладочной платы PA4 и PA5, именно эти выводы задействованы в данной лабораторной работе.

ЦАП в STM32 можно использовать как генератор псевдослучайных чисел, в таком случае на цифровом осциллографе можно будет наблюдать шум.

Также можно задавать амплитуду треугольных импульсов.

Синусоидальный сигнал аппаратно получить нельзя, поэтому рекомендуется использовать ЦАП совместно с DMA, для отправки значений синуса в регистр ЦАП. Также синусоидальный сигнал можно сгенерировать, используя прерывания и описать в обработчике прерывания запись значений массива синуса в регистр ЦАП [22].

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

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

Задание: в соответствии с назначенным преподавателем вариантом, необходимо изменить значение поля DAC_LFSRUnmask_TriangleAmplitudeв структуре ЦАП для генерации пилообразных сигналов на значение из таблицы 10,проект скомпилировать, загрузить рабочую программу в микроконтроллер. Результат работы продемонстрировать.

Таблица 10 – Значения для генерации пилообразного сигнала