В статье описаны этапы разработки и исследования генератора сигналов произвольной формы для исследовательских целей на МК типа AVR. Проведена разработка принципиальной схемы генератора и программного обеспечения для его работы, изготовлен макет генератора и проведены его экспериментальные исследования.
Ключевые слова: AVR, генерация сигнала
На настоящий момент сложно обнаружить какое-либо оборудование без использования микроконтроллеров (МК), являющихся вычислительной микросхемой, управляющей электронными устройствами. Как известно, типовой МК выполнен на одном кристалле и содержит процессор, периферийные устройства, ОЗУ (оперативное запоминающее устройство) и/или ПЗУ (постоянное запоминающее устройство), в зависимости от применяемого назначения. Другими словами, микроконтроллер можно представить в виде миникомпьютера, способного решать несложные вычислительные задачи.
Разработка структурной схемы
Сигнал формируется микроконтроллером путём выполнения алгоритма, записанного в его ПЗУ. На выходе МК выдаёт двоичный код, который необходимо преобразовать в напряжение. Для выполнения данной задачи применяется цифро-аналоговый преобразователь (ЦАП) с последующим использованием фильтра нижних частот (ФНЧ) для подавления ступенек на сигнале. Из-за большой частоты, амплитуда сигнала очень маленькая, поэтому для усиления сигнала применяется усилитель. Для выбора формы сигнала, который будет генерировать МК, используется блок управления, так же, как и индикация выбора сигнала для визуализации выбранной формы сигнала. Структурная схема генератора сигналов изображена на рисунке 1.
Рис. 1. Структурная схема генератора сигналов
Выбор элементов принципиальной схемы
Главной частью генератора является МК ATMEGA328P-MU в корпусе MLF-32. Микроконтроллер уже распаян на платформе Arduino, что существенно упрощает монтаж и наладку МК и позволяет уделить больше внимания разработке самого генератора.
Основные параметры МК ATMEGA328P-MU описаны в таблице 1.
Таблица 1
Основные параметры МК ATMEGA328P-MU
ЦПУ: Ядро |
AVR |
ЦПУ:F, МГц |
от 0 до 20 |
Память:Flash, КБайт |
32 |
Память:RAM, КБайт |
2 |
Память:EEPROM, КБайт |
1 |
I/O (макс.), шт. |
23 |
Таймеры:8-бит, шт. |
2 |
Таймеры:16-бит, шт. |
1 |
Таймеры:Каналов ШИМ, шт. |
6 |
Таймеры:RTC |
Да |
Интерфейсы:UART, шт. |
1 |
Интерфейсы:SPI, шт. |
1 |
Интерфейсы:I2C, шт. |
1 |
Аналоговые входы:Разрядов АЦП, бит |
10 |
Аналоговые входы:Каналов АЦП, шт. |
8 |
Аналоговые входы:Быстродействие АЦП, kSPS |
76.9 |
Аналоговые входы:Аналоговый компаратор, шт. |
2 |
VCC, В |
от 1.8 до 5.5 |
ICC, мА |
40 |
TA, °C |
от -40 до 85 |
Блок управления состоит из четырёх клавиш выбора и трёх потенциометров. Для выбора сигнала используется соответствующая кнопка. Потенциометры предназначены для регулирования частоты, скважности (ШИМ) и управления усилением, при этом регулировать ШИМ возможно только при генерации прямоугольного сигнала.
Индикация выбора состоит из четырёх светодиодов, причём под каждой кнопкой выбора находится светодиод, сообщающий о выборе генерируемого сигнала.
Цифро-аналоговый преобразователь обеспечивает перевод цифровых данных в соответствующую аналоговую форму. В схеме используется ЦАП взвешивающего типа (делитель Кельвина). Определенному биту двоичного кода ставится в соответствие резистор или источник тока, который подключается в общую точку суммирования.
Принципиальная электрическая схема генератора представлена на рисунке 2.
Рис. 2. Электрическая схема генератора
Разработка программного обеспечения
Для выполнения инструкций, определяющих, как и в каком порядке работать компонентам, подключённым к микроконтроллеру, реализована программа для данного микроконтроллера на языке программирования Arduino. Окно среды разработки с фрагментом программы показано на рисунке 3.
Рис. 3. Окно среды разработки Arduino
Исследование генератора
Созданный генератор формирует сигналы прямоугольной, пилообразной, синусоидальной и треугольной формы (рисунки 4–7).
Рис. 4. Сигнал прямоугольной формы
Рис. 5. Сигнал пилообразной формы
Рис. 6. Сигнал синусоидальной формы
Рис. 7. Сигнал треугольной формы
Литература:
- Кравченко А. В. 10 практических устройств AVR-микроконтроллерах. — Книга 2. — СПб.: МК-Экспресс, 2009. — 320 с.
- Соммер У. Программирование микроконтроллерных плат Arduino/Freeduino. — СПб.: БХВ-Петербург, 2012. — 256 с.
- Arduino IDE — установка, настройка и интерфейс. Проверка соединения с платой Arduino // Программирование микроконтроллеров AVR, Atmega, Arduino и др. URL: http://progmk.ru/ (дата обращения: 14.09.2016).
- ATmega328P Overview // Atmel Corporation — Microcontrollers, 32-bit, and touch solutions. URL: http://www.atmel.com/devices/ATMEGA328P.aspx (дата обращения: 02.09.2016).
- From Arduino to a Microcontroller on a Breadboard // Arduino. URL: https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard (дата обращения: 02.09.2016).