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

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

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

Принципиальная схема генератора на МК

Параметры устройства

  • Частотный диапазон: 10 Гц — 60 кГц
  • Цифровая регулировка частоты с 3 различными шагами
  • Формы сигнала: Sine, Triangle, Square, Saw, H-pulse, L-pulse, Burst, Sweep, Noise
  • Выходной диапазон: 15 В для синуса и треугольника, 0-5 В для других режимов
  • Имеется выход для синхронизации импульсов

Питание прибора осуществляется от 12 вольт переменки, что обеспечивает достаточно высокое (свыше 18 В) напряжение постоянного тока, необходимое для нормальной эксплуатации 78L15 и 79L15, формирующих двухполярку по 15 В. Это делается для того, чтобы микросхема LF353 могла вывести полный диапазон сигналов на нагрузке 1 кОм.

Регулятор уровня использован ALPS SRBM1L0800. В схеме следует использовать резисторы с погрешностью ±1% допуска или лучше. Ограничители тока светодиодов — резисторы 4306R серии. Яркость может быть увеличена в зависимости от предпочтений исполнителя. Генератор собран в пластиковом корпусе 178x154x36 мм с алюминиевой передней и задней панелями.

Многие контактные компоненты монтируются на передней и задней панелях (кнопки, ручки, разъемы RCA, светодиодные сборки, разъем питания). Печатные платы крепятся к корпусу болтами с пластиковыми прокладками. Все остальные элементы генератора смонтированы на печатных платах — блок питания отдельно. Левая кнопка по середине для изменения режима, правая — для выбора частоты режима.

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

Сразу после настройки в режиме 1 идёт генерация синуса. Однако, начальная частота довольно низкая и по крайней мере один щелчок энкодера необходим, чтобы увеличить его. На плате есть контакт подключения прибора для программирования, что позволяет оперативно изменять функциональность генератора сигналов, если необходимо. Все файлы проекта — прошивки PIC16F870, рисунки плат, находятся в архиве.

Originally posted 2019-10-02 01:26:29. Republished by Blog Post Promoter

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

Библиографическое описание:

Литовченко, А. А. Генератор сигналов произвольной формы на микроконтроллере AVR / А. А. Литовченко, Ю. А. Ерусалимский. — Текст : непосредственный // Молодой ученый. — 2016. — № 21 (125). — С. 173-177. — URL: https://moluch.ru/archive/125/34400/ (дата обращения: 10.01.2022).



В статье описаны этапы разработки и исследования генератора сигналов произвольной формы для исследовательских целей на МК типа 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. Сигнал треугольной формы

Литература:

  1. Кравченко А. В. 10 практических устройств AVR-микроконтроллерах. — Книга 2. — СПб.: МК-Экспресс, 2009. — 320 с.
  2. Соммер У. Программирование микроконтроллерных плат Arduino/Freeduino. — СПб.: БХВ-Петербург, 2012. — 256 с.
  3. Arduino IDE — установка, настройка и интерфейс. Проверка соединения с платой Arduino // Программирование микроконтроллеров AVR, Atmega, Arduino и др. URL: http://progmk.ru/ (дата обращения: 14.09.2016).
  4. ATmega328P Overview // Atmel Corporation — Microcontrollers, 32-bit, and touch solutions. URL: http://www.atmel.com/devices/ATMEGA328P.aspx (дата обращения: 02.09.2016).
  5. From Arduino to a Microcontroller on a Breadboard // Arduino. URL: https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard (дата обращения: 02.09.2016).

Основные термины (генерируются автоматически): AVR, ICC, VCC, блок управления, двоичный код, основной параметр МК, программное обеспечение, структурная схема генератора сигналов, треугольная форма, цифро-аналоговый преобразователь.

Генераторы сигналов, схемы самодельных измерительных приборов


Как сделать генератор сигнала низкой частоты, схема и описание

Важной частью радиолюбительской лаборатории является низкочастотный генератор. С его помощью можно проверять, ремонтировать и налаживать самодельную или промышленную аудио-технику. Желательно использовать генератор НЧ совместно с частотомером (для точного определения частоты) и осциллографом …

1 6437 2

Простой генератор для настройки радиоприемной аппаратуры (100 кГц- 150 МГц)

Обычно при налаживании радиоприемной аппаратуры используют генератор ВЧ, а для модуляции генератор НЧ. И то и другое — синусоидальные генераторы, сделанные по достаточно сложным схемам. Однако, во многих случаях может быть вполне достаточно простого генератора -пробника, генерирующего …

1 7513 2

Генератор синусоидального сигнала со стабильной амплитудой

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

0 5872 0

Генератор ВЧ на 10-50МГц с индикацией частоты на мультиметре

Схема генератора высокой частоты, который вырабатывает сигналы в диапазоне от 10 до 50 МГц. Сигнал можно промодулировать по частоте подав НЧ напряжение от ГНЧ или микрофона. Девиация частоты зависит от величины этого напряжения ЗЧ. Если нужна девиация 50-100 кГц, то, при крайне верхнем …

0 4632 0

Схема генератора импульсов 1Hz — 10KHz (4011)

Принципиальная схема самодельного генератора логических импульсов с частотой от 1 Гц до 10КГц, собран на микросхеме 4011 (К561ЛА7). При ремонте и налаживании схем на цифровых микросхемах может быть очень полезен генератор логических импульсов. В общем, это генератор прямоугольных импульсов …

1 11482 11

Схема лабораторного генератора сигнала низкой частоты (10Гц-100КГц)

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

3 11906 4

Схема очень простого генератора-пробника (100-10000 Гц)

Простой самодельный генератор-пробник, с регулировкой выходной частоты от 100 Гц до 10000 Гц, выполнен на микросхеме К561ЛА7. Если нужно экспромтом проверить прохождение сигнала по аудиотракту многие корифеи пользуются собственным пальцем как генератором НЧ (50 Гц сетевых наводок), регулируя …

4 6100 0

Генератор синусоидальных сигналов с широким диапазоном частот (MAX038)

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

5 11561 4

Схема генератора плавного диапазона до 50 MHz (HC4046)

Принципиальная схема простого генератора плавного диапазона на микросхеме HC4046, Частота до 50 MHz. Микросхема НС4046 (а так же аналогиMM74HC4046N, MJM74HC4046 и другие) представляет собой RC-генератор с ФАПЧ, способный генерировать стабильную частоту до 50 MHz, что позволяет сделать ГПД …

1 8495 0

Схема низкочастотного генератора на микросхеме КР140УД708 (20-20000Гц)

Приведена принципиальная схема низкочастотного генератора сигналов, который выполнен на ОУ КР140УД708. Низкочастотный генератор является одним из необходимейших приборов врадиолюбительской лаборатории. С его помощью можно налаживать различные усилители, снимать АЧХ, проводить эксперименты …

0 9392 0


Радиодетали, электронные блоки и игрушки из китая:

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

Собираем простой функциональный генератор для лаборатории начинающего радиолюбителя

Доброго дня уважаемые радиолюбители! Приветствую вас на сайте “Радиолюбитель“

Собираем генератор сигналов – функциональный генератор. Часть 3.

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

И так, представляю вам окончательный вариант моей печатной платы выполненной в программе, которую мы рассматривали на втором занятии –  Sprint Layout:

Если вы не смогли сделать свой вариант платы (что-то не получилось, или было просто лень, к сожалению), то можете воспользоваться моим “шедевром”.

  Печатная плата генератора (63.6 KiB, 3,982 hits)

После применения лазерно-утюжной технологии и травления, получилась такая заготовка:

Дорожки на этой плате выполнены шириной 0,8 мм, почти все контактные площадки диаметром 1,5 мм и почти все отверстия – сверлом 0,7 мм. Я думаю, что вам будет не очень сложно разобраться в этой плате, и так-же, в зависимости от используемых деталей (особенно подстроечные сопротивления), внести свои изменения. Сразу хочу сказать, что эта плата проверенна и при правильной пайке деталей схема начинает работать сразу.

Немного о функциональности и красоте платы. Беря в руки плату, изготовленную в заводских условиях, вы наверняка замечали как она удобно подготовлена для пайки деталей – и сверху и снизу нанесена белым цветом так называемая “шелкография”, на которой сразу видны и наименование деталей и их посадочные места, что очень облегчает жизнь при пайке радиоэлементов.  Видя посадочное место радиоэлемента, никогда не ошибешься в какие отверстия его вставлять, остается только глянуть на схему, выбрать нужную деталь, вставить ее и припаять. Поэтому мы сегодня сделаем плату приближенную к заводской, т.е. нанесем шелкографию на слой со стороны деталей. Единственное, эта “шелкография” будет черного цвета. Процесс очень прост. Если, к примеру, мы пользуемся программой Sprint Layout, то выбираем при печати слой К1 (слой со стороны деталей), распечатываем его как и для самой платы (но только в зеркальном отображении), накладываем отпечаток на сторону платы, где нет фольги (со стороны деталей), центрируем его ( а на просвет протравленной платы рисунок виден прилично) и применяя способ ЛУТ переносим тонер на текстолит. Процесс – как и при переносе тонера на медь, и любуемся результатом:

После высверливания отверстий, вы реально будете видеть схему расположения деталей на плате. А самое главное, что это не только для красоты платы (хотя, как я уже говорил, красивая плата – это залог хорошей и долгой работы собранной вами схемы), а главное – для облегчения дальнейшей пайки схемы. Затраченные десять минут на нанесение “шелкографии” заметно окупаются по времени при сборке схемы. Некоторые радиолюбители, после подготовки платы к пайке и нанесения такой “шелкографии”, покрывают слой со стороны деталей лаком, тем самым защищая “шелкографию” от стирания. Хочу отметить, что тонер на текстолите держится очень хорошо, а после пайки деталей вам придется растворителем удалять остатки канифоли с платы. Попадание растворителя на “шелкографию”, покрытую лаком, приводит к появлению белого налета, при удалении которого сходит и сама “шелкография” (это хорошо видно на фотографии, именно так я и делал), поэтому, я считаю, что использовать лак не обязательно. Кстати, все надписи, контура деталей выполнены при толщине линий 0,2 мм, и как видите, все это прекрасно переноситься на текстолит.

А вот так выглядит моя плата (без перемычек и навесных деталей):

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

Продолжаем.  После того, как мы припаяли все детали на плату, припаиваем две перемычки, припаиваем с помощью отрезков монтажных проводов резисторы R7 и R10, переключатель S2. Переключатель S1 пока не припаиваем а делаем перемычку из провода, соединяя выводы 10 микросхемы ICL8038 и конденсатора С3 (т.е. подключаем диапазон 0,7 – 7 кГц), подаем питание с нашего (я надеюсь собранного) лабораторного блока питания на входы микросхемных стабилизаторов около 15 вольт постоянного напряжения

Теперь мы готовы к проверке и настройке нашего генератора. Как проверить работоспособность генератора. Очень просто. Подпаиваем к к выходам Х1 (1:1) и “общий” любой обыкновенный или  пьезокерамический динамик (к примеру от китайских часов в будильнике). При подключении питания мы услышим звуковой сигнал. При изменении сопротивления R10 мы услышим как изменяется тональность сигнала на выходе, а при изменении сопротивления R7 – как  изменяется громкость сигнала. Если у вас этого нет, то единственная причина в неправильной пайке радиоэлементов. Обязательно пройдитесь еще раз по схеме, устраните недостатки и все будет о,кей!

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

Продолжаем. Вот так выглядит плата, подготовленная к настройке:

Что мы видим на этой картинке. Питание – черный “крокодил” на общий провод, красный “крокодил” на положительный вход стабилизатора, желтый “крокодил” – на отрицательный вход стабилизатора отрицательного напряжения. Припаянные переменные сопротивления R7  и R10, а также переключатель S2. С нашего лабораторного блока питания (вот где пригодился двухполярный источник питания) мы подаем на схему напряжение около 15-16 вольт, для того, чтобы нормально работали микросхемные стабилизаторы на 12 вольт.

Подключив питание на входы стабилизаторов (15-16 вольт) с помощью тестера проверяем напряжение на выходах стабилизаторов (±12 вольт). В зависимости от используемых стабилизаторов напряжения будет отличаться от ± 12 вольт, но близки к нему. Если у вас напряжения на выходах стабилизаторов несуразные (не соответствуют тому, что надо), то причина одна – плохой контакт с “массой”. Самое интересное, что даже отсутствие надежного контакта с “землей” не мешает работе генератора на динамик.

Ну а теперь нам осталось настроить наш генератор. Настройку мы будем проводить с помощью специальной программы – виртуальный осциллограф. В сети можно найти много программ имитирующих работу осциллографа на экране компьютера. Специально для этого занятия я проверил множество таких программ и остановил свой выбор на одной, которая, как мне кажется, наиболее лучше симулирует осциллограф – Virtins Multi-Instrument. Данная программа имеет в своем составе несколько подпрограмм – это и осциллограф, частотомер, анализатор спектра, генератор,  и кроме того имеется русский интерфейс:

Здесь вы можете скачать данную программу:

  Virtins Multi-Instrument (41.7 MiB, 5,694 hits)

Программа проста в использовании, а для настройки нашего генератора потребуется лищь минимальное знание ее функций:

Для того чтобы настроить наш генератор нам необходимо подключиться к компьютеру через звуковую карту. Подсоединиться можно через линейный вход (есть не у всех компьютеров) или к разъему “микрофон” (есть на всех компьютерах). Для этого нам необходимо взять какие-либо старые, ненужные наушники от телефона или другого устройства, со штекером диаметром 3,5 мм, и разобрать их. После разборки припаиваем к штекеру два провода – как показано на фотографии:

После этого белый провод подпаиваем к “земле” а красный к контакту Х2 (1:10). Регулятор уровня сигнала R7 ставим в минимальное положение (обязательно, что-бы не спалить звуковую карту) и подключаем штекер к компьютеру. Запускаем программу, при этом в рабочем окне мы увидим две запущенные программы – осциллограф и анализатор спектра. Анализатор спектра отключаем, выбираем на верхней панели “мультиметр” и запускаем его. Появится окошко, которое будет показывать частоту нашего сигнала. С помощью резистора R10 устанавливаем частоту около 1 кГц, переключатель S2 ставим в положение “1” (синусоидальный сигнал). А затем, с помощью подстроечных резисторов R2, R4 и R5 настраиваем наш генератор. Сначала форму синусоидального сигнала резисторами R5 и R4, добиваясь на экране формы сигнала в виде синусоиды, а затем, переключив S2 в положение “3” (прямоугольный сигнал), резистором R2 добиваемся симметрии сигнала. Как это реально выглядит, вы можете посмотреть на коротком видео:

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

Будем считать, что мы успешно со всем справились, и в нашем радиолюбительском хозяйстве появился новый прибор – функциональный генератор. Оснащать его частотомером мы пока не будем (нет подходящей схемы) а будем его использовать в таком виде, учитывая, что нужную нам частоту мы можем выставить с помощью программы Virtins Multi-Instrument. Частотомер для генератора мы будем собирать на микроконтроллере, в разделе “Микроконтроллеры”.

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


При повторении данной конструкции был случай, когда не удалось добиться правильной формы прямоугольных импульсов. Почему возникла такая проблема сказать трудно, возможно из-за такой работы микросхемы. Решить проблему очень легко. Для этого необходимо применить триггер Шмитта на микросхеме К561(КР1561)ТЛ1 по нижеприведенной схеме. Данная схема позволяет преобразовывать напряжение любой формы в прямоугольные импульсы с очень хорошей формы. Схема включается в разрыв проводника, идущего от вывода 9 микросхемы, вместо конденсатора С6.



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

Прямоугольные сигналы, генерируемые с портов MK, имеют достаточно крутые фронты и плоские вершины. Если требуется изменить форму выходных сигналов, а значит и их спектр, то применяют различные фильтры. Построены они могут быть на ЛС-цепочках, LC-контурах, специальных микросхемах и даже на кварцевых резонаторах (Рис. 2.88, а…к).

Рис. 2.88. Схемы генераторов непрямоугольных сигналов на MK (начало):

а) генератор коротких высоковольтных импульсов длительностью 5 мс и частотой 4 Гц. Катушка индуктивности L1 содержит 1500 витков провода ПЭВ-0.14 мм, намотанных на двух чашках 430 из феррита M2000HM1-16;

б) выделитель гармоники 32768 Гц из импульсного сигнала, генерируемого с выхода MK. Резистором R1 подстраивается оптимальный уровень для срабатывания транзисторного ключа VT1. Если подсоединить конденсатор C7, как показано пунктиром, то выходной сигнал из импульсного превратится в постоянный, амплитуда которого зависит от частоты сигнала MK. Минимум амплитуды будет наблюдаться вблизи частоты кварцевого резонатора ZQ1 32768 Гц;

в) аналогично Рис. 2.88, б, но с выделением частоты 36 кГц при помощи фильтра/7, C7. Диод VD1 служит выпрямителем сигнала с нагрузкой в виде ФНЧ C2, R2, C3\

г) /С-фильтр сглаживает форму прямоугольного сигнала, генерируемого с выхода MK. Ёмкости конденсаторов C7, C2 и индуктивность катушки /7выбираются в зависимости от частоты сигнала и требуемой степени «синусоидальности»;

д) трёхзвенный ЯС-фильтр «округляет» фронты сигнала с выхода МК . Резистором Урегулируется амплитуда. Параметры элементов R1…R3, C1…C3 зависят от частоты сигнала;

е)         формирователь продифференцированных (L1) и проинтегрированных (C7) импульсов. Выходы MK запараллелены через резисторы R1, R2 и R3, R4pjin увеличения мощности;

ж)        генерация трапециидального ВЧ-сигнала, близкого по форме к синусоиде;

з)          генератор звуковых сигналов «правильной» синусоидальной формы. Микросхема DA1 (фирма Maxim Integrated Products) — это ФНЧ восьмого порядка с опорной частотой 0.1 …1 МГц, которая подаётся с верхнего выхода MK. На нижнем выходе MK формируется прямоугольный сигнал звуковой частоты, который после прохождения DA1 становится «синусоидой»;

и) генератор «розового» шума в диапазоне 10…40000 Гц со спадом 3 дБ на октаву. Форма сигнала изменяется  С-цепочками R1, R3…R5, C1…C4. «Розовый» шум, в отличие от «белого», имеет равные мощности в каждой октаве, а не на каждой частоте. На выходе МК должна генерироваться 23-разрядная ПСП, состоящая из череды НИЗКИХ и ВЫСОКИХ уровней;

к) четыре цифровых 31-битных генератора ПСП на MK(l)…MK(4) имеют близкие по частоте сигналы, но с разными случайными начальными фазами. На выходе усилителя DA1 сигналы смешиваются, что приводит к генерации практически «белого шума» вдиапазоне 20…50000 Гц.

Источник: Рюмик, С. М., 1000 и одна микроконтроллерная схема. Вып. 2 / С. М. Рюмик. — М.:ЛР Додэка-ХХ1, 2011. — 400 с.: ил. + CD. — (Серия «Программируемые системы»).

Функциональный генератор частот на микросхеме


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

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

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

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

Схема функционального генератора на MAX038

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

Питается схема от блока с напряжением +/-15 В. Тоокопотребление 60 мА плюс 100 мА на частотомер.

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

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

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

В приложении есть также ещё один подобный по функциям микроконтроллерный генератор сигналов с ЖК дисплеем, модель генератора AVT5124. Скачать файлы проекта можете бесплатно по ссылке.

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

Приветствую всех!
Уважаемые посетители сайта, хочу предложить Вам схему и печатную плату ГТИС (генератора телевизионных испытательных сигналов),который я сделал год назад по просьбе товарища.Была поставлена задача разработать печатную плату,которая должна
вмещаться в корпус «Ranitsa RP-201».(часы — радиоприемник).Т.к. я в свое
время уже собирал универсальный генератор испытательных телевизионных сигналов (версия 2.0 «Радиолюбитель» 1999г. №5 стр.5. Авторы:Chirkov & Larionov)
решил за базовый вариант использовать схему версии 3 (м/c CXA1645M-кодер PAL,
TDA8505 — кодер SECAM)
В качестве генератора — формирователя синхросигнала и сигналов испытательных изображений решил попробовать два варианта:
1.генератор тестовых сигналов -автор: Marcelo Maggi

2.малогабаритный генератор телевизионных сигналов.Автор: Александр Мусатов
(выбор необходимого испытательного сигнала осуществляется двумя клавишами)

Проверил на макетке оба варианта,остановился на втором.
Благодаря разработкам Ю.Чиркова,В.Ларионова,А.Мусатова и появился предлагаемый
генератор.Большое спасибо за их труд!
Файл печатной платы в формате Sprint Layout 3.0 и принципиальные схемы
в формате SPlan .
Самой лучшей программой для мелкосерийного «радиолюбительского» производства
печатных плат является русифицированная Sprint Layout 3.0.Нравится мне эта
программа за возможность разводки по рисунку.Сосканированные рисунки плат из
журналов и другой литературы могут быть использованы для восстановления дорожек
платы или переразводки элементов. Для этого необходимо сканировать изображение
(или использовать любой графический файл,переведя в файл *.BMP),оно будет
показано как фоновое на плате.
Программа SPlan 5.0 представляет из себя редактор принципиальных схем, она
поддерживает макросы, как встроеные,так и пользователя.Скачать программы можно
с сайта—
И если даже, вы уже работали с этими программами, рекомендуется прочитать
все разделы руссифицированых файлов помощи до конца, не исключено что вы найдете
неизвестные ранее возможности программ.С этого сайта можно скачать Sprint Layout
4.0 (русская версия)

Используя программу Sprint Layout 3.0,Вы можете изменять мой вариант разводки
печатных плат.(например,у Вас другой силовой трасформатор,диодный мостик,
корпус)
Схема и печатная плата пока так сказать для затравки.(изменен каскад на
тр-ах V5 и V6).В последующем будут выложены файлы (и доработка)
1.Генератор полного цветового телевизионного сигнала на двух микросхемах
Статья из ж. » РЭТ » №5 2003 г. автор:М.Медведев (формат DJVU)
2.Video pattern generator -автор: Marcelo Maggi
3.Зарубежные интегральные видеокодеры
Статья из ж. » Радиоаматор » №1-3 2002 г.автор:С.М.Рюмик (формат DJVU)
4.Даташиты на м/c TDA8505,CXA1645M в формате DJVU (я преобразовал из PDF —
меньше во много раз занимают места).

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

Алгоритм работы устройства

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

Подпрограмма прерывания начинается с проверки – не последний ли это импульс, если последний,таймер останавливается. Если не последний, производится проверка, это имульс или пауза между импульсми (длительность импульса — 2500 мкс, длительность паузы — 7500 мкс), таким образом, поочередно формируются временные интервалы импульса и паузы.

Описание режима CTC

Режим сброса таймера при совпадении (СТС)


Рис. 1. Блок-схема T0

В режиме СТС (WGM01, WGM00 = 0b10) регистр OCR0 используется для задания разрешающей способности счетчика. Если задан режим CTC и значение счетчика (TCNT0) совпадает со значением регистра OCR0, то счетчик обнуляется (TCNT0=0). Таким образом, OCR0А задает вершину счета счетчика, а, следовательно, и его разрешающую способность. В данном режиме обеспечивается более широкий диапазон регулировки частоты генерируемых прямоугольных импульсов.

В режиме сброса таймера при совпадении (WGMn3-0 = 0b0100 или 0b1100) пределы счета таймера задаются регистром OCR0A. В режиме СТС происходит сброс счетчика (TCNT0), если его значение совпадает со значением регистра OCR0A. В данном режиме обеспечивается возможность регулировки частоты генерируемых прямоугольных импульсов. Временная диаграмма работы таймера врежиме СТС показана на рисунке 1. Счетчик (TCNTn) инкрементирует свое состояние до тех пор, пока не возникнет совпадение со значением OCR0A , а затем счетчик (TCNT0) сбрасывается.


Рис. 2 Временные диаграммы режима СТС

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

Для генерации сигнала в режиме CTC выход OC0A может использоваться для изменения логического уровня при каждом совпадении, для чего необходимо задать режим переключения (COM0A1, COMA0 = 0b01). Значение OC0A будет присутствовать на выводе порта, только если для данного вывода задано выходное направление. Максимальная частота генерируемого сигнала равна fOC0 = fclk_I/O/2, если OCRnA = 0x0000. Для других значений OCRn частоту генерируемого сигнала можно определить по формуле:

где переменная N задает коэффициент предделителя (1, 8, 32, 64, 128, 256 или 1024).

Программа

Include»m16def.inc»

rjmp RESET ; ResetHandler

reti; IRQ0 Handler

reti;;rjmp EXT_INT1 ;IRQ1 Handler

reti;reti;jmp ;TIM2_COMP; Timer2 Compare Handler

reti;;reti;jmp ;TIM2_OVF; Timer2 Overflow Handler

reti; ;reti;jmp;TIM1_CAPT ; Timer1 Capture Handler

jmp TIM1_COMPA ; Timer1CompareA Handler

reti;reti;jmp;TIM1_COMPB ; Timer1 CompareB Handler

reti;reti;jmp ;TIM1_OVF; Timer1 Overflow Handler

reti;;reti;jmp ;TIM0_OVF; Timer0 Overflow Handler

reti;;reti;jmp ;SPI_STC; SPI Transfer Complete Handler

reti;;reti;jmp;USART_RXC ; USART RX Complete Handler

reti;;reti;jmp;USART_UDRE ; UDR Empty Handler

reti;reti;jmp ;USART_TXC; USART TX Complete Handler

reti;reti;jmp ;ADC ; ADCConversion Complete Handler

reti;reti;jmp ;EE_RDY ;EEPROM Ready Handler

reti;reti;jmp ;ANA_COMP; Analog Comparator Handler

reti;reti;jmp ;TWSI ;Two-wire Serial Interface Handler

reti;reti;jmp ;EXT_INT2; IRQ2 Handler

reti; Timer0 CompareHandler

reti;reti;jmp SPM_RDY ;Store Program Memory Ready Handler

ldi r16,high(2500)

ldi r16,low(2500)

ldir16,(1

ldir16,(1

ldir16,(1

ldi r16,high(RAMEND)

ldi r16,low(RAMEND)

out SPL,r16 ;èíèöèàëèçàöèÿ ñòåêà

sei ;ðàçðåøåíèå ïðåðûâàíèé

main: ;îñíîâíîé öèêë

ldi r16,high(2500)

ldi r16,low(2500)

ldi r16,high(7500)

ldi r16,low(7500)

После запуска микроконтроллера происходит процедура инициализации (RESET), в этой подпрограмме последовательно:

Настраиваются порты ввода-вывода (порт D настраивается на вывод)

Настраивается работа таймера Т1:

Загружаетсячисло (2500) в регистр сравнения

Вывод OC1A настраивается на «переворачивание» уровня при совпадениисчетного регистра и регистра сравнения (OCR1A)

Задается режим работы (сброс по совпадению) и источник тактового сигнала (без предделителя, от системного тактового сигнала)

Разрешается работа прерывания по совпадению Т1

Инициализируется стек (настраивается вершина стека)

Разрешаются прерывания.

На этом инициализация контроллера завершена. Далее счетчик команд «уходит» в основной цикл.

При возникновении прерывания, запускается подпрограмма обработки прерывания TIM1_COMPA, она начинается с увеличения количества прерываний (задана последовательность из восьми импульсов, а это 16 «переворачиваний уровня»), число прерывания сравнивается с 16, и, если равно, запускается подпрограмма out_pulse. В ней останавливается таймер (обнулением управляющих регистров микроконтроллера). Если же число прерываний меньше 16, программа продолжается далее. Производится проверка флага breq pulse, и, если он установлен, запускается подпрограмма pulse, в которой обновляется регистр сравнения (загружается число 7500), и флаг сбрасывается. Таким образом, по наличию флага, поочередно загружаются числа 2500 и 7500, и на выводе OC1A формируется последовательность со скважностью 4 (по заданию).


Результаты моделирования схемы в программе PROTEUS

Генератор видеосигнала на микроконтроллере

Источник: http://pic16f84.narod.ru

Для генерации видеосигнала достаточно всего одной микросхемы и двух резисторов — т.е. можно сделать буквально карманный генератор видеосигнала размером с брелок. Такой прибор пригодится телемастеру. Его можно использовать при сведении кинескопа, регулировке чистоты цвета и линейности. Генератор подключается к видеовходу телевизора, обычно это разъем типа «тюльпан» или «SCART».

Прибор генерирует шесть полей:
— текстовое поле из 17 строк;
— сетка 8×6;
— сетка 12×9;
— мелкое шахматное поле 8×6;
— крупное шахматное поле 2×2;
— белое поле.

Переключение между полями осуществляется кратковременным (длительностью менее 1с) нажатием кнопки S2. Удержание этой кнопки в нажатом состоянии более длительное время (дольше 1 с) приводит к выключению генератора (микроконтроллер переходит в состояние «SLEEP»). Включение генератора производится нажатием кнопки S1. О состоянии прибора (включен/выключен) сигнализирует светодиод.

Технические характеристики устройства:
— тактовая частота — 12 МГц;
— напряжение питания 3 — 5 В;
— ток потребления в рабочем режиме:
— при напряжении питания 3В — около 5мА;
— при напряжении питания 5В — около 12мА;
— частота кадров — 50 Гц;
— число строк в кадре — 625

Вся работа по формированию видеосигнала выполняется программой, зашитой в микроконтроллере. Два резистора вместе с сопротивлением видеовхода телевизора обеспечивают необходимые уровни напряжения видеосигнала:
— 0 В — синхроуровень;
— 0,3 В — уровень черного;
— 0,7 В — уровень серого;
— 1 В — уровень белого

Рис. 1. Принципиальная схема генератора

Для формирования видеосигнала используется нулевой бит PORTA и целиком весь PORTB (этот порт работает в сдвиговом режиме). Несмотря на то, что сигнал снимается только с его нулевого бита, программа использует его весь. Поэтому все биты PORTB настроены как выходы. Первый бит PORTA используется для индикации состояния генератора. Когда прибор включен, — светодиод горит. Когда прибор выключен, — светодиод погашен. Третий бит PORTA используется для переключения режимов работы генератора и его выключения. Кратковременное нажатие кнопки S2 позволяет перейти от одного поля генератора к другому. При удержании этой кнопки в нажатом состоянии дольше 1 с. прибор выключается (микроконтроллер переходит в состояние «SLEEP»). Чтобы включить генератор необходимо выполнить сброс. Это осуществляется нажатием кнопки S1. Напряжение питания прибора можно выбрать в пределах 3 — 5 В. При этом соответственно должны быть подобраны номиналы резисторов.
3В — R5=456Ом и R6=228Ом
3,5В – R5=571Ом и R6=285Ом
4В – R5=684Ом и R6=342Ом
4,5В – R5=802Ом и R6=401Ом
5В — R5=900Ом и R6=450Ом
Здесь указаны расчетные значения. Реально можно ставить резисторы из стандартного ряда, например для 5В — 910Ом и 470Ом, а для 3В — 470Ом и 240Ом.

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

Для сборки понадобятся детали:
1. Микроконтроллер Attiny2313 — 1шт.
2. ЖК индикатор WH0802 или с HD44780 совместимом — 1шт.
3. Микросхема LM324 — 1шт.
4. Тактовые кнопки без фиксации — 3шт.
5. Резистор 10 кОм — 1шт.
6. Резистор 300 Ом — 1шт.
7. Резистор 2 кОм — 8шт.
8. Резистор 1 кОм — 9шт.

ЦАП собран на резисторах и подключён напрямую к порту B микроконтроллера, сигнал после ЦАПа усиливается с помощью операционного усилителя LM324. ЖК индикатор я применил WH0802 c совместимом контроллером, данный ЖКИ имеет 2 строки по 8 знакомест каждая. Существенно применение любого ЖК индикатора с совместимом контроллером с HD44780. Микроконтроллер применить Attiny2313 можно с любыми буквенными индексами, в любых корпусах. Кнопки можно применить любые тактовые, без фиксации. Кнопкой «Выбор» выбирается тип генерируемого сигнала. Кнопками «Плюс» и «Минус» устанавливается частота или задержка. При включении устройства оно сразу начинает генерировать сигнал, по умолчанию это меандр. Напряжение питания: 5 вольт. Вот осциллограммы генерируемых генератором сигналов:






Я собрал свой генератор сигналов в пластмассовом корпусе ZIV, вот что получилось:

Первые испытания вместе с самодельным осциллографом:

Схему я собрал на печатной плате сделанной с помощью , рисунок печатной платы в можно найти в файлах к статье. На плате я использовал детали в SMD корпусах, исключение лишь составляет микросхема LM324, она использована в DIP корпусе. Прошивку для устройства я писал в среде BASCOM-AVR исходник прилагается. Также прилагается проект устройства в программе . Кстати, после прошивки не забудьте установить следующие фьюз биты (для программы SinaProg):

Список радиоэлементов
Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
U1 МК AVR 8-бит

ATtiny2313

1 В блокнот
U2 Операционный усилитель

LM324

1 В блокнот
R1-R8 Резистор

2 кОм

8 В блокнот
R9-R16, R18 Резистор

1 кОм

9 В блокнот
R17 Резистор

10 кОм

1 В блокнот
R19 Резистор

300 Ом

1 В блокнот
BTN1-BTN3 Кнопка Без фиксации 3

Dendy — генератор испытательных телевизионных сигналов. Новая версия

Самодельный картридж для видеоприставки «Dendy» , превращающий ее в генератор испытательных телевизионных сигналов (ГИТС), заинтересовал наших читателей. Благодаря их отзывам, автору конструкции и программы С. Рюмику из г. Чернигова был присужден поощрительный приз конкурса «Лучшая публикация 2001 г.».Сегодня мы представляем ГИТС-2 — усовершенствованный вариант картриджа.

По сравнению с первой версией предлагаемого прибора область его применения не изменилась — настройка и регулировка цветных (работающих в системе PAL) и черно-белых телевизоров, оценка качества кинескопа при покупке телевизора, формирование испытательных таблиц для кабельного телевидения. Однако число испытательных изображений, создаваемых ГИТС-2, увеличено с 81 до 466 (с учетом всех цветовых вариантов), а звуковых тест-сигналов — с двух до четырех. По некоторым характеристикам ГИТС-2 превосходит известные генераторы «Электроника ГИС 02Т» и «Ласпи ТТ-03».

Так как все функции генератора испытательных сигналов реализованы программным образом, при доработке необходимо было изменить только программу. Аппаратная часть прибора — собственно плата картриджа с панелями для двух микросхем РПЗУ могла бы оставаться точно такой, как в исходном варианте. Тем не менее и она подверглась небольшому усовершенствованию, позволяющему работать даже с частично неисправными приставками «Dendy».

Схема платы ГИТС-2, приведенная на рис. 1, отличается от первоначальной дополнительной перемычкой ХТ3, служащей для переключения экранных страниц видеопроцессора «Dendy».

(нажмите для увеличения)

Если в вашей приставке одна из видеостраниц неисправна (на изображении видны лишние линии или квадраты), можно перейти на другую, переставив перемычку и нажав кнопку SELECT джойстика. В положении «1» работает первая, в положении «2» — вторая страница видеопамяти.

Рисунки печатных проводников и расположение элементов на плате картриджа показаны на рис. 2.

(нажмите для увеличения)

Форма платы выбрана исходя из удобства ее установки в стандартный для «Dendy» корпус картриджа. Более узкую и без боковых вырезов плату не удастся в нем зафиксировать. Поэтому не стоит экономить материал, уменьшая ширину платы.

Корпус берут от пришедшего в негодность игрового картриджа. Иногда приходится его немного доработать, например, укоротить имеющиеся внутри пластмассовые штыри.

При разработке программы ГИТС-2 автор стремился реализовать максимальное число тестов, заняв в ПЗУ не более 2 Кбайт. В частности, изображение испытательной таблицы хранится упакованным по оригинальному алгоритму. Коэффициент сжатия — 50,2 % (с 960 до 482 байт). При этом подпрограмма-распаковщик данных заняла всего 57 байт. Для хранения тех же данных, упакованных методом ZIP, потребовалось бы всего 435 байт, но длина их распаковщика во много раз больше.

Коды, которые необходимо занести в РПЗУ DS1 и DS2 информационной емкостью по 2 Кбайт (микросхемы КР573РФ5 или их аналоги), приведены соответственно в табл. 1 и 2.

(нажмите для увеличения)

(нажмите для увеличения)

Свойства ГИТС-2 (как и ГИТС первой версии) не зависят от типа и емкости примененных микросхем РПЗУ, поэтому последние можно комбинировать на плате в различных сочетаниях, не забывая лишь установить в нужные положения перемычки ХТ1 и ХТ2. Если заменять микросхемы в процессе эксплуатации картриджа не планируется, можно соединить соответствующие контактные площадки на плате обычными проводами вместо перемычек-джамперов.

На новой плате (при перемычке ХТЗ в положении «2») будут работать и микросхемы, запрограммированные в соответствии с . Но применять их нужно в комплекте: обе «новые» или обе «старые». Естественно, в последнем случае ГИТС будет обладать лишь свойствами, о которых было рассказано в первоисточнике.

Если имеется готовая плата старого варианта ГИТС, чтобы воспользоваться всеми описанными ниже тестами, достаточно установить в ее панели микросхемы РПЗУ, запрограммированные по-новому.

Желающим внести в программу свои дополнения и улучшения, поможет , где подробно рассказано о методике разработки программ для «Dendy»

ОПИСАНИЕ ТЕСТОВ

После установки картриджа ГИТС-2 в «Dendy» и подачи питания на экране телевизора должна появиться испытательная таблица (верхний рисунок на 1-й стр. обложки) и прозвучать трель. Если изображение отсутствует, но звук имеется, попробуйте переставить перемычку ХТЗ на плате картриджа в другое положение, нажмите кнопку SELECT джойстика. Эта операция позволяет перейти с возможно неисправной видеостраницы на исправную. Если нет и звука, вероятно, отказали некоторые из используемых программой ячеек основного ОЗУ игровой приставки и дальнейшая работа невозможна.

Из-за особенностей видеосистемы «Dendy» сформировать на экране телевизора точные квадраты затруднительно (не удается уложиться в заданный объем ПЗУ). Поэтому во всех тестовых изображениях они выглядят прямоугольниками с соотношением сторон 4:5. Однако центральная окружность испытательной таблицы имеет правильную форму, что дает возможность оценить геометрические искажения растра и отрегулировать его размеры. Кроме того, таблица позволяет отцентрировать и сфокусировать изображения по пяти реперным знакам в центре и по углам экрана, проверить четкость по горизонтали и вертикали (200…250 линий по мелкой сетке). Имеются участки с шахматным полем, цветовой гаммой, диагональными линиями. При нажатии кнопок ВВЕРХ, ВНИЗ любого из джойстиков изображение инвертируется (второй сверху рисунок на 1-й стр. обложки), в центре, вверху и внизу экрана появляются надписи мелким шрифтом.

К следующим 11-ти испытательным изображениям переходят с помощью кнопок ВЛЕВО и ВПРАВО. Каждое имеет по четыре варианта, переключаемых кнопками ВВЕРХ и ВНИЗ. Варианты, в свою очередь, имеют от двух до 24-х разновидностей: кнопкой А изменяют цвет изображения, кнопкой В инвертируют его или включают/выключают наложенную на основное изображение мелкую сетку. Кнопкой START переключают звуковые тест-сигналы. Переход от одного теста к другому сопровождается звуком «бип», а начало нового цикла их смены — трелью.

Вертикальные цветные полосы (рис. 3, а) — восемь полос одинаковой ширины в следующем порядке (слева направо): белая, желтая, голубая, зеленая, пурпурная, красная, синяя, черная. Позволяют проверить правильность матрицирования, настроить контуры коррекции предыскажений, оценить цветовую насыщенность в смежных строках. Оттенки формируемых цветов зависят от особенностей видеопроцессоров «Dendy» разных моделей и могут немного различаться. Варианты: замена основных цветов дополнительными, отключение цвета (серая шкала, третий сверху рисунок на 1-й стр. обложки). Разновидности: буква С на синей полосе для удобства ее идентификации.

Горизонтальные цветные полосы (рис. 3, б, в) — восемь полос, аналогичных вертикальным, но самая нижняя — вдвое меньшей высоты.

Равномерное серое поле. Позволяет проверить и отрегулировать статический баланс белого, чистоту цвета. Варианты: четыре градации яркости. Разновидности: циклическая с периодом 2 с инверсия изображения, что позволяет проверять качество стабилизации размера изображения и устойчивость синхронизации кадровой и строчной разверток. При нажатии и удержании кнопки В частота «мигания» увеличивается вчетверо.

Равномерное красное поле. Служит для проверки чистоты цвета, выявления дефектов маски кинескопа (на изображении не должно быть белых точек). Варианты: четыре градации насыщенности. Разновидности: «мигание» с периодом 1 или 2 с.

Равномерное зеленое поле аналогично красному.

Равномерное синее поле аналогично красному.

Шахматное поле из черно-белых прямоугольников (16 столбцов, 15 строк) позволяет оценить линейность разверток, геометрические искажения растра, проверить отсутствие цветных окантовок. Варианты: инверсия изображения, увеличенные вдвое размеры прямоугольников (нижний рисунок на 1-й стр. обложки). Разновидности: наложенная на изображение мелкая сетка, замена белого одним из 12-ти возможных цветов (рис. 3, г).

Монохромные полосы («матроска», рис. 3, д) служат для оценки линейности развертки и равномерности окраски протяженных участков экрана. Варианты: вертикальные или горизонтальные полосы, увеличенная вдвое ширина полос, инверсия изображения. Разновидности: наложенная на изображение мелкая сетка, замена белого одним из 12-ти возможных цветов (рис. 3, е).

Точечное поле (рис. 3, ж). Белые точки (15×16) на черном фоне с маркером в центре служат для проверки фокусировки и астигматизма электронного луча по всей площади экрана, а также статического и динамического сведения лучей основных цветов. Варианты: уменьшенный вдвое или увеличенный вдвое и вчетверо шаг точек (можно выбрать оптимальный в зависимости от размера экрана телевизора). Разновидности: инверсия изображения, замена белого одним из 12-ти возможных цветов (рис. 3, з).

Сетчатое поле из 15х 16 тонких белых линий на черном фоне служит для регулировки сведения красного, зеленого и синего лучей, проверки фокусировки. Варианты: уменьшенный вдвое или увеличенный вдвое и вчетверо шаг сетки. Разновидности: инверсия изображения, замена белого одним из 12-ти возможных цветов (рис. 3, и, к).

Звуковые тест-сигналы служат для проверки канала звука телевизора. Предусмотрены следующие сигналы, переключаемые циклически кнопкой START: прямоугольные импульсы скважностью 2 («меандр») частотой 500 Гц, пилообразные импульсы частотой 6600 Гц, прямоугольные импульсы скважностью 4 частотой 6600 Гц, «сирена» — «меандр» линейно изменяющейся частоты (от 27 до 12500 Гц в течение 9 с).

Проект микроконтроллера для генератора сигналов произвольной формы

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

Доступность недорогих высокоскоростных цифро-аналоговых преобразователей (ЦАП) открывает двери для довольно простых схем, которые могут генерировать синусоидальные волны, треугольные волны, пилообразные формы сигналов и т.д. Я описываю эти схемы как «простые», потому что они не требуют сложной аналоговой схемы; процесс проектирования все еще немного сложен, но, на мой взгляд, уровень сложности довольно низок по сравнению с производительностью, которую обеспечивает схема.

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

 

Доска

Недавно я разработал генератор сигналов произвольной формы (AWG). Вот он:

 

 

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

Микроконтроллер

Я ограничиваюсь микроконтроллерами Silicon Labs, потому что это отличные устройства и (что, возможно, более важно) потому, что я хорошо с ними знаком. Однако даже с этим ограничением есть из чего выбирать. Я остановил свой выбор на C8051F360, и в данном случае решение было простым: мне нужна была максимально возможная тактовая частота, которая для микроконтроллеров SiLabs составляет 100 МГц.Только два из их семейств 8051 поддерживают частоту ядра 100 МГц, и одно из этих семейств несовместимо с новой IDE SiLabs. Так что я остался с семейством C8051F36x, и среди этих частей C8051F360 является наиболее способным с точки зрения количества контактов и периферийных устройств.

 

Мощность

Перво-наперво: конденсаторы развязки. У меня есть конденсаторы по 0,1 мкФ для каждой пары питание/земля и конденсаторы по 4,7 мкФ для трех из четырех пар.

 

 

Это щедрая схема развязки, и я решил исключить одну из 4.7 мкФ, когда я понял, что он засоряет сложную часть макета.

 

Соединения ввода/вывода

На следующем фрагменте схемы показаны основные цифровые и аналоговые входы/выходы MCU.

 

 

В проекте используются только два цифровых периферийных устройства: модуль UART и выход массива программируемых счетчиков (PCA). Сигналы UART поступают на плату адаптера USB-UART, которая обеспечивает удобную связь в стиле последовательного порта между MCU и ПК.

Выход PCA используется в качестве часов, управляющих ЦАП, а также заставляет MCU выводить следующий байт данных ЦАП. Почему сигнал DAC_CLK подключен к двум контактам ввода/вывода? Это всего лишь один из «запасных планов», которые я регулярно включаю в свои печатные платы. У меня были небольшие сомнения относительно схемы прерывания, которую я планировал использовать, и у меня всегда были смутные опасения, что я могу сделать какую-то ошибку с назначением штифтов перекладины. В этом случае я, вероятно, был чрезмерно осторожен, но суть в том, что если я не уверен в чем-то на 100%, я пытаюсь использовать обходной путь. так намного проще решать проблемы до того, как печатная плата будет изготовлена ​​и собрана.

Вот описание других подключений:

  • Внутреннее опорное напряжение (используемое для аналого-цифрового преобразования) выводится на P0.3. Значения двух шунтирующих конденсаторов основаны на рекомендациях технических данных (см. стр. 67).
  • Тактовый сигнал (генерируемый кремниевым генератором MEMS) поступает в микроконтроллер через контакт XTAL2. Я мог бы использовать внутренний осциллятор микроконтроллера, но, поскольку теоретически это приложение чувствительно ко времени, было бы более целесообразно использовать высокоточный внешний осциллятор.
  • DAC_SLEEP можно использовать для перевода ЦАП в режим пониженного энергопотребления.
  • MIC_OUT — выходной сигнал микрофона MEMS; он подключается к P1.6, который может быть направлен на АЦП микроконтроллера.
  • 8-битные данные ЦАП передаются на P2. Я позаботился о том, чтобы выделить для этих сигналов целый 8-битный порт, чтобы можно было управлять новыми данными ЦАП с помощью всего одного оператора, например, «P2 = 0xAA» или «P2 = DAC_data[n]»; здесь мы пытаемся максимизировать скорость, и каждая дополнительная инструкция процессора ограничивает скорость, с которой мы можем обновлять вывод ЦАП.

 

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

Контакты для программирования/отладки (C2CK и C2D) подключены к соответствующим контактам на разъеме J4, который соответствует соответствующему разъему на моей плате адаптера C2. У меня также есть контакты GPIO, подключенные к J4, чтобы я мог использовать компоненты тестирования/отладки на плате адаптера.

 

 

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

 

Заключение

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

Генератор синусоидального сигнала на основе микроконтроллера с кристальной точностью

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

MAX292 представляет собой бесселевский низкочастотный фильтр 8-го порядка с переключаемыми конденсаторами. Его угловая частота -3 дБ управляется его тактовой частотой в соотношении 1:100. Использование соотношения входной сигнал/часы 1:64 даст очень чистую синусоидальную волну. Если это отношение поддерживается постоянным во всем диапазоне входных частот, амплитуда выходного сигнала фильтра не будет зависеть от частоты.

Здесь высокоскоростной микроконтроллер (AT90S1200 компании Atmel) используется для генерации прямоугольных и тактовых сигналов (см. рисунок). Тем временем микроконтроллер принимает 13-битные сигналы управления частотой. 13 бит разделены на две части: младшие восемь бит (D7-D0) называются delay_1, а старшие пять битов (D12-D8) называются delay_2. Независимо от того, какая частота выбрана, базовая прямоугольная волна и часы будут поддерживать соотношение 1:64. Таким образом, схема будет генерировать как синусоидальные, так и прямоугольные сигналы на базовой частоте, а также прямоугольные сигналы с более высокой (64x) частотой.

Частота синусоидального сигнала определяется как:

f OUT = f OSC / (98688 * (задержка_2-1) + 384 * задержка_1 + 1408)

, где f OUT — частота синусоидального сигнала, а f OSC — тактовая частота микроконтроллера.

Чтобы сгенерировать синусоиду определенной частоты, значения delay_1 и delay_2 можно рассчитать по приведенному выше уравнению. Например, предположим, что fOSC составляет 16 МГц, а требуется синусоидальная волна 60 Гц.Используя это уравнение, вы можете определить, что delay_1 и delay_2 должны быть равны 177 и 3 соответственно. Подставив эти числа обратно в уравнение, расчетная выходная частота составит 59,98 Гц.

Полезный диапазон частот, который может генерировать эта схема, составляет от 5,2282 Гц до 8928,6 Гц, когда микроконтроллер работает на тактовой частоте 16 МГц.

См. связанный рисунок

Генератор функций — проекты на базе микроконтроллера

Вы когда-нибудь задумывались, как генерировать синусоиду с помощью микроконтроллера PIC.В этом посте я покажу вам простую схему, которая может генерировать сигналы произвольной формы, включая синусоидальные, с помощью MCU и цифро-аналогового преобразователя PCF8591. Аналогичную конструкцию на базе Arduino смотрите по этой ссылке. PCF8591 был кратко упомянут в публикации PIC Development Board как возможное обновление. Это 8-битное КМОП-устройство сбора данных с четырьмя аналоговыми входами, одним аналоговым выходом и последовательным интерфейсом шины I2C. Мы собираемся настроить его как цифро-аналоговый преобразователь, управляемый PIC16F876A.


Интерфейс не слишком сложный.Отправьте действительный адрес, за которым следует слово конфигурации, дождитесь подтверждения. Продолжайте отправлять данные для преобразования. См. прикрепленный код внизу страницы для более подробной информации. Простейшая волна для генерации – это постоянный ток. Просто выведите 8-битное число, представляющее желаемое значение напряжения, на цифро-аналоговую микросхему с использованием протокола связи I2C, и все готово. Треугольная волна более сложна в изготовлении, но все же не слишком сложна. Отправляя возрастающее двоичное число от 0 до 255, вы можете получить линейно возрастающую волну.Когда вы достигнете 255, измените направление, уменьшив число с 255 обратно до 0, чтобы завершить часть падающей волны, и повторите цикл. Наибольшее число, отправленное за один цикл, будет определять максимальную амплитуду сигнала. Синус требует более сложного программного обеспечения и может быть сгенерирован с помощью LUT-Look Up Table с предопределенными значениями волн, хранящимися в памяти PIC. Извлеките действительные данные из таблицы синусов, при необходимости нормализуйте и отправьте их в цифро-аналоговый преобразователь, увеличьте индекс таблицы и повторите, пока не завершите один цикл.Если вы посмотрите на файлы программного обеспечения, код ведет себя именно так. Введите 010 с помощью DIP-переключателя для получения постоянного тока, 001 для создания треугольной волны и 000 для синусоиды.

В настоящее время единственным способом изменить амплитуду сигнала является модификация кода, управление амплитудой в реальном времени не реализовано, также диапазон частот относительно низок, в лучшем случае несколько кГц из-за медленных часов I2C PCF8591. С помощью более быстрых цифро-аналоговых преобразователей можно достичь более высоких частот. Щелкните здесь, чтобы просмотреть сборочные/шестнадцатеричные файлы.Для интерфейса SPI PIC16F877A вы также можете посмотреть пост о цифровом источнике питания.

(PDF) Генератор функций DDS на основе микроуправления

ISSN: 2319-5967

Международный журнал инженерных наук и инновационных технологий (IJESIT)

Том 2, выпуск 1, январь 2013 г.

1

` Исследовательское приложение необходимо для проверки экспериментальной установки с использованием основных форм сигналов

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

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

AD9833 в качестве синтезатора частоты и микроконтроллера AT89s52. Технология DDS используется для генерации всех сигналов на точных

частотах и ​​основана на управлении фазой. Он основан на микроконтроллере Atmel 89s52 с поддержкой последовательного интерфейса и микросхеме DDS

AD9833.Графический интерфейс пользователя разработан в программном обеспечении National Instruments LabView, которое позволяет легко управлять оборудованием.

Ключевые слова — прямой цифровой синтез (DDS), генератор функций, LabView, микроконтроллер.

I. ВВЕДЕНИЕ

Генераторы функций бывают двух типов: Генератор аналоговых функций и Генератор функций DDS. Хотя генератор функций Analog

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

В генераторе аналоговых функций потенциометры используются для управления различными параметрами, такими как частота, амплитуда

, что часто затрудняет пользователям настройку частоты и амплитуды сигналов на точное значение

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

. Типовой генератор функций не допускает сопряжения и комбинации с другими устройствами. Таким образом,

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

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

.Прямой цифровой синтез, который генерирует аналоговые сигналы с

фазой и частотой, регулируемыми в цифровом виде, полезен в самых разных приложениях для испытаний, измерений и связи.

Устройства DDS с интегральной схемой компактны, требуют мало энергии и места, недороги и просты в применении. Этот генератор функций

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

.

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

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

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

«делится» в архитектуре DDS на коэффициент масштабирования в программируемом двоичном слове настройки

. Слово настройки обычно имеет длину 24-48 бит, что позволяет реализации DDS обеспечивать превосходное выходное разрешение

настройки частоты.Устройства DDS, такие как AD9833, программируются через высокоскоростной последовательный периферийный интерфейс (SPI)

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

, которые могут генерировать частоты от менее 1 Гц до 400 МГц (на основе тактовой частоты 1 ГГц). Функциональная блок-схема

AD9833 показана ниже на рисунке 1 [1].

Внутренняя схема AD9833 работает как генератор с числовым программным управлением (NCO), частотный и 28-битный

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

их амплитудной формы, A(t)=sin(ωt). Амплитуда является нелинейной, поэтому ее трудно сгенерировать. Угловая информация

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

Зная, что фаза синусоиды является линейной, и при заданном опорном интервале (тактовом периоде), чередование фаз для

этого периода составляет:

и

, где

120 28  фаза

120 28  Фаза

Микроконтроллер на основе DDS Генератор

Hitesh Mandaliya, Parthehesh Mankodi, Bhumika Makwana

Hitesh_Mandaliya2002 @ Yahoo.com,[email protected],[email protected]

Институт исследования плазмы, Гандинагар, CSPIT-CHARUSAT-Changa.

Генератор функций на основе микроконтроллера

— PDF Скачать Бесплатно

1 Инженерный журнал Аль-Хорезми, Том.4, No.1, pp (2008) Инженерный журнал Аль-Хорезми Генератор функций на основе микроконтроллера Эр-Рияд А.Х. Аль-Хелали Электротехника Университет Аль-Мустансирия Доктор Исмаил А. Мохаммед Электротехника Багдадский университет Аммар И. Абдулла Компьютерная электротехника Министерство труда & Social Insurance (Поступила 29 мая 2007 г.; принята 5 февраля 2008 г.) Аннотация: В этой статье описывается система генератора функций на основе микроконтроллера. С помощью генератора функций синусоидальная, прямоугольная, квазипрямоугольная, пилообразная и треугольная волны генерируются в широком диапазоне частот в соответствии с требованиями пользователя.Используя вычислительные возможности микроконтроллера, аппаратное обеспечение значительно сведено к минимуму. Форма выходного сигнала контролируется цифровым способом для достижения требуемой формы волны. Одночиповый микрокомпьютер оборудования для генерации сигналов позволяет повысить надежность производства, техническое обслуживание и ремонт, а также повысить гибкость управления. Система построена и протестирована. Результаты испытаний были удовлетворительными и высоко оценены инженерами-испытателями различных центров Минсвязи.Ключевые слова: микроконтроллеры и микроЭВМ, программируемые контроллеры, генерация сигналов. Введение: Учебным заведениям и колледжам, а также инженерам-испытателям необходим функциональный генератор, который генерирует определенные формы сигналов в широком диапазоне частот. Потенциал и универсальность методов генерации функций еще полностью не реализованы, и в прошлом они были ограничены доступными традиционными аналоговыми и цифровыми схемами [1,2]. Это усложняет схему и увеличивает стоимость прибора.Эксплуатационным преимуществом ML2036 (Micro Linear) [1] является только генератор синусоидального сигнала, способный генерировать синусоидальный сигнал с частотой от постоянного тока до 50 кГц, и для него требуется всего несколько компонентов, но он имеет ограниченный частотный диапазон, в то время как экспериментальный В схеме HSP45102 (программируемый генератор) [1] использовалась экспериментальная плата centronic. Управляющее программное обеспечение [1] написано на Turbo Pascal 6, поэтому работа экспериментальной схемы зависит от ПК, который проходит через трансляторы языков в процессе компиляции и сборки.Управляющая программа, встроенная в ПЗУ микроконтроллерной системы, обрабатывает прерывания для генерации требуемой функции [2]. Так как важной особенностью микроконтроллеров является встроенная система прерываний. Система на основе микроконтроллера привлекательна в численном отношении, поскольку обеспечивает повышенную гибкость, особенно при выборе требуемой частоты из широкого диапазона частот. Эти преимущества неизбежно являются результатом сокращения сложной схемы управления, которая может постепенно заменяться программным обеспечением микроконтроллера.Затем можно генерировать любой ранее назначенный сигнал частоты без изменения аппаратного обеспечения. Для снижения стоимости компонентов и приборов необходимо спроектировать и построить программную систему. Можно перейти

2 напрямую и попытаться реализовать, спроектировать микропроцессор, одну из ранее разработанных аппаратных аналоговых или дискретных цифровых технологий управления [3]. Однако, чтобы в полной мере воспользоваться смещением акцента с аппаратного на программное обеспечение и эффективно использовать вычислительную мощность микропроцессора, требуется новый и более фундаментальный подход к проектированию системы.Путем создания алгоритмов для генерации различных форм сигналов и управляющих программ требуемая форма сигнала может быть сгенерирована с минимальным количеством компонентов. Сокращение компонентов и внедрение программного обеспечения повышают надежность системы и гибкость методики, основанной на работе системы [3,4]. Генерация цифровых сигналов в реальном времени Генерация цифровых сигналов в реальном времени с использованием микроконтроллера версии 89C51 использует алгоритм, состоящий из множества подпрограмм для создания сигнала требуемой формы.Следовательно, каждая волна требует времени выполнения подпрограммы, которое отличается от времени генерации другой волны и зависит от использования наборов инструкций для формирования правильного создания с точным интервалом времени. Подход, который можно использовать для генерации периодической квазипрямоугольной волны на определенном выходном порту микроконтроллера с требуемой частотой, заключается в создании интервалов различной длины для установки выходного порта в одной руке и сброса в другой руке. Можно создать квазипрямоугольную волну с переменными рабочими циклами, поэтому программное обеспечение, запускающее таймер, является лучшим выбором для создания временных задержек.Для создания прямоугольной волны использовался тот же подход, что и для квазиквадрата, с рабочим циклом 50%. Другой подход к его созданию с использованием временных прерываний; при разрешенных прерываниях по времени [4,5] событием, генерирующим прерывание, является установка флага таймера при переполнении регистров таймера. Треугольная волна может быть сгенерирована с помощью программного счетчика вверх/вниз, скорость, с которой этот счетчик увеличивается (или уменьшается), определяет частоту и точность процесса генерации.Это также может быть достигнуто на основе либо сброса счетчика увеличения/уменьшения в начале 49 каждого цикла, либо получения сигнала прерывания для ЦП от таймеров увеличения/уменьшения [3]. Алгоритм пилообразной волны достигается с помощью программного обеспечения, основанного на прямом/нижнем счетчике, который увеличивается с подходящим значением STEP для сброса регистра максимальных значений для получения требуемой частоты. Генерация синусоидальной волны в реальном времени с использованием алгоритма микрокомпьютера занимает много времени [3,4]. Например, микропроцессор Zilog Z80 с процессором 2.Тактам с частотой 5 МГц требуется около 800 с для вычисления одного значения синуса [3]. Поэтому в высокочастотных приложениях нецелесообразно вычислять значения синусоидальной волны, поскольку они требуются в режиме реального времени. Альтернативный подход заключается в сохранении синусоидальных значений в справочной таблице, которая предварительно запрограммирована во встроенной кодовой памяти (ПЗУ). В качестве альтернативы синусоидальные значения могут храниться во внешней энергозависимой памяти (ОЗУ), при этом значения сначала вычисляются микропроцессором в течение периода инициализации перед запуском генератора.Потребность в памяти, эффективность работы и точность формы выходного сигнала зависят от количества выборочных значений, определяющих цикл синусоиды, и их разрешения. Если, например, взять значения 0 с интервалом 0,5, то полный цикл синусоиды определяется 720 значениями. Синусоиду можно определить в большем количестве точек выборки, но требования к памяти пропорционально увеличиваются. Разрешение каждого значения интерполяционной таблицы должно быть указано на основе типа выполняемого алгоритма генерации и требуемой точности выходных значений ширины.Для большинства приложений достаточно 8-битной длины слова, и это особенно подходит, если используется 8-битный микропроцессор. Требования к памяти уменьшаются, если только половина или даже четверть полного синусоидального цикла хранится в таблице поиска [2]. В любом случае определение бита увеличивается на единицу, поскольку больше нет необходимости указывать синус каждого сохраненного значения выборки. Доступ к значениям из интерполяционной таблицы проще всего указать с помощью указателя. Если полный сгенерированный цикл синусоидальной волны хранится в памяти, то указатель

3 циклически выполняет поиск по таблице.Аналогичную процедуру можно выполнить, если хранится только половина периода синусоиды [3]; хотя в этом случае необходимо включить флаг, указывающий, имеет ли полученное значение case положительный или отрицательный знак. Этот флаг также требуется, если хранится только четверть цикла. В этом случае указатель перемещается вверх и вниз по таблице поиска, а не в одном направлении. Аппаратная система В этой системе микроконтроллер требуется только для генерации цифровых сигналов переменной частоты.Типовая схема системы показана на рис. 1. Система состоит из следующих блоков: 1. Микроконтроллер 89С51. 2. Шестнадцатеричная клавиатура. 3. Интеллектуальный матричный алфавитно-цифровой дисплей [6]. 4. Цифро-аналоговый преобразователь (ЦАП) [2,3,4]. 5. Буферные каскады для изоляции выходов. 6. Усилительный каскад. Есть два режима работы, которые состоят из двух этапов и генерируют две группы сигналов; группа 1 включает генерацию треугольных, пилообразных и синусоидальных сигналов, а прямоугольные и квазипрямоугольные сигналы относятся к группе 2.Интерфейсы к клавиатурам являются общими для конструкций на основе микроконтроллера, клавиатура содержит 16 клавиш, которые подключены к контактам управления прерываниями микроконтроллера. Во время каждого прерывания осуществляется доступ к памяти, и для каждого сгенерированного сигнала требуется разное время. В то время как 2416 [6] представляет собой четырехразрядный интеллектуальный буквенно-цифровой светодиодный дисплейный модуль с точечной матрицей 5*7 со встроенной управляющей схемой CMOS и подключается к порту 0 89C51. Каждый символ в любой ячейке памяти может быть адресован независимо и будет продолжать отображать последний записанный символ, пока его не заменит другой.Взаимодействие с реальным миром часто требует создания или измерения аналоговых условий. В этой конструкции использовались два транзистора, два конденсатора, потенциометр и операционный усилитель LM301. [5], где 50 обозначает усилительный каскад, а MC1408L8 [4] — 8-разрядный цифро-аналоговый преобразователь (ЦАП). Восемь входных данных для ЦАП управляются с порта 1 на 89C51. Записывая различные значения на порт 1 и регулируя потенциометр 1K, выходное напряжение должно изменяться от 0 вольт (p1 = 00H) до примерно 10 вольт (p1 = FFH). Информация о команде ввода, относящаяся к форме волны и ее требуемой частоте, вводится с клавиатуры.При нажатии соответствующей клавиши подается сигнал прерывания, который выполняет алгоритм процедуры обслуживания прерываний (ISR), затем осуществляется доступ к памяти и выводится требуемая форма волны. Каждой клавише клавиатуры соответствует определенный (ISR). Имеется (12) ISR, выполняющих следующие функции: (i) Определение частоты. (ii) Регулировка цифр дисплея с помощью клавиш (4). (iii) Выбор нужной страницы частоты программы с помощью клавиш (2). (iv) Выбор формы волны с помощью одной из (5) клавиш.Работа в линейном режиме, при которой сигналы группы 1 генерируются через порт 1 микроконтроллера в цифро-аналоговый преобразователь, а затем генерируется аналоговый сигнал с низким уровнем мощности. Уровни напряжения и тока могут быть усилены с помощью каскада усилителя, чтобы получить требуемые характеристики. Генерация импульсного режима, которая генерирует сигналы группы 2 через один вывод порта 4 микроконтроллера, а также усиливается с использованием того же усилительного каскада. В качестве буферного каскада между микроконтроллером и силовой цепью используется оптопара [2].Система программного обеспечения Прежде всего важно рассмотреть временные ограничения, накладываемые при попытке генерации цифровых сигналов в реальном времени в программном обеспечении микроконтроллера. Программная генерация сигналов уже была описана для максимальной частоты функционального генератора. Чтобы оценить ограничения по времени, на прямоугольной и квазипрямоугольной волне, имейте один

4 цикла с минимальным временем, обычно равным 4 с, и максимальным значением, которое загружается в регистры таймера.Но для пилообразных и треугольных сигналов предположим, что один цикл включает 256 (максимум) приращений, 256 (максимум) уменьшений и 512 сравнений, причем каждое обновление обычно занимает 3 с. Синусоидальная волна определяется 1024 (максимум) выборками за цикл, каждая из которых обычно занимает 15 с для доступа из памяти и загрузки ее в микропроцессор, для Z80 с тактовой частотой 2,5 МГц максимальная частота микропроцессора ограничена примерно 12 Гц [3]. Для генерации периода времени в реальном времени необходимо, чтобы счетчик времени был загружен значением из ЦП, соответствующим требуемому периоду для квадрата и квазиквадрата.Скорость уменьшения счетчика для пилообразных и треугольных сигналов определяется его часами. Когда достигается нулевое значение, выход счетчика изменяется и генерирует сигнал прерывания, информирующий ЦП об окончании периода времени. В ответ ЦП загружает следующий период в счетчик и изменяет сигнал с выходного порта, поэтому генерируется требуемая форма волны. Программная система состоит из двух алгоритмов: основной программы и программы обслуживания прерывания.Основная программа инициализирует таймеры режимов, регистры прерываний и другие регистры общего назначения, в то время как процедура обслуживания прерываний разделена на пять подпрограмм, каждая из которых состоит из нескольких страниц, которые работают с определенной генерацией полосы частот, которые генерируют свою форму волны. Программный алгоритм имеет следующие задачи: 1. Основная программа, которая выполняет следующие задачи: Выбор режима работы таймера. Включение внешних регистров прерываний. Назначение внешнего прерывания в соответствии с подключением клавиатуры.Выполнение инструкции цикла ничего не делать, ожидая нажатия любой клавиши на клавиатуре. 2. Программа обработки прерываний (ISR), которая выполняет следующие задачи: 51 Сканирование строк и столбцов клавиатуры, чтобы определить, нажата ли клавиша. Вызов подпрограммы функции задержки, чтобы учесть время задержки между шагами увеличения и уменьшения ключей. Выбор полосы частот генерации. Отображение шестнадцатеричного кода частоты на дисплее. Запуск подпрограммы генерации сигналов.Процедура программного прерывания используется для обслуживания внешнего прерывания, показанного на блок-схеме на рисунке 2, вместе с основной функцией программы, используемой для генерации сигналов. Экспериментальные результаты Экспериментальные результаты, представленные в этом разделе, были получены с использованием экспериментальной системы функционального генератора микроконтроллера. Для формирования сигналов использовался микроконтроллер версии AT 89C51. Используемая реализация функционального генератора основана на аппаратной конфигурации микроконтроллера, в которой используется кварцевый генератор с тактовой частотой 12 МГц.Все экспериментальные результаты передаются из аналоговой схемы с использованием программного алгоритма, описанного в разделе 4. Экспериментальные результаты были выбраны для иллюстрации некоторых основных особенностей микроконтроллера, которые обсуждались ранее, и показаны на рисунке 3. Экспериментальное исследование этих Результаты, полученные в широкой полосе частот, показывают следующие характеристики: Квазипрямоугольная волна включает: Время нарастания = 25 нс. Время падения = 0,1 с. Перерегулирование незаметно, как одиночная труба.Звонок невидимый. Нет провисания. Различные рабочие циклы. 10 В от пика до пика, выходной ток 0,3 мА. Диапазон частот от менее 1 микроГц до 250 кГц.

5 Прямоугольная волна включает: Время нарастания = 10 нс. Время спада = 5 нс. Ни перерегулирования, ни звона, ни провисания. 10 В от пика до пика, выходной ток 0,3 мА. Диапазон частот от менее Гц до кГц, большие пределы можно получить, используя квазипрямоугольную волну с коэффициентом заполнения 0,5. Пилообразная волна включает в себя: Диапазон частот от (1 мкГц до 150 кГц).10 и 5 В от пика до пика, выходной ток 0,3 мА. Треугольная волна включает в себя: Диапазон частот от (1 микроГц до 166 кГц). 10 и 5 В от пика до пика, выходной ток 0,3 мА. Его можно сгенерировать из пилообразного алгоритма с определенным ШАГОМ, например, 128. Синусоида включает: Диапазон частот от (1 микроГц до 100 кГц). 10 В от пика до пика, выходной ток 0,3 мА. Судя по экспериментальным сигналам, показанным на рисунке 3, квазипрямоугольная волна генерируется на частоте 250 кГц, прямоугольная волна на частоте 160 кГц, пилообразная на двух частотах; верхняя частота 125 кГц и нижняя частота 50 кГц, треугольная волна 150 кГц и синусоида верхней частоты 20 кГц и нижняя частота 1200 Гц с 512 отсчетами таблицы поиска.Таким образом, гибкость программного обеспечения микроконтроллера позволяет непрерывно генерировать сигналы в широкой полосе частот. Правильная генерация частотной волны, соответствующей требуемым характеристикам сигнала, зависит от приближенного преобразования десятичного интервала времени в отрицательные шестнадцатеричные кодовые числа и гибкости выбора параметров соотношения запаздывания при использовании теоретических расчетов. Колебания частоты можно свести к минимуму до очень малого значения, запустив теоретические расчеты введенных шестнадцатеричных значений частоты кода с помощью клавиатуры.Сигналы линейного режима страдают от уменьшения амплитуды и небольшого искажения при генерации выше верхней частоты. Это связано с наименьшим количеством используемых ШАГОВ. Основным ограничением системы является верхняя частота, которая ограничена версией микросхемы, тактовой частотой кварцевого генератора, временем преобразования цифро-аналогового преобразователя для получения выходного сигнала. Верхнюю частоту можно увеличить до 1,25 МГц для сигналов импульсного режима и до диапазона (250 кГц 750 кГц) для сигналов линейного режима, уменьшив время машинного цикла ЦП 89C51 до менее 1 с. , который используется.Это значение может быть достигнуто за счет использования кварцевого генератора с частотой 40 МГц и самого короткого времени преобразования ЦАП. Заключение Разработан и построен генератор функций на базе микроконтроллера. Экспериментальные результаты показывают, что форма сигнала приемлемой точности может быть получена с высокой степенью гибкости уменьшенного генератора. Размер и небольшое количество компонентов.Верхний частотный диапазон ограничен частотой переключения микроконтроллера. Время выборки и выполнения, затрачиваемое указателем инструкций ЦП, составляет (1 с) для каждого машинного цикла для выполнения подпрограмм. Его можно разделить, разделив программу на равные части фиксированного размера (т. е. каждая часть имеет одинаковый машинный цикл), и выполнить всю работу, выполняя задачи каждой ее части одним микроконтроллером [7]. С помощью метода систолической параллельной обработки время выполнения подпрограмм (алгоритмов) может быть разделено для выполнения несколькими микроконтроллерами [7], которые работают параллельно, чтобы уменьшить время занятости каждого микроконтроллера, что приводит к сокращению времени для каждой функции. генерация и более высокая частота выхода системы.Это также становится мощной системой с очень широким частотным диапазоном и гибкостью в выборе необходимых математических функций, которые широко используются в области связи. Таким образом, будущая работа может включать многопроцессорную или мультимикроконтроллерную реализацию генератора функций на основе микроконтроллера, что является шагом к созданию генератора функций на основе микроконтроллера с лучшими характеристиками. Regi Mod Входная частота Часы Дисплей Клавиатура AT 89C51 Микроконтроллер ЦАП Буферный каскад Буферный каскад форма сигнала группы 2 с Группа 1 Сигналы Сигнал каскада усилителя группа 1 сигналы мс Группа 1 Сигналы Выходные сигналы Рисунок 1: Аппаратная схема Клавиша Сканирование Таймер загрузки Входная частота Новая частота Нет Да Подпрограмма генерации сигнала Сброс Нажата клавиша Выход (b): Прерывание программы обслуживания (ISR) Рис. 2: Продолжение = 250 кГц Пилообразный сигнал, частота = 50 кГц Пилообразный сигнал, частота = 125 кГц Треугольный сигнал, частота = 150 кГц Синусоида Частота = 1200 Гц 56

10 , Частота = 20 кГц Рисунок 3: Продолжение ссылок [1] ​​Пей Ан, Взаимодействие с ПК с использованием Centronic RS 232 и игровых портов Newnes, [2] С.Йералананд и А. Ахлувалиа, Программирование и взаимодействие с микроконтроллером 8051, Addison-Wesley, [3] S.R. Bowes, C. Eng., M.I. мех. Э., Маунт М.Дж., Микропроцессорное управление инверторами ШИМ. ИЭЭ ПРОЦЕСС. Том. 128, стр., Pt.B, № 6, НОЯБРЬ [4] С. Маккензи, Микроконтроллер 8051, Prentice-Hall. Инк., 1999. [5] М. Джеймс, Поваренная книга по микроконтроллерам, Newnes, [6] Интеллектуальные 4-значные матричные буквенно-цифровые светодиодные дисплеи. Лист данных RS, Po Box 99, Corby, Northants, NN179RS, стр., март [7] Эр-Рияд А.Х. Аль-Хелали, Систолические алгоритмы LMS, RLS Adaptive (FIR) Digital Filters for Adaptive Channel Equalization. Магистр Тезис, Университет Багдада, Багдад, октябрь

11 مىلد ذبربات يتحكم من متحكم متناهي الدقة) مايكسوي (زياض علي عبد الحسين الهاللي أ.د. قسى ان ذست انك شبائيت انجايعت ان سخ صشيت عماز إسماعيل عبد هللا إسماعيل عبد هللا محمد قسى شبكاث انحاسباث قسى ان ذست انك شبائيت صاسة انع م انشإ االجخ اعيت جايعت بغذاد خالصة: حخض ان قانت صف ن نذ ربزباث ر يذ اسع ي انخشدداث حى ب اؤ بخحكى ي ششيحت يسيطش يخ ا ي بانذقت) يسيطش يايكش ي (ي ك ن نذ انزبزباث ح نيذ ي جت جيبي, ربزبت يشبعت, ربزبت شب يشبعت, ربزبت س ان شاس, ربزبت يثهثيت حسب يخطهباث يسخخذو انج اص.باالسخفادة ي ئيكا ياث ان عانجت نه سيطش ان ايكش ي حى اخخضال كيا ان ظ يت نذسجت كبيشة.أ انششيحت ان فصهت نه سيطش انذقيق ان سخخذيت كأداة نخ نيذ األشكال ان جيت ي حخ ا ئيكا يت انخحسي في ي ث قيت انخص يع, انصيا ت صيادة يش ت انسيطشة انشق يت. نقذ حى ب اء ان ظ يت ع هيا»فحص ا في عذة يشاكض ع هيت ن صاسة االحصاالث في قسى ان ذست انك شبائيت — جايعت بغذاد حيث ئ حقييى خائج انفحص كا ج جيذة أقشث بعض ان شاكض ئيكا يت اسخخذاو انج اص في يخخبشاث انخعهيى األكادي ي ان ي.58

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

Примечание. Компания Microchip недавно внесла некоторые изменения, и их более новые версии IDE используют компилятор XC8 для ассемблера, тогда как весь приведенный здесь пример кода создан для компилятора 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, то у нас будет VCC/4 в узле 1.А если подать высокий уровень только на вывод GP0, выходное напряжение будет VCC/8. Как я уже сказал, эта цепочка позволяет нам суммировать напряжения, поэтому результирующее выходное напряжение будет:

Здесь V 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, W ; Чтение значения косвенно адресованного

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). Кроме того, я хочу предложить вам записывать в регистры другие значения для построения сигналов с другими формами, такими как пила, треугольник или трапециевидные волны.

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

Генератор функций XR2206 DIY Kit и другие вкусности

Функциональный генератор является незаменимым элементом лабораторного оборудования электроники, но, к сожалению, такое дорогостоящее устройство недоступно среднему любителю электроники.Мы знаем, что существует множество самодельных конструкций, но самым популярным (и недорогим) китайским комплектом на рынке является тот, который основан на изящном чипе генератора функций XR2206. Основываясь на моем опыте, простой в сборке комплект функционального генератора XR2206 с частотой 1 Гц-1 мГц позволяет проводить различные рутинные измерения и эксперименты и предлагает более качественные синусоидальные, прямоугольные и треугольные выходные сигналы с умеренной стабильностью и точностью. В настоящее время этого более чем достаточно для небольшой лаборатории домашней электроники!

 

Набор для самостоятельной сборки XR2206

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

 

 

Набор строительных ключей

Строительство будет проще простого, если вы знаете, что делаете! Как обычно, сначала припаяйте все низкопрофильные компоненты один за другим и, наконец, припаяйте гнездо микросхемы.Не забудьте обратить внимание на полярность электролитических конденсаторов и ориентацию микросхемы XR2206. Обрежьте ножки всех компонентов как можно короче, чтобы избежать случайного короткого замыкания. Ниже приведены несколько случайных снимков с моего рабочего места, сделанных, когда я собирал генератор функций, комплект «сделай сам» за 10 долларов, который я купил у китайского поставщика.

 

 

 

Советы по быстрой проверке

Когда строительство завершено и вы готовы запустить функциональный генератор, убедитесь в соблюдении полярности питания.Затем подайте 9–12 В постоянного тока (обычно 9 В) через входное гнездо постоянного тока. Вот указатель для создания синусоидальной волны 1 МГц (и прямоугольной волны) простым способом.

 

  • Короткие нижние два штырька (Tri/Sin) перемычки выбора формы сигнала
  • Короткие верхние два контакта (65K-1M) перемычки выбора частоты
  • Поверните ручку потенциометра точной настройки, чтобы точно настроить частоту сигнала
  • Поверните ручку потенциометра грубой настройки для грубой настройки частоты сигнала
  • Поверните ручку потенциометра амплитуды, чтобы отрегулировать амплитуду выходного сигнала

 

 

Для питания можно использовать аккумулятор 6F22 9В, т.к. весь потребляемый ток очень низкий при 9В.Однако, если вы используете источник питания 9–12 В (никогда не превышайте 12 В), убедитесь, что это стабильный тип с очень низким выходным шумом и пульсациями. После успешного строительства и первого испытания, наконец, вы можете заключить сборку. Вам необходимо снять внешний защитный слой с панелей корпуса. Задача не очень сложная – просто намочить пресной водой и снять!

 

Кроме того, обратите внимание, что выходной сигнал прямоугольной формы не проходит контроль амплитуды. Ручкой можно регулировать только амплитуду синусоидальных/треугольных волн (и на нее также влияет входное напряжение питания).Обратитесь к приведенной ниже таблице технических характеристик, чтобы получить четкое представление о производительности вашего функционального генератора XR2206.

 

 

Первое впечатление

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

 

 

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

 

Мысли скрипача

В принципе, микросхема XR-2206 сама по себе представляет собой монолитную интегральную схему генератора функций, способную создавать высококачественные синусоидальные, прямоугольные, треугольные, пилообразные и импульсные сигналы с высокой стабильностью и точностью.Выходные сигналы могут быть как амплитудно, так и частотно модулированы внешним напряжением. Рабочую частоту можно выбрать извне в диапазоне от 0,01 Гц до более 1 МГц (https://www.sparkfun.com/datasheets/Kits/XR2206_104_020808.pdf). Так что у многих есть множество способов использовать его скрытые возможности!

 

Например, вы можете легко добавить встроенный дисплей частотомера, дополнительные входы модуляции AM/FM, выходы синхронизирующих сигналов, регуляторы амплитуды/смещения и т. д.просто путем включения небольшой схемы на основе микроконтроллера в конструкцию ядра. Кроме того, вы можете использовать ту же конструкцию для тестирования/сканирования обычных пьезопреобразователей, если есть возможность поднять выходную амплитуду близко или выше 70 Впик-пик. В этом официальном примечании к применению описывается конструкция и конструкция ядра такой полной системы функционального генератора, подходящей для лабораторного использования или любительского применения https://www.changpuak.ch/electronics/FG2206/tan005.pdf

 

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

Ностальгический L8038!

Несмотря на то, что он не рекомендуется для новых конструкций, прецизионный генератор сигналов/генератор, управляемый напряжением, Intersil L8038 IC (http://eeshop.unl.edu/pdf/ICL8038.pdf), способный создавать высокоточные синусоидальные, прямоугольные, треугольные, пилообразные и импульсные сигналы с минимальным количеством внешних компонентов, по-прежнему доступен по низкой цене. Комплекты генератора сигналов «сделай сам» на основе L8038 также доступны во многих интернет-магазинах по цене менее 5 долларов. Итак, с несколькими баксами в руке,

сделайте простую попытку и просветитесь.

 

 

Здесь стоит отметить, что в техническом описании L8038 подразумевается, что все формы волны могут работать на частоте до 1 МГц, к сожалению, на этой более высокой частоте полезен только выходной сигнал прямоугольной формы.Как вы могли заметить с чипом XR2206, искажения на синусоидальной волне и линейность треугольной волны быстро падают выше 100 кГц (и имеют большие сбои). Хотя есть несколько факторов, которые делают его плохим, а не идеальным, генератор сигналов не является куском хлама — поверьте мне!

 

Перейти к DDS…

Теперь у вас есть пара дешевых и популярных микросхем генераторов функций — XR2206 от Exar и L8038 от Intersil. Тогда как насчет серьезной игры с одним устройством DDS (прямой цифровой синтезатор)? DDS, как вы, возможно, знаете, представляет собой метод создания аналогового сигнала (обычно синусоидального) путем генерации изменяющегося во времени цифрового сигнала и последующего цифро-аналогового преобразования (D/A).Несмотря на то, что перед нами открыты многие возможности для генерации частот, метод DDS быстро завоевывает признание для удовлетворения потребностей в производстве частоты/формы сигнала, поскольку однокристальные устройства теперь могут легко генерировать программируемые аналоговые выходные сигналы с высоким разрешением, конечно, с более высоким уровнем точности. Подробное (также длинное) руководство по цифровому синтезу сигналов можно найти по адресу https://www.analog.com/media/cn/training-seminars/tutorials/450968421DDS_Tutorial_rev12-2-99.pdf.

 

 

Чрезвычайно популярной микросхемой DDS на нашем рынке является AD9833, который представляет собой программируемый генератор сигналов на основе DDS, работающий на частоте 5.5V с тактовой частотой 25 МГц. Устройства DDS, такие как AD9833, можно программировать через высокоскоростной последовательный периферийный интерфейс (SPI), и для генерации простых синусоидальных сигналов им требуется только внешний тактовый генератор. Когда дело доходит до покупки встроенных модулей генератора функций DDS в Интернете, вы должны ввести «AD9833», и вы получите множество предложений по цене около 10 долларов. Обратите внимание, что AD9833 не ограничивается чисто синусоидальными выходами — прямоугольные и треугольные сигналы также доступны на микросхеме AD9833 DDS. https://www.аналог.com/media/en/technical-documentation/data-sheets/AD9833.pdf.

 

Одним из основных преимуществ метода прямого цифрового синтеза является то, что его выходная частота может быть точно выбрана путем записи значения в регистр частоты, и калибровка не требуется (частота не будет дрейфовать со временем), поскольку форма волны получается от кварцевого генератора. . Ниже приведена схема внутренней схемы устройства DDS (спасибо Analog Devices). Основными компонентами являются накопитель фазы, средство преобразования фазы в амплитуду (часто справочная таблица синуса) и ЦАП.

 

 

В сочетании с микроконтроллером (отвечающим за пользовательский интерфейс и за отправку необходимых команд в AD9833, который создает сигналы) — например, Arduino — чертовски легко построить генератор сигналов, который может генерировать сигналы, охватывающие широкий диапазон от AF до РФ.

0 comments on “Схема генератора сигналов на микроконтроллере: Схема генератора сигналов на микроконтроллере

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

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