Администрирование Железо Простой GPS-стандарт частоты и генератор RF Mon, June 25 2018  

Поделиться

нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Простой GPS-стандарт частоты и генератор RF Печать
Добавил(а) microsin   

Здесь приведен перевод интересной статьи [1], где описан простой стандарт частоты, собранный из модуля приемника GPS. Автор собирал конструкции на основе моделей NEO-6M (тип NEO-6M-0-001) и NEO-7M (тип NEO-7M-0-000) компании "u-blox AG". Эти модули можно довольно недорого купить на AliExpress.

Модуль NEO-6M-0-001 позволяет генерировать максимальную опорную частоту 1 кГц, более современный модуль NEO-7M-0-000 может генерировать частоты до 10 МГц с дискретностью настройки 1 Гц (100 ppm) и минимальной точностью 2·10-8. Можно генерировать также и частоты выше 10 МГц ценой дополнительного джиттера в выходном сигнале. Получается точный RF-генератор, отлично подходящий для всех видов приложений. К сожалению, сигнал этого генератора получается недостаточно чистый по спектру, чтобы его можно было использовать в качестве VFO передатчика или приемника.

GPS freq reference NEO 7M 0 000

Ayoma Gayan Wijethunga описал в своем блоге, как этот GPS-модуль подключить к Arduino Nano, чтобы компьютер PC мог обмениваться с ним данными. Очень простая программа Arduino отправляет команды от PC к GPS-модулю и получает от него данные обратно. Получаемые данные можно увидеть с помощью встроенного в IDE Arduino монитора последовательного порта (окно Serial Monitor), либо с помощью любой программы терминала (SecureCRT, Putty, TerraTerm и т. п.). Также можно очень просто программировать импульсы времени, что рассмотрим далее. Схема подключения GPS-модуля NEO-7M-0-000 к Arduino Nano (модули NEO-6M-0-001 и NEO-7M-0-000 подключаются одинаково):

GPS freq reference module connection

Информационные сигналы обмена данными между модулем GSM и Arduino Nano передаются по последовательному порту TTL UART. Приемник GPS работает с уровнями логики 3.3V, поэтому для согласования с уровнями логики 5V Arduino Nano нужна либо микросхема преобразования уровней (GTL2003 и т. п.), либо цепочка делителя напряжения, составленная из резисторов 4,7 кОм и 10 кОм, подключенная между выходом TX Arduino Nano и входом RX модуля GSM. Уровень 3.3V на выходе TX модуля GSM достаточен, чтобы его подать на вход RX Arduino Nano. Автор для безопасности добавил на выходе TX модуля GSM резистор 1 кОм.

Конечно, мы не можем подключить выход импульсов времени (ножка PPS модуля GSM) напрямую ко всем видам приложений. На выход PPS были добавлены резистор 5.6 кОм и емкость 0.1 мкФ, что позволяет избежать коротких замыканий на выходе и удаляет постоянную составляющую. Важный момент - резистор следует подключить как можно ближе к выводу, чтобы в антенну не попадал сигнал помехи, наводимый выводом PPS. В противном случае гармоники выходного сигнала опорной частоты могут нарушить прием сигнала GPS.

GPS freq reference wood box

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

[Программа для Arduino Nano]

Программирование микроконтроллера, который стоит на платке Arduino Nano, делается очень просто, всего за несколько минут! Загрузите среду разработки Arduino IDE с сайта arduino.cc и установите. Подключите платку Arduino Nano к компьютеру. Выберите тип подключенной платы (меню Сервис -> Плата -> Arduino Nano), выберите COM-порт, через который компьютер видит Arduino Nano (Сервис -> Последовательный порт). Откройте скетч ublox6a.ino (находится в архиве []). Выберите в меню Скетч -> Проверить / Компилировать (Ctrl+R). Через меню Файл -> Загрузить (Ctrl+U) загрузите скомпилированную программу в память микроконтроллера.

#include < SoftwareSerial.h>
 
// Создание программного serial-объекта для обмена данными
// с модулем GPS. Ножка порта D3 Arduino используется как
// сигнал TX, передающий данные выводу RX модуля GPS,
// и ножка порта D4 Arduino работает как вход RX, получающий
// сигнал от выхода TX модуля GPS.
SoftwareSerial gps(4, 3);
 
void setup()
{
   // Запуск последовательного обмена между платой Arduino 
   // и Arduino IDE (Serial Monitor). Вместо Serial Monitor
   // среды Arduino IDE можно использовать любую программу
   // последовательного терминала (SecureCRT, Putty, TerraTerm).
   Serial.begin(9600);
   while(!Serial);
   
   // Запуск последовательного обмена между платой Arduino
   // и модулем GPS. Скорость обмена должна быть 9600 бод.
   gps.begin(9600);
   delay(1000);
   Serial.println("Setup Complete!");
}
 
void loop()
{
   // Чтение данных модуля GPS (если они доступны) и передача их
   // в последовательный порт. В результате эти данные будут
   // напечатаны в окне Arduino IDE Serial Monitor.
   if(gps.available())
   {
      Serial.write(gps.read());
   }
   
   // Чтение данных из окна Arduino IDE Serial Monitor (если
   // эти данные доступны, т. е. если их ввел пользователь)
   // и отправка их модулю GPS.
   if(Serial.available())
   {
      gps.write(Serial.read());
   }
}

Программа Arduino состоит из двух основных частей. Функция void setup () содержит код конфигурирования, т. е. здесь может быть определено, какие порты Arduino Nano работают как выходы, какие периферийные устройства должны быть настроены. Вторая часть это функция void loop (), содержащая саму программу. Дополнительную информацию о том, как эта вся система работает, можно найти на официальном сайте Arduino (также см. [4]).

После загрузки и запуска этой простой программы на плате Arduino Nano откройте окно Serial Monitor, это делается через меню Сервис -> Монитор порта (Ctrl+Shift+M). В окне Serial Monitor Вы увидите данные, которые передает модуль GPS.

GPS freq reference Arduino IDE

[ПО для модуля GPS]

Мы запрограммировали плату Arduino Nano и подключили с её помощью модуль GPS к компьютеру PC через порт USB. Закройте среду разработки Arduino IDE, она больше не понадобится. Плата Arduino Nano теперь работает как устройство переходника USB-UART.

Примечание: вместо платы Arduino Nano можно было использовать готовый переходник USB-TTL-UART, переключив его в режим уровней 3.3V. Такие переходники также продаются в большом разнообразии на сайте AliExpress, и стоят очень дешево.

Для управления модулем GPS автор использовал программу u-center, которую можно загрузить с сайта www.u-blox.com [2]. После установки и запуска программы выберите правильный номер COM-порта. С помощью программы u-center можно выполнять множество интересных действий. Например, можно узнать мощность сигнала, принимаемого со спутников, Ваше положение на карте Google Maps. Для генерации сигнала нужно использовать функцию программирования импульсов.

Для модуля NEO-6M мы использовали "TP (Timepulse)" для программирования опорной частоты. Но для модуля NEO-7M это не работает, и нужно использовать "TP5 (Timepulse)". Активируйте радиокнопки "Frequency" и "Duty Cycle" (см. скриншот).

GPS freq reference settings 10 mhz

Вам нужно запрограммировать 2 частоты, одну 1 Гц, чтобы светодиод мерцал, для индикации, и вторую, которая нужна в качестве опорной. Опорная частота программируется в области "Frequency Locked". Здесь можно ввести любую частоту до как минимум 10 МГц. Мой модуль мог выдавать частоты до 16 МГц, при этом частота получала некоторый дополнительный джиттер.

Настройки можно сохранить. Это делается выбором функций "BBR-0" и "3-I2C-EEPROM", что сохраняет настройки соответственно в памяти, поддерживаемой батарейкой, и в микросхеме EEPROM. К сожалению, на моем модуле не было памяти EEPROM, и приходилось повторять настройку при разряде батарейки.

Пользователь Mark VK6WV сделал следующее замечание: "Когда я попытался сохранить настройку, как советовала Ваша статья, то это не сработало. После изучения руководства пользователя я обнаружил функцию сохранения конфигурации GNSS в меню Tools. После установки настройки TP5 конфигурация GNSS была прочитана и записана в файл. Затем этот файл было записан обратно в модуль GPS функций "Store Configuration into BBR/Flash". Это работает."

[Практика использования]

В помещении приемник GPS иногда с трудом находит спутники для привязки своей позиции (FIX). Вынесите GPS-модуль на улицу, после чего он находит FIX, после чего можно продолжить работу в помещении.

Модуль в деревянном ящичке излучает достаточно мощный сигнал, чтобы можно было откалибровать приемник QRSS. У частоты 10140 кГц есть даже достаточно мощные гармоники, которые могут создавать помехи сигналу GPS. Для получения самого мощного сигнала подключайтесь к выходному коннектору. Если нужен слабый сигнал для проверки приемника, настройте выходную частоту в 2 раза меньше частоты приема (например 5070000 Гц), и скважность 25% (параметр Duty Cycle). Для еще более слабых сигналов используйте скважность 50% и нечетные коэффициенты деления частоты (1/5, 1/7, 1/9 от частоты приема, и т. д.). Для калибровки приемника QRSS автор использовал деление частоты на 10 со скважностью 25% (1014000 Hz).

Пример настройки для калибровки приемника QRSS, использовалась 10-я гармоника частоты 1014000 Гц:

GPS freq reference settings 1014 khz

Возможно, что сейчас появились более современные модели модулей GPS, см. [3].

[Словарик]

FIX FIXation, имеется в виду нахождения абсолютной позиции на карте в системе GPS.

GPS Global Positionong System, спутниковая система глобального позиционирования.

VFO Voltage-controlled Frequency Oscillator, генератор опорной частоты (гетеродин), частота которого управляется входным постоянным напряжением.

[Ссылки]

1. SIMPLE 10 MHZ GPS FREQUENCY STANDARD AND RF GENERATOR site:qsl.net.
2. U-center GNSS evaluation software for Windows site:u-blox.com.
3. Positioning chips and modules site:u-blox.com.
4. Arduino: что там внутри?
5180614GPS-freq-reference.zip - скетч, программа U-center, документация.

 

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


Защитный код
Обновить

Top of Page