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

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

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

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

Добавлен: 23.11.2023

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

Скачиваний: 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

ЗАКЛЮЧЕНИЕ

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

GPIOC, второй аргумент это номер вывода, в данном случае это GPIO_Pin_13. После этого необходимо сбросить бит функцией GPIO_ResetBits(): функция имеет два аргумента, таких же как их предыдущая. Обе этих функции записываются в бесконечном цикле while(1). Полный код программы представлен на рисунке 14.

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

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


Рисунок 14 – Полный код программы для включения светодиода


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


ШИМ (широтно – импульсная модуляция) – сигнал, который представляет собой последовательность прямоугольных импульсов, которые характеризуются периодом – T и длительностью «единицы» – d, в цифровом виде ШИМ представляет собой череду импульсов с двумя возможными значениями «единицей» и «нулем». ШИМ представлен на рисунке 15.


Рисунок 15 – ШИМ


Отношение длительности «единицы» – d к периоду – T называется скважностью ШИМ и обозначается буквой S:

???? = ???? (1)

????

В зависимости от значения S, ШИМ принимает различный вид, виды сигналов приведены в таблице 4.

Таблица 4 – Виды сигналов при различной скважности

Скважность

Вид сигнала

1



0



0.5



При S = 1, ШИМ представляет собой чистую логическую единицу. При S = 0, ШИМ представляет собой чистый логический ноль. Если S = 0.5, то ШИМ – сигнал представляет собой идущие через равные промежутки прямоугольники, такой сигнал называется – меандр. Эти значения представлены в качестве примера, могут существовать и другие значения, их диапазон лежит в пределах от 0 до 1.

В микроконтроллерах используется генерация ШИМ при помощи таймеров. На рисунке 16 представлена генерация ШИМ при помощи таймера [19].


Рисунок 16 – Генерация ШИМ при помощи таймера


Пилообразный сигнал формируется счетчиком таймера. Как видно из рисунка 16, как только счетчик начинает считать в ШИМ – сигнале выставляется единица, когда счетчик досчитывает до нужного значения единица сбрасывается в ноль и так далее. Если менять значение, до

которого должен досчитать счетчик, то будет изменяться скважность ШИМ, таким образом, происходит формирование ШИМ – сигнала с помощью таймера.

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


Для проведения лабораторных работ был разработан учебный лабораторный стенд с использованием отладочных плат на базе микроконтроллеров STM32. Внешний вид стенда представлен на рисунке 17.


Рисунок 17 – Лабораторный стенд


Учебный лабораторный стенд предназначен для исследования возможностей микроконтроллеров STM32, изучения принципов программирования ШИМ – сигналов.

Компоненты лабораторного стенда:

  1. Фрагмент лабораторного стенда по изучению программирования синусоидальных ШИМ – сигналов, сдвинутых на 90°. Фрагмент выполнен в виде макетной платы без пайки, с установленной на ней отладочной платой на базе микроконтроллера STM32F103C8T6. Также к стенду на металлических стойках прикреплено оргстекло, на нем расположены гнезда для подключения цифрового осциллографа. Используется в лабораторной работе № 1.

  2. Фрагмент лабораторного стенда по изучению программирования управляющих сигналов транзисторной стойки с генерацией мертвого времени (DeadTime). Так же, как и предыдущий, данный фрагмент выполнен в виде макетной платы без пайки, с установленной на ней отладочной платой на базе микроконтроллера STM32F103C8T6. Также к стенду на металлических стойках прикреплено оргстекло, на нем расположены гнезда для подключения цифрового осциллографа. Используется в лабораторной работе № 2.

  3. Фрагмент лабораторного стенда по изучению программирования регулирования скважности ШИМ – сигнала с помощью кнопки. Данный фрагмент выполнен в виде макетной платы без пайки, с установленной на ней отладочной платой на базе микроконтроллера STM32F103C8T6, помимо микроконтроллера на макетной плате установлена кнопка при нажатии на которую изменяется выходной сигнал, а также установлен светодиод, который наглядно показывает изменение скважности импульса. Также к стенду на металлических стойках прикреплено оргстекло, на нем расположены гнезда для подключения цифрового осциллографа. Используется в лабораторной работе № 3.

  4. Фрагмент лабораторного стенда по изучению программирования трехфазных синусоидальных ШИМ – сигналов, сдвинутых на 120°. Выполнен в виде макетной платы без пайки, с установленной на ней отладочной платой на базе микроконтроллера STM32F103C8T6. Также к стенду на металлических стойках прикреплено оргстекло, на нем расположены гнезда для подключения цифрового осциллографа. Используется в лабораторной работе № 4.

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

  6. Фрагмент лабораторного стенда по изучению программирования синусоидального и пилообразного сигналов. В данном фрагменте используется отладочная плата STM32F4 – DISCOVERY (рисунок 18) на базе микроконтроллера STM32F407VGT6. Плата размещена без использования макетной платы.


Гнезда для подключения цифрового осциллографа размещены на оргстекле.

Используется в лабораторной работе № 6.


Рисунок 18 – Отладочная плата STM32F4 – DISCOVERY


  1. Программатор ST – LINK/V2. Используется для загрузки рабочего кода в микроконтроллеры, может быть подключен к любому из микроконтроллеров, расположенных на стенде. Также может быть использован для отладки программ.

  2. Логический анализатор. для того чтобы снимать выходные сигналы с выводов плат, на лабораторном стенде расположены два 8 – ми канальных логических анализатора Saleae logic (рисунок 19). Логический анализатор — это электронное устройство, способное записывать и отображать последовательность цифровых сигналов, с помощью специализированного программного обеспечения для персонального компьютера возможно проводить анализ цифровых сигналов, поступающих с выводов микроконтроллера. К логическому анализатору возможно подключать одновременно восемь выводов контроллера.




Рисунок 19 – Логический анализатор Saleae logic


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


Для данного проекта была использована среда программирования CooCox CoIDE. Это свободная интегрированная среда разработки, ориентированная на микроконтроллеры на базе ARM Cortex. По сути CoIDE является текстовым редактором для кода, компилятор для языка Си (GCC for ARM) необходимо устанавливать и подключать отдельно. Основным преимуществом данной среды разработки является то, что благодаря специальному хранилищу, при подключенном интернете, пользователь имеет доступ ко множеству библиотек и примеров. Общий вид окна среды программирования представлен на рисунке 20.


Рисунок 20 – Общий вид CooCox CoIDE


Для работы с CooCox CoIDE необходимо ознакомиться с панелью ин-

струментов (рисунок 21).


Рисунок 21 – Панель инструментов


Основные инструменты, с которыми работает пользователь:

– создать новый проект (New project);

– создать новый файл (New file);

– сохранить проект (Save);

– собрать проект, скомпилировать (Build);

– начать отладку устройства (Start Debug);

– загрузка кода в Flash – память (Download Code To Flash);

– репозиторий, хранилище, где находятся подключаемые библиотеки (Repository).

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