Цифровые устройства, микроконтроллер, AVR, аналого-цифровое преобразование

Автор работы: Пользователь скрыл имя, 03 Марта 2013 в 09:32, курсовая работа

Описание

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

Содержание

Введение……………………………………….……………...…………..........5
1 Выбор структурной схемы, принцип работы устройства в целом.…..…..6
2 Выбор принципиальной схемы, расчеты, выбор элементов…….…..........8
2.1 Выбор микроконтроллера …………………………..……………8
2.2Выбор вспомогательных элементов…………………….……….10
3 Алгоритм работы программы…………………………….……….……......12
4 Листинг программы с комментариями…………………….……..…….….13
Заключение…………………………...……….…………………………….....17
Список использованных источников………………………………...………18
Принципиальная схема
Спецификация

Работа состоит из  1 файл

кр дворова поправки.docx

— 75.27 Кб (Скачать документ)

Задание № 6 на курсовой проект студенту Дворова К.И. гр. 548

 

 

РЕФЕРАТ

 

Пояснительная записка   18 с,  3 рисунка,  5    источников,  графическая документация: 1 л. А3, спецификация

ЦИФРОВЫЕ  УСТРОЙСТВА, МИКРОКОНТРОЛЛЕР, AVR, АНАЛОГО-ЦИФРОВОЕ ПРЕОБРАЗОВАНИЕ.

           

Ключевым  объектом является формирователь трехфазного напряжения.

 

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

 

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

 

СОДЕРЖАНИЕ

Введение……………………………………….……………...…………..........5

1 Выбор структурной схемы, принцип работы устройства в целом.…..…..6

2 Выбор принципиальной схемы, расчеты, выбор элементов…….…..........8

             2.1 Выбор микроконтроллера …………………………..……………8

             2.2Выбор вспомогательных элементов…………………….……….10

3 Алгоритм работы программы…………………………….……….……......12

4 Листинг программы с комментариями…………………….……..…….….13

Заключение…………………………...……….…………………………….....17

Список использованных источников………………………………...………18

Принципиальная схема

Спецификация

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ВВЕДЕНИЕ

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

 

1 ВЫБОР СТРУКТУРНОЙ СХЕМЫ, ПРИНЦИП РАБОТЫ УСТРОЙСТВА В ЦЕЛОМ

 

На рисунке 1 представлена структурная  схема устройства:

 

Рисунок 1 – Структурная схема устройства

 

Блок-схема устройства, приведённая  на рисунке 1, состоит из :

- Микроконтроллер  – Аtmega16А, выбран в виду наличия АЦП, модулей ШИМ, достаточное количество выводов

- ЦАП – устройство, необходимое для преобразования сигнала цифрового в аналоговый

- Потенциометр  – задает амплитуду напряжения, требуемую на выходе устройства

- Усилитель – усиливает выходное напряжение до необходимого уровня.

 

Принцип действия устройства :

- потенциометром  задается амплитуда выходного  напряжения

- программная  часть обеспечивает формирование  трех синусоидальных сигналов  с разностью фаз 120º  требуемой  амплитуды

- ЦАП преобразует  сигнал из цифрового в аналоговый

          - усилительные  каскады обеспечивают усиление сигнала до нужной величины

 

Далее была составлена принципиальная схема, а также произведен выбор и расчет элементов в соответствии с заданием.

 

2 ВЫБОР ПРИНЦИПИАЛЬНОЙ СХЕМЫ, РАСЧЕТЫ, ВЫБОР ЭЛЕМЕНТОВ

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

Принципиальная схема приведена в виде графической документации на листе А3.

2.1 Выбор микроконтроллера

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

Был выбран микроконтроллер фирмы Atmel – AVR ATmega16A. Его структурная схема представлена на рисунке 2.

Это 8-разрядный  микроконтроллер с RISC архитектурой, векторной системой прерываний,  гарвардской архитектурой памяти, в соответствии с которой разделены не только адресные пространства памяти программ и памяти данных, но также и шины доступа к ним. Способы адресации и доступа к этим областям памяти также различны. Такая структура позволяет центральному процессору работать одновременно как с памятью программ, так и с памятью данных, что существенно увеличивает производительность.

Критерии выбора данного микроконтроллера:

- Напряжение  питания (2,7-5,5В).

- Высокая  производительность - частота тактирования  до 16 МГц

- Низкое  энергопотребление (0,6 мА в активном  режиме)

- Наличие  10-разрядного АЦП.

Рисунок 2 –  блок схема ATmega16A

 

Схема тактирования кварцевым резонатором (элементы ZQ1, C2, C3), схема сброса (SB1, R2), а также схема развязки аналоговой и цифровой «земли»(L1, C1) и их номиналы стандартны, освещены в документах на микроконтроллер и в пояснениях не нуждаются.

 

 

 

    1. Выбор вспомогательных элементов.

1.ЦАП. Выбираем AD5307. Он имеет разрядность 8 бит, SPI интерфейс, питающее напряжение до 5.5 вольт.

Исходя из заданной погрешности  задания напряжения 5%, проверим, достаточна ли разрядность ЦАП.

Диапазон напряжения : 10-115 В. Ширина диапазона равна 105В.

8 бит – это 256 градаций, соответственно,

 

 

0,41 В и есть минимальное изменение, которое составляет даже от 10 В всего 4% так что такая разрядность нас полностью устраивает.

2.Потенциометр. Регулировка задающего напряжения осуществляется с помощью переменного резистора. Напряжение, снимаемое с 3го вывода оцифровывается АЦП микроконтроллера, преобразуется и служит для регулировки амплитуды выходного сигнала. Номинал данного потенциометра выбирается исходя из максимального тока на входе микроконтроллера, который равен 40 мА.

 

3. Блок питания. На вход БП подаётся переменное напряжение 220В. С помощью трансформатора оно понижается до 6,3В во вторичной обмотке и подаётся на диодные мосты VD1-VD3, где оно выпрямляется. На выходах диодного моста включён линейный стабилизатор напряжения, на базе микросхемы LM323K, выходное напряжение +5В.

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

 

4.Операционный  усилитель.  Выбираем AD8647, счетверенный ОУ, исходя из питающего напряжения – 5 вольт.

5. Усилитель. Основными элементами усилителя являются транзисторы, работающие в режиме AB, а также выходные трансформаторы и предварительные каскады. VT1, VT4, VT7 – работают одинаково, нужны для получения противофазного напряжения для последующего каскада. Включены как повторитель. Выберем КТ3102, исходя из того, что токи небольшие. R9, R10 (R13и R14, R17 и R18) –   резисторы задающие рабочую точку примем R9=R10= 120 Ом, рабочая точка транзистора в этом случае Uб= 2.5 В. С10-С12 – разделительные конденсаторы. R11, R12 (R15 и R16, R19 и R20) – задают коллекторный ток должны быть равны. Зададимся Ik=100 мА, тогда R11=R12=25 Ом. С13-С18 – разделительные емкости.

TV1, TV2, TV3 – выходные трансформаторы,  ТН64-115-400 из расчета на 400 Гц. Токи обмоток равны : первичной(115В): 1.6 А, вторичных(5В):  3А.

N=23.

VT3, VT3 (VT5 и VT6, VT8 и VT9) – мощные транзисторы 2sc1398, выбираются исходя из значения тока коллектора. Пересчитаем сопротивление нагрузки в нагрузку транзисторов.

 Rэ=Rн/N=100/23=43 Ом

Ток в коллекторной цепи каждого  транзистора будет равен: 5/43=1.16 А. Максимальный ток коллектора данного типа транзисторов составляет 3А .

 

 

 

 

 

 

3АЛГОРИТМ РАБОТЫ ПРОГРАММЫ

Алгоритм  работы программы микроконтроллера выглядит следующим образом:


 

4ЛИСТИНГ ПРОГРАММЫ С КОММЕНТАРИЯМИ.

/*

* mega16DAC.c

 *

* Created: 22.11.2012 23:03:56

*  Author: Dvorova Karina

*  AVR Studio 5

*  ATMega16A

*/

#include <avr/io.h>                    // базовая библиотека

#define F_CPU 16000000UL     // Частота контроллера для работы  библиотеки delay

#include <util/delay.h>              // библиотека генерации временных задержек

#include <avr/interrupt.h>        // библиотека прерываний

 

// Глобальные  переменные и константы

unsigned float ampl_correct=0;   // переменная регулировки амплитуды

unsigned char i=0;                       // счетная переменная

unsigned char data_byteH=0;     // старший байт посылки

unsigned char data_byteL=0;    // младший байт посылки

unsigned char buf=0;                  // промежуточная переменная

#define DACA 0b00000000;      // константы выбора номера       

#define DACB 0b01000000;      // и параметров ЦАП

#define DACC 0b10000000;

 

/*время: | 0 |0.3125|0.625|0.938|1.25|1.563|1.1875|2.188 мкс */

unsigned char sin0[8]={128,218,255,218,128,38,1,38};

// дискретные  значения одного  периода синуса 0град 

 

unsigned char sin1[8]={238,160,65,5,18,95,192,251};

// дискретные  значения одного периода синуса +120 град                                                                                                                     

 

unsigned char sin2[8]={18,5,64,161,238,251,192,95};

// дискретные  значения одного периода синуса +240 град

 

// Функция  инициализации

 

void init(void){

//настройка  АЦП:

 

DDRA=0b11111110;        // настройка порта для АЦП

PORTA=0b00000000;       // для определенности пишем в  порт

ADMUX=0b01100000;      

// настройка  АЦП: внешний источник опорного  напряжения(AVCC=Vсс)(6/7биты)

ADCSRA=0b00000110;      // правое выравнивание(5бит), нулевой  канал (4-0 биты)

                   // АЦП выкл частота АЦП=clk/64       

DDRB = (1<<MOSI_BIT)|(1<<7)|(1<<4); // MOSI, SCK,SS - выходы

PORTB=0b00010000;                                 // SS держим высоким уровнем

SPCR = (1<<SPE)|(1<<MSTR)|(1<<CPHA);

                                                              // Режим: включен, ведущий, старшим байтом вперед,

                                       // выборки по заднему фронту, частота f/4

 

}

 

// Функция  чтения напряжения потенциометра

unsigned char adc_read(void){

cli();                                                      // запрет прерываний

unsigned char result_adc=0;          

ADCSRA=0b11000110;                         //Запускаем преобразование

while(ADCSRA==0b1100110){}            //ждем, когда АЦП заполнит регистры

result_adc=ADC/4;                               //читаем их усекая результат  до 8 бит 

sei();                                                      // разрешение прерываний   

return result_adc;                              

}

 

// Функция передачи данных по SPI

 

void SPI_send(unsigned char dataH, unsigned char dataL)

{

PORTB=0b00000000;                  // выставляем на SS низкий уровень

SPDR =dataH ;                              // отправляем старший байт

while(!(SPSR & (1<<SPIF)));        // дожидаемся окончания передачи...

SPDR=dataL;                                 // И отправляем младший байт

while(!(SPSR & (1<<SPIF)));        // дожидаемся окончания передачи...

PORTB=0b00010000;                  // и выставляем на SS высокий уровень  

}

 

// Основная  функция программы 

int main(void)

{

init(); //выполнили инициализацию

// Бесконечный цикл

    while(1)

    {

      ampl_correct=adc_read()/255;   //прочитали напряжение  с потенциометра, преобразовали  Цикл для 

                                 

for(i=0; i<8; i++){

 

buf=sin0[i]*ampl_correct;      // готовим данные для 1 цап:

data_byteH=DACA;                // заполняем старший байт.. 

data_byteH|=(buf>>4);

data_byteL=0b00000000;         // затем младший

data_byteL|=(buf<<4);

SPI_send(data_byteH, data_byteL); // отослали по SPI

 

buf=sin1[i]*ampl_correct;      // готовим данные для 2 цап:

data_byteH=DACB;               // заполняем старший байт.. 

data_byteH|=(buf>>4);

data_byteL=0b00000000;         // затем младший

data_byteL|=(buf<<4);

SPI_send(data_byteH, data_byteL); // отослали по SPI

 

buf=sin2[i]*ampl_correct;      // готовим данные для 3 цап:

data_byteH=DACC;               // заполняем старший байт.. 

data_byteH|=(buf>>4);

data_byteL=0b00000000;         // затем младший

data_byteL|=(buf<<4);

SPI_send(data_byteH, data_byteL); // отослали по SPI

_delay_us(291);                // выждали время которое необходимо

                               // для соблюдения интервала дискретизации 

                                               // подбирается в процессе отладки  экспериментально           

}

    }

}

 

ЗАКЛЮЧЕНИЕ

В курсовой работе был разработан формирователь трехфазного  напряжения. Управление устройством выполняется с помощью микроконтроллера ATmega16A фирмы ATMEL , для которого была написана программа на языке СИ.

Для достижения цели применялись знания курса «Цифровые  устройства и микропроцессоры», а  также дополнительная литература, документация производителя контроллеров и ресурсы  сети интернет. 

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

  1. Шпак Ю.А., Программирование на языке С для  AVR и PIC микроконтроллеров. «МК-Пресс», 2011
  2. А.В. Евстифеев, Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL. «Додэка-ХХI», 2004
  3. У. Кестер, Аналого-цифровое преобразование. «Техносфера», 2007
  4. И.Н. Сидоров, В.В. Мукосеев, А.А. Христинин, справочник Малогабаритные трансформаторы и дроссели, «Радио и связь», 1985
  5. М.С. Родюков, Н.Н. Коновалов, Электроника, Рассчет усилительного каскада с общим эмиттером, Москва, 2011

Информация о работе Цифровые устройства, микроконтроллер, AVR, аналого-цифровое преобразование