Походная DSB радиостанция

Обсуждение аппаратуры для радиосвязи.
Аватара пользователя
ru0aog
Сообщения: 2201
Зарегистрирован: 31 янв 2013, 10:49
позывной: RU0AOG
CиБи позывной: Апрель
Имя: Станислав
Откуда: QTH locator: NO65JX # RDA KK-04
Контактная информация:

Re: Походная DSB радиостанция

Сообщение ru0aog » 05 апр 2018, 09:47

Подковыриваю библиотеку и понемногу разбираюсь.
Для меня неудобство библиотеки в том, что она использует только модуль SPI кристалла ATMega, соответственно, AD9833 можно подключать только к линиям:
CLK(AD9833) -> SCK(ATMega) - SPI Clock pin,
DAT(AD9833) -> MOSI(ATMega) - SPI Master Out Slave In data pin.
Хотя, может это и правильно....
Ну и
FNC(AD9833) -> User defined(ATMega) - SPI transfer enable (active LOW).

Итак, смотрим, что делается в библиотеке.
Первым делом запускаем Begin(); а в нём - запуск SPI, задержка 100 мс и сброс.
Что в сбросе?

Код: Выделить всё

	WriteRegister(RESET_CMD);
	delay(15);
причём
#define RESET_CMD 0x0100
т.е. вписываем 0x0100.

Как это делается? Смотрим

Код: Выделить всё

WriteRegister ( int16_t dat ) {
	SPI.setDataMode(SPI_MODE2);
	WRITE_FNCPIN(LOW);
	SPI.transfer(highByte(dat));
	SPI.transfer(lowByte(dat));
	WRITE_FNCPIN(HIGH);
}
Осталось узнать, что это за фигня
WRITE_FNCPIN(HIGH);

Код: Выделить всё

#ifdef FNC_PIN
	#include "digitalWriteFast.h"
	#define WRITE_FNCPIN(Val) digitalWriteFast2(FNC_PIN,(Val))
#else
	#define WRITE_FNCPIN(Val) digitalWrite(FNCpin,(Val))
#endif
Это установка линии, по типу digitalWrite().

Да, и ещё - что такое SPI_MODE2?
Это определение полярности и фазы линий.
Для режима 2:
CPOL = 1 (тактовая линия неактивна при 1, тактами считаются провалы до нуля),
CPHA = 0 (запись данных происходит по падающему фронту тактовой линии).
Свое изделие изъяна не имеет.
Аватара пользователя
ru0aog
Сообщения: 2201
Зарегистрирован: 31 янв 2013, 10:49
позывной: RU0AOG
CиБи позывной: Апрель
Имя: Станислав
Откуда: QTH locator: NO65JX # RDA KK-04
Контактная информация:

Re: Походная DSB радиостанция

Сообщение ru0aog » 05 апр 2018, 11:01

Ага.
AD9833 имеет несколько регистров:
- регистр управления (14 бит),
- два регистра частоты (2х2х14 бит),
- два регистра фазы (2х12 бит).

Интерфейс SPI осуществляет передачу данных словами - по 16 бит. Слова разделяются между собой состоянием линии FSYNC.
Регистры у нас 14-битные, а два оставшихся старших бита используются для определения, в какой регистр писать данные.
То есть, мы уронили линию FSYNC и AD-шка ждёт от нас данные.
Мы передаём сначала 15-ый, а затем 14-ый биты. Допустим это 00. И AD-шка понимает, что остальные биты в слове пойдут в регистр управления.
Потом мы поднимаем FSYNC и ждём следующего слова.

Выходит:
00хх - регистр управления,
01хх - регистр частоты FREQ0,
10хх - регистр частоты FREQ1,
110х - регистр фазы PHASE0,
111х - регистр фазы PHASE1.

Регистров фазы два, 15 и 14-ых битов не хватает, поэтому для различения регистров фаз используется бит 13.

Итак, первым делом нужно ввести AD-шку в RESET (13 и 8 биты регистра управления = 1),
затем вписать значение частоты и вывести из RESETа (13 бит регистра управления = 1).

Пускай частота будет 3650000 Гц * 2^28 / 25000000 = 39191577 = 0х0256 0419 = 0010 0101 0110 0000 0100 0001 1001.
Разбиваем на два блока по 14 бит:
00100101011000 и 00010000011001, т.е. СТ=0х958 и МЛ=0х419.
Добавляем к СТ и МЛ 01, т.к. запись обеих слов осуществляется в регистр FREQ0.
Вписываем сначала младшую, а затем старшую части.
СТ = 0100 1001 0101 1000 = 0х4958
МЛ = 0100 0100 0001 1001 = 0х4419.

Т.е. передать слова:
0x2100 - вход в Reset,
0х4419 - МЛ частота,
0х4958 - СТ частота,
0хC000 - фаза нулевая,
0x2000 - выход из Reset-а.

Попробуем вот так:
DDS_1_04.rar
(1.94 КБ) 73 скачивания
Свое изделие изъяна не имеет.
Аватара пользователя
ru0aog
Сообщения: 2201
Зарегистрирован: 31 янв 2013, 10:49
позывной: RU0AOG
CиБи позывной: Апрель
Имя: Станислав
Откуда: QTH locator: NO65JX # RDA KK-04
Контактная информация:

Re: Походная DSB радиостанция

Сообщение ru0aog » 05 апр 2018, 20:49

Скетч загрузил. AD-шка чего-то там генерирует.
Только вот не совсем то, что я хотел...
Амплитуда маловата:
01.JPG
И частота немного не та:
20180405_202516.jpg
Вместе с подсветкой LCD, потребляется 12Вх52 мА:
20180405_202554.jpg
Свое изделие изъяна не имеет.
Аватара пользователя
ru0aog
Сообщения: 2201
Зарегистрирован: 31 янв 2013, 10:49
позывной: RU0AOG
CиБи позывной: Апрель
Имя: Станислав
Откуда: QTH locator: NO65JX # RDA KK-04
Контактная информация:

Re: Походная DSB радиостанция

Сообщение ru0aog » 06 апр 2018, 09:26

Так, нашёл косяк в коде.
Регистры загружались неправильно - старший байт грузился по два раза.
Попробую исправить, добавил генерацию меандра:
DDS_1_05.rar
(2.34 КБ) 85 скачиваний
Кстати, вот хорошее техописание.
Свое изделие изъяна не имеет.
Аватара пользователя
ru0aog
Сообщения: 2201
Зарегистрирован: 31 янв 2013, 10:49
позывной: RU0AOG
CиБи позывной: Апрель
Имя: Станислав
Откуда: QTH locator: NO65JX # RDA KK-04
Контактная информация:

Re: Походная DSB радиостанция

Сообщение ru0aog » 07 апр 2018, 01:17

С ходу победить AD-шку не получилось, пришлось подключить логический анализатор и подкорректировать задержки:
02.GIF
Но дело было не в них. Нужно было выйти из ресета и только потом устанавливать регистры. Странно. В даташитовском примере не выходили.
И особо было оговорено, что ресет регистры не трогает.

Кое-что уже есть:
Валкодер крутится, шаг меняется, частота переставляется.
03.GIF
ЦАП отключил, чтобы получить меандр.

Ошибка по китайскому частотомеру +18 Гц. Это постоянная разница показаний, и вызвана она несовпадением частот опорников частотомера и синтезатора. Имхо - некритично.
20180407_010841.jpg
Про стабильность говорить не надо, смотрел с точностью 0,1 Гц - стоит ровно.
Потребляемый ток 12Вх55мА (с подсветкой).
И да, я тут особо не спешил. Инициализация с загрузкой занимают 110 мс времени. Если нужна будет непрерывная перестройка, то буду ускорять.
Вложения
DDS_1_08.rar
(2.48 КБ) 82 скачивания
Свое изделие изъяна не имеет.
Аватара пользователя
ru0aog
Сообщения: 2201
Зарегистрирован: 31 янв 2013, 10:49
позывной: RU0AOG
CиБи позывной: Апрель
Имя: Станислав
Откуда: QTH locator: NO65JX # RDA KK-04
Контактная информация:

Re: Походная DSB радиостанция

Сообщение ru0aog » 09 апр 2018, 15:05

Пробую дописать S-метр:
DDS_1_09.rar
(3.15 КБ) 83 скачивания
Свое изделие изъяна не имеет.
Аватара пользователя
ru0aog
Сообщения: 2201
Зарегистрирован: 31 янв 2013, 10:49
позывной: RU0AOG
CиБи позывной: Апрель
Имя: Станислав
Откуда: QTH locator: NO65JX # RDA KK-04
Контактная информация:

Re: Походная DSB радиостанция

Сообщение ru0aog » 10 апр 2018, 00:59

Поработал над S-метром.
Первоначальный вариант забраковал, слишком длинная шкала:
20180409_204336.jpg
Сделал более компактной, вошло также отображение частоты В:
20180410_004950.jpg
Шкала S-метра - двухрежимная.
Пустая:
20180410_005426.jpg
при малых сигналах заполняется палочками:
20180410_010125.jpg
На больших сигналах - инверсными плюсиками поверх палочек:
20180410_005505.jpg
Также ввёл коррекцию частоты (на 20 Гц).
Частота В пока ещё не переключается, нету кнопки.
Вложения
DDS_1_12.rar
(3.3 КБ) 79 скачиваний
Свое изделие изъяна не имеет.
Аватара пользователя
ua9udq
Сообщения: 137
Зарегистрирован: 17 фев 2015, 01:19
позывной: ua9udq
CиБи позывной: 302SD177
Имя: Сергей
Откуда: Новокузнецк
Контактная информация:

Re: Походная DSB радиостанция

Сообщение ua9udq » 10 апр 2018, 09:41

Станислав,глянь здесь http://ur5yfv.com.ua/index.php/stati/ra ... ast-2.html
есть модули для правильной работы энкодера
Аватара пользователя
ru0aog
Сообщения: 2201
Зарегистрирован: 31 янв 2013, 10:49
позывной: RU0AOG
CиБи позывной: Апрель
Имя: Станислав
Откуда: QTH locator: NO65JX # RDA KK-04
Контактная информация:

Re: Походная DSB радиостанция

Сообщение ru0aog » 10 апр 2018, 10:23

Спасибо, потом подправлю.
Но похоже, это сам энкодер такой. Если крутить, чуть вытянув ручку на себя, то и на высокой скорости переключается чётко :)
Свое изделие изъяна не имеет.
Аватара пользователя
ru0aog
Сообщения: 2201
Зарегистрирован: 31 янв 2013, 10:49
позывной: RU0AOG
CиБи позывной: Апрель
Имя: Станислав
Откуда: QTH locator: NO65JX # RDA KK-04
Контактная информация:

Re: Походная DSB радиостанция

Сообщение ru0aog » 18 апр 2018, 00:40

Вот спаял плату приёмника.
Подключил синтез, и первое включение, антенна напрямую - что-то ловится :)
Слушаю через звуковую карту, записал немного:
test1_17_04_2018.mp3
(2.01 МБ) 261 скачивание
Правда надо поточнее настроить ФНЧ, но и на диапазоне помехи, и я всё же слышу сразу две боковых...
Громкие щелчки - это я перестраиваюсь валкодером.

Ограничение на выходе НЧ наступает при +/- 2,5 В (амплитудное).
В основном, сигналы +/-0,4...0,6 В.
Шум эфира сейчас +/- 0,1...0,15 В.
Без антенны собственный шум +/- 0,020 В, и то, это наводки от синтезатора.

Вот почище участок нашёл, вроде Уфа проходит:
test2_17_04_2018.mp3
(1.27 МБ) 235 скачиваний
Синтез с подсветкой и приёмником, все вместе едят 12В х 65...70 мА.
Свое изделие изъяна не имеет.
Ответить