WSPR маяк из готовых модулей. Update #4

Автор: | 12.01.2022

Описание проекта…

Обновление от 12.01.2022

Релиз прошивки (HEX): 1.05(h)
Релиз конфигуратора (CFG): 1.0.8045

Изменена работа светодиода статуса “L” на плате Arduino (PB5 пин МК):

  • одинарный строб означает, что в качестве источника времени выбран DS3231
  • двойной строб означает, что в качестве источника времени выбран GPS модуль.

Реализовано распределение диапазонов по выходам Si5351:

  • CLK0 – 160m/80m/60m/40m/30m/20m/17m/15m/12m/10m
  • CLK1 – 6m
  • CLK2 – 2m

В рабочем режиме, если диапазоны 6m или 2m не используются, выходы CLK1 или CLK2 выключаются.

Реализована поддержка OLED дисплеев 0.96′ 128×64 и 0.91′ 128×32 выполненных на однокристальном CMOS драйвере SSD1306, вывод информации на дисплеи осуществляется по шине i2c (slave address 0x3C или 0x78). Выбираются в списке подключения дисплеев

для OLED дисплеев, что бы не раздувать размер кода большим шрифтом, применил идею реализованную Дэвидом Джонсон-Дейвисом – размер шрифта 5х8 увеличивается в двое, и чтобы убрать “рубленность” символа, выполняется сглаживание. При передаче WSPR сообщения, на OLED дисплеях, отображается диапазон и прогресс передачи в процентах.

Отключен вывод результатов выполнения команд из конфигуратора на дисплее LCD 1602 в режиме конфигуратора.

Если в режиме конфигуратора выбирается активная вкладка отличная от “Ext. BPF & PA”, то включенный внешний усилитель мощности отключается.

Реализован рандомный выбор частоты смещения для WSPR передачи в диапазоне 1400…1600 Гц, при каждой передаче частота смещения выбирается псевдослучайно, данный режим выбирается в списке частот смещения блока “Clock generator Si5351”, ниже пример работы данной функции

немного поподробней – в AVR можно получить только псевдослучайную последовательность, которая со временем повторяется (даже при перезапуске микроконтроллера первое значение так-же повторяется), но хорошо видно, что укладываемся в “окно” 200 Гц и данной рандомности для WSPR вполне достаточно. Конечно можно было бы добавить рандомность при перезапуске микроконтроллера, от часов или от шума преобразователя АЦП, но практического смысла раздувать код не вижу, по этому остановился на более простом варианте. Автор идеи рандомного выбора частоты смещения Роман R3KEE, за эту идею, и за бета-тестинг релизов прошивок маячка, Роману отдельное Спасибо!

При управлении внешним усилителем мощности логический уровень на пине PB1 устанавливается в зависимости от выбранной радио-кнопки в блоке “External power amplifier control” на вкладке “Ext. BPF & PA”

При включении внешнего усилителя в режиме конфигуратора, на дисплее маяка отображаются символы “PA” на LCD или “P” на OLED в соответствии с выбранным логическим уровнем на пине PB1.

При тестировании диапазона 2m результат был негативным, частота на двойке плывет, соответственно WSPR сообщение не декодируется на приемной стороне. Для работы на диапазоне 2m необходимо тактирование генератора Si5351 более стабильным источником опорной частоты нежели обычный кварцевый резонатор.

Debag:
Исправлен диапазон установки фиксированной частоты смещения для WSPR передачи в диапазоне 1400…1600 Гц с шагом равным 25 Гц.
Оптимизация кода, исправление выявленных ошибок.

Работа данного релиза была проверенна на разных платках и на разных загрузчиках, на загрузчике от chip42 и на загрузчике Arduino, как прошить маяк при использовании загрузчика Arduino см. FAQ.

Если что то не получается, смотри FAQ.

73!

WSPR маяк из готовых модулей. Update #4: 1 комментарий

  1. Роман(R3KEE)

    Александр, а сколько там еще памяти в микроконтроллере осталось?

    неплохо-бы добавить расписание – скажем:
    с 22:00 до 6:00 работают 160,80,40
    с 6:01 до 8:30 80,40,30
    8:31- 17:00 30,20,17,15,12,10
    ну и т.д.
    чтобы днем или ночью не передавать на диапазонах на которых прохода в это время быть и не должно…

    чтобы много сущностей не плодить, можно определить скажем 4 временных интервала ночь, утро, день, вечер.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *