Генератор сигналов на микроконтроллере: особенности реализации и применения

Как работает генератор сигналов на микроконтроллере. Какие преимущества дает использование микроконтроллера для генерации сигналов. Какие виды сигналов можно получить с помощью такого генератора. На что обратить внимание при разработке генератора сигналов на микроконтроллере.

Содержание

Принцип работы генератора сигналов на микроконтроллере

Генератор сигналов на микроконтроллере представляет собой устройство, в котором для формирования различных видов сигналов используется программируемый микроконтроллер. Основными компонентами такого генератора являются:

  • Микроконтроллер — «мозг» устройства, выполняющий программу генерации сигнала
  • ЦАП (цифро-аналоговый преобразователь) — для преобразования цифровых значений в аналоговый сигнал
  • Выходной усилитель — для усиления сформированного сигнала
  • Блок управления — для настройки параметров генерируемого сигнала

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

  1. В памяти микроконтроллера хранятся цифровые значения, соответствующие форме генерируемого сигнала
  2. Микроконтроллер последовательно выдает эти значения на ЦАП с заданной частотой
  3. ЦАП преобразует цифровые значения в аналоговый сигнал
  4. Выходной усилитель усиливает полученный сигнал до требуемой амплитуды

За счет программного управления можно легко менять форму, частоту и другие параметры генерируемого сигнала.


Преимущества использования микроконтроллера для генерации сигналов

Применение микроконтроллера в качестве основы генератора сигналов дает ряд существенных преимуществ:

  • Гибкость — возможность программно реализовать генерацию сигналов различной формы
  • Компактность — вся логика работы реализуется программно, что сокращает количество компонентов
  • Низкая стоимость — микроконтроллеры недороги и доступны
  • Простота модификации — изменение функциональности требует только перепрограммирования
  • Высокая точность — цифровое формирование сигнала обеспечивает стабильность параметров

Благодаря этим преимуществам генераторы на микроконтроллерах находят широкое применение в различных областях электроники и измерительной техники.

Виды сигналов, генерируемых микроконтроллерным устройством

С помощью генератора на микроконтроллере можно формировать различные типы сигналов:

  • Синусоидальный сигнал
  • Прямоугольный сигнал (меандр)
  • Треугольный сигнал
  • Пилообразный сигнал
  • Импульсный сигнал
  • Шумоподобный сигнал
  • Сигналы произвольной формы

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


Ключевые параметры генераторов сигналов на микроконтроллерах

При разработке генератора сигналов на микроконтроллере важно учитывать следующие ключевые параметры:

  • Диапазон генерируемых частот — определяется быстродействием микроконтроллера и ЦАП
  • Разрядность ЦАП — влияет на точность воспроизведения формы сигнала
  • Объем памяти микроконтроллера — ограничивает количество точек для описания сигнала
  • Стабильность частоты — зависит от источника тактирования микроконтроллера
  • Уровень выходного сигнала — определяется характеристиками выходного усилителя

Правильный выбор этих параметров позволяет создать генератор с характеристиками, оптимальными для конкретного применения.

Особенности программирования микроконтроллера для генерации сигналов

При разработке программы для генератора сигналов на микроконтроллере следует учитывать несколько важных аспектов:

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

Грамотная программная реализация во многом определяет качество и функциональность генератора сигналов на микроконтроллере.


Применение генераторов сигналов на микроконтроллерах

Генераторы сигналов на основе микроконтроллеров находят широкое применение в различных областях:

  • Тестирование и отладка электронных устройств
  • Учебные лаборатории по электронике
  • Измерительное оборудование
  • Системы управления и автоматики
  • Аудиотехника
  • Медицинская техника

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

Перспективы развития микроконтроллерных генераторов сигналов

Технологии микроконтроллеров постоянно развиваются, открывая новые возможности для совершенствования генераторов сигналов:

  • Повышение быстродействия микроконтроллеров расширяет частотный диапазон
  • Увеличение объема памяти позволяет хранить больше точек сигнала
  • Интеграция высокоскоростных ЦАП повышает качество выходного сигнала
  • Появление специализированных микроконтроллеров для обработки сигналов

Эти тенденции позволяют создавать все более совершенные генераторы сигналов на микроконтроллерах, расширяя сферы их применения.


Заключение

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


Схема генератора сигналов на микроконтроллере

Электронные устройства часто содержат в себе в качестве одного из узлов какой-либо генератор сигналов. В зависимости от требований к этому генератору, выбирают один из трёх основных вариантов его реализации: аналоговый генератор, генератор с ФАПЧ или генератор с прямым цифровым синтезом сигнала. Каждый имеет свои достоинства и недостатки. Но если устройство содержит микроконтроллер, то может быть выгодным использовать его для цифрового синтеза сигнала. В предыдущих статьях, посвящённых DAC микроконтроллера, уже демонстрировалась возможность генерации сигнала.


Поиск данных по Вашему запросу:

Схемы, справочники, даташиты:

Прайс-листы, цены:

Обсуждения, статьи, мануалы:

Дождитесь окончания поиска во всех базах.

По завершению появится ссылка для доступа к найденным материалам.

Содержание:

  • Генерация сигналов непрямоугольной формы в схемах на микроконтроллере
  • Какая программа у схемы генератора телевизионных сигналов?
  • Генератор сигналов на МК ATtiny2313
  • Генераторы
  • DDS генератор на микроконтроллере ATmega16. Часть 1. Схемотехническое решение
  • Функциональный DDS генератор
  • Генератор сигналов произвольной формы на микроконтроллере AVR
  • ФУНКЦИОНАЛЬНЫЙ ГЕНЕРАТОР НА МИКРОКОНТРОЛЛЕРЕ

ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: ICL8038 Генератор прямоугольных, треугольных и синусоидальных импульсов

Генерация сигналов непрямоугольной формы в схемах на микроконтроллере


В этой статье рассматривается схемотехническое решение, устройство и конструкция DDS генератора генератор с прямым цифровым синтезом формы сигнала на микроконтроллере ATmega16 фирмы Atmel. В приборе, кроме синтеза сигнала различной формы и частоты, реализуется возможность регулировки амплитуды и смещения выходного сигнала.

За основу прибора, а точнее алгоритм работы микроконтроллера, была взята разработка DDS генератора Jesper Hansen.

DDS сигнал формируется микроконтроллером с использованием цепочки резисторов R2R ЦАП , регулировка смещения и амплитуды возможна благодаря использованию низкопотребляющего операционного усилителя LMN. Изменения в программном обеспечении микроконтроллера Изменения в исходном коде связаны лишь с назначением кнопок подключенных к порту D микроконтроллера:.

Источник: Радиолоцман. Энциклопедия радиолюбителя Онлайн калькуляторы. Post navigation Предыдущая статья Тестер RC-5 на atmega8. Нужно получить на выходе генерированный сигнал с током по амплитуде от 0 до 1 А вручную регулирование, напр. То есть важна форма и амплитуда тока, напряжение абсолютно не интересно. Подскажите, пожалуйста, каким методом реализовывали бы такую задачу Вы? Возможно ли заменить мегу 16Р на мегу 16А?

Кто может изготовить печатку данного устройства? Обновить список комментариев. Добавить комментарий. Запомнить меня. Обозначение в схеме. Размер файла:


Какая программа у схемы генератора телевизионных сигналов?

Данный DDS функциональный генератор версия 2. Генератор имеет два выходных сигнала: первый — DDS сигналы, второй — высокоскоростной Смещение и амплитуда регулируются при помощи двух потенциометров. Частота DDS-сигналов может регулироваться в пределах Основные характеристики DDS-генератора V2.

Блок-схема генератора прямоугольных импульсов показана на рис. 1. Рис.1 .. Входом сигнала синхроимпульса является вывод микроконтроллера ICP.

Генератор сигналов на МК ATtiny2313

Войдите , пожалуйста. Хабр Geektimes Тостер Мой круг Фрилансим. Войти Регистрация. Виды цифровых генераторов DIY или Сделай сам В данной статье я хочу сделать краткий обзор разных методов генерации частоты, но сначала я расскажу пару слов о себе. Это моя первая статья. Я аспирант Московского Энергетического Института. Эта статья писалась в первую очередь для себя, с целью разобраться какие есть доступные методы генерации сигнала, и так как я не нашел выжимку информации в одном месте, то решил сделать ее сам и опубликовать ее здесь.

Генераторы

Что почитать по генераторам телевизионных сигналов Нужно разработать генератор телевизионных сигналов. Какая есть литература на эту тему? Шунтирование генератора сигналов Привет форумчанам! Сегодня защищал лабораторную работу.

Отправьте статью сегодня! Журнал выйдет 19 октября , печатный экземпляр отправим 23 октября.

DDS генератор на микроконтроллере ATmega16. Часть 1. Схемотехническое решение

Собираем простой функциональный генератор для лаборатории начинающего радиолюбителя. Доброго дня уважаемые радиолюбители! На сегодняшнем занятии в Школе начинающего радиолюбителя мы закончим собирать функциональный генератор. Сегодня мы соберем печатную плату, припаяем все навесные детали, проверим работоспособность генератора и проведем его настройку с помощью специальной программы. Плата получилась размером 9х5,5 см и содержит две перемычки две линии синего цвета. Печатная плата генератора

Функциональный DDS генератор

Предполагается ввести аттенюатор и регулировку формы выходного сигнала с применением второго микроконтроллера AVR. Нажатие и отпускание кнопки сопровождается звуковыми сигналами разной формы, соответствующей диапазону включения генератора.. Количество повторений сигнала при отпускании кнопки соответствует под диапазону включения LC-генератора, то есть от 1 до 3 повторений. При бездействии генератора, в течении 2-х часов каждые 15 минут издается звуковой сигнал. Считаю данную опцию полезной, кто уходит с головой ремонт или разработку, Повторяющийся сигнал — не даст просидеть увлеченно за работой весь день без еды. По истечении 2-х часов, генератор отключается, микроконтроллер уходит в режим Power Down. Перед отключение издается несколько продолжительных прерывистых звуковых сигналов.

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

Генератор сигналов произвольной формы на микроконтроллере AVR

Отредактировал: Tonich — , Причина: Исправлена печатная плата. Личный кабинет Регистрация Авторизация. Логин: Пароль Забыли?

ФУНКЦИОНАЛЬНЫЙ ГЕНЕРАТОР НА МИКРОКОНТРОЛЛЕРЕ

Схема генератора высокой частоты, который вырабатывает сигналы в диапазоне от 10 до 50 МГц. Девиация частоты зависит от величины этого напряжения ЗЧ. Если нужна девиация кГц, то, при крайне верхнем Принципиальная схема самодельного генератора логических импульсов с частотой от 1 Гц до 10КГц, собран на микросхеме КЛА7.

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

Сайт помогает найти что-нибудь интересное в огромном ассортименте магазинов и сделать удачную покупку. Если Вы купили что-то полезное, то, пожалуйста, поделитесь информацией с другими.

DDS синтезатор на AD , привлекает радиолюбителей своей простотой и возможностями. Описываемый в статье генератор тоже содержит микроконтроллер, но использован он только для управления специализированной микросхемой — синтезатором частоты AD Его основа — аккумулятор фазы, формирующий код мгновенной фазы выходного сигнала. Компаратор позволяет получить выходной сигнал прямоугольной формы. Его частота f out в герцах определяется формулой. F in — тактовая частота, Hz ;.

Счетчик 2 отсчитывает нужное количество импульсов и, досчитав да заданного значения, останавливает таймер. Таймер Т1 формирует временные интервалы заданной длительности, по окончанию интервала он формирует прерывание, в котором его значения обновляется. Таким образом, можно сформировать любую последовательность импульсов с любыми параметрами период, длительность, скважность.


Генератор на микроконтроллере atmega8

Даташит — это техническое описание на какой-либо радиокомпонент. Где его найти? Ну, конечно же, в интернете! Те, кто хорошо дружит с разговорным английским, не факт, что сможет прочитать технические термины в даташитах. Давайте попробуем пролить свет истины на основные характеристики МК ATmegа8. Для этого качаем даташит.


Поиск данных по Вашему запросу:

Схемы, справочники, даташиты:

Прайс-листы, цены:

Обсуждения, статьи, мануалы:

Дождитесь окончания поиска во всех базах.

По завершению появится ссылка для доступа к найденным материалам.

Содержание:

  • DDS генератор v2. 0 на микроконтроллере AVR
  • Цифровой генератор на ATMEGA8
  • Конструктор DDS генератор v2.0 на микроконтроллере AVR, СОБЕРИ САМ
  • DDS генератор на ATmega16
  • Управляемый генератор прямоугольных колебаний на ATtiny2313
  • Генератор импульсов на ATmega8
  • Генератор импульсов
  • Рекомендации по применению 8-разрядных микроконтроллеров AVR
  • DDS генератор на микроконтроллере ATmega16. Часть 1. Схемотехническое решение
  • Генератор сигналов произвольной формы на микроконтроллере AVR

ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: Лекция 322. Atmega 8: Порты ввода-вывода

DDS генератор v2.0 на микроконтроллере AVR


Конструктор для настоящих радиолюбителей. Cостоит из всех необходимых деталей. DDS функциональный генератор версия 2. Подать частное объявление.

Мобильное приложение. Каталог товаров. Промышленные и оптовые товары. Контрольно-измерительные приборы. Радиоизмерительные приборы. Генераторы сигналов. Конструктор DDS генератор v2. Товар на сайте Скидки и акции Оплата и доставка Контакты. Информация неактуальна? Все предложения продавца. В наличии. Скидка еще 37 дней. Кредит от наших финансовых партнеров. Интернет магазин » Горячий Стиль «. Продавец из: г. График работы. Способы доставки Пункты самовывоза, Новая Почта.

Условия возврата. Регионы доставки. Защищаем покупки на 3 грн. Отзывы о товаре. Добавить отзыв о товаре. Отзывы о компании Интернет магазин » Горячий Стиль «. Добавить отзыв о продавце. Сергей Сделка подтверждена Prom. Цена актуальна Наличие актуально Заказ выполнен вовремя Описание актуально. Миша Сделка подтверждена Prom. О нас. Другие страны. Детальнее Написать. Интернет магазин » Горячий Стиль » Продавец из: г.

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


Цифровой генератор на ATMEGA8

В первой части статьи рассматривается схемотехническое решение, устройство и конструкция DDS генератора генератор с прямым цифровым синтезом формы сигнала на микроконтроллере Atmel ATmega В приборе, кроме синтеза сигнала различной формы и частоты, реализуется возможность регулировки амплитуды и смещения выходного сигнала. За основу прибора, а точнее алгоритм работы микроконтроллера, была взята разработка DDS генератора Jesper Hansen. DDS сигнал формируется микроконтроллером с использованием цепочки резисторов R2R ЦАП , регулировка смещения и амплитуды возможна благодаря использованию низкопотребляющего операционного усилителя LMN. Кликните для уеличения. Возможно использование компьютерного блока питания форм-фактора ATX, для этого необходимо распаять переходник в соответствии со схемой:. Кликните для увеличения.

Пример конфигурации fuse битов для микроконтроллера ATmega8 для биты микроконтроллера ATmega8, внутренний RC генератора частота 1МГц .

Конструктор DDS генератор v2.0 на микроконтроллере AVR, СОБЕРИ САМ

В этой статье рассматривается схемотехническое решение, устройство и конструкция DDS генератора генератор с прямым цифровым синтезом формы сигнала на микроконтроллере ATmega16 фирмы Atmel. В приборе, кроме синтеза сигнала различной формы и частоты, реализуется возможность регулировки амплитуды и смещения выходного сигнала. За основу прибора, а точнее алгоритм работы микроконтроллера, была взята разработка DDS генератора Jesper Hansen. DDS сигнал формируется микроконтроллером с использованием цепочки резисторов R2R ЦАП , регулировка смещения и амплитуды возможна благодаря использованию низкопотребляющего операционного усилителя LMN. Изменения в программном обеспечении микроконтроллера Изменения в исходном коде связаны лишь с назначением кнопок подключенных к порту D микроконтроллера:. Источник: Радиолоцман. Энциклопедия радиолюбителя Онлайн калькуляторы. Post navigation Предыдущая статья Тестер RC-5 на atmega8. Нужно получить на выходе генерированный сигнал с током по амплитуде от 0 до 1 А вручную регулирование, напр. То есть важна форма и амплитуда тока, напряжение абсолютно не интересно.

DDS генератор на ATmega16

Счетчик 2 отсчитывает нужное количество импульсов и, досчитав да заданного значения, останавливает таймер. Таймер Т1 формирует временные интервалы заданной длительности, по окончанию интервала он формирует прерывание, в котором его значения обновляется. Таким образом, можно сформировать любую последовательность импульсов с любыми параметрами период, длительность, скважность. Подпрограмма прерывания начинается с проверки — не последний ли это импульс, если последний,таймер останавливается. Если не последний, производится проверка, это имульс или пауза между импульсми длительность импульса — мкс, длительность паузы — мкс , таким образом, поочередно формируются временные интервалы импульса и паузы.

Конструктор для настоящих радиолюбителей.

Управляемый генератор прямоугольных колебаний на ATtiny2313

В состав входит легко адаптируемый исходный код калибровочной программы, которая может использоваться совместно с любым микроконтроллером, у которого имеется встроенный RC-генератор. Также могут использоваться калибровочные системы сторонних производителей, в т. Большинство существующих AVR-микроконтроллеров предлагают возможность работать от внутреннего RC-генератора. Частота внутреннего RC-генератора может быть откалибрована в большинстве AVR-микроконтроллеров с точностью? Такая возможность повышает гибкость и снижает стоимость решения по сравнению с использованием внешнего генератора. Поскольку частота внутреннего RC-генератора зависит от рабочего напряжения и температуры, то может понадобиться дополнительная калибровка для специфических условий проектируемого приложения.

Генератор импульсов на ATmega8

Радиолюбителям, схемотехникам иногда необходимо настроить какое-нибудь цифровое устройство, как например, счетчик импульсов, тахометр, осциллограф и т. Или просто узнать, работает ли оно. Очень удобно пользоваться генератором, выдающим прямоугольные импульсы различной частоты. Основу устройства составляет популярный микроконтроллер ATmega8 фирмы Atmel. Описание схемы. Вся схема питается напряжением 5 В. Микроконтроллер тактируется частотой 8 МГц, которая стабилизирована кварцем Х1.

DDS генератор на ATmega с прямым цифровым синтезом формы сигнала) на микроконтроллере ATmega16 фирмы Atmel.

Генератор импульсов

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

Рекомендации по применению 8-разрядных микроконтроллеров AVR

ВИДЕО ПО ТЕМЕ: Самодельный 100 программный Таймер на микроконтроллере atmega8 с LCD дисплеем

Генератор импульсов на Attiny Короче я не правильно выразился наверное. Мне надо для одного проекта, так что бы с одной ноги Генератор прямоугольных импульсов на atmega8 асм Прошу помощи, уже не знаю куда написать! Нужно на восьмой атмеге реализовать генератор импульсов с Генератор импульсов на CF Уважаемые господа!

Данный DDS функциональный генератор версия 2. Генератор имеет два выходных сигнала: первый — DDS сигналы, второй — высокоскоростной

DDS генератор на микроконтроллере ATmega16. Часть 1. Схемотехническое решение

Сколько я занимаюсь электроникой, всегда хотел заиметь генератор сигналов различной формы. В итоге я сделал простой, но функциональный генератор сигналов который может генерировать: меандр, треугольник, синус, шум и пилообразный сигналы. Максимально генерируемая частота — 60kHz килогерц. Пока что в настоящей прошивке, частоту можно устанавливать только при генерации меандра, для остальных сигналов можно устанавливать лишь задержку в микросекундах. Основой устройства является AVR микроконтроллер ATtiny, сигнал генерируется с помощью 8 битного цифро-аналогового преобразователя ЦАП , данные о частоте, сигнале или задержки отображаются на ЖК индикаторе 8×2.

Генератор сигналов произвольной формы на микроконтроллере AVR

Автоматический запуск бензогенератора. Усилитель звука на микросхеме KA Когда-то в [Л. Он мог вырабатывать 31 фиксированную частоту от 0,1 Hz до 4 MHz , имел очень простую схему и управлялся подачей двоичного кода на управляющие входы.


Генератор синусоидальных сигналов. Часть 17. Основы микроконтроллеров…

Опубликовано

компилятор MPASM. Тем не менее, пример кода был портирован на XC8 пользователем tinyelect на нашем канале Discord (которому мы очень благодарны!), а версия кода для XC8 приведена в конце этого руководства для справки. Чтобы увидеть изменения, необходимые для перехода с MPASM на XC8, ознакомьтесь с процессом, которым он поделился.

Еще раз привет! На этот раз мы отдохнем от двух последних больших уроков и сделаем действительно простое устройство с помощью короткой и легкой программы. Предлагаю вам сделать генератор синусоиды на микроконтроллере PIC10F200. Он не будет управлять каким-то внешним генератором сигналов или другим чипом, он будет сам производить сигнал.

Для создания изменяющегося напряжения микроконтроллер должен иметь цифро-аналоговый преобразователь (ЦАП). Мы уже делали это в учебнике по ШИМ, когда изменяли яркость светодиода, изменяя скважность импульсов. При усреднении эти импульсы формируют напряжение разного уровня от 0 (при скважности 0%) до Vcc (при скважности 100%). Но этот способ нам в этот раз не подойдет. Во-первых, потому что программная ШИМ довольно медленная, а, во-вторых, из-за того, что пульсация будет очень высокой, нам понадобится громоздкий фильтр.

Итак, на этот раз мы сделаем параллельный ЦАП на основе так называемой цепочки R-2R. Этот метод позволяет получить изменяющийся сигнал напряжения с разрешением количества используемых в нем выводов микроконтроллера. Пока у PIC10F200 всего три выхода, ЦАП будет иметь 3-битное разрешение, а это значит, что он сможет иметь всего 23 = 8 уровней напряжения, но для нас это нормально, мы будем сглаживать сигнал с помощью простого RC- цепь. Рассмотрим теперь принципиальную схему устройства (рис. 1).

Рисунок 1. Схема генератора синусоидального сигнала.

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

Резисторы R1-R6 образуют вышеупомянутую цепочку R-2R. Почему он так называется и какова его цель? Это цепочка, состоящая из резисторов двух номиналов R (в нашем случае R=1кОм) и 2R (2кОм соответственно). Резисторы 2R (R1, R2 и R3) подключены последовательно к каждому выходу микроконтроллера, а резисторы R (R4 и R5) подключены между резисторами 2R. Резистор R6, который также имеет сопротивление 2R, является обязательным и соединяет последний узел с землей. Как видите, есть три узла (1, 2 и 3), к которым подключены резисторы. Выходной узел 1.

Особенность этой цепочки в том, что она позволяет суммировать входные напряжения с весовыми коэффициентами. Например, если подать высокий уровень только на вывод GP2, то в узле 1 будет напряжение VCC/2. Если подать высокий уровень только на вывод GP1, то в узле 1 будет VCC/4. А если подать высокий уровень только на вывод GP0, выходное напряжение будет VCC/8. Как я уже сказал, эта цепочка позволяет нам суммировать напряжения, поэтому результирующее выходное напряжение будет:

Здесь В GPx — это напряжение на соответствующем выводе, может быть как 0, так и VCC.

Таким образом, с помощью этой цепочки можно сформировать любое напряжение от VCC/8 до 7VCC/8 с шагом VCC/8. Если бы у нас было больше выходов, мы могли бы добавить больше цифр и увеличить разрешение, добавив еще одну пару R-2R.

Выводы микроконтроллера выбраны не случайно: больший вес цифры соответствует большему номеру GPIO, поэтому мы можем просто записать число от 7 до 0 в регистр GPIO и получить соответствующее выходное напряжение 7VCC/8 до 0,

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

Как обычно, если вы хотите узнать больше о цепочке R-2R или низкочастотной фильтрации, не стесняйтесь искать в Интернете, а если нет, просто поверьте мне, что это работает таким образом. Поверьте мне…

Теперь, когда у нас есть средства для создания изменяющегося напряжения, нам нужно каким-то образом сформировать синусоидальный сигнал. Самый очевидный способ — получить значение времени T, затем вычислить sin(T), затем преобразовать его, чтобы оно соответствовало диапазону ЦАП, и, наконец, вывести его. Но проблема здесь в том, что вычисление функции sin(x) может использовать все ресурсы микроконтроллера и занимать много времени. Поэтому воспользуемся другим вариантом. Мы заранее рассчитаем необходимые значения, например в Excel, затем просто скопируем рассчитанные значения в микроконтроллер и выведем их последовательно. Это будет намного проще.

Итак, давайте проведем эти расчеты (таблица 1).

Таблица 1. Расчеты синусоиды.

Здесь N — номер выборки, T — время, sin(T) — значение функции синуса, DAC — значение sin(T), переведенное в единицы DAC, Register — номер регистра микроконтроллера. Рассмотрим таблицу 1 более подробно.

Во-первых, у нас есть 16 образцов, это количество ограничено объемом доступной оперативной памяти микроконтроллера PIC10F200. Теперь, почему у нас такие странные значения T? Они получаются путем деления периода синуса (как вы знаете, это 2𝜋 или примерно 6,28) на 16. Таким образом, следующее 17-е значение будет точно 2𝜋, а sin(2𝜋) = sin(0) = 0, и, таким образом, мы может создать непрерывную синусоиду, отправив эти 16 значений в бесконечный цикл.

Столбец sin(T) содержит только вычисленные значения функции синуса в диапазоне [-1, 1]. Но эти значения нам не подходят, поэтому мы должны преобразовать их так, чтобы -1 синуса соответствовало 0 ЦАП (наименьшее возможное значение), а 1 синуса соответствовало 7 ЦАП (наименьшее возможное значение). максимально возможное значение). Для этого нам нужно использовать следующее уравнение:

, где «округление» — это операция округления результата до ближайшего целого числа. Как видите, значения ЦАП не выглядят так, как будто они могут формировать синусоиду. Посмотрим график зависимости DAC(T), который построил для нас Excel (рисунок 2).

Рис. 2. График DAC(T).

Ну, этот сигнал слегка похож на синусоиду, если прищуриться вправо. Также Excel соединяет точки прямыми линиями, а на самом деле между ними будут просто ступеньки, так что это будет выглядеть еще меньше. Вот почему фильтр нижних частот обязателен.

И последний столбец Таблицы 1 это Регистр, в нем указан номер регистра в который мы будем записывать соответствующее значение из столбца ЦАП.

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

Хорошо, теперь рассмотрим программный код.

 

#include "p10f200.inc"

__CONFIG _WDT_OFF & _CP_OFF ​​& _MCLRE_OFF

ОРГ 0x0000

ИНИТ

MOVLW  ~(1<

ОПЦИЯ    

    CLRW    ;Очистите регистр TRISGPIO, чтобы настроить

    TRIS GPIO  ; все GPIO как выходы

;Предварительно загрузить регистры требуемыми значениями в соответствии с таблицей синусов

    MOVLW 4    

    MOVWF 0x10

    MOVWF 0x18

    MOVLW 5

    MOVWF 0x11

    MOVWF 0x17

    MOVLW 6

    MOVWF 0x12

    MOVWF 0x16

    MOVLW 7

    MOVWF 0x13

    MOVWF 0x14

    MOVWF 0x15

    MOVLW 2

    MOVWF 0x19

    MOVWF 0x1F

    MOVLW 1

    MOVWF 0x1A

    MOVWF 0x1E

    CLRF 0x1B

    CLRF 0x1C

    CLRF 0x1D

    MOVLW 0x10   ;Скопируйте адрес регистра 0x10 в

    MOVWF FSR   ;указатель косвенного адреса

LOOP ;Начало основного цикла

    MOVF INDF, W   ;Чтение значения косвенно адресованного

    MOVWF GPIO  ; зарегистрируйте и скопируйте его в GPIO

    INCF FSR   ;Установите следующий адрес равным

    BTFSS FSR, 4   ;Если бит 4 регистра FSR не установлен

    BSF FSR, 4   ; затем установите его

    GOTO LOOP     ;бесконечный цикл

    END

Эта программа очень короткая по сравнению с предыдущими. В части инициализации мы настраиваем GP2 как GPIO (строки 6-7), а затем настраиваем все GPIO (кроме GP3) как выходы (строки 8-9). В строках с 12 по 33 мы загружаем значения в файловые регистры согласно Таблице 1, тут пока ничего объяснять, надеюсь, не нужно.

Наконец, мы загружаем значение 0x10 в регистр FSR (строки 35, 36), которое, как вы, надеюсь, помните, представляет собой адрес регистра в косвенной адресации. Поскольку мы хотим начать отправку значений с регистра 0x10, мы загружаем именно этот адрес.

Основной цикл программы еще короче инициализационной части (строки 38-44). И это довольно просто.

 

LOOP   ;Начало основного цикла

MOVF INDF, Вт ;Чтение значения косвенно адресованного

MOVWF GPIO    ; зарегистрируйте и скопируйте его в GPIO

    INCF FSR   ;Установите следующий адрес равным

.

    BTFSS FSR, 4     ;Если бит 4 регистра FSR не установлен

    BSF FSR, 4    ; затем установите его

    GOTO LOOP      ;бесконечный цикл

Сначала мы копируем значение регистра INDF в регистр W (строка 39). Напомню, что регистр INDF — это тот, адрес которого записывается в регистр FSR. Итак, на первой итерации INDF имеет значение регистра 0x10, равное 4 (как следует из таблицы 1 и строк 12, 13).

Затем копируем это значение в регистр GPIO (строка 40), после чего на GP2 будет установлен высокий уровень, а на GP1 и GP0 — низкий, а выходное напряжение будет:

Затем увеличиваем FSR значение регистра (строка 41), поэтому в следующий раз оно будет указывать на регистр 0x11. В регистре FSR активны только младшие 5 бит, а старшие 3 бита (с 7 по 5) не используются. Поэтому, когда мы увеличиваем его несколько раз и достигаем значения 0x1F, которое является последним адресом регистра, на следующей итерации у нас будет значение 0x20 или 0b00100000. Пока мы можем игнорировать 1 в бите 5, мы все равно должны заботиться о младших 5 битах. Потому что теперь регистр FSR будет указывать на регистр 0x00, который нам не нужен. Итак, мы должны проверить бит 4 регистра FSR, и если он станет 0, это означает, что мы перешли от значения 0x1F к значению 0x00, нам нужно установить бит 4 и таким образом сделать регистр FSR 0x10, который является первый адрес регистра файла, где у нас есть первое значение DAC. Реализуем эту проверку в строках 43, 44.

И все! Довольно просто, да?


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

На рисунке 3 представлена ​​осциллограмма выходного сигнала без ФНЧ (при снятом С1). Как я уже сказал, это полная каша с огромными шагами и не похоже на синусоиду (может быть, очень отдаленно).

Рисунок 3. Выходной сигнал без фильтрации.

На рисунке 4 показан выходной сигнал с C1 = 3,3 нФ. Как видите, сигнал сейчас относительно хороший, но вблизи точек можно заметить некоторые изломы.

Рис. 4. Выходной сигнал при C1 = 3,3 нФ.

На рисунке 5 показан выходной сигнал с C1 = 6,8 нФ. Здесь сигнал выглядит уже хорошо, а изломы едва заметны.

Рис. 5. Выходной сигнал при C1 = 6,8 нФ.

На рисунке 6 показан выходной сигнал с C1 = 10 нФ. В данном случае очень гладко.

Рис. 6. Выходной сигнал при C1 = 10 нФ.

Но если посмотреть на рисунки 4-6, то можно заметить, что амплитуда сигнала уменьшается (параметр Vpp на рисунках), причем еще больше уменьшится, если увеличить емкость С1, так как он начнет фильтровать полезные сигнала вместо сглаживания ступенек, поэтому 6,8 нФ — хороший компромисс между сглаживанием и амплитудой.

Также с рисунка 3 по рисунок 6 видно, что частота синусоиды составляет около 7,89кГц (параметр FRQ), и это максимальная частота, которую мы можем достичь в нашей программе, как видите, нет никаких задержки там. Однако вы можете уменьшить его, вставив дополнительные задержки с помощью инструкций NOP или GOTO $+1.

Также хочу отметить, что нагрузочная способность такой схемы не очень высока, поэтому если сопротивление нагрузки сравнимо с R (в данном случае 1кОм), то это может существенно влиять на выходное напряжение. В этом случае нужно поставить какой-нибудь усилитель на выходе. Самым простым решением является эмиттерный повторитель, для которого требуется всего один транзистор. Более продвинутый — это операционный усилитель, подключенный как повторитель напряжения. Но убедитесь, что ваш операционный усилитель имеет функцию rail-to-rail, иначе он может обрезать верх и низ сигнала.


В заключение хочу сказать, что мы узнали, как работает параллельный ЦАП на схеме R-2R. Эта схема позволяет нам использовать микроконтроллер без поддержки аналоговых функций как тот, который может выводить аналоговый сигнал. Размер кода генератора синусоидального сигнала составляет всего 34 слова.

В качестве домашнего задания предлагаю попробовать изменить параметры программы и схемы и посмотреть, как они влияют на форму сигнала: частоту сигнала, значения ФНЧ (R7 и C1). Кроме того, я хочу предложить вам записывать в регистры другие значения для построения сигналов с другими формами, такими как пила, треугольник или трапециевидные волны.

Файлы проекта

XC8-PIC-Assembler-Sine-Wave-Generator-Part-17-Microcontroller-Basics-PIC10F200.zip

Автор:
Сергей Сокол

Я родился, вырос и живу в настоящее время в Украине. Я люблю различные виды электроники и походы, но эти вещи были отложены в сторону из-за войны, которая обрушилась на мою страну, мой народ и мою семью. Во время этих испытаний, если бы вы могли поддержать меня финансово, я был бы признателен за любую помощь, которую можно было бы отправить через Paypal на [email protected]

Часто задаваемые вопросы по EE

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

Генератор сигналов 2FSK на базе микроконтроллера AT89C51

Главная Advanced Materials Research Advanced Materials Research Vol. 722 Генератор сигналов 2FSK на основе AT89C51…

Предварительный просмотр статьи

Abstract:

Чтобы упростить устройства, используемые для генерации сигнала 2FSK, генератор сигналов 2FSK на основе AT89В данной работе предлагается микроконтроллер C51. Цифровой сигнал базовой полосы вводится в микроконтроллер через один из портов ввода/вывода. Затем выполняется программа микроконтроллеров, которые предназначены для генерации сигналов ШИМ в соответствии с синусоидальными сигналами, соответствующими требуемым сигналам 2FSK. Следовательно, соответствующий сигнал ШИМ выводится из другого порта ввода/вывода. Этот сигнал PWM отправляется в простой пассивный фильтр нижних частот второго порядка, и сигнал 2FSK может быть получен на выходе фильтра. Генератор сигналов 2FSK полностью использует ресурсы микроконтроллера, в результате чего он прост, удобен в использовании, экономичен и надежен.

Доступ через ваше учреждение

Вас также могут заинтересовать эти электронные книги

Предварительный просмотр

использованная литература

[1] Yuezong, Wang, Jinghui, liu: TMS320DM642 Проектирование и разработка приложений DSP. Posts and Telecom Press, Пекин. 35, 144-147 (2009).

[2] Чжан Линь, Чен Кесонг: Система каротажа бурения на основе беспроводной связи FSK. Микроконтроллеры и встроенные системы. 12, 65-67 (2011).

[3] Чансинь, Фань, Лина, Цао: теория коммуникации. Издательство национальной оборонной промышленности, Пекин. 35, 46-47 (2006).

[4] Тан Лян, Тан Цинин, Цю Минхуэй: Система сбора данных на основе FSK.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *