Перейти к содержанию

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


Рекомендуемые сообщения

- Если нам плевать на некоторую зашумленность спектра, но требуется большое разрешение по частоте.

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

- Для реализации низких частот. Можно перебирать таблицу в n раз медленнее, чем через 1 отсчет (соотв. частоте FRQ=1/2, 1/3, etc) без ошибки округления фазы, с прежней же частотой дискретизации.

Можно, это эквивалентно снижению частоты перебора, ибо если FRQ<1 приращение адреса таблицы - будет осуществляться не каждый такт т.е. это опосредованное снижение частоты квантования.

Между тем, упомянутая CDCE913, позволяет перестраивать частоту, с дискретностью несколько ppm (самые большие "промежутки" 40ppm) - за счет к-тов ФАПЧ , и без всяких фазовых шумов. Если надо еще плавнее - можно задействовать вход тонкой подстройки частоты кварца, - +-150ppm, при изменении упр. напряжения 0...1.8в (в качестве ЦАП- использовать выход таймера контроллера, в режиме ШИМ, с усреднением RC-цепочкой, с большой постоянной ыремени) тогда плавность перестройки - вообще стремится к бесконечности :mrgreen: (во всяком случае становится много меньше дрейфов кварцевого генератора :wink: )

- Можно как-нть посчитать промежуточные значения

Опять таки, в атмеге, наврядли получится что-то серьезнее линейной интерполяции, по 2 соседним отсчетам :wink:

- все так делают :

Упомянутые вами микросхемы DDS, очень часто имеют и встроенный ФАПЧ на входе задающей частоты (а если не имеют - рекомендуется этот ФАПЧ ставить внешний :mrgreen: ), несмотря на столь высокую разрядность аккумулятора :wink:

ЗЫ но в общем, можно считать, что вы меня убедили. Признаю, что погорячился, когда говорил про полную безсмысленность. Со всеми оговорками выше - таки да.

Ссылка на комментарий
Поделиться на другие сайты

  • 6 месяцев спустя...

В приступе безумия напаял таки фиговину, для уничтожения мира. А ЖК не инициализируется. В этот раз писал в WinAVR. Ну, что за засада...

18457591a56f3c04d012e06d38d680e4.jpg

post-347-0-57770800-13068502,31_thumb.jpg

Ссылка на комментарий
Поделиться на другие сайты

Близится пора защищаться? :lol:

Какие в итоге ТТХ "фиговины" и способ реализации?

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

А может черезчур выкручена контрастность?

Ссылка на комментарий
Поделиться на другие сайты

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

Как мне сейчас не хватает домашнего осциллографа. Был встроенный в две крышечкидраколлы адаптер для звуковой карты, но я выпаял с него переменник, чтоб запустить ЖК. Ибо, было лень за деталями через пол города ехать.

Теперь остались тонкости функционала. Например, встроенные функции генератор генерирует кодом из какого-то вышеприведенного примера, который мне подсказал кто-то из тут местных.

Но, вся прога написана на сях, а этот участок - ассемблерный. А я в нем шарю очень слабо. Понятно только, что он перебирает и выдает на порт массив сигналов (зашитых в памяти программ) с заданной частотой. Это все отлично, но массивы, которые генератор принимает по UART в ОЗУ. А значит, нужно веысти дополнительную такую подпрограмму,которая бы определяла адрес массива в ОЗУ и перебирала его. Есть подозрения, что меня могли бы спасти функции LDS и LD. Но, так как подпрограмму я понимаю на нижеприведенном уровне, сие затруднительно.

Нашел неплохой мануал, разобрался кое с чем.

Изменено пользователем Howl Dgerone
Ссылка на комментарий
Поделиться на другие сайты

Устройство собрано.

45bf6d0a061d59380b58c5dbf347eff9.jpg

Теперь бы еще программа адекватно заработала б...

UARt почему-то принимает только 0 и 128 вне зависимости от того, что посылать. И не настроил адекватный вывод массивов из памяти данных. Полный ацтой.

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

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

post-347-0-48125000-13068501,59_thumb.jpg

Ссылка на комментарий
Поделиться на другие сайты

А может черезчур выкручена контрастность?

Нет, с контрастностью на вид все нормально, это как раз результат отсутствия инициализации - засвечена верхняя строчка.

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

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

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

Где-то в теме уже говорил, что у большинства экранов вопрос решается подтягиванием Vo к земле.Обычно это дает засветку, но совсем небольшую.

Буду рад каким нить ссылкам. Может есть еще хорошие статьи и материалы,которые я не нашел.

Для этого надо знать название курса, хотя бы. Сходу – могу посоветовать книгу А.Б. Сергиенко «Цифровая обработка сигналов», в сети есть, если что – могу сбросить. Это учебник по ЦОС, но, понятное дело, он содержит все нужные моменты касательно цифрового синтеза.

За исполнение девайса – искренний респект! Конечно, для более полного впечатления надо держать в лапах, но судя по фотке – годно, очень даже, тем более, для первого образца. Особенно оформление понравилось. Да, надо бы и мне как-то отойти от аскетического оформления своих девайсов в сторону чего-то более творческого, давно уже думаю об этом. Но из-за их количества и вечной нехватки времени – никак не доходят лапы.

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

P.S. Картинки добавил вложением.

Ссылка на комментарий
Поделиться на другие сайты

Собственно, запустил, довставил кнопку, проверил на осцилке. Счастлив.

Правда, там не стоит пока операционный усилок. Надо б спаять на макетке и добавить. Может, кто подскажет дешевый одноканальный? Частотой до 1МГц, и чтоб опорное напряжение и питание 5 В. а то он или от USB живет или от сетевого адаптера. Я туда особо ничего не ставил, все равно кафедра экспроприирует. Но, усилок надо б. А то на защите параметр амплитуды будет печально выглядеть.

Ссылка на комментарий
Поделиться на другие сайты

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

Правда, там не стоит пока операционный усилок.

То есть, без ФНЧ вообще пока? В принципе, это важная часть этого прибора и всей задачи.

Надо б спаять на макетке и добавить. Может, кто подскажет дешевый одноканальный?

Из дешевых… очень дешевых – LM358, например. Правда, он не rail-to-rail. Из подороже (пошустрее, плюс rail-to-rail) советую выбирать что-то от Burr-Brown, например, OPA363.

Ссылка на комментарий
Поделиться на другие сайты

После защиты обязательно все выложу. У меня там пока косяк с программой-прошивкой.

Фильтр там кондером стоит. До LM358 я ужо дошел. А вот OPA363 шас посмотрим.... Благодарствую

к стати, к генераторы я накатал вот такую простенькую программку. Что она умеет?

d3e4bdab1b3a7d20348e268e02a7c1ac.jpg

Ну, во-первых, конечно, если в текстовое окно бросить 256 мгновенный значений сигнала (от 0 до 255), то она построит в том окне. Или можно сохранить в текстовый файл. или загрузить в генератор через USB (там мост-UART стоит, не стал я реально разбираться с протоколами).

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

В окне Viso можно рисовать от руки или загрузить файл, нарисованный в пейнте или еще где.

Ну, еще можно пересылать по одному символу или передать 255 нулевых значений в МК.

Это так, основное. Я вот не могу придумать, может еще что добавить полезное?

Изменено пользователем Howl Dgerone
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...