Разделы сайта
Выбор редакции:
- Тортилья - что это за блюдо мексиканской кухни и как его правильного готовить в домашних условиях с фото
- Тортилья пшеничная Рецепт тортильи в домашних условиях
- Калорийность 1 эклера с заварным кремом
- Суп из рыбной консервы сардины с рисом
- Танцевать с женщиной во сне
- К чему снится танец с парнем
- Смерть таро значение в отношениях
- Рыцарь жезлов: значение (Таро)
- Приворот женатого мужчины на расстоянии читать без фото
- Блюда с белыми грибами. Рецепты. Маринованные боровики на зиму – пошаговый рецепт с фото, как мариновать в домашних условиях
Реклама
Схемы генератора на lcd микроконтроллере. Цифровой функциональный генератор DDS |
В последнее время получили широкое распространение методы цифрового синтеза частоты(DDS), причем методы реализации очень многообразны. Способ и метод реализации зависит от требований к генератору.
F max = 16000000Hz(Частота атмеги) 15 циклов берем на изменение аккумулятора фазы, выборку из LUT и вывод. Итого Fclk=16000000Hz/15=1066666,6667Hz Для необходимой точности выбрал 32-битный аккумулятор фазы. Теперь вычислим минимальный шаг: Step(Hz)= 1066666,6667Hz/(2^32)= 0,0002483526865641276041667(Hz) Код самого генератора: while (1){ #asm ADD R1,R6 ADC R2,R7 ADC R3,R8 ADC R4,R9 #endasm PORTC=LUT_of_Signal; При 50000Гц сигнал за период будет образовываться ~21 сменой напряжений на выходе ЦАПа. В качестве ЦАП я выбрал обычную R-2R матрицу – она не требует стробов и 8 бит вполне удовлетворяют условиям. Т.е. (|12|+|-12|) / 2^8 = 0,09375~ 0,1V Для удобства и быстроты настройки частоты я использовал валкодер, по схеме предложенной радиолюбителем VK6BRO, из шагового двигателя. Чтобы предотвратить ложные срабатывания от валкодера – контроллер несколько раз проверяет направления при шагах и только тогда фиксирует изменения.
Так же добавил функцию сканирования заданного диапазона частот с регулируемым шагом. Шаг устанавливается 0,01Гц-0.1Гц-1Гц-10Гц-100Гц и обратно. Для удобства отображения и простоты написания программы использовал LCD от Nokia 3310(84x48). В качестве самого валкодера использовал биполярный шаговый двигатель от старого винчестера. Все устройство и программу просимулировал в Proteus. Аналоговая часть генератора![]() Поскольку ЦАП выдает сигнал однополярный а задумка была зделать именно двухполярный генератор то необходимо использовать смещение на усилителе. В качестве источника опорного напряжения я выбрал TL431. Сам усилитель я реализовал на 2-х каскадах. Для усиления нагрузочной способности я применил повторитель напряжения на микросхеме TDA2030A. ![]() Сигнал на выходе устройства U3 повторяет по форме и амплитуде входной, но имеет большую мощность, т.е. схема может работать на низкоомную нагрузку. Повторитель использован для увеличения выходной мощности низкочастотного генератора (чтобы можно было непосредственно испытывать головки громкоговорителей или акустические системы). Полоса рабочих частот повторителя линейна от постоянного тока до 0,5...1 МГц, что более чем достаточно для генератора НЧ. Источник питания - любой(импульсный или линейный), желательно стабилизированный с питаниями +5,+12/-12V. О сборкеПри сборке проблем особых не возникло, настройка заключается в подстройке аналоговой части симметричности и амплитуды выходного сигнала. Смещение настраивается резистором R1 и R6.Амплитуда первого каскада R5, второго R8.Данный DDS функциональный генератор (версия 2.0) сигналов собран на микроконтроллере AVR, обладает хорошей функциональностью, имеет амплитудный контроль, а также собран на односторонней печатной плате. Данный генератор базируется на алгоритме DDS-генератора Jesper , программа была модернизирована под AVR-GCC C с вставками кода на ассемблере. Генератор имеет два выходных сигнала: первый - DDS сигналы, второй - высокоскоростной (1..8МГц) "прямоугольный" выход, который может использоваться для оживления МК с неправильными фузами и для других целей. Основные характеристики DDS-генератора V2.0:
На представленной ниже блок-схеме, приведена логическая структура функционального генератора: Как вы можете видеть, устройство требует наличие нескольких питающих напряжений: +5В, -12В, +12В. Напряжения +12В и -12В используются для регулирования амплитуды сигнала и смещения. Блок питания сконструирован с использованием трансформатора и нескольких микросхем стабилизаторов напряжения: Блок питания собран на отдельной плате: Если самому собирать блок питания нет желания, то можно использовать обычный ATX блок питания от компьютера, где уже присутствуют все необходимые напряжения. . LCD-экран Все действия отображаются через LCD-экранчик. Управление генератором осуществляется пятью клавишами Клавиши вверх/вниз используются для перемещения по меню, клавиши влево/вправо для изменения значения частоты. Когда центральная клавиша нажата - начинается генерирование выбранного сигнала. Повторное нажатие клавиши останавливает генератор. Для установки шага изменения частоты предусмотрено отдельное значение. Это удобно, если вам необходимо менять частоту в широких пределах. Генератор шума не имеет каких-либо настроек. Для него используется обычная функция rand() непрерывно подающиеся на выход DDS-генератора. Высокоскоростной выход HS имеет 4 режима частоты: 1, 2, 4 и 8 МГц. Принципиальная схема Схема функционального генератора простая и содержит легкодоступные элементы: Плата:
Функциональный генератор собран в пластиковом боксе: ![]() Программное обеспечение Как я уже говорил выше, в основе своей программы я использовал алгоритм DDS-генератора Jesper . Я добавил несколько строчек кода на ассемблере для реализации останова генерирования. Теперь алгоритм содержит 10 ЦПУ циклов, вместо 9. void static inline Signal_OUT(const uint8_t *signal, uint8_t ad2, uint8_t ad1, uint8_t ad0){ Таблица форм DDS-сигналов размещена во флэш памяти МК, адрес которой начинается с 0xXX00. Эти секции определены в makefile, в соответствующих местах в памяти: Библиотеку для работы с LCD можно взять . Не хочу вдаваться в подробное описание кода программы. Исходный код хорошо прокомментирован (правда на английском языке) и если будут какие либо вопросы по нему, то всегда можете воспользоваться нашим или в комментариях к статье. Тестирование Я тестировал генератор с осциллографом и частотомером. Все сигналы хорошо генерируются во всем диапазоне частот (1...65535 Гц). Регулирование амплитуды и смещения работает нормально. В следующей версии генератора думаю реализовать сигнал нарастающей синусоиды. Последнюю версию ПО (), исходник, файлы и можете скачать ниже. Список радиоэлементов
Уже давно пользуюсь генератором сигналов UDB1005S , построенном по DDS технологии, куплен он был на али за 30$. Если кратко, то серия UDB100
x включает в себя 3 модели UDB1002, UDB1005, UDB1008,
последняя цифра определяет максимальную рабочую частоту, а буква S на конце, если она есть, говорит о том, что генератор поддерживает sweep_mode
. В основе генератора лежит связка плис + мк, мк обслуживает периферию(кнопки, энкодер, дисплей), а плис занимается генерацией сигнала. Теперь давайте рассмотрим основные особенности. Аналоговый выход:
Что касается генератора качающей частоты , для его настройки необходимо задать два значения частоты и время, за которое частота генератора изменится от fM1 до fM2 . Это очень удобно если надо узнать как реагирует схема на разные частоты, например, с помощью генератора качающей частоты можно легко найти резонансную частоту контура с неизвестными элементами. Для этого через последовательно включённый резистор номиналом несколько сотен Ом подключаем генератор к контуру, а щупом осциллографа к выводам контура. Если контур последовательный, то на резонансной частоте амплитуда колебаний будет максимальна, а если параллельный - минимальна. Фиксируя амплитуду на экране осциллографа можно узнать резонансную частоту контура. Но не буду отходить от темы, ниже приведу несколько осциллограмм для разных видов колебаний и разных частот. Синус 10КHz Синус 100КHz Синус 1МHz Синус 5МHz Пила 1КHz Пила 10КHz Пила 100КHz Пила 1МHz Пила 5МHz Еще можно изменять наклон пилы Меандр 1КHz Меандр 10КHz Меандр 100КHz Меандр 1МHz Меандр 5МHz Меандр 100KHz с TTL выхода Меандр 1МHz с TTL выхода Меандр 5МHz с TTL выхода На осциллограммах видно, что стабильность частоты сильно отличается от заявленной, также хотелось отметить, что если частота прямоугольного сигнала превышает 1MHz, сигнал начинает сильно дрожать. Всё вышеперечисленное можно отнести к плюсам, ну а чего можно хотеть от генератора сигналов за 30$? А теперь минусы, их всего два за то какие..... но это мелочь по сравнению с регулировкой амплитуды, при вращении ручки регулировки амплитуды, последняя изменяется скачками, поэтому выставить нужную амплитуду с погрешность 100mV очень сложно . Быстрый поиск на ютубе по запросу «генератор сигналов с али» показал, что генератора сигналов, у которого можно точно выставить амплитуду стоит, гораздо дороже, поэтому по соотношению цена-возможности этот генератор вне конкуренции. Продолжая тему электронных конструкторов я хочу и в этот раз рассказать о одном из устройств для пополнения арсенала измерительных приборов начинающего радиолюбителя. Довольно часто радиолюбителю, да и не только, приходится сталкиваться с необходимостью проверки разных электронных устройств. Это бывает как на этапе отладки, так и на этапе ремонта. Для начала стоит немного объяснить о чем пойдет речь в данном обзоре. Генераторы бывают разные, например ниже тоже генераторы:) Но собирать мы будем генератор сигналов. Я много лет пользуюсь стареньким аналоговым генератором. В плане генерации синусоидальных сигналов он очень хорош, диапазон частот 10-100000Гц, но имеет большие габариты и не умеет выдавать сигналы других форм. Как всегда, для начала, немного об упаковке. Внутри упаковки компоненты были просто насыпом, и при распаковке выглядели примерно так. Дисплей был обернут пупырчатым полиэтиленом. Примерно с год назад я уже делал такого дисплея с применением, потому останавливаться на нем не буду, скажу лишь что доехал он без происшествий. Отдельно на небольшом кусочке вспененного полиэтилена были микросхемы и панельки для них. Вторая микросхема - Сдвоенный операционный усилитель LM358. Самый обычный, массовый, операционный усилитель. Сначала разложим весь комплект и посмотрим что же нам дали. Печатная плата с двухсторонней печатью, на верхней стороне нанесена маркировка элементов. Металлизация выполнена качественно, замечаний у меня не возникло, покрытие контактных площадок отличное, паяется легко. Переходы между сторонами печати сделаны двойными. Сначала по печатной плате я начал чертить принципиальную схему. Но уже в процессе работы я подумал, что наверняка при создании данного конструктора использовалась какая нибудь уже известная схема. Раз уж рассказывать, то стоит описать функциональные узлы данной схемы и расписать некоторые из них более расширенно. На странице автора кроме схемы, прошивки и т.п. обнаружилась блок-схема данного прибора. С основной частью описания закончили, расширенная будет далее по тексту, а мы перейдем непосредственно к сборке. В этот раз я применил несколько другую технологию монтажа. мне она нравится меньше, чем предыдущие, но также имеет право на жизнь. Такая технология в некоторых случаяюх ускоряет монтаж, особенно на большом количестве одинаковых элементов. С обратной стороны выводы немного загибаются, но несильно, главное чтобы элементы не выпали, и плата кладется на стол выводами вверх. Дальше берем припой в одну руку, паяльник в другую и пропаиваем все заполненные контактные площадки. В конце обкусываем торчащие выводы компонентов впритык к припою. Бокорезами можно захватывать сразу несколько выводов (4-5-6 штук за один раз). Из достоинств: Такой способ монтажа можно часто встретить в дешевых компьютерных блоках питания, правда там выводы не обкусывают, а срезают чем то типа режущего диска. После монтажа основного количества резисторов у нас останется несколько штук разного номинала. Запаиваем последние резисторы, плата после этого должна выглядеть примерно так. Резисторы с цветовой маркировкой вещь хорошая, но иногда возникает путаница с тем, откуда считать начало маркировки. Для облегчения распознавания маркировки, последняя полоса должна отстоять от остальных, но это в идеальном случае. В реальной же жизни все бывает совсем не так как задумывалось и полоски идут в ряд на одном расстоянии друг от друга. Ладно, с резисторами и их сложностями в маркировке закончили, перейдем к более простым вещам. О конденсаторах и кварцевом резонаторе я рассказывал в прошлом обзоре, потому просто покажу куда они должны устанавливаться. В комплекте к микросхемам дали пару панелек и несколько разъемов. Панельки для установки микросхем дали самые обычные, хотя если сравнивать с панельками времен СССР, то шик. При установке панелек устанавливаем их также как сделано обозначение на печатной плате. После установки панелек плата начинает приобретать некоторый вид. Управление прибором производится при помощи шести кнопок и двух переменных резисторов. Выше я писал что в комплекте дали два переменных резистора, также в комплекте еще был подстроечный резистор. Немного расскажу про эти компоненты. Также в комплекте был один подстроечный резистор. по своей сути это то же самое что переменный, только он не рассчитан на оперативную регулировку, а скорее - подстроил и забыл. Запаиваем резисторы и кнопки и переходим к BNC разъемам. BNC разъемы хоть и попроще, чем в обзоре осциллографа, но мне понравились больше. Собственно пайка основной платы завершена, теперь можно установить на свое место операционный усилитель и микроконтроллер. Перед установкой я обычно немного изгибаю выводы так, чтобы они были ближе к центру микросхемы. Делается это очень просто, берется микросхема двумя руками за короткие стороны и прижимается вертикально стороной с выводами к ровному основанию, например к столу. Изгибать выводы надо не очень много, тут скорее дело привычки, но устанавливать в панельку потом микросхему гораздо удобнее. Микросхемы устанавливаем в соответствии ключом на панельке, которая в свою очередь установлена в соответствии с маркировкой на плате. Закончив с платой переходим к дисплею. Все, можно промывать плату. В этот раз я это решил сделать до проверки, хотя обычно советую делать промывку уже после первого включения, так как иногда приходится еще что нибудь паять. Промывать можно разными способами и средствами, кто то использует спирт, кто то спирто-бензиновую смесь, я мою платы ацетоном, по крайней мере пока могу его купить. У меня в работе вработалась привычка после промывки платы покрывать ее защитным лаком, обычно снизу, так как попадание лака на разъемы недопустимо. После покрытия лаком плата становится более глянцевой и приятной на ощупь, возникает некоторое ощущение законченности процесса:) Пришла очередь установки дисплея. Для этого в комплекте дали четыре винтика М3 и две монтажные стойки. Устанавливаем стойки на основную плату, затем устанавливаем дисплей, ну и в конце фиксируем всю эту конструкцию при помощи двух оставшихся винтиков. Ну все, можно пробовать. Дальше мне бы перейти к тестированию, да не тут то было. Если с 5 Вольт проблем не было, да и с +12 Вольт также, то -12 Вольт стали небольшой проблемой. Пришлось сделать небольшой временный блок питания. Так как трансформатор у меня был только с одной обмоткой, а импульсник городить не хотелось, то я решил собирать БП по схеме с удвоением напряжения. Я поставил также почти без запаса. Но при этом он достаточен при нормально сетевом напряжении. В итоге у меня вышла небольшая платка, по размерам чуть больше спичечного коробка, в основном в высоту. Разводка платы на первый взгляд может показаться несколько странной, так как можно было повернуть трансформатор на 180 градусов и получить более аккуратную разводку, я так сначала и сделал. Так выглядит полный комплект прибора. для соединения БП с платой прибора я спаял небольшой жесткий соединитель 4х4 контакта. Плата БП подключается при помощи соединителя к основной плате и теперь можно переходить к описанию работы прибора и тестированию. Сборка на этом этапе окончена. Перед началом тестирования опишу органы управления и возможности устройства. 1. Треугольный 1-2. Изменять частоту на выходе DDS можно в диапазоне 1-65535ГЦ с шагом 1Гц Также на плате расположены два переменных резистора. Дальше пойдут результаты тестов. Пилообразный Обратный пилообразный Треугольный Прямоугольный с выхода DDS Кардиограмма Прямоугольный с ВЧ выхода Шумоподобный в двух режимах развертки осциллографа, чтобы было более понятно что он из себя представляет. Как показало тестирование, сигналы имеют довольно искаженную форму начиная примерно с 10КГц. Сначала я грешил на упрощенный ЦАП, да и на саму простоту реализации синтеза, но захотелось проверить более тщательно. Ну и групповое фото небольшого «стенда» начинающего радиолюбителя:) Резюме. Минусы
Мое мнение. Можно конечно сказать что характеристики прибора совсем плохие, но стоит учитывать то, что это DDS генератор самого начального уровня и не совсем правильно было бы ожидать от него чего то большего. Порадовала качественная плата, собирать было одно удовольствие, не было ни одного места, которое пришлось «допиливать». В виду того, что прибор собран по довольно известной схеме, есть надежда на альтернативные прошивки, которые могут увеличить функционал. С учетом всех плюсов и минусов я вполне могу рекомендовать этот набор как стартовый для начинающих радиолюбителей. Фух, вроде все, если накосячил где то, пишите, исправлю/дополню:) Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта. Планирую купить +47 Добавить в избранное Обзор понравился +60 +126Максимальная частота - 65534 Гц (и до 8 МГц HS выход с меандром). И тут я подумал, что генератор - отличная задача, где ПЛИС сможет показать себя в лучшем виде. В качестве спортивного интереса я решил повторить проект на ПЛИС, при этом по срокам уложиться в два выходных дня, а параметры получить не строго определенные, а максимально возможные. Что из этого получилось, можно узнать под катом День нулевойДо того, как наступят выходные, у меня было немного времени подумать над реализацией. Чтобы упростить себе задачу, решил сделать генератор не в виде отдельного устройства с кнопками и LCD экраном, а в виде устройства, которое подключается к ПК через USB. Для этого у меня есть плата USB2RS232 . Плата драйверов не требует (CDC), поэтому, я думаю, что и под Linux будет работать (для кого-то это важно). Так же, не буду скрывать, что с приемом сообщений по RS232 я уже работал. Модули для работы с RS232 буду брать готовые c opencores.com .Для генерации синусоидального сигнала потребуется ЦАП. Тип ЦАП я выбрал, как и в исходном проекте - R2R на 8 бит. Он позволит работать на высоких частотах, порядка мегагерц. Убежден, что ПЛИС с этим должна справиться По поводу того, на чем написать программу для передачи данных через COM порт я задумался. С одной стороны, можно написать на Delphi7, опыт написания такой программы уже есть, к тому же размер исполняемого файла будет не большим. Еще попробовал набросать что-то для работы с Serial в виде java скрипта в html страничке, но более менее заработало только через Chrome serial API, но для этого надо устанавливать плагин… в общем тоже отпадает. В качестве новшества для себя попробовал PyQt5, но при распространении такого проекта, нужно тащить кучу библиотек. Попробовав собрать PyQt проект в exe файл, получилось больше 10 мб. То есть, будет ничем не лучше приложения, написанного на c++\Qt5. Стоит еще учесть, что опыта разработки на python у меня нет, а вот на Qt5 - есть. Поэтому выбор пал на Qt5. С пятой версии там появился модуль для работы с serial и я с ним уже работал. А еще приложение на Qt5 может быть перенесено на Linux и Mac (для кого-то это важно), а с 5.2 версии, приложения на QWidgets может быть перенесено даже на смартфон! День первыйВ связи с тем, что модуль DDS я уже делал в своем синтезаторном проекте, то я сразу взялся за паяльник и начал паять ЦАП на резисторах. Плату взял макетную. Монтаж делал с применением накрутки . Единственное изменение, которое коснулось технологии - я отказался от кислоты Ф38Н для лужения стоек в пользу индикаторного флюс-геля ТТ . Суть технологии проста: в печатную плату впаиваю стойки, на них со стороны печатного монтажа припаиваю резисторы. Недостающие соединения выполняю накруткой. Еще, стойки удобны тем, что я их могу вставить прямо в плату ПЛИС.К сожалению, дома в наличии не оказалось резисторов 1 и 2 килоома. Ехать в магазин было некогда. Пришлось поступиться одним из своих правил, и выпаять резисторы из старой не нужной платы. Там применялись резисторы 15К и 30К. Получился вот такой франкенштейн: После создания проекта нужно задать целевое устройство: Меню Assigments -> Device В проекте я «нахадркодил» неуправляемый главный модуль DDS на фиксированную частоту. Модуль генератора на 1000 Гц module signal_generator(clk50M, signal_out); input wire clk50M; output wire signal_out; wire clk200M; osc osc_200M reg accumulator; assign signal_out = accumulator; //пробуем генерировать 1000 Гц //50 000 000 Hz - тактовая частота внешнего генератора //2^32 = 4 294 967 296 - разрядность DDS - 32 бита //делим 1000Hz / 50 000 000 Hz / 2 * 4294967296 => 42949,67296 always @(posedge clk50M) begin accumulator <= accumulator + 32"d42949; end endmodule После этого нажал «Start Compilation», чтобы среда разработки задалась вопросом, какие у нас линии ввода вывода есть в главном модуле проекта и к каким физическим PIN"s они подключены. Подключить можно практически к любому. После компиляции назначаем появившиеся линии к реальным PIN микросхемы ПЛИС: Пункт меню Assigments -> Pin Planner На линии HS_OUT, key0 и key1 прошу пока не обращать внимание, они появляются в проекте потом, но скрин в самом начале я сделать не успел. В принципе, достаточно «прописать» только PIN_nn в столбце Location, а остальные параметры (I/O standart, Current Strench и Slew Rate) можно оставить по умолчанию, либо выбрать такие же, что предлагаются по умолчанию (default), чтобы не было warning"ов. Как узнать какому PIN соответствует номер разъема на плате? Номера контактов разъема подписаны на плате А пины ПЛИС, к которым подключены контакты разъема, описаны в документации, которая идет в комплекте с платой ПЛИС. После того, как пины назначены, компилирую проект еще раз и прошиваю с помощью USB программатора. Если у вас не установлены драйверы для программатора USB Byte blaster, то укажите Windows, что они находятся в папке, куда у вас установлен Quartus. Дальше она сама найдет. Подключать программатор нужно к разъему JTAG. А пункт меню для программирования «Tools -> Programmer» (либо нажать значек на панели инструментов). Кнопка «Start», радостное «Success» и прошивка уже внутри ПЛИС и уже работает. Только не выключайте ПЛИС, а то она все забудет. Tools -> Programmer ЦАП подключен к разъему платы ПЛИС. К выходу ЦАП подключаю осциллограф С1-112А. В результате должна получиться «пила» потому что на выход 8 бит выводится старшая часть слова DDS аккумулятора фазы. А оно всегда увеличивается, пока не переполнится. Каких-то 1.5 часа и для частоты в 1000 Гц я вижу следующую осциллограмму: Хочу заметить, что «пила» по середине имеет небольшой перелом. Он связан с тем, что резисторы имеют разброс значений. Еще один важный момент, который нужно было выяснить - это максимально возможная частота, с которой будет работать DDS генератор. При правильно настроенных параметрах TimeQuest, после компиляции в «Compilation Report» можно увидеть, что скорость работы схемы выше 200 МГц с запасом. А это значит, что частоту генератора 50 МГц я буду умножать с помощью PLL на 4. Увеличивать значение аккумулятора фазы DDS буду с частотой 200 МГц. Итоговый диапазон частот, который можно получить в наших условиях 0 - 100 МГц. Точность установки частоты: 200 000 000 Гц (clk) / 2^32 (DDS) = 0,047 Гц
TimeQuest Timing Analyzer После того, как я увидел на экране «пилу», семейные дела заставили меня ехать на дачу (выходной же). Там я косил, варил, жарил шашлык и не подозревал о том сюрпризе, что ждал меня вечером. Уже ближе к ночи, перед сном, я решил посмотреть форму сигнала для других частот. Для частоты 100 КГц Для частоты 250 КГц Для частоты 500 КГц Для частоты 1 МГц День второйВ связи с тем, что было интересно, как будет работать ЦАП на резисторах 100 и 200 Ом, я сразу взялся за паяльник. На этот раз ЦАП получился более аккуратным, а времени на его монтаж ушло меньше.Ставим ЦАП на плату ПЛИС и подключаем к осциллографу Проверяем 1 МГц - ВО! Совсем другое дело! Пила 10 МГц Пила 25 МГц Форма пилы на 10 МГц еще похожа на правильную. Но на 25 МГц она уже совсем «не красивая». Однако, у С1-112а полоса пропускания - 10 МГц, так что в данном случае причина может быть уже в осциллографе. В принципе, на этом вопрос с ЦАП можно считать закрытым. Теперь снимем осциллограммы высокоскоростного выхода. Для этого, выведем старший бит на отдельный PIN ПЛИС. Данные для этой линии будем брать со старшего бита аккумулятора DDS. Assign hs_out = accumulator;
Меандр 1 МГц Меандр 5 МГц Меандр 25 МГц Меандр 50 МГц уже практически не виден Но считаю, что выход ПЛИС стоило бы нагрузить на сопротивление. Возможно, фронты были бы круче. Синус делается по таблице. Размер таблицы 256 значений по 8 бит. Можно было бы взять и больше, но у меня уже был готовый mif файл. С помощью мастера создаем элемент ROM с данными таблицы синуса из mif-файла. Создание ROM - Tools -> Mega Wizard Plugin manager Выбираем 1 портовую ROM и задаем название модулю Соглашаемся Тут тоже соглашаемся С помощью browse находим наш mif файл с таблицей синуса Тут тоже ничего не меняем Снимаем галочку с модуля sine_rom_bb.v - он не нужен. Дальше finish. Квартус спросит добавить модуль в проект - соглашаемся. После этого, модуль можно использовать так же, как любой другой модуль в Verilog. Старшие 8 бит слова аккумулятора DDS будут использоваться в качестве адреса ROM, а выход данных - значение синуса. Код //sine rom wire sine_out; sine_rom sine1(.clock(clk200M), .address(accumulator), .q(sine_out)); Осциллограмма синуса на разных частотах выглядит… одинаково. При желании, можно рассмотреть проблемы ЦАП, связанные с разбросом резисторов: Чтож, на этом выходные кончились. А ведь еще не написано ПО для управления с ПК. Вынужден констатировать факт, что в запланированные сроки я не уложился. День третийВремени совсем мало, поэтому программу пишем на скорую руку (в лучших традициях). Местами, чтобы сократить количество букв и удобство ввода информации с клавиатуры, применяется фильтр событий по имени виджета. Прошу понять и простить.Интерфейс Ссылки с аналогамиДалеко не полный списокФункциональный DDS генератор. Создан базе AVR. Частоты 0… 65534 Гц. Обзор DDS-генератора GK101. Создан с применением ПЛИС Altera MAX240. Частоты до 10 МГц. Многофункциональный генератор на PIC16F870. Частотный диапазон: 11 Гц - 60 кГц. генераторы Добавить метки |
Читайте: |
---|
Популярное:
Новое
- Тортилья пшеничная Рецепт тортильи в домашних условиях
- Калорийность 1 эклера с заварным кремом
- Суп из рыбной консервы сардины с рисом
- Танцевать с женщиной во сне
- К чему снится танец с парнем
- Смерть таро значение в отношениях
- Рыцарь жезлов: значение (Таро)
- Приворот женатого мужчины на расстоянии читать без фото
- Блюда с белыми грибами. Рецепты. Маринованные боровики на зиму – пошаговый рецепт с фото, как мариновать в домашних условиях
- Курица гриль - пошаговые рецепты маринада и технология приготовления в духовке, микроволновке или сковороде