WSPR_Beacon_3 — FAQ

Как правильно прошить bootloader chip45boot2 и программу маяка в микроконтроллер Atmega328p

Программа маяка корректно работает при использовании bootloader chip45boot2

1. Скачиваем архив по ссылке, в архиве прошивка бутлоадера, GUI загрузчик и документация на бутлоадер.

Подключаем плату Arduino UNO/NANO/Pro mini к программатору USBAsp или к другому, если нет плат Arduino можно собрать контроллер маяка по следующей схеме

Далее пробуем прочитать fuses на вкладке Fuses в программе AVRDUDE_PROG выбрав микроконтроллер Atmega 328p, если чтение успешное, то программируем fuses как на картинке ниже 3F DA FF 05

После успешного программирования fuses переходим на вкладку Program выбираем файл бутлоадера в блоке Flash

chip45boot2_atmega328p_uart0_v2.9Q.hex

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

Далее устанавливаем GUI загрузчик chip45boot2_GUI_V1-13 из архива, выбираем COM порт на котором определилась платка маяка, выбираем файл программы маяка и прошиваем, если все успешно то получим следующую картинку

Теперь можно подключать плату маяка к конфигуратору.

Конфигуратор не подключается к маяку, выполненному на платах Arduino UNO/NANO/PRO-Mini

Конфигуратор подключится к плате маяка только при условии подключенного, как минимум, модуля платы синтезатора Si5351.

Проверить настройки COM порта

На картинке выше показан пример подключения через TTL-USB преобразователь выполненный на микросхеме CH340G (рекомендуется использовать последнюю версию драйвера от производителя, скачать можно по этой ссылке), на разных платах Arduino и TTL-USB преобразователях может использоваться микросхема преобразователя из серии FT232 или другое решение, главное условие, чтобы плата маяка определялась в системе на каком либо COM порту, соответствующий COM порт необходимо выбрать в конфигураторе.

При попытке подключения конфигуратора к плате маяка, конфигуратор отправляет в UART сигнал DTR, который вызывает перезагрузку bootloader, в момент перезагрузки программа маяка отправляет назад в UART свой идентификатор.

Чтобы это условие было выполнено, необходимо убедится, что на используемой плате маяка вывод DTR TTL-USB преобразователя заведен на вывод RESET микроконтроллера Atmega328p через конденсатор емкостью 100n.

При использовании платы Arduino PRO-Mini, для подключения к компьютеру, необходимо использовать внешний TTL-USB преобразователь, на котором кроме выводов GND/+5v/RX/TX есть и вывод RESET (RST), но стоит обратить внимание на наличие конденсатора емкостью 100n в цепи.

На некоторых TTL-USB преобразователях, производителем неправильно помечены выводы RX/TX, при отсутствии подключения конфигуратора к плате маяка следует поменять эти выводы местами

При подключении дисплея по 4-битной шине напрямую к плате маяка, символов либо нет, либо они засвечены

При прямом подключении дисплея 1602 к плате маяка по 4-битной шине (в релизе 1.04 и выше не поддерживается), необходимо наличие подстроечного сопротивления номиналом 10 кОм, подключенного по следующей схеме

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

Не выводится текст на дисплей 1602, при подключении через модуль i2c

При подключении дисплея 1602 по шине i2c, используют модули выполненные на микросхеме расширителя портов PCF8574T/PCF8574AT, эти микросхемы различаются диапазоном адресации для шины i2c.

В архиве, есть два файла прошивок:

WSPR_Beacon_3_T.hex — при использовании i2c модуля выполненного на PCF8574T

WSPR_Beacon_3_AT.hex — при использовании i2c модуля выполненного на PCF8574AT

Важно! С релиза 1.05 и выше тип используемого модуля i2c для дисплея 1602 выбирается в конфигураторе

Передачи маяка не декодируются, не появляются споты на ресурсе WSPRnet

Проверить правильно ли синхронизирован по времени используемый модуль часов реального времени. Передача маяка на выбранных диапазонах начинается в первую секунду четной минуты, длится передача ~110.6 секунд, для того, чтобы передача маяка была декодирована, одно из обязательных условий — точная синхронизация по времени. Модуль DS-1302 (в релизе 1.04 и выше не поддерживается), как показала практика, «убегает» на +/- 5…10 секунд за сутки. Модуль DS-3231 имеет встроенную температурную компенсацию кварцевого генератора (TCXO), тем самым точность данного модуля значительно выше, и он требует более редкой синхронизации по времени, в отличии от модуля DS-1302.

Второе обязательное условие — калибровка модуля синтезатора Si5351 по частоте, сигнал маяка декодируют, если он будет передаваться в полосе (верхняя боковая — USB) 2500 Гц от частоты диапазона в соответствии со спецификацией протокола WSPR.

WSPR передача может декодироваться при соотношении сигнал/шум от -31 dBm. В моем случае, данная реализация маяка показала следующие результаты (при использовании «голой» Si5351 ), значения усредненные:

  • 160m: не тестировался
  • 80m:  декодирование от -27 dBm и выше
  • 60m:  декодирование от -27 dBm и выше
  • 40m:  декодирование от -27 dBm и выше
  • 30m:  декодирование от -27 dBm и выше
  • 20m:  декодирование от -27 dBm и выше
  • 17m:  декодирование от -17 dBm и выше
  • 15m:  декодирование от -21 dBm и выше
  • 12m:  декодирование от -21 dBm и выше
  • 10m:  декодирование от -27 dBm и выше
  • 6m: не тестировался
  • 2m: не тестировался

При использовании внешнего усилителя от 50…100 mW, и более менее нормальной антенне, сигнал маяка примут за сотни/тысячи км — 100%

Калибровка выходной частоты модуля si5351

В первую очередь для естественного выбега частоты модуля si5351, необходимо выждать стабилизацию частоты примерно 15-20 минут после включения питания маяка.

При помощи частотомера

В качестве частотомера я использую замечательный прибор OSA-103 mini, подключаем выход с модуля si5351 CLK0 на цифровой вход D1

Подключаем конфигуратор к маяку

Конфигурируем прибор следующим образом

Как видно на скриншоте, выходная частота на диапазоне 20m равна 14,100 678 MHz, диапазон можно переключать кнопками конфигуратора <Band и Band>, кнопками калибровки частоты кварцевого резонатора выставляем требуемое значение выходной частоты

Для диапазона 20m правильное значение будет 14, 095 600 MHz

Калибровочное значение сразу записывается в EEPROM микроконтроллера.

При помощи трансивера или контрольного приемника с SSB

Настраиваем трансивер/приемник в моде USB (верхняя боковая полоса) на частоту 14, 094 600 MHz и кнопками калибровки частоты кварцевого резонатора в конфигураторе настраиваем пик звуковой частоты на 1000 Гц. Для этих целей можно использовать программу Soundcard Scope, подключив аудиовыход с трансивера/приемника на линейный или микрофонный вход звуковой карты компьютера

Калибровку желательно производить на диапазоне 20m.

Почему в режиме ожидания на выходе модуля si5351 идет несущая на частоте 1 MHz?

Для успешного приема сигнала маяка необходима стабилизация выходной частоты, если отключать генерацию в модуле si5351 в период ожидания, при повторном включение выходная частота будет стабилизироваться какое-то время. Для этого маяк и «отдыхает» на частоте 1 MHz.

Если данная ситуация смущает, для предотвращения вещания в эфир сигнала с частотой 1 MHz, в период ожидания, можно рассчитать и поставить на выход si5351 фильтр-пробку, например выполненный по данной методике. Либо использовать диапазонные полосовые фильтры, вот пример ДПФ на 10m.

А если еще на выход si5351 поставить широкополосный ВЧ трансформатор 1:1, тогда можно получить выходной сигнал близкий к синусоиде и более чистый по спектру.

Использование загрузчика Arduino для прошивки платы маяка

Благодаря информации от Романа R3KEE, возможна прошивка платы маяка с загрузчиком Arduino

  1. Скачиваем архив
  2. Создаем папку
  3. В созданную папку распаковываем содержимое архива
  4. В эту-же папку копируем файл прошивки маяка
  5. В файле flashHEX.bat указываем COM порт на котором определилась плата маяка с загрузчиком Arduino

avrdude -Cavrdude.conf -v -patmega328p -carduino -PCOM6 -b115200 -D -Uflash:w:WSPR_Beacon_3.hex:i

Если все успешно, то в окне cmd увидим соответствующую информацию