Свежие обсуждения
Измерения

DDS-генератор на AVR - нужна помощь

1 12 189

GM: Вам-то зачем "эти 5 строчек"? Там кстати, 11 строчек, а не 5 Извините, не предполагал что такой вопрос неуместен...
Tadas: А еще лучше сделать величину шага переменной, как функцию от скорости вращения.
Синхронно пишем.. Задается некоторый минимальный шаг перестройки от шага валкодера, НО ЕСЛИ валкодер крутят быстрее, то этот ШАГ УВЕЛИЧИВАЕТСЯ. При снижении скорости вращения шаг уменьшается. Иначе говоря, шаг перестройки зависит от СКОРОСТИ вращения. Практически, для установки частоты, очень толковая функция. Разрешает противоречие между точностью установки и гемороем долгого кручения ручки. Мы делали квадратичную функцию от скорости, - было очень удобно!
Можно просто удвоение, если интервал с валкодера меньше чего-то. и далее (при необходимости) еще удвоение...и.т.д. При смене направления, все сначала.

 

Tadas: Раз удостоился высокого звания двойного нуля
По моим подсчетам Вы как раз и есть 007

 

Как-то про себя забыл..Ну, если вы считаете, что два нуля это почётно, то можно я побуду тремя нулями: 000 ?

 

GM: Как-то про себя забыл..Ну, если вы считаете, что два нуля это почётно, то можно я побуду тремя нулями: 000 ?
Думаю можно, ибо Ваш проект по сути дал толчок всей движухе А я тогда буду 13-м. Люблю трилогию Тармашева знаете ли

Теперь по сути. Я накидал эскиз структурки одного канала генератора.

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

Далее:
GM: Тут особо не разбежишься, всё повязано тактовой частотой проца и количеством тактов на один отсчёт. Скажем, при 20 МГц тактовой, можно получить10 тактов, 9 тактов, 8 тактов, 7 тактов, ну и с мелкими ухищрениями, 4 такта (это пока не обсуждаем, потом как-нибудь).
Это я понимаю, иначе не стал бы поднимать весь шорох. Задам вопрос по другому: Можно при тактовой 16МГц обеспечить 1 МВыб/с, чтобы еще осталось чуть чуть времени для работы с энкодером, кнопками, диодами? Почему 16 МГЦ, а не 20 скажу чуть попозжа

Tadas: А зачем нужна модель в протеусе ?
Ведь это игрушка для школьников
Наличие ЦАПа в хмеге это конечно дело хорошее, но
madgrey: давайте ограничим аппетиты и обозначим верхнюю генерируемую частоту с учетом "народности" этого генератора.
хмега еще не очень народная.
По моему хорошим компромиссом для главного (ддс-овского) мелкоконтроллера может быть Mега48(P)A со своей 20 МГц тактовой.
ЦАП конечно придется внешний цеплять, но имея китайский тестер отобрать с достаточной точностью R-2R не составит труда.

Вы предвзято относитесь к протеусу Он здорово экономит время эмбеддера. Да и прямых аналогов ему просто нет. Лично мне было бы лучше, чтобы модель камня генератора в протеусе была.
Мегу48 рассмотрел, она мне не нравится: кривовато расположены порты в DIPе и планаре, трудно будет вывести наружу внешний интерфейс, подключить кварц и получить полный порт для работы. А еще хотелось бы шить его без гемороя, а еще JTAG бы неплохо чтоб был... В общем неудобно. Мега16 дороже примерно вдвое, а макс. гарантированная частота кварца - 16 МГЦ. В абсолютных значениях экономия составит аж на полтора доллара... Гемора больше будет на больше денег

GM: Товарищи толковали о метках, вот второй генератор можно приспособить для меток. Вообще, каждый может просто добавить ещё один DDS-генератор, надо только продумать заранее о возможности их синхронизации. Я, например, так и собираюсь поступить, мне нужны два квадратурных сигнала, поскольку я работаю с аналитическими сигналами по основной работе. Кроме того, уже для души, квадратуры позволяют легко и просто формировать практически все известные радиотехнические виды модуляции, SSB, BPSK, KAM и т.д.
Я тоже в поэтому в структурке предусмотрены меры по организации синхростарта в двухканальном режиме.

GM: Далее, DDS позволяет формировать разные формы периодических сигналов, пила, трезубец, синк, ступенчатая пила, много чего, это нормально, но я категорически против меандра - на всех частотах, а особенно на частотах выше 100 кГц появляется чудовищный джиттер. Лучше поставить компаратор, или ОУ с высоким Ку и гистерезисом...
Согласен, использовать DDS для формирования меандра - забивание гвоздя микрофоном, то есть микроскопом . А можно еще использовать таймеры МК...
Кстати, отправил письмо Вам на мыло

 

madgrey: Можно при тактовой 16МГц обеспечить 1 МВыб/с, чтобы еще осталось чуть чуть времени для работы с энкодером, кнопками, диодами?
Да, можно. Примерно 35% времени МК будет свободен.

 

Tadas: А еще лучше сделать величину шага переменной, как функцию от скорости вращения

Товарищи-граждане, ну вы учитывайте всё-таки малость ресурсов 2313. Валкодер туда внедрил, и тайни уже на последнем издыхании, 480 байт памяти осталось.

Не, одна кнопка меняет шаг, валкодер отрабатывает увеличение/уменьшение частоты на этот шаг, больше ничего не получится.

 

Я хочу дотянуть свип чуть за 465 кГц, указанное значение на пределе дает 500 кГц, если получится - сильно поможет радиолюбителям, может даже часть из них станет активными участниками проекта... Также интересен момент возможности работы в зонах Найквиста (или за ними я хз, просто слышал пару раз). Тогда в принципе добавить второй диапазон, например 200-700 кГц . Кто нибудь такими делами занимался?

GM: Товарищи-граждане, ну вы учитывайте всё-таки малость ресурсов 2313. Валкодер туда внедрил, и тайни уже на последнем издыхании, 480 байт памяти осталось.

Не, одна кнопка меняет шаг, валкодер отрабатывает увеличение/уменьшение частоты на этот шаг, больше ничего не получится

Поэтому предлагаю в качестве контроллера нового DDS взять хоть бы мегу16 - 16к флеша+1 ОЗУ + ножек сколько нужно...

 

Не надо суетиться, уже есть диапазон 350-550 кГц, и это не предел. Можно сделать даже 1Гц - 800 кГц.

(Замечу в скобках. Я как раз и работаю за зоной Найквиста, у меня Fs=4.166 МГц, а Fсигнала до 2.7 МГц)

 

GM: Tadas: А еще лучше сделать величину шага переменной, как функцию от скорости вращения

Товарищи-граждане, ну вы учитывайте всё-таки малость ресурсов 2313. Валкодер туда внедрил, и тайни уже на последнем издыхании, 480 байт памяти осталось.
Эт понятно, я имел ввиду вариант с двумя контроллерами .
Ведь там управляющему контроллеру по сути делать будет нечего (как и в жизни ).
Так пусть меряет скорость вращения и шаг частоты высчитывает.

 

Господа, давайте самостоятельно один канал БУДЕТ просто поддерживать валкодер, а в полновесной конфигурации - со всеми законами регулировок, видами изменения частоты, шагами и т.д. GM, Tadas, другие нули вопрос пока в другом - давайте определимся с чипом секции генератора, а то тиньки не хватит, 48 - под вопросом, почему - см. выше. Нельзя работать без запаса по ресурсам , не так ли? Сразу после этого знаменательного события я начну рисовать схэму, а там и до проги недалеко.