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.
. Компаратор
Компаратор на выходе обеспечивает нужный уровень
выходного сигнала +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 В
питаются только операционные усилители, микросхема ИОН, а также делитель
напряжения формирующий напряжения питания компаратора.
§ Максимальный ток потребления ОУ OPA404AG
- 10 мА *4.
§ Ток потребления ИОН REF5040
- 1 мА
§ Ток делителя на +9 В - 0.7 мА
Источник +15 В должен обеспечить ток нагрузки
порядка 45 мА.
Требования к источнику питания +5 В:
От источника питания +5 В питаются
микроконтроллер, инвертор К155ЛН1 и схема инвертирования импульсов запуска.
§ Ток потребления микроконтроллера в активном
режиме - 3.6 мА.
§ Ток потребления К155ЛН1 - 33 мА (при низком
уровне выходного сигнала).
§ Максимальный ток потребления схемы
инвертирования импульсов запуска - 9.1 мА.
Источник +5 В должен обеспечить ток нагрузки
порядка 46 мА.
. Программа микроконтроллера
Программа микроконтроллера написана в среде
программирования CodeVision
и протестирована в программе эмуляции Proteus
7.
Текст программы:
/*****************************************************:
ADC Kyrkin 3: 1.2: 24.04.2009: Гавриленко Д.Е. : Home type : ATmega8type :
Applicationfrequency : 4,000000 MHzmodel : SmallSRAM size : 0Stack size : 256
*****************************************************/
#include <mega8.h>
#include <delay.h>
#include <stdio.h>
#define ADC_VREF_TYPE 0x00
char start_flag=0;
// Переменная сигнала старта преобразования.
unsigned int adc_data; //
Переменная данных.
// ADC interrupt service
routine[ADC_INT] void adc_isr(void)
{
adc_data=ADCW
; //Запись результата преобразования в переменную.
start_flag=2;
//Установка начала вывода результатов измерений через ножку PORTD.0
в основном цикле.
//ADCSRA=0x8D;
// Установка в 0 флага прерывания от компаратора(бит ADIF).
}
// Declare your global variables
heremain(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 =0x00;=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 =0x00;=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 =0x00;=0xFF;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0
Stopped=0x00;=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:
OffA=0x00;B=0x00;H=0x00;L=0x00;H=0x00;L=0x00;AH=0x00;AL=0x00;BH=0x00;BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output:
Disconnected=0x00;=0x00;=0x00;=0x00;
// External Interrupt(s)
initialization
// INT0: Off
// INT1: Off=0x00;
// Timer(s)/Counter(s) Interrupt(s)
initialization=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture
by Timer/Counter 1: Off=0x80;=0x00;
// ADC initialization
// ADC Clock frequency: 125,000 kHz
// ADC Voltage Reference: AVCC
pin=ADC_VREF_TYPE;=0x8D;.5=1;
#asm("sei")
(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" в ноль.
} (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
|
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
|
Временные диаграммы:
. Сигнал с выхода АЦП Uвх=0.664
В.
. Эталонный сигнал - сигнал инвертировался
каждый раз при выполнении цикла.
.Сигнал запуска преобразования.
.Выходной сигнал компаратора. Уровень логической
единицы +9 В.
Список литературы
1) П. Хоровиц, У. Хил, Искусство
схемотехники, Т1, Т2, Москва, 1986.
2) У. Титце, К. Шенк,
Полупроводниковая схемотехника, Москва, 1982.
) А.В. Евстифеев,
Микроконтроллеры AVR
семейств Tiny и Mega
фирмы ATMEL, Москва
2007.
) Ю. Ревич, Практическое
программирование микроконтроллеров ATMEL
AVR на языке
ассемблера, Санкт-Петербург 2008.
) Б.В. Тарабрин, C.В.
Якубовский, Справочник по интегральным микросхемам, Москва, 1981.