51337

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

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

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

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

Русский

2014-02-09

62.87 KB

47 чел.

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

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

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

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

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

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

Лабораторные работы № 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с.


 

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

86217. Элементы и уровни банковской системы 481.5 KB
  Актуальность выбора темы дипломной работы связана с видением значительной роли банков в современной российской экономике, проблем функционирования кредитно-банковской системы в рыночных условиях ввиду необходимости контроля уровня инфляции.
86218. ИНФЕКЦИОННАЯ БЕЗОПАСНОСТЬ В ЛЕЧЕБНО-ПРОФИЛАКТИЧЕСКИХ УЧРЕЖДЕНИЯХ 102.83 KB
  В целях профилактики возникновении и распространения внутрибольничных инфекций ВБИ разрабатывается план профилактических и противоэпидемических мероприятий который утверждается руководителем организации. Этиологическая природа ВБИ определяется широким кругом микроорганизмов более 300 которые включают...
86220. Характеристика маркетинговой деятельности компании «ООО Сатурн-Р-Авто» 690 KB
  Актуальность темы дипломной работы обусловлена тем, что на многих предприятиях Пермского края имеются проблемы с продвижением их товаров и услуг. В автомобильной сфере, это связано с усилением конкуренции не только между официальными дилерами, но и маленькими автомобильными салонами...
86221. Система мотивации продавцов магазинов «Магнит» 116.01 KB
  Бизнес начинался с оптовых продаж небольшого ассортимента парфюмерии, косметики и бытовой химии. Для достижения быстрой оборачиваемости, Компания активно продвигала товар через собственную розничную сеть, насчитывавшую к 1996 более 30 торговых точек в Краснодаре и других населенных пунктах края.
86222. Модель организации изучения темы «Македонские завоевания» при работе по ФГОС ООО 484.78 KB
  Рефлексия на уроках истории и оценка результатов изучения темы. Следуя требованиям ФГОС учитель истории должен не снабжать ребенка большим количеством исторических знаний а помочь ему сформировать собственную адекватную научным представлениям картину прошлого и с ее помощью систематизировать...
86223. Использование нестандартных методов коммуникаций на примере компании QIWI Кошелек 2.56 MB
  Цель: анализ возможностей Веб-квеста, как нестандартного типа рекламы создание программы продвижения Веб-квеста в сети Интернет Задачи: Ознакомиться с деятельностью платежной системы QIWI Кошелек Проанализировать конкурентную среду в сфере платежных систем – выявление преимуществ и недостатков QIWI...
86224. Комплексний лінгвостилістичний аналіз обраних творів Джона Кітса 129.78 KB
  Проблеми лінгвостилістики й інтерпретації художнього тексту займають в останні десятиліття особливе місце у філологічній науці і привертають до себе пильну увагу й інтерес мовознавців. Незважаючи на появу великої кількості робіт, присвячених дослідженням в області лінгвостилістики...
86225. Организация внутреннего контроля процесса снабжения на примере ОАО «ДСК» 238.37 KB
  Бухгалтерский учет имеет три функции – информационную, аналитическую и контрольную. В теории бухгалтерского учета широко представлены две из них, информационная и аналитическая, и совершенно мало внимания уделено контрольной функции.