51337

Изучение таймеров общего назначения и аналого-цифрового преобразователя микроконтроллера STM32F100RB

Лабораторная работа

Коммуникация, связь, радиоэлектроника и цифровые приборы

Некоторые характеристики модулей АЦП микроконтроллера STM32F100RB: 12ти разрядная разрешающая способность; 18 каналов из которых 16 внешние; возможность задавать время преобразования индивидуально для каждого канала 8 дискретных значений; возможность задания одиночного или непрерывного преобразования; самокалибровка; наличие оконного компаратора; запуск преобразования от внешнего источника; работа с модулем DM Injected chnnels инжектированные...

Русский

2014-02-09

62.87 KB

46 чел.

Министерство образования и науки РФ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Ижевский государственный технический университет

имени М. Т. Калашникова»

Кафедра «Мехатронные системы»

Лабораторные работы № 2,3

Дисциплина: «Микропроцессорная техника»

Тема: «Изучение таймеров общего назначения и аналого-цифрового преобразователя микроконтроллера STM32F100RB»

Выполнил: студент гр. 7-05-3

Лазарев Б.П.

Проверил:   преподаватель

Лекомцев П.В.

Ижевск 2012

Введение            3

Техническое задание          5

  1.  Разработка алгоритма программы        6
  2.  Разработка программы         8
  3.  Вычислительный эксперимент                   9

Вывод                      10

Список литературы                    10

Введение

Таймеры – неотъемлемое и весьма востребованное устройство в любом микроконтроллере.

Контроллеры STM32 имеют в своем составе три группы таймеров:

  1.  basic timers  — базовые таймеры;
  2.  general-purpose timers  — общего назначения;
  3.  advanced-control timers  — с расширенными возможностями

Эти три группы перечислены по мере увеличения возможностей таймеров.

Из этой классификации следует, что самые простые – это базовые таймеры.

Таймеры общего назначения способны выполнять функции базовых и обладают дополнительными свойствами.

“general-purpose” (таймеры общего назначения) - это вторая группа таймеров, которые имеются у микроконтроллеров STM32.

Таймеры общего назначения, по сравнении с базовыми, обладают рядом дополнительных возможностей.

Некоторые из них перечислены ниже:

  1.  счетный регистр поддерживает режимы счета:  up — прямой, down — обратный, up/down – двунаправленный (сначала до определенного значения, а затем обратный);
  2.  имеется четыре независимых канала, позволяющих выполнять: захват входного сигнала, сравнение счетного регистра с заданным значением, формирование ШИМ-сигнала или одиночного импульса; по каждому из каналов может формироваться прерывание или запрос DMA; 
  3.  возможность синхронизироваться от нескольких источников: от системной синхронизации, от другого таймера или от внешнего сигнала. 

Аналого-цифровой преобразователь (АЦП, англ. Analog-to-digital converter, ADC) — устройство, преобразующее входной аналоговый сигнал в дискретный код (цифровой сигнал).

Некоторые характеристики модулей АЦП микроконтроллера STM32F100RB:

  1.  12-ти разрядная разрешающая способность;
  2.  время преобразования — 1 μs;
  3.  18 каналов, из которых 16 — внешние;
  4.  возможность задавать время преобразования индивидуально для каждого канала (8 дискретных значений);
  5.  возможность задания одиночного или непрерывного преобразования;
  6.  само-калибровка;
  7.  наличие оконного компаратора;
  8.  запуск преобразования от внешнего источника;
  9.  работа с модулем DMA

Injected channels (инжектированные каналы) и Regular channels (регулярные каналы) - это две разновидности опроса каналов.

Количество измерений в группе регулярных каналов может достигать 16. Возможно непрерывное измерение выбранных каналов (по окончанию измерения автоматически запустится новый цикл).

Максимальное количество измерений в группе инжектированных каналов равно четырем. Если запустить измерение инжектированных каналов, то измерение регулярных каналов будет приостановлено. Затем будет выполнено измерение заданных инжектированных каналов и вновь восстановлено измерение каналов регулярной группы.

Техническое задание

Разработать алгоритм и программу на языке «С»  измерения внешнего напряжения посредством АЦП и генерации ШИМ в зависимости от величины измеренного напряжения.

1. Разработка алгоритма программы

Схема алгоритма программы представлена на рисунке 1.

Начало

Подача тактовых импульсов на таймер TIM2, АЦП1 и порта ввода/вывода А (шины APB1 и APB2 соответственно)

Настройка линии РА2 порта А на выход (альтернативный режим)

Разрешить таймеру TIM2 использовать линию РА2 порта А для генерации широтно-импульсной модуляции

Настройка режима широтно-импульсной модуляции

Запуск таймера TIM2

Запуск калибровки АЦП

Устанавливаем период опроса линии РА1 порта ввода/вывода А.

Калибровка окончена?

Устанавливаем последовательность преобразования инжектированной и регулярной группы каналов АЦП1. Разрешаем внешний запуск преобразования инжектированной группы. Устанавливаем последовательность запуска преобразований (одно за другим). Разрешаем преобразование инжектированной группы каналов АЦП1 после регулярной.

А

Рисунок 1 – Схема алгоритма программы

А

Задаём номер канала АЦП1 (1 канал)

Включаем АЦП1

Запуск преобразований

Первое преобразование окончено?

Подача питания прекращена?

Запись результата преобразования в переменную. Умножение переменной на константу. Запись значения переменной в регистр захвата/сравнения таймера TIM2

Конец

Рисунок 1 - Продолжение

2. Разработка программы

В соответствии со схемой алгоритма программы разработана программа. Текст программы представлен на  рисунке 2.

#include<stm32f10x_rcc.h>

#include<stm32f10x_gpio.h>

#include "stm32f10x.h"

int main(void)

{

 GPIO_InitTypeDef PORT;

 //Включаем порты А и С и таймера TIM2

RCC->APB2ENR |= (RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOA);

 RCC->APB1ENR |= (RCC_APB1Periph_TIM2);

 //Настройка ноги PA2 на выход, альтернативный режим

 PORT.GPIO_Pin = (GPIO_Pin_2);

 //Будем использовать альтернативный режим а не обычный GPIO

 PORT.GPIO_Mode = GPIO_Mode_AF_PP;

 PORT.GPIO_Speed = GPIO_Speed_2MHz;

 GPIO_Init(GPIOA, &PORT);

 //Разрешаем таймеру использовать PA2 для ШИМа

 TIM2->CCER |= (TIM_CCER_CC3E);

 //Устанавливаем режим прямого ШИМ-а на ногу PA2(третий канал)

 TIM2->CCMR2|=(TIM_CCMR2_OC3M_1 | TIM_CCMR2_OC3M_2);

 //Запускаем таймер!

 TIM2->CR1 |= TIM_CR1_CEN;

 //Включаем тактирование АЦП

 RCC->APB2ENR |=(RCC_APB2ENR_ADC1EN);

 ADC1->CR2 |= ADC_CR2_CAL; //Запуск калибровки АЦП

 while (!(ADC1->CR2 & ADC_CR2_CAL)); //Ожидаем окончания калибровки

 ADC1->SMPR2 |=0x0;// (ADC_SMPR2_SMP1_2 | ADC_SMPR2_SMP1_1 | ADC_SMPR2_SMP1_0); //Задаем длительность выборки/

 ADC1->CR2 |= ADC_CR2_JEXTSEL; //Преобразование инжектированной группы запустится установкой бита JSWSTART

 ADC1->CR2 |= ADC_CR2_JEXTTRIG; //Разрешаем внешний запуск инжектированной группы

 ADC1->CR2 |= ADC_CR2_CONT; //Преобразования запускаются одно за другим

 ADC1->CR1 |= ADC_CR1_JAUTO; //Разрешить преобразование инжектированной группы после регулярной.

 ADC1->JSQR |=ADC_JSQR_JSQ4_0 ; //Задаем номер канала (выбран ADC1)

 ADC1->CR2 |= ADC_CR2_ADON;//Теперь включаем АЦП

 ADC1->CR2 |= ADC_CR2_JSWSTART; //Запуск преобразований

 while (!(ADC1->SR & ADC_SR_JEOC)) //ждем пока выполнится первое преобразование

 { }

 uint32_t adc_res;

 while(1)

 {

   adc_res = ADC1->JDR1; //Читаем результат из JDR1

   adc_res=adc_res*16;

   TIM2->CCR3 = adc_res;

 }

}

Рисунок 2 – Текст программы

3. Вычислительный эксперимент

Согласно техническому заданию была разработана схема подключения источника постоянного напряжения, через переменный резистор (для возможности регулирования напряжения  в пределах от 0 вольт до максимального значения источника постоянного напряжения) к линии АЦП микроконтроллера STM32F100RB и подключения сигнальных светодиодов, к выводам таймера общего назначения (с помощью которого генерируется ШИМ сигнал для управления яркостью светодиодов).  

При изменении сопротивления R1 происходит изменение значения входного напряжения на линии АЦП. В зависимости от результата преобразования АЦП изменяется скважность ШИМ сигнала (генерируемого таймером общего назначения TIM2), вследствие чего изменяется яркость светодиодов. Схема подключения источника питания и сигнальных светодиодов к микроконтроллеру STM32F100RB представлена на рисунке 3.

   Вывод

В ходе выполнения данного курсового проекта были получены навыки работы с периферией микроконтроллера STM32F100RB фирмы «STMicroelectronics» , в том числе: порты ввода/вывода, таймеры общего назначения, модуль АЦП.

    Список литературы

1. STMicroelectronics.: “RM0041 Reference manual. STM32F100xx advanced ARM-based 32-bit MCUs.”,,2011.-675c.

2. STMicroelectronics.:“Datascheet STM32F100x4 STM32F100x6 STM32F100x8 STM32F100xB” ,,2012.-88c.

3. Тревор Мартин .: "Микроконтроллеры фирмы STMicroelectronics на базе ядра Cortex-M3. Серия STM32." – Санкт-Петербург: «БХВ-Петербург», 2008. – 387с.


 

А также другие работы, которые могут Вас заинтересовать

60192. Сценарій тематичного вечора Дня Матері на тему «Рідна мати моя» 73 KB
  Спливли роки мов човник по воді І ведмежа стареньке десь поділось Та очі мами сині та сумні Моїм дитинством вранці подивились Анастасія Клєцова Руда Дитинство Ведуча 2 Кожна мама дає дитині свій наказ свою любов.
60193. Сценарій виховного заходу «Від зернини до хлібини» 72 KB
  Мета: Поглибити знання учнів про походження хліба, розвивати знання про професії, повязані з вирощуванням зернових культур,різновиди зернових культур. Виховувати любов до хліба, та бережливе ставлення до нього; повагу і пошану до людей хліборобської професії.
60195. Я люблю Україну, Позакласний захід для учнів початкової школи 90 KB
  Чи вірите що є такі квіти кульбабки та куль дідки Ні. Чи вірите що соком калини можна лікуватися від простудних захворювань і від авітамінозі Так. що сич заморожує на зиму в дуплі як у холодильникумишей і птахів Так. –що в Карпатах ростуть смереки Так.
60196. В гостях у доктора Пилюлькина. Устный журнал для учащихся 2 - 4 классов 46 KB
  Цели: расширить знания учащихся о вирусных заболеваниях, создать условия для формирования навыков здорового образа жизни, развивать творческие способности учащихся, воспитывать чувство товарищества.
60197. Життя без насильства 42 KB
  Мета ознайомити дітей з документами які захищають їх права; теоретично обґрунтувати сутність насильства зясувати основні причини насильства над дітьми в середовищі сімї та виявлення шляхів його подолання.
60198. ТЕХ ДНЕЙ НЕ СТЕРЕТЬ ИЗ ПАМЯТИ ЛЮДСКОЙ 69.5 KB
  Оформление доски: Уж больше полвека остывши молчат батареи И мирную землю не рвет не терзает фугас Но кажется памяти нашей ни чуть не старея Умершие так же как прежде сегодня живут среди нас...
60200. Воспитательное мероприятие «Путешествие по городу Здоровейску» 43.5 KB
  А вот и первый привал. 1 привал Санпост Называются имена аккуратных детей Отгадайте загадки. Прыжком марш 2 привал. костюм держит гантели 1234 Стану всех сильнее в мире Буду в цирке выступать Бегемота поднимать...