Создание АЦП с последовательным выводом информации

Создание рабочего модуля аналого-цифрового преобразователя с минимальным количеством микросхем на основе микроконтроллера ATmega8L. Описание блок-схемы АЦП. Схема запуска преобразования. Программа микроконтроллера в среде программирования CodeVision.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 04.10.2013
Размер файла 1,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

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

Амплитуда импульсов запуска, В

-5

Длительность импульсов запуска, мкс

2.0

Диапазон изменения входного сигнала, В

-2 до +2

Длина выходного слова, бит

9

Частота выходных импульсов синхронизации, МГц

0.01

Уровни выходных сигналов

КМОП+9В

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

АЦП было решено построить на основе микроконтроллера ATmega8L производства фирмы Atmel.

1. Описание блок-схемы АЦП

Базовая часть этой схемы - микроконтроллер ATmega8L.

Согласно техническому заданию диапазон входного сигнала лежит в пределах от -2 В до +2 В. Диапазон же входного сигнала АЦП от 0 до Vref (в данном случае Vref=4 В).

В связи с этим входной сигал сначала сдвигается входным сумматором на +2 В, а уже после поступает на несимметричный вход АЦП (PC0).

Импульс запуска поступает на вывод PB0 (весь порт настроен на ввод) и запускает преобразование.

По техническому заданию импульс запуска имеет амплитуду -5 В, и длительность 2 мкс. Следовательно, необходимо инвертировать сигнал запуска.

После завершения преобразования, результат измерения выводится в виде последовательных импульсов через вывод PD0 (весь порт настроен на вывод).

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

преобразователь микроконтроллер программа

2. Микроконтроллер ATmega8L

В состав модели ATmega8L входит модуль 10-разрядного АЦП последовательного приближения со следующими параметрами:

· Абсолютная погрешность: +/- 2 МЗР

· Интегральная нелинейность: +/- 0,5 МЗР

· Быстродействие: до 15 тыс. выборок/с.

На входе модуля АЦП имеется 8-канальный аналоговый мультиплексор. У выбранного мной микроконтроллера, выпускаемого в корпусе DIP-32, есть только 6 каналов преобразования, кроме того два канала (ADC4 и ADC5) являются 8-разрядными.

Для наших целей понадобиться только один 10-разрядный канал преобразования.

В качестве источника опорного напряжения для АЦП может использоваться как напряжение питания микроконтроллера, так и внутренний либо внешний источник опорного напряжения.

В процессе работы АЦП может функционировать в двух режимах:

· Режим одиночного преобразования, когда запуск каждого преобразования инициируется пользователем.

· Режим непрерывного преобразования, когда запуск преобразований выполняется непрерывно через определённые промежутки времени.

Для управления модуля АЦП используются несколько следующих регистров:

§ ADCSRA - регистр управления и состояния.

§ ADMUX - регистр управления мультиплексором и выбор источника опорного напряжения.

§ SFIOR - регистр специальных функций.

(Для решения поставленной задачи данный регистр не использовался.)

Табл. №1. Разряды регистра ADCSRA.

Разряд

Название

Назначение

7

ADEN

Разрешение АЦП (1-вкл, 0-выкл)

6

ADSC

Запуск преобразования (1- начать преобр-е)

5

ADFR

Выбор режима АЦП

4

ADIF

Флаг прерывания от компаратора

3

ADIE

Разрешение прерывания от компаратора

2…0

ADPS2:ADPS0

Выбор частоты преобразования

Регистр ADCSRA = 0b10001101 (0x8D) .

ADEN=1, АЦП - включен.

ADSC=0, Преобразование начинается с установкой этого бита. После завершения преобразования этот бит аппаратно сбрасывается в ноль.

ADFR=0, Режим одиночного преобразования. Каждое преобразования запускается пользователем.

ADIF=0, После завершения преобразования этот разряд устанавливается в 1-ку и генерирует запрос на прерывание.

ADIE=1, Разрешение прерывание от компаратора.

ADPS2:ADPS0 =101, Частота преобразования 125 кГц.

Для формирования тактовой частоты модуля АЦП в нем имеется отдельный определитель. Коэффициент деления и соответственно длительность преобразования определяется состоянием разрядов ADPS2…ADPS0.

ADPS2

ADPS1

ADPS0

Коэффициент деления

0

0

0

2

0

0

1

2

0

1

0

4

0

1

1

8

1

0

0

16

1

0

1

32

1

1

0

64

1

1

1

128

Наибольшая точность преобразования достигается, если тактовая частота АЦП находится в пределах от 50…200 кГц.

В нашем случае тактовая частота МК выбрана 4 МГц, а тактовая частота АЦП - 125 кГц.

Табл. №2. Разряды регистра ADMUX.

Разряд

Название

Описание

7, 6

REFS1:REFS2

Выбор источника опорного напряжения

5

ADLAR

Выравнивание результата преобразования

4

MUX4

В данной модели МК отсутствует

3…0

MUX3…MUX0

Выбор входного канала

Для наших нужд вполне достаточно использовать один канал с несимметричным входом- -ADC0.

В данной модели выводы МК, подключенные к входу АЦП, определяются состоянием разрядов MUX3…MUX0 регистра ADMUX согласно таблице:

MUX3…MUX0

Несимметричный вход

0000

ADC0

0001

ADC1

0010

ADC2

0011

ADC3

0100

ADC4

0101

ADC5

0110

ADC6

0111

ADC7

1000…1101

Зарезервировано

1110

1.22 В

1111

0 В (GND)

В данном случае значение регистров MUX3…MUX0 = 0000 .

Согласно требованиям технического задания диапазон изменения входного сигнала составляет от -2 В до +2 В. Диапазон модуля АЦП ATmega 8 составляет от 0 до Vref.

Vref=4 В. В качестве источника Vref , как уже говорилось выше, можно использовать как AVcc так и внешний или внутренний ИОН.

Выбор конкретного источника питания зависит от состояний старших разрядов REFS1:REFS0 регистра ADMUX.

REFS1

REFS0

Источник опорного напряжения

0

0

Внешний ИОН, подключенный к выводу AREF; внутренний ИОН отключен

0

1

Напряжение питания AVcc

1

0

Зарезервировано

1

1

Внутренний ИОН напряжением 2.56 В, подключенный к выводу AREF.

Регистр ADMUX = 0b00000000 (0x00).

Входной сумматор

Сумматор на входе обеспечивает нужный диапазон входного сигнала на АЦП от 0 до 4 В.

Схема выполнена на основе операционного усилителя OPA404AG.

R1=R3=R4=(R2+RV1)=R2I = 10 кОм.

§ UI - Ucc =R4*(Uвх - Ucc)/(R4 + R3)= (Uвх - Ucc)/2 ;

§ UI= (Uвх + Ucc)/2 ;

Uвых=R1* UI /R2I+ UI

Коэффициент усиления K= Uвых /UI=2

Напряжение опоры сумматора (Ucc=+2 В) формируется делителем и подается на сумматор через повторитель, реализованный на основе аналогичного операционного усилителя OPA404AG.

3. Компаратор

Компаратор на выходе обеспечивает нужный уровень выходного сигнала +9 В.

Компаратор на выходе формирует нужный уровень логического сигнала +9 В.

Для реализации данного требования технического задания был выбран компаратор LM139 фирмы PHILIPS.

Данный компаратор как раз применяется для сопряжения ТТЛ и КМОП схем.

Возможно однополярное питание от 2 до 32 В.В

4. Схема запуска преобразования

По техническому заданию импульс запуска преобразования имеет амплитуду -5 В и длительность 2 мкс.

Соответственно стояла задача инвертировать сигнал.

В стационарном режиме транзистор 2N2369 (PHILIPS) закрыт.

В момент поступления отрицательного импульса транзистор открывается.

UR10= -0.7+5=4.3 В ; IR10= UR10/R10=4.3/470=9.1 (мА).

Соответственно потенциал коллектора падает, формируя сигнал логического нуля на инверторе К155ЛН1.Логическаяединица с выхода инвертора поступает на PB.0.

Питание

Для обеспечения работоспособности представленной схемы требуются следующие номиналы напряжений:

+15 В - Питание операционных усилителей.

+9 В - Питание компаратора.

+5 В - Питание логики, самого микроконтроллера и транзисторной схемы инвертирования импульсов запуска преобразования.

Напряжение питания компаратора обеспечивается источником питания +15 В.

Напряжение +5 В удобнее организовать от отдельного источника.

Для обеспечения требуемых точных напряжений:

+4 В - Опорное напряжение для АЦП.

+2 В - Опорное напряжение для входного сумматора.

Была выбрана микросхема ИОН REF5040 производства фирмы Texas Instruments.

С помощью делителя выставляется точное значение напряжения +4 В. Ток делителя не должен превышать 10 мА, так как это максимальный ток нагрузки REF5040.Ток делителя в схеме выбран порядка 5 мА - это половина выходного диапазона вполне подходит для стабильной работы ИОН и этого тока вполне хватает для потребителей: AVcc и вход ОУ.

Входное напряжение Vin для микросхемы REF5040 лежит в диапазоне 4,296...18 В, так что можно запитывать ИОН от основного источника +15 В.

Уже с этого точного значения формируется опорное напряжение сумматора +2 В.

Делители отгорожены друг от друга повторителем на ОУ OPA404AG.

Требования к источнику питания +15 В:

Непосредственно то источника питания +15 В питаются только операционные усилители, микросхема ИОН, а также делитель напряжения формирующий напряжения питания компаратора.

§ Максимальный ток потребления ОУ OPA404AG - 10 мА *4.

§ Ток потребления ИОН REF5040 - 1 мА

§ Ток делителя на +9 В - 0.7 мА

Источник +15 В должен обеспечить ток нагрузки порядка 45 мА.

Требования к источнику питания +5 В:

От источника питания +5 В питаются микроконтроллер, инвертор К155ЛН1 и схема инвертирования импульсов запуска.

§ Ток потребления микроконтроллера в активном режиме - 3.6 мА.

§ Ток потребления К155ЛН1 - 33 мА (при низком уровне выходного сигнала).

§ Максимальный ток потребления схемы инвертирования импульсов запуска - 9.1 мА.

Источник +5 В должен обеспечить ток нагрузки порядка 46 мА.

5. Программа микроконтроллера

Программа микроконтроллера написана в среде программирования CodeVision и протестирована в программе эмуляции Proteus 7.

Текст программы:

/*****************************************************

Project : ADC Kyrkin 3

Version : 1.2

Date : 24.04.2009

Author : Гавриленко Д.Е.

Company : Home

Chip type : ATmega8

Program type : Application

Clock frequency : 4,000000 MHz

Memory model : Small

External SRAM size : 0

Data Stack size : 256

*****************************************************/

#include <mega8.h>

#include <delay.h>

#include <stdio.h>

#define ADC_VREF_TYPE 0x00

unsigned char start_flag=0; // Переменная сигнала старта преобразования.

unsigned int adc_data; // Переменная данных.

// ADC interrupt service routine

interrupt [ADC_INT] void adc_isr(void)

{

adc_data=ADCW ; //Запись результата преобразования в переменную.

start_flag=2; //Установка начала вывода результатов измерений через ножку PORTD.0 в основном цикле.

//ADCSRA=0x8D; // Установка в 0 флага прерывания от компаратора(бит ADIF).

}

// Declare your global variables here

void main(void)

{

// Declare your local variables here

// Input/Output Ports initialization

// Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTB=0x00;

DDRB=0x00;

// Port C initialization

// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTC=0x00;

DDRC=0x00;

// Port D initialization

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out

// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0

PORTD=0x00;

DDRD=0xFF;

// Timer/Counter 0 initialization

// Clock source: System Clock

// Clock value: Timer 0 Stopped

TCCR0=0x00;

TCNT0=0x00;

// Timer/Counter 1 initialization

// Clock source: System Clock

// Clock value: Timer 1 Stopped

// Mode: Normal top=FFFFh

// OC1A output: Discon.

// OC1B output: Discon.

// Noise Canceler: Off

// Input Capture on Falling Edge

// Timer 1 Overflow Interrupt: Off

// Input Capture Interrupt: Off

// Compare A Match Interrupt: Off

// Compare B Match Interrupt: Off

TCCR1A=0x00;

TCCR1B=0x00;

TCNT1H=0x00;

TCNT1L=0x00;

ICR1H=0x00;

ICR1L=0x00;

OCR1AH=0x00;

OCR1AL=0x00;

OCR1BH=0x00;

OCR1BL=0x00;

// Timer/Counter 2 initialization

// Clock source: System Clock

// Clock value: Timer 2 Stopped

// Mode: Normal top=FFh

// OC2 output: Disconnected

ASSR=0x00;

TCCR2=0x00;

TCNT2=0x00;

OCR2=0x00;

// External Interrupt(s) initialization

// INT0: Off

// INT1: Off

MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization

TIMSK=0x00;

// Analog Comparator initialization

// Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off

ACSR=0x80;

SFIOR=0x00;

// ADC initialization

// ADC Clock frequency: 125,000 kHz

// ADC Voltage Reference: AVCC pin

ADMUX=ADC_VREF_TYPE;

ADCSRA=0x8D;

PORTD.5=1;

// Global enable interrupts

#asm("sei")

while (1)

{

int i;

if (PINB==1) //Если на PB.0 приходит импульс начала измерений.

{

ADCSRA=0xCD; //Установка в 1-ку бита ADSC.Запуск преобразования.

}

if (start_flag==2) //Вы полнение условия обработчика прерываний.

{

for (i=1;i<=9;i++)

{

PORTD.0=(adc_data>>i)&1; //Отсекли младший байт.Выводим поочередно результат.

PORTD.5=~PORTD.5;

delay_us(10);

} start_flag=0; //Сбрасываем "start_flag" в ноль.

}

if (start_flag==0) PORTD=0;

}

}

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

Элемент

Название

Параметры

Номинал

Количество

R1,R3,R4,R6

C2-29В-0.25T

P=0.25, Допуск 0.1 %

10 кОм

4

R2, R5

C2-29В-0.25T

P=0.25, Допуск 0.1 %

9.1 кОм

2

R7

C2-29В-0.25T

P=0.25, Допуск 0.1 %

750 Ом

1

R8

C2-29В-0.25T

P=0.25, Допуск 0.1 %

20 Ом

1

R9

C2-29В-0.25T

P=0.25, Допуск 0.1 %

100 Ом

1

R10

МЛТ

Р = 0,25 Вт; ТКС 600 х 10-6, 1/°С; ряд Е24; допуск 10%

1 кОм

1

R11

МЛТ

Р = 0,25 Вт; ТКС 600 х 10-6, 1/°С; ряд Е24; допуск 10%

470 Ом

1

R12

C2-29В-0.25T

P=0.25, Допуск 0.1 %

6.8 кОм

1

R13

C2-29В-0.25T

P=0.25, Допуск 0.1 %

1.2 кОм

1

R14

C2-29В-0.25T

P=0.25, Допуск 0.1 %

12 кОм

1

RV1, RV2

3296W-1-202

Р = 0,5 Вт; ряд Е24; допуск 20%

2 кОм

2

RV3

3296W-1-201

Р = 0,5 Вт; ряд Е24; допуск 20%

200 Ом

1

U1

ATmega8L

1

U2:(A,B,C,D)

OPA404AG

4 (1 корпус)

U3:A

LM139

1

U4:1

К155ЛН1

1

Q1

2N2369

1

С1, C2, C5

0.2 мкФ x 8 В

3

С3, C4

50 мкФ x 8 D

2

Временные диаграммы:

1. Сигнал с выхода АЦП Uвх=0.664 В.

2. Эталонный сигнал - сигнал инвертировался каждый раз при выполнении цикла.

3.Сигнал запуска преобразования.

4.Выходной сигнал компаратора. Уровень логической единицы +9 В.

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

1) П. Хоровиц, У. Хил, Искусство схемотехники, Т1, Т2, Москва, 1986.

2) У. Титце, К. Шенк, Полупроводниковая схемотехника, Москва, 1982.

3) А.В. Евстифеев, Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL, Москва 2007.

4) Ю. Ревич, Практическое программирование микроконтроллеров ATMEL AVR на языке ассемблера, Санкт-Петербург 2008.

5) Б.В. Тарабрин, C.В. Якубовский, Справочник по интегральным микросхемам, Москва, 1981.

Размещено на Allbest.ru


Подобные документы

  • Создание приемника команд RC5 для персонального компьютера на основе микроконтроллера ATmega8. Особенности написания файла прошивки и симулирование устройства. Порядок выполнения сборки собственной схемы и характеристика полученного микроконтроллера.

    курсовая работа [2,0 M], добавлен 24.11.2013

  • Общие сведения о микроконтроллерах AVR, их основные параметры. Функции термометра, реализованного на микроконтроллере AVR. Порядок программирования микроконтроллера с использованием программы на языке С. Передача данных сом-порт, вывод значений на ЖКИ.

    курсовая работа [35,8 K], добавлен 08.04.2010

  • Назначение и применение микроконтроллеров - интегральных микросхем, предназначенных для управления электронными схемами. Описание способа адресации. Разработка программы, описание электрической и структурной схемы разрабатываемого микроконтроллера.

    курсовая работа [177,6 K], добавлен 30.06.2014

  • Структурная схема системы управления. Характеристики первичных датчиков, электронасоса, индикатора, микроконтроллера, системы прерываний. Работа регистров и аналого-цифрового преобразователя. Алгоритм работы микропроцессора - управляющего устройства.

    курсовая работа [2,2 M], добавлен 06.02.2013

  • Проектирование программного модуля в среде программирования Borland Delphi 7.0. Схемы алгоритмов решения задач по темам "Символьные переменные и строки", "Массивы", "Работа с файлами", "Создание анимации". Реализация программного модуля, код программы.

    отчет по практике [961,6 K], добавлен 21.04.2012

  • Описание структуры микроконтроллера AT90mega103 и интегрированной системы его программирования на языке Ассемблер. Создание нового файла и его сохранение. Инициализация микропроцессорной системы командой Ran/Program/Reset/, описание шагов программы.

    лабораторная работа [330,6 K], добавлен 26.06.2013

  • Проектирование схемы, выполненной на основе однокристального микроконтроллера 51 серии для получения с 8 аналоговых входов информации о изменении их состояния с течением времени. Параметры устройства, описание элементов схемы, листинг программы.

    курсовая работа [627,2 K], добавлен 24.12.2012

  • Описание и принцип действия программы-отладчика микроконтроллера I8051 (К1816ВЕ51), предназначенной для программирования микроконтроллера на уровне языка ассемблера. Компиляция программы в объектный код и специфика тестирования разработанной программы.

    реферат [21,1 K], добавлен 04.12.2010

  • Формирование тактовых импульсов микроконтроллера. Схемы входных и выходных устройств, источника напряжения питания. Проектирование модуля инициализации микроконтроллера, процедур обработки прерываний, процедур вывода информации и процедуры Main.

    курсовая работа [273,1 K], добавлен 19.12.2010

  • Разработка структурной и принципиальной схемы. Блок-схема основной программы и подпрограмм обработки прерываний. Имена переменных, используемых в них. Результаты моделирования работы устройства в программе ISIS пакета Рroteus. Разработка печатной платы.

    курсовая работа [1,5 M], добавлен 13.11.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.