Методика разработки схемы устройства для преобразования параллельного восьмиразрядного кода в длительность ШИМ-сигнала. Особенности создания программного обеспечения с помощью команд контроллера AT90S2313. Его проверка и отладка в среде AVR Studio 4.0.
Стабильный источник тока или напряжения периодически включается на время, пропорциональное преобразуемому цифровому коду, далее полученная импульсная последовательность фильтруется аналоговым фильтром низких частот. В основе метода формирования сигнала с широтно-импульсной модуляцией (ШИМ-сигнала) используется та же идея, что и в АЦП развертывающего типа: на положительный вход устройства сравнения подается преобразуемый постоянный сигнал, на отрицательный вход - линейно изменяющийся во времени сигнал (рисунок 1). Широтно-импульсная модуляция (по своей сути - преобразование напряжение-время) может использоваться как промежуточный этап при переходе от аналоговых к цифровым величинам. В программе обрабатывается только одно прерывание - прерывание по совпадению таймера/счетчика 1 Обработка прерывания по совпадению таймера/счетчика 1:-устанавливаем или сбрасываем (в зависимости от ситуации) сигнал на выходе PD6В данном проекте была разработана схема устройства для преобразования параллельного 8-ми разрядного кода в длительность ШИМ-сигнала.
Введение
Микроконтроллер (MCU) - микросхема, предназначенная для управления электронными устройствами. Типичный микроконтроллер сочетает в себе функции процессора и периферийных устройств, может содержать ОЗУ и ПЗУ. По сути, это однокристальный компьютер, способный выполнять простые задачи. Использование одной микросхемы, вместо целого набора, как в случае обычных процессоров, применяемых в персональных компьютерах, значительно снижает размеры, энергопотребление и стоимость устройств, построенных на базе микроконтроллеров.
Разрабатываемый преобразователь представляет собой цифроаналоговый преобразователь с широтно-импульсной модуляцией. Это простейший тип ЦАП. Стабильный источник тока или напряжения периодически включается на время, пропорциональное преобразуемому цифровому коду, далее полученная импульсная последовательность фильтруется аналоговым фильтром низких частот. Такой способ часто используется для управления скоростью электромоторов, а также становится популярным в Hi-Fi аудиотехнике.
1. Структурная схема
Рис. 1. Структурная схема преобразователя
Рис. 2. Временные диаграммы
В основе метода формирования сигнала с широтно-импульсной модуляцией (ШИМ-сигнала) используется та же идея, что и в АЦП развертывающего типа: на положительный вход устройства сравнения подается преобразуемый постоянный сигнал, на отрицательный вход - линейно изменяющийся во времени сигнал (рисунок 1). Сравнивающее устройство выдает сигнал логического нуля, если опорный линейно изменяющийся сигнал больше преобразуемого, и наоборот.
Очевидно, что время , прошедшее от момента перехода линейно изменяющегося сигнала через ноль и до срабатывания устройства сравнения будет прямо пропорционально величине преобразуемого сигнала и обратно пропорционально крутизне наклона опорного сигнала.
Широтно-импульсная модуляция (по своей сути - преобразование напряжение-время) может использоваться как промежуточный этап при переходе от аналоговых к цифровым величинам. Длительность временного промежутка легко измерить, подсчитав число импульсов напряжения стабильной опорной частоты, которое прошло за этот промежуток. Сделать это можно с помощью счетчика, на счетный вход которого поступают импульсы опорной частоты, а на вход разрешения счета - измеряемый импульс. При этом на выходе счетчика сразу получается цифровой код N, пропорциональный измеряемому напряжению.
Элементная база: Резисторы: Обозн. Наименование Количество
R1 С2-29В-0,125Вт-10КОМ 0,1%1
R2 С2-29В-0,125Вт-10КОМ 0,1%1
Конденсаторы: Обозн.НАИМЕНОВАНИЕКОЛИЧЕСТВО
C1 К50-35 100 МКФ x 10В (20%) 1
C2 К10-17А-М47 20ПФ x 50В, (10%) 1
C3 К10-17А-М47 20ПФ x 50В, (10%) 1
C4 К50-35 10 МКФ x 10В (20%) 1
С5 К53-1А-0.1 МКФ x 10В (20%) 1
С6 К53-1А-0.1 МКФ x 10В (20%) 1
С7 К50-35 100 МКФ x 10В (20%) 1
Кварцевый генератор: Обозн. Наименование Примечание Количество
Z1 C-MAC IQXO-22C BU 4 МГЦ; 5В; TTL/КМОП 1
Индуктивности: Обозн. Наименование Количество
L1 EC24-100K, 10 МКГН, 10% 1
Микроконтроллеры: Обозн. Наименование Примечание Количество
DD1 AT90S2313 max рабочее напряжение 6.6В; пост. ток через вывод порта 40 МА; пост. ток между VCC и GND 200 МА 1
Мультиплексоры: Обозн. Наименование Количество
MS MC74HC4051A 1
3. Принципиальная схема
Рис. 3. Принципиальная схема преобразователя
4. Программное обеспечение
Программное обеспечение для устройства написанное и отлажено среде AVR Studio.
Рис. 4. Блок-схема программного обеспечения
Пояснения к работе программного обеспечения
В программе обрабатывается только одно прерывание - прерывание по совпадению таймера/счетчика 1
Обработка сброса: Устанавливаем необходимые регистры: -указатель стека
-инициализируем порты B и D
-очищаем все необходимые временные регистры
-разрешаем прерывание по совпадению таймера/счетчика 1
-считываем данные с порта B
-записываем эти данные в регистр сравнения таймера/счетчика 1
-регистр управления таймером/счетчиком 1 A (устанавливаем режим работы таймера - 8-ми разрядный ШИМ)
-регистр управления таймером/счетчиком 1 B (настраиваем коэффициент деления системной частоты)
-устанавливаем сигнал на выходе PD6 порта D
Ждем прерывание (выполняется программа).
Программа представляет собой простой бесконечный цикл.
Выполняем прерывание.
Обработка прерывания по совпадению таймера/счетчика 1: -устанавливаем или сбрасываем (в зависимости от ситуации) сигнал на выходе PD6
-вычитаем из временного регистра, в котором содержится период ШИМ-сигнала, длительность прошедшего ШИМ-импульса (значение, снятое с порта B)
-получившееся значение записываем в регистр совпадения таймера/счетчика 1
-сбрасываем таймер/счетчик 1
-возвращаемся в программу
При новом совпадении регистра значения с регистром совпадения таймера/счетчика 1 программа вновь уходит на прерывание.
;Инициализация порта B ldi r31, 0x00 out DDRB, r31
;Инициализация порта D ldi r31, 0x40 out DDRD, r31
;Разрешение прерывания от функции выходного сравнения для таймера/счетчика 1 ldir17, 0x40
OUTTIMSK, r17
;Инициализация регистра выходного сравнения значением, снятым с порта B in r31, PORTB subr31, 0x0C ldi r25, 0
OUTOCR1AH, r25 out OCR1AL, r31
;Включение таймера/счетчика 1
;Установка работы таймера в режиме 8-ми разрядного ШИМ ldir18, 0x01 out TCCR1A, r17
;Выбор делителя системной частоты 1 ldir17, 0x01
OUTTCCR1B, r17
;Включение входа PD5 sbi PORTD, 6
;Глобальное разрешение прерываний sei
;Программа cycle: rjmp cycle ;Бесконечный цикл
;Обработчики прерываний
T1COMP_interrupt:;прерывание по совпадению таймера/счетчика 1 in r30, PORTD;Проверка, включен ли sbrc r30, 6;выход PD6 cbi PORTD, 6;Если да, то сбрасываем com r30 sbrc r30, 6 sbi PORTD, 6;Если нет, то устанавливаем ldir17, 0XFF;Запоминаем период ШИМ-сигнала ldi r18, 29 adc r17, r18 ldi r18, 1 in r28, PORTB;Считываем новые данные с порта B subr28, 0x0C sbc r17, r28 mov r28, r17 out OCR1AL, r28;Заносим в регистр сравнения
;новое значение длины импульса ldi r31, 0x00;Сбрасываем счетчик Т/С 1 out TCNT1L, r31 reti ;Возврат из прерывания
T1OVF_interrupt: reti
T0OVF_interrupt: reti
UART_RX_interrupt: reti
UART_UDRE_interrupt: reti
UART_TX_interrupt: reti
ANCOMP_interrupt: reti
INT0_interrupt: reti
INT1_interrupt: reti
T1CAPT_interrupt: reti
Вывод
В данном проекте была разработана схема устройства для преобразования параллельного 8-ми разрядного кода в длительность ШИМ-сигнала. Все элементы в схеме подобраны правильно, поэтому данное устройство удовлетворяет поставленным требованиям. Программное обеспечение написано с помощью команд контроллера AT90S2313. Программное обеспечение проверенно и отлажено в среде AVR Studio 4.0.
Список литературы
1. Хоровиц П., Хилл У., Искусство схемотехники: Пер. с англ. - Изд. 6-е. - М.: Мир, 2003 - 704 с.
2. Конспекты лекций по дисциплинам «Схемотехника» и «Микроконтроллеры».
3. Баранов В.Н., Применение микроконтроллеров AVR: схемы, алгоритмы, программы - М.: издательский дом «Додэка-XXI», 2004 - 288 с.