Телеграфный маяк для настройки аппаратуры под бенды 12m/10m/6m/4m/2m/70cm/23cm/13cm/6cm.
Давно хотел сделать универсальный УКВ\СВЧ маяк для проверки антенн\трансиверов\трасвертеров. Ну и чтобы сборка не требовала пайки своей платы, настройки и прочих проблем. Решил разработать маяк под себя.
Выбор генератора пал на модуль VCO MX2870 с алиэкспресс.
Для генерации управляющих сигналов потребуется маломощный микроконтроллер, он будет задавать частоту генерации и управлять ключеванием CW по заданному шаблону.
Выбор пал на STM32F103C8T6
Все элементы монтируются по следующей схеме.
Чтобы получить из дифференциального выхода MAX2870 небалансный (обычный коаксиальный), применяем балун на ТДЛ из 3-4 витков коаксиала на кольце с высокой проницаемостью.
Например вот так, только укоротить лишние провода:
Далее дело за прошивкой STM32 контроллера. Прошивки и исходные коды я выложил в репозиторий https://github.com/XGudron/UA3REO-Beacon
В корне лежат 2 готовых прошивки под кварц 25мгц (встроенный в плату MAX2870) и для 10мгц (в случае использования OCXO генератора). Эти прошивки настроены на частоты 2м,70см,23см,6см бендов, а маяк передаёт «CQ CQ Beacon 73» на скорости 25WPM.
Чтобы настроить прошивку под себя необходимо установить Keil IDE (среда разработки), открыть файл STM32/Core/Inc/config.h и изменить там частоты\скорость\текст\мощность под себя.
Для прошивки используется обычный USB кабель и программа STM32CubeProgrammer или любая другая DFU утилита, умеющая работать с hex файлами stm32.
В итоге получается достаточно компактная, функциональная и главное простая в сборке конструкция. Питается от 5 вольт обычным павер-банком, что обеспечивает мобильность маяка.
Прошивка открыта для доработок любыми желающими радиолюбителями, если будет желание встроить управление фильтрами через GPIO выводы, или добавить цифру вроде Opera — пожалуйста, делитесь своими разработками и я добавлю их в репозиторий проекта.
UPD: добавил и проверил возможность работы маяка на 10ггц диапазоне — в режиме излучения третьей гармоники. Идеально для настройки аппаратуры.
Успехов в сборке, 73 de UA3REO.
подутратил навыки радиолюбительские, извиняюсь…
можно фотку «балун на ТДЛ из 3-4 витков коаксиала на кольце с высокой проницаемостью» и марку колечка?
и
Keil IDE — я зашел на их сайт, а там куча всяких IDE — а узнать какую конкретно надо качать, чтобы поправить программу маяка
спасибо!
Доброго дня!
Фотку приложил в статью, по хорошему только длину проводников и земли надо укротить, но если не стоит цель выжать максимум мощности и дальнобойности — не страшно.
Подключение согласно схеме над фото. Кабель RG-178, 4 витка, кольцо точно не обмерял, но вроде М1000НМ, первым делом стоит поэкспериментировать с теми что есть у вас в наличии. В отличие от классических трансформаторов где марка влияет на частоту, в ТДЛ вся трансформация происходит внутри кабеля.
а диаметр кольца? если это важно 🙂
Keil лучше взять зарегистрированный https://rutracker.org/forum/viewtopic.php?t=6294452
Скачал поставил, но пришлось пошаманить:
Открыл проект \UA3REO-Beacon-main\STM32\MDK-ARM\UA3REO-Beacon.uvprojx
The following Device Family Pack(s) are required by the project: Keil:STM32F1xx_DFP:2.4.0
Refresh Pack descriptions
SSL caching disabled in Windows Internet settings. Switched to offline mode.
Cannot download file http://www.keil.com/pack/Keil.STM32F1xx_DFP.2.4.0.pack: No internet connection — Please check your internet settings
Error #550: Requested device STM32F103C8(STMicroelectronics) not found for target ‘UA3REO-Beacon’
1. Скачал http://www.keil.com/pack/Keil.STM32F1xx_DFP.2.4.0.pack
Импортировал Import
Открыл проект все ОК
Build:
Build started: Project: UA3REO-Beacon
*** Target ‘UA3REO-Beacon’ uses ARM-Compiler ‘Default Compiler Version 5’ which is not available.
*** Please review the installed ARM Compiler Versions:
‘Manage Project Items — Folders/Extensions’ to manage ARM Compiler Versions.
‘Options for Target — Target’ to select an ARM Compiler Version for the target.
*** Build aborted.
2. Скачал https://www.mediafire.com/file/gyqs39w66v1tkq7/ARMCC.zip/file
Архив содержит каталог ARM CC. Это компилятор v5 из MDK-ARM v5.36. Скопировал его в каталог \Keil_v5\ARM\
В файл \Keil_v5\TOOLS.INI в конце добавил:
ARMCCPATH1=».\ARMCC» («5.06 update 7 (build 960)»)
BOOK12=»ARMCC\sw\info\releasenotes.html» («Release Notes for ARMCC 5.06u7″,GEN)
BOOK13=»HLP\DUI0375G_02_mdk_armcc_user_guide.pdf» («ARM Compiler v5.06 for µVision (PDF)»,GEN)
BOOK14=»HLP\DUI0377G_02_mdk_armlink_user_guide.pdf» («ARM Linker v5.06 for µVision (PDF)»,GEN)
DEFAULT_ARMCC_VERSION_AC5=»V5.06 update 7 (build 960)»
Все скомпилировалось нормально
Спасибо! перевёл проект на 6ю версию компилятора, который идёт в комплекте с Keil, чтобы упростить жизнь другим конструкторам.
Кольцо использую небольшое: 6мм высота, 12мм внешний диаметр, 8мм внутренний. Размер влияет только на то, чтобы уместились витки, а ограничение по мощности в данном случае не важно.
По стабильности частоты стандартного генератора не подскажу — почти сразу его демонтировал после первых запусков, и подключил OCXO. Но тут скорее зависит от цели маяка. Если делать общественный маяк, находящийся на улице и по которому другие радиолюбители смогут подстраивать частоту своих приёмников — OCXO будет необходим. Если личный маяк для настройки антенн — то гуляние частоты не должно мешать, она ведь не дрожит как бешенная, просто смещена в зависимости от температуры и погрешности.
да, все компилируется, спасибо!
получил компоненты сегодня, на днях буду креативить.
OCXO буду брать, крайне нужна стабильность.
No DFU detected и все тут…
Поставьте перемычку BOOT0 в единицу, BOOT1 в ноль, при включении в таком режиме микроконтроллер переходит в DFU режим для прошивки
да, делал и так…
и поставил драйвера насильно STM Device in DFU Mode…
один результат на W10:
Запуск этого устройства невозможен. (Код 10) Сбой запроса дескриптора USB-устройства.
ну и ST-LINK V2 тоже не работает…
что-то у меня с системой
жаль, что в самом начале словил стену
вообще непонятно что делать
Мне кажется это плата STM32 убитая, если DFU не работает, то что-то с процессором явно
STLINK V2 китайский — не работает, хотя вроде serial номер выдает какой-то
перепробовал несколько STM32 не определяются
явно что-то с системой
однако Arduino работает без проблем всегда
поставил на другой комп — все тоже самое…
неужели все STM битые мне прислали?
ну тогда я бессилен.
Ардуино здравствуй.
можете мне скинуть ваши драйвера/программы?
чтобы уж наверняка
я не знаю что еще сделать
короче,
на другом компе запустился STLINK V2
обновил версию прошивки
запустился STLINK V2 и на первом компе
STCUBEPROGRAMMER не коннектится
21:30:59 : ST-LINK SN : 300037000900004A4735544E
21:30:59 : ST-LINK Firmware version : V2J37S7
21:30:59 : Connected via SWD.
21:30:59 : SWD Frequency = 4,0 MHz.
21:30:59 : Connection mode : Normal.
21:30:59 : Debug in Low Power mode enabled.
21:30:59 : Device ID:0x410
21:30:59 : Device flash Size : 128KBytes
21:30:59 : Device family :STM32F10xx Medium-density
Если пишет сбой декриптора, то значит до драйверов даже дело не доходит, компьютер просто не может получить ответ от устройства.
Может USB кабель другой попробовать?
Но на всякий случай — вот дистрибутив что я ставил, он же и драйвера должен установить https://www.dropbox.com/s/9ftkojmrjtn922m/SetupSTM32CubeProgrammer_win64_v2.9.0.exe?dl=1
прошитый через STLINK STM работает, светодиод мигает
но как его не включай (в т.ч. boot0=1), на двух компах — сбой дескриптора всегда
новые из упаковки 4 шт C8 и 1 шт C6 — тоже самое
Тогда можно попробовать прошить напрямую из Keil, он тоже умеет работать с ST-Link v2, кнопка F8 после компиляции прошивки
нажал F8
Keil пишет — Error: Not a genuine ST Device! Abort connection.
Erase Done.
Programming Done.
Verify OK.
Flash Load finished at 22:11:24
и после этого STM перестал мигать светодиодом, даже после перепрошивки HEXa через ST-LINK UTILITY…
прошил свежий STM через ST-LINK UTILITY — тот мигает (судя по всему под азбуку морзе)
а я ведь уже припаял ножки к тому экзмепляру STM
и хотел спросить как коннектить ножки питания с MAX
🙁
Я кинул 5 вольт на OCXO и MAX, а уже с платы MAX соединил 3.3 вольта на STM32
понял спасибо!
Какая-то магия, 5 STM32 и за ним ещё ST-Link чтобы сгорели это что-то невероятное 🙁 надо искать проблему, может компьютер статикой шьёт или ещё что-то нехорошее 🙁
я думаю так и есть, что-то с USB у него не то
через UART все заработало
а насколько гуляет частота маяка допуcтим для частоты 1 Ghz ?
это я к потребности в «OCXO генератор (чтобы не гуляла частота маяка)»
думаю брать не брать…
вобщем все, катастрофа полная
перестал определяться и ST-LINK V2… сбой дескриптора …. на всех компах…
время и деньги потрачены впустую…
запустить MAX2870 на Arduino не хватит мозгов…
подключил через UART FTDI232, BOOT0 = 1, TX232 на A10, RX232 на A9
работает CubeProgrammer 🙂
вопрос с программированием решен
следующая проблема настигла:
прошивал, светодиод мигает
припаивал гребенку A3-A7 — после чего перестает мигать светодиод на STM в такт морзе — на двух STM
на 3-м припаял — светодиод мигает
подключаю к MAX — горит синий и все не мигает, отключаю — мигает
в SDRSharp не вижу несущей
как все это оттестировать — непонятно, где и как искать трабл
должен мигать светодиод или нет
можете мне прошивку скинуть без OCXO, например на 1000 мГц на одну частоту — для отладки?
я у себя частоты менял — прошиваю — светодиод не мигает
судя по всему не инициализируется MAX с STM
или ответа нет или что
светодиоды красные горят непрерывно и все
зеленый на MAX не горит (если что)
пытался как то вывести статус на светодиод — но как на один вывести все статусы? 🙂
через UART я провода задолбался подключать отключать
без отладчика не реально понять что происходит абсолютно
наверно придется статусные светодиоды припаивать к разным ногам 🙂
Андрей, доброго дня! рад что заработала прошивка.
В корне проекта на github лежит прошивка без ocxo, для стандартного кварца max на 25мгц UA3REO-Beacon-25Mhz-XO.hex
Светодиод должен мигать всегда, и с max и без. Если тухнет, то что-то зависает на этапе инициализации max’а.
С отладкой на портах и на одну частоту сделаю чуть позже, напишу отдельно как будет готово.
сделал отладочные сигналы светодиодом
итоги
подключенный к MAX STM32 виснет на TRANSMITTER_Init();
что еще заметил — неподключенный к MAX STM32 запускается, но не мигает CW
потом рукой коснешься А3-А7 все вместе — начинает мигать CW, то есть TRANSMITTER_Init(); проходит только в ручном режиме
еще:
почему то STM32 не реагирует на кнопку reset, только отключение питания и потом включение перезапускает его на начало исполнения программы
виснет в void MAX2870_Init(uint64_t Frequency) вот здесь
while(HAL_GPIO_ReadPin(MAX_LD_GPIO_Port, MAX_LD_Pin) == GPIO_PIN_RESET) {
HAL_Delay(1);
}
Ножку LD MAX2870 держит в нуле пока настраивает PLL внутри, ждёт захвата петли ФАПЧ. STM32 ждёт пока сигнал не станет единицей (захват произошёл).
С генератором точно всё в порядке? сигнал есть? В файле main/STM32/Core/Inc/config.h частота соответствует частоте генератора на плате?
я установил «под кварц 25мгц (встроенный в плату MAX2870)»
#define REFERENCE_CLOCK 25000000 //by default 10000000 //
у меня только MAX плата и STM сцеплены
на частоте 100 мГц несущая есть (кварц MAX)
на 25 мГц несущей нет
errcode = MAX2870_SetReference(REFERENCE_CLOCK, 1, MAX2870_REF_UNDIVIDED); // int MAX2870_ERROR_NONE
errcode = MAX2870_SetFrequency(Frequency, POWER_LEVEL, 0, MAX2870_AUX_FUNDAMENTAL, true, 0, 10000); // int MAX2870_ERROR_NONE
проверял — обе дают errcode == MAX2870_ERROR_NONE
собственно, MAX2870_SetReference и MAX2870_SetFrequency
обе выдают MAX2870_ERROR_NONE и без подключения к MAX, так что это ни о чем не говорит
проверьте пожалуйста, может у вас тоже не работает от встроенного 25 мГц ?
может надо переключить MAX на встроенный генератор?
нужно ли выходы MAX подключать?
а то у меня нет колечка, я просто провод воткнул в один из выходов
Андрей, доброго дня!
Провода в один из выходов будет достаточно, на работу не влияет. Встроенный генератор также сразу подключен на заводской плате.
Я загрузил в github обновление прошивки — снизил скорость обмена по шине данными и добавил задержки, чтобы срабатывание было более чётким, опробуйте как будет возможность.
спасибо за помощь!
попробовал:
STM теперь устойчиво выходит на режим «CW мигания»
MAX на режим зеленого огня — не выходит…
несущая 100мГц есть, в остальных местах — нет
мне бы как то проверить — MAX вообще работает?
где расположить проверочный код? не могу соориентироваться в управлении MAX
получить от него статус какойнибудь чтоли…
В прошивке и драйвере нет режима чтения, только запись 🙁 линия на чтение даже не подключена за ненадобностью
А есть осфиллограф под рукой? проверить хоть наличие сигнала на генераторе и что управляющие сигналы с STM32 доходят до MAX
большая просьба — добавить в проект вывод в COM порт А9 А10 отладочной информации
я никак не могу разобраться, по сравнению с ардуино все просто космически непонятное…
«В прошивке и драйвере нет режима чтения, только запись 🙁 линия на чтение даже не подключена за ненадобностью
А есть осциллограф под рукой? проверить хоть наличие сигнала на генераторе и что управляющие сигналы с STM32 доходят до MAX»
нет, осциллографа не имеется… думал не понадобится никогда и не беру
а можно ли подключить линию на чтение и чтото прочитать? или там в МАХ плате не предусмотрено вообще это?
может инструкция есть по взаимодействию с MAX? я поискал но не нашел вразумительного кроме про чип
без взаимодействия с MAXв обе стороны отладить невозможно… или был бы у него режим управления светодиодом например, чтобы статус сообщить
в инструкции к МАХ нашел:
For a clean clock at start up, after power on, follow this sequence of programming:
• Register 5, Address 0X05. Wait 20ms
• Register 4, set bit 4 and 8 to 0 to keep RFOUT disabled
• Register 3, Address 0X03
• Register 2, Address 0X02
• Register 1, Address 0X01
• Register 0, Address 0X00
• Register 5, Address 0X05
• Register 4, set bit 4 and 8 to 0 to keep RFOUT disabled
• Register 3, Address 0X03
• Register 2, Address 0X02
• Register 1, Address 0X01
• Register 0, Address 0X00
To enable RFOUT, Register 4, Address 0X04, set bit 4 and 8 to 0.
Register programming order should be address 0x05, 0x04, 0x03, 0x02, 0x01, and 0x00. Several bits are double-buffered to update the settings at the same time. See the register descriptions for double-buffered settings.
Read Sequence
Register 0x06 can be read back through MUX_OUT. The user must set MUX = 1100. To begin the read sequence, set LE to logic-low, send 32 periods of CLK, and set LE to logic-high. While the CLK is running, the DATA pin can be held at logic-high or logic-low for 29 clocks, but the last 3 bits must be 110 to indicate register 6. Then finally, send 1 period of the clock. The MSB of register 0x06 appears on the falling edge of the next clock and continues to shift out for the next 29 clock cycles (Figure 2). After the LSB of register 0x06 has been read, the user can reset MUX = 0000.
все? надо покупать осциллограф? 🙂
Ну либо дорабатывать прошивку под чтение 🙂 если бы это было задачей 5 минут, давно бы уже прислал 🙁
я б доработал, но вообще не пойму как это происходит
Примерно так я себе это представляю:
1. Устанавливаем STM32CubeMX, открываем файл UA3REO-Beacon.ioc
2. Переводим SPI шину в режим дуплекса (сейчас в режиме мастера и только читает)
3. Запускаем генерацию проекта, чтобы изменения отразились в файлах прошивки
4. В дайвере пишем функцию на чтение регистров, по аналогии с записью https://github.com/XGudron/UA3REO-Beacon/blob/main/STM32/Core/Src/MAX2870.c#L364
5. До или после инициализации MAX читаем нужные регистры и выводим в отладку https://github.com/XGudron/UA3REO-Beacon/blob/main/STM32/Core/Src/transmitter.c#L6
нашел вот такую прошивку для Arduino
все хорошо, но не могу понять где у MAX пин MISO или LockPin?
// use hardware SPI pins for Data and Clock
const byte SSpin = 10; // LE — MAX2870_PIN_SS = 10; ///< Ard Pin for SPI Slave Select
const byte LockPin = 12; // MISO — Master Input, Slave Output: данные от ведомого к ведущему. Другие обозначения: SDO, DO, SO. Arduino: пин 12
const byte CEpin = 9; // CE
//init(SSpin, LockPinNumber, Lock_Pin_Used, CEpin, CE_Pin_Used)
//initialize the MAX2870 with SPI SS pin, lock pin, true/false for lock pin use and CE pin use — CE pin is typically LOW (disabled) on reset if used;
//depending on your board, this pin along with the RF Power Down pin may have a pullup or pulldown resistor fitted and certain boards have the RF Power Down pin (low active) on the header
vfo.init(SSpin, LockPin, true, CEpin, true);
сорри ссылку забыл https://github.com/brycecherry75/MAX2870
подключил MISO D12 (ARDUINO) -> MUX (MAX2870)
команда STATUS выдала:
R: 1
Reference doubler and divide by 2 disabled
Int: 250
Fraction: 0
Mod: 4095
Output divider: 1
Output divider power of 2: 0
PFD frequency (Hz): 10000000.00
Frequency step (Hz): 100000
Frequency error (Hz): 0
Current frequency (Hz): 2500000000.000000
Lock pin HIGH
OK
для пробы, команда
STEP 10000 ->
STATUS ->
выдала
…
Frequency step (Hz): 10000
…
то есть MAX принимает устанавливает и отвечает судя по всему
остальные команды я не понял как применять
да, и зеленый огонек на MAX загорается
Андрей, доброго дня!
Это отличные новости, значит аппаратно проблем нет и дело явно в драйвере\файле MAX2870.c , понять бы только где проблема и почему она не проявляется у меня 🙁
Ну либо в STM32 почему-то не работает SPI контроллер.
вобщем приделал экранчик, вывожу R6
всегда выдает 1800007E на всех бэндах
ADC всегда = 0
VCO всегда = 15
А что даташит говорит по этому поводу? получается MAX вообще никаких команд не принимает?
один раз загорался зеленый … так и не понял как
подключил MISO D12 (ARDUINO) -> LD (MAX2870)
MUX не надо…
не могу добиться LOCK… green light
REF 100000000 2 HALF
FREQ 126000000 2 2 FUNDAMENTAL
->
R: 2
Reference divide by 2
Int: 161
Fraction: 7
Mod: 25
Output divider: 32
Output divider power of 2: 5
PFD frequency (Hz): 25000000.00
Frequency step (Hz): 100000
Frequency error (Hz): 0
Current frequency (Hz): 126000000.000000
Lock pin LOW
CE pin HIGH
OK
был зеленый при включении питания — это сбой видать
так все время LOCK LOW
вспомнил, что на ардуино вольтаж другой уровней
переделал для STM напоследок
и о чудо — вроде читает R6 (последние три бита принятого = 110)
только какие биты дают статус MAX или причину не LOCK?
(делаю на арудино так как там через USB программируется и не надо провода дергать)
вручную зажег LOCK — green работает
вот функции:
MAX2870_R[0x05] = BitFieldManipulation.WriteBF_dword(22, 2, MAX2870_R[0x05], 0b00); //set LOCK LOW GREEN OFF
MAX2870_R[0x05] = BitFieldManipulation.WriteBF_dword(22, 2, MAX2870_R[0x05], 0b11); //set LOCK HIGH GREEN ON
то есть можно сигнализировать статус LOCKом
НО!
толку пока нет, так как не знаю, от чего этот статус должен зависеть, что подкручивать, от чего LOCK зависит непонятно….
есть такие функции:
//Lock-detect speed adjustment. 0 = fPFD 32MHz
MAX2870_R[0x02] = BitFieldManipulation.WriteBF_dword(31, 1, MAX2870_R[0x02], 0); // Lock Detect Speed
MAX2870_R[0x02] = BitFieldManipulation.WriteBF_dword(8, 1, MAX2870_R[0x02], 1); // Lock Detect Function, int-n mode
MAX2870_R[0x02] = BitFieldManipulation.WriteBF_dword(8, 1, MAX2870_R[0x02], 0); // Lock Detect Function, frac-n mode
может есть какие мысли куда двигаться?
ни в какую не хочет LOCK
как эта плата переключает со встроенного генератора на внешний?
может в этом суть?
Генератор на этой плате выбирается с помощью конденсаторов, я выпаивал предустановленный и конденсаторами пускал сигнал с разъёма https://disk.yandex.ru/i/4Fj9RLquxVDalQ (поставил по диагонали)
Заказал внешний ref 10 МГц….
Однако 100мгц есть генерация встроенного.
Откуда берётся 25 МГц?
Я не видел нигде такой частоты в документации
Хотя и со 100 МГц lock не приходит…
Ps. осциллограф на али fnirsi 5012h
Пойдет такой?
все, сдаюсь… ни в какую не хочет работать…
попытка прочитать R6 выдает 7С
все забрасываю до каких-то лучших времен…
Попробуйте с внешним генератором на 10мгц, а если не поможет — созвонимся, перешлёте мне по почте MAX+STM32 и всё отлажу со своей аппаратурой и верну, покупать осциллограф ради одного маяка не вижу смысла.
ок 🙂
«А что даташит говорит по этому поводу? получается MAX вообще никаких команд не принимает?»
MAX зеленый LED LOCK управляется со стороны программы через MAX2870_R[0x05] = BitFieldManipulation_WriteBF_dword(22, 2, MAX2870_R[0x05], 0b11)
а вот например записать в бит 31 = 1 через MAX2870_R[0x03] = BitFieldManipulation_WriteBF_dword(31, 1, MAX2870_R[0x03], 0x1) — не записывает
тут не знаю как это интерпретировать … кроме как что R6 неверно считывается …
может надо выполнить при включении это:
Upon power-up, the registers should be programmed twice with at least a 20ms pause between writes. The first write ensures that the device is enabled, and the second write starts the VCO selection process. Recommended to turn-off the outputs during this sequence and then turnon the outputs using RFA_EN, RFB_EN.
именно это ничего не дало
продолжил попытки прочитать R6:
биты VCO=63 всегда, если VAS enabled
при ручном изменении VCO — изменяет номер VCO корректно
отрабатывает и VAS — disabled/enabled правильно — дает не дает изменить биты VCO
в совокупности с правильной работой битов, которыми управляется светодиод на плате МАХ, можно сделать вывод, что МАХ работает, через SPI данными обменивается
но вот частоту не устанавливает/ не генерирует, VCO не меняет автоматом…
еще: убрал RESET MAX_CE везде в программе — стали биты AGC = 111 (Reads back the ADC reading of the VTUNE)
правильно отрабатывается и бит POR readback status (0 = POR has been read back,1 = POR has not been read back (registers at default))
судя по всему, внутреннее тактирование 50 kHz работает, а вот от внешнего генератора сигнал на вход MAX не поступает…
OCXO ещё не прибыл? хорошо бы с ним проверить
нет — «Информация об отправлении временно недоступна. Когда она появится, вы получите уведомление.».
я попробовал встроенный ген только как смог — отвертку к дорожке от XCO 100mhz до MAX2870 — генерация есть, с отверткой как передающей антенной на SDRSharp принимается сильнее.
пайку чипа смотрел через увеличение на фото — тоже вроде все ок…
вобщем загадка
обнаружил, что в программе для MAX2870 значения для регистра 2 почему то не принимаются
значение 18006E42 программа упорно исправляет на 98006E42
также обнаружил интересную особенность в этом софте: Read SPI reg 6 and 7
и регистр 7 действительно считывается, но расшифровать его значения не представляется возможным
chatGPT тоже помочь не может, говорит либо конфигурация регистров не та, либо напряжение не то
и регистр говорит 7 может быть, для внутренних нужд производителя 🙂
100mhz? у меня на 25mhz стоял, может в этом дело, прошивка под ругой кварц просто. Ну или непропай какойто у MAX2870, сигнал может не доходит. Как вариант ещё уровни генерации плохие, сигнал есть, но MAX не раскачивает.
Бедный Андрей))
Кто будет здесь читать — на фото на плате макса 100мгц генератор стоит) и китайцы эту плату щас со 100мгц кварцем продают, не знаю откуда 25мгц взялось но в прошивке дмитрия вот в этой строчке
https://github.com/XGudron/UA3REO-Beacon/blob/main/STM32/Core/Src/MAX2870.c#L29
делитель R идет вторым параметром и устанавливается 1 (получаем Fpfd = Fref/R = 100Mhz) однако в даташите (привет секте!)) указано что для frac-N режима максимальная частота Fpfd — 50Mhz — то есть чтоб заработала плата с фотографии (с генератором 100мгц) надо там в той строчке дать делителю R побольше чем 1 значение, например 2 или 4 ) иначе лока не происходит)
пишу в порядке информирования, сам пол-дня гадал что не так, даже осциллограф подключал! пока даташит перечитывать не сел)
Интересная конструкция. Можно попробовать «охоту на лис» перевести в СВЧ диапазон. Компактные антенны и приемники…