Автор Тема: Прецизионный генератор на AD9833  (Прочитано 327 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн GM

  • Постоялец
  • ***
  • Сообщений: 219
    • Просмотр профиля
Всем ЗДР.

Тема вышла из давнишнего разговора с Романом RW3ADB, процитирую
вопрос лишь в том, что с контроллерами умеешь общаться тут только ты и Саша АУС. Ну еще может пару человек. Если подобная конструкция будет "собери из готовых модулей" и максимум  залей готовую прошивку и все сразу заработало - оно будет востребовано. Ну и шаг синтеза на дв должен быть 0.01 Гц минимальный. При двух-трех часовой абсолютной нестабильности частоты 0.001 Гц.

По объективным и субъективным причинам только сейчас вплотную подступил к данному вопросу.

Закупил в Китае плату синтезатора AD9833, размер 18мм х13мм, написал тестовую программу. На фото показаны предварительные результаты.

1) синус 137500 Гц, прямо на выходе синтезатора, никаких фильтров.
2) спектр синуса 137500 Гц.
3) синус 1000000 Гц.
4) спектр синуса 1000000 Гц.

Если добавить второй синтезатор, можно построить качественный приёмник ДВ-диапазона, и не только, т.к. синтезатор позволяет генерить качественный синус до 12 МГц (с фильтром на выходе).

Теперь хочу посоветоваться с заинтересованными лицами, куда двигаться и как оформить данный генератор. Толи управлять двумя кнопками + и -, чтобы подогнать синтез к заданной частоте и записать частоту в еепром, толи поставить энкодер, дисплей и аттенюатор, и превратить генератор в простой р/л ГСС. А может ещё какие варианты найдутся? Что скажете?

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

Ещё пара пенсов. Частота опорного генератора практически не имеет значения в пределах 2-25 МГц, т.к. программа рассчитывает коды для фазового аккумулятора, исходя из конкретного значения опорной частоты, записанной в еепром. Ну и напоследок, по ТО уровень спуров порядка -85 дБ и меньше.

Сейчас используется голый МК ATtiny861, в принципе мржно брать любой атмеловский МК, хоть ардуино (для тех, кто не хочет паять).
Зачем нам бумеранг? У нас грабли есть!

Оффлайн GM

  • Постоялец
  • ***
  • Сообщений: 219
    • Просмотр профиля
Re: Прецизионный генератор на AD9833
« Ответ #1 : 03 Май 2020, 20:56:14 »
Добавлю еще фоток, которые не поместились. Поскольку синтезатор позволяет управлять не только частотой, но и фазой, написал фрагмент управления фазой 0 и 90 (почти BPSK :-). [Рука пронесла, поставил фазу 90 вместо 180].

5) спектр почти BPSK, длительность фазы 500 мкс.
6) спектр почти BPSK вблизи.
7) платка синтезатора.
Зачем нам бумеранг? У нас грабли есть!

Оффлайн R7NT

  • Ветеран
  • *****
  • Сообщений: 1423
    • Просмотр профиля
    • E-mail
Re: Прецизионный генератор на AD9833
« Ответ #2 : 03 Май 2020, 20:58:29 »
какова стабильность частоты?
« Последнее редактирование: 03 Май 2020, 21:02:13 от R7NT »

Оффлайн GM

  • Постоялец
  • ***
  • Сообщений: 219
    • Просмотр профиля
Re: Прецизионный генератор на AD9833
« Ответ #3 : 03 Май 2020, 21:08:22 »
Ну, опорный генератор на плате неплох. Досконально не исследовал, но за 2 часа работы частота была в пределах плюс-минус 0.2 Гц.
Генератор можно сдуть и подключить свой собственный, кто помешает? Хоть гиацинт на 5 мег.
Зачем нам бумеранг? У нас грабли есть!

Оффлайн Sergej

  • Старожил
  • ****
  • Сообщений: 353
    • Просмотр профиля
Re: Прецизионный генератор на AD9833
« Ответ #4 : 04 Май 2020, 13:37:44 »
Сейчас используется голый МК ATtiny861, в принципе мржно брать любой атмеловский МК, хоть ардуино (для тех, кто не хочет паять)

Желательно ардуино или распространенные мк вроде тини13, 2313, пик16ф628 и т.д.
Для более новых контроллеров - не у всех программаторы есть, собирать новый программатор ради единичного проекта никто не станет...


Оффлайн GM

  • Постоялец
  • ***
  • Сообщений: 219
    • Просмотр профиля
Re: Прецизионный генератор на AD9833
« Ответ #5 : 22 Май 2020, 00:13:48 »
Коллеги,

Представляю вашему вниманию схему и прошивку генератора на базе DDS AD9833 . Как уже говорилось, диапазон частот генератора 0.1 Гц-12 МГц.

Генератор управляется 4-мя кнопками: "+", "-", "Запись", "Шаг". Функционирование отображается двумя светодиодами. Имеется два основных режима: установка частоты и режим маяка.

Если при включении переключатель 10/0.1 разомкнут, то программа переходит в режим установки частоты, что отображается с помощью светодиода "fADJ". При первом включении выдается частота 137500 Гц. Кнопками "+" и "-" можно выбрать любую частоту с шагом 0.1 Гц или 10 Гц. Таким образом, с помощью не более 200 (!) нажатий можно получить генерацию любой частоты ДВ-диапазона. Выбранную частоту с помощью кнопки "Запись" можно записать в еепром, при последующем включении генератора на выходе будет именно эта частота.

Если при включении переключатель 10/0.1 замкнут, то программа переходит в режим маяка что отображается с помощью светодиода "QRSS". Программа читает частоту установки из еепрома и циклически выдает телеграфное сообщение, записанное в еепроме. Длительность точки устанавливается переменной TAU0, расположенной также в еепром. Цикличность выдачи сообщения определяется переменной PAUSE. Обе переменные 4-х байтные, единица младшего разряда равна 1 мкс. Таким образом, длительность точки может быть от 1 мкс до 4294967295 мкс (т.е. до 4294 сек, перекрывает все длинные моды, привет Роману :-). Также и пауза может быть до 71 минуты (не учитывая длительности самого сообщения).

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

Структуру еепром выложу позднее, что-то спать захотелось :-).
Зачем нам бумеранг? У нас грабли есть!

Оффлайн ra3tts алексей

  • Старожил
  • ****
  • Сообщений: 474
    • Просмотр профиля
    • Home page VLF/LF
    • E-mail
Re: Прецизионный генератор на AD9833
« Ответ #6 : 22 Май 2020, 12:54:04 »
Очень интересно, по гуглил, всё доступно. Я, «танкист» в этой области, но уже появилось желание собрать: во всяком случае, нет внутреннего противления глядя на схему. Спасибо за потраченное время, на разработку этого девайса.

Скажите, нельзя дополнить жк дисплеем? Удобней с набором частоты, посмотреть, что в ячейках памяти записано. Насколько усложнит схему?
.-. .- ...-- - - ...

Оффлайн GM

  • Постоялец
  • ***
  • Сообщений: 219
    • Просмотр профиля
Re: Прецизионный генератор на AD9833
« Ответ #7 : 22 Май 2020, 21:57:25 »
Дополнить можно, почему нет? Программа усложнится конечно, надеюсь, не радикально. Но к сожалению обычный дисплей требует порядка 11 ног МК для подключения. А у тинек их всего 15-16. Так что надо переходить на другие многоножки, на атмеги, например.

Есть, правда, ещё один способ, я его иногда применяю. Добавляю ещё один МК (ту же тиньку, скажем), который занимается дисплеем и клавиатурой. Тогда потребуется всего 2-3 ноги для связи между ними.

По поводу планов с данной схемой.

Во-первых, планирую добавить два режима маяка 1) с QPSK и 2) с DFCW. Вот только не знаю, нужно это кому-то или не нужно? как вы виите, активность коллег-радиолюбителей по данной теме нулевая.

Во-вторых, хочу добавить второй синтезатор, чтобы были квадратуры (синус и косинус любой частоты 0-12 мег). Если удастся разумеется, не в плане ножек, а в плане отображения. Тогда, скорее всего, добавлю дисплей и энкодер, ну а там уж сам бог велел приступить к полноценному ГСС на эти частоты, останется добавить аттенюатор 0-100 дБ, ну и может частотомер. Последний можно было бы и отдельно, да больно неохота на каждое отдельное устройство тратить дисплеи, корпуса, БП и т.п.

Есть ещё вариант - использовать плату ардуины с 328 мегой. У меня есть одна, пока занята под другой проект.
Зачем нам бумеранг? У нас грабли есть!

Оффлайн ra3tts алексей

  • Старожил
  • ****
  • Сообщений: 474
    • Просмотр профиля
    • Home page VLF/LF
    • E-mail
Re: Прецизионный генератор на AD9833
« Ответ #8 : 23 Май 2020, 01:07:28 »
Ваш вариант претензионного генератора, в том виде в котором он есть, интересен тем, что в нём нет ничего лишнего. Простота исполнения и конкретная функциональность: например,  в виде передачи своего позывного – и не только, записанного в еепром. Выехал на точку, достал девайс, в ручную набрал, записал, подключил к PA и в эфир. Не нужна управляющая программа с ноутбук, что бы устройство работало, всё есть в памяти. Дёшево и сердито, если я правильно понял работу девайса.

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

На счёт QPSK ничего сказать не могу, может быть новый проект открыть для этого, что бы не усложнять данный, в любом случае DFCW, вещь нужная. Мне за глаза хватило бы QRSS и DFCW.
К чему веду, что у радиолюбителя должен быть широкий набор средств, чем пользоваться. Кому-то достаточно QRSS и DFCW, и в этом отношении ваш вариант как нельзя кстати, а кому-то захочется чего-то большего, но для этого есть другие варианты. Не обязательно всё в одну «кучу» насовывать и усложнять схему. Зачем усложнять жизнь, все мы разные, каждый берёт то, что ему нужно. ИМХО.
.-. .- ...-- - - ...

Оффлайн Сергей UB1APE

  • Ветеран
  • *****
  • Сообщений: 3900
    • Просмотр профиля
    • E-mail
Re: Прецизионный генератор на AD9833
« Ответ #9 : 23 Май 2020, 01:47:43 »
Обеими руками за вариант Алексея. QRSS-90 и DFCW вполне достаточно. ЖКИ монитор не нужен. подключил к усилителю этот аппарат и в эфир. Для выезда вполне достаточно.
UB1APE (exRA1ADF) Сергей. Самодельный приёмник прямого преобразования. Т-образная ант  высотой 10 метров

Оффлайн GM

  • Постоялец
  • ***
  • Сообщений: 219
    • Просмотр профиля
Re: Прецизионный генератор на AD9833
« Ответ #10 : 23 Май 2020, 21:25:06 »
Начиная тему, я думал о просто хорошем гетеродине для ДВ-приёмника с хорошим синусом, без гармоник и без спуров, чтобы от кварцевого генератора любой частоты работал, ну и чтобы возбудитель передатчика мог выдать любую частоту с дискретом 0.1 Гц или лучше, а маячок был так - сбоку-припёка. А вы, вон куда повернули!

Тогда может и тему новую открыть про маячок? А эту тему оставить под добротный РЧ ГСС с дисплеем, энкодером, аттенюатором, ещё может, чего-нибудь придумаете...

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

1. Точка передается с частотой выше, чем тире?
2. Длительность точки и тире одинакова?
3. Как разделяются буквы, слова и предложения?
4. Каков диапазон длительности точки на практике?

Расскажу об особенностях хранения сообщения. Всего в 861 тиньке 512 байт еепром. Ну, 5 переменных по 4 байта отъедают 20 байт. На сообщение остаётся 492 байта. Сообщение заканчивается чётным нулём, или двумя нечетными.

В каждом байте хранится по символу, все прописные буквы, т.е. A, B, C, ..X, Y, Z и цифры 0, 1, 2, .. 9. При передаче они заменяются кодом Морзе. Можно добавить и русский алфавит, надо ли?

Мне кажется, 492 символа сообщения многовато будет, может быть, разбить на 8 сообщений? Скажем по 60 символов на сообщение или сделать сообщения не фиксированной длины, а произвольной, но чтобы в сумме не превышали 492 байта. Можно и во флеш забить какие-то постоянные сообщения. Другой вопрос, куда столько сообщений и как их вызывать :-)?

Ещё порция вопросов, стоит ли подумать о внешнем дистанционном управлении маяком, скажем, смс сообщениями или по радиоканалу? Или это опять непринципиальные навороты?

[Замечу в скобках, если взять некий опорник с частотой 2.0-2.6 МГц, то шаг перестройки частоты составит 0.00745..0.00931 Гц, т.е. меньше 0.01 Гц, как и завещал нам товарищ Роман RW3ADB, но частота будет генериться от 0.01 Гц до 1..1.3 МГц].

[Наверное, с переменными TAU0 и PAUSE я погорячился, начав с 1 мкс. Может, стоит единицей взять не микросекунду, а миллисекунду?
Что думаете?]
Зачем нам бумеранг? У нас грабли есть!

Оффлайн ra3tts алексей

  • Старожил
  • ****
  • Сообщений: 474
    • Просмотр профиля
    • Home page VLF/LF
    • E-mail
Re: Прецизионный генератор на AD9833
« Ответ #11 : 24 Май 2020, 03:40:48 »
Хороший гетеродин без лишних шумов и прочего мусора тоже нужен и маячок нужен: взял DDS синтезатор с Алли, пробовал в качестве гетеродина, там такое гадюкино с него, просто ужас.

По DFCW:
1.   Точка снизу, тире сверху.
2.   Длительность точки и тире одинаковая. Для DFCW3 - 3с, DFCW10 -10, DFCW60 – 60с и т.д.
3.   Зазор в знаке, между точками и тире, обычно, берут 1/3 от точки, а между знаками зазор равен точке (что бы удобней читать было).

Пример: нужно передать две буквы АА, в DFCW3. Буква А, это точка-тире, получаем: точка - 3с, зазор – 1с, тире – 3с, затем зазор между второй буквой А – 3с, и снова: точка - 3с, зазор – 1с, тире – 3с. Лучше это дело нарисовать, поленился.

Ещё есть зазор между точками и тире – по "высоте". Для меня здесь несколько сложно, может быть более опытных товарищей спросить. Суть в том, что в зависимости от DFCW3 или DFCW120 это расстояние разное, в DFCW3 оно может быть около Герца, а на DFCW120 0,0 сколько-то герца. Всё, глаза слипаются и голова отказывает. Пойду спать.
.-. .- ...-- - - ...

Оффлайн ra3tts алексей

  • Старожил
  • ****
  • Сообщений: 474
    • Просмотр профиля
    • Home page VLF/LF
    • E-mail
Re: Прецизионный генератор на AD9833
« Ответ #12 : 24 Май 2020, 22:04:28 »
Ещё есть зазор между точками и тире – по "высоте".

Правильней - разнос по частоте между точками и тире. Можно попробовать так представить:
Открываем Спектрум Лаб, переводим в режим QRSS3, частота 137777кГц – частота на которой в QRSS3 с помощью точек и тире передаётся информация.

В DFCW3 точки и тире передаются не на одной частоте, а со сдвигом (тире выше, на сколько-то миллигерц или 1 Гц).
 
Выбираем разнос в 1 Гц (Почему 1 Гц? - Позже). Подаём сигнал DFCW3, точки будут на частоте 137777кГц, тире на 1 Герц выше – 137778кГц. Берём линейку, прикладываем к монитору и меряем расстояние между точками и тире, приблизительно 1 – 2 мм, в общем-то, этого расстояния будет достаточно, что бы понять, где точки, где тире.

Это же самое делаем, только в QRSS60. Подаём сигнал DFCW60, берём линейку, замеряем расстояние между 137777 и 137778кГц, расстояние увеличилось до 10мм. То есть, визуально, частотный сдвиг увеличился. Это связано с особенностями работы Спектрум Лаб в длинных модах (мы частоты как бы растягиваем до миллигерц).

Чем плоха, такая большая разница между точками и тире? Если станций несколько, все не поместятся на экран монитора, и по частоте, места будут занимать больше. Чем больше по времени длительность передачи, тем меньше нужен сдвиг между точками и тире: иначе сама программа не сможет визуализировать все сигналы. Если в DFCW3 сдвиг в 1Гц будит приемлем, то в DFCW60 это много, на мой взгляд, не больше 0,1 Гц. 
То есть, этот частотный сдвиг должен быть разумным и его нужно учитывать, при программировании микроконтроллера относительна длительности передач в DFCW3, DFCW10, DFCW30, DFCW60, DFCW 120.   

Почему разнос 1 Гц в DFCW3, а не меньше или больше? В англоязычной части интернета я не нашёл таких рекомендаций - видимо плохо искал (мой английский оставляет желать лучшего), нашёл у нас - у Александра aus, в его синтезаторе он рекомендовал сдвиг d F = 3/dot. Пример: 3/DFCW3 (3 секунды) =1 Гц. 3/ DFCW10 (10 секунд)= 0,3Гц и т.д.

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

Что касается зазора между точками и тире в буквенном символе, на сайте on7yd, рекомендует пространство между точками и тире выбирать 1/3 от длины точки (уже писал об этом). Может и разнос по частоте выбирают, поэтому же принципу - 1/3 от длительности точки?


.-. .- ...-- - - ...

Оффлайн GM

  • Постоялец
  • ***
  • Сообщений: 219
    • Просмотр профиля
Re: Прецизионный генератор на AD9833
« Ответ #13 : 25 Май 2020, 20:35:54 »
Алексей, прям целое исследование провели, спасибо.

Что скажете по поводу длины сообщения? Предлагаю сделать 4 сообщения по 100 знаков каждое, имеется простая возможность выбора номера сообщения без изменения схемы.

Прочитал ещё статью  А.Анкудинова UA3VVM, спасибо нашему rn3aus.

Цитаты оттуда. 6.2. Описание WOLF

"WOLF фактически представляет собой BPSK сигнал со скоростью передачи информации 10 бит в секунду. Как результат теоретически занимаемая полоса частот должна составить 10 Гц, но    из-за особенностей BPSK происходит расширение полосы до 100 Гц, что неприемлемо для LF диапазона (136 кГц) ввиду создания помех другим пользователям радиоэфира."

 "BPSK телеграфирование на 6 дб выгоднее обычного телеграфирования по типу включено/выключено. В обычном телеграфировании сигнал принимает значения 1 и 0, а в BPSK +1 и -1."

Так что, оставлю я, пожалуй, BPSK для экспериментов.
« Последнее редактирование: 25 Май 2020, 20:44:30 от GM »
Зачем нам бумеранг? У нас грабли есть!

Оффлайн ra3tts алексей

  • Старожил
  • ****
  • Сообщений: 474
    • Просмотр профиля
    • Home page VLF/LF
    • E-mail
Re: Прецизионный генератор на AD9833
« Ответ #14 : 26 Май 2020, 06:27:49 »
Здравствуйте! Не знаю вашего имени, подскажите. 4 по 100 за глаза хватит, в походном варианте – это более чем достаточно. Проводить QSO с кем-то, будит не удобно – как мне видится, в ручную вставлять позывной корреспондента без монитора будит не удобно – не оперативно, а в режиме: набрал позывной или текст какой (например - ТЕСТ) и включил с какой-то цикличностью, самое то.

Нужен ли русский алфавит в qrss или dfcw, думаю, нет. Вот в HELL моде, было бы интересно. Дистанционное управление – это уже другой уровень, в походном варианте он не нужен.

Здесь может быть стоит разграничить проекты: отдельно походный вариант с модами qrss, dfcw и другой – с wolf, bpsk, psk, fsk, hell, wspr, voice и т.д.
Не знаю, пользуется кто сейчас wolf или нет, здесь стоит изучить этот момент – если нет какого-то своего желания по экспериментировать, если не ошибаюсь, народ сейчас сидит в wspr-X, slowjt9, opera, qrss, dfcw, EbNaut. Wolf, по своему интересен, здесь уже: кто-как, каждому своё.
.-. .- ...-- - - ...