Измеритель частоты с поддержкой GPS
Измеритель частоты с поддержкой GPS
Целью этого проекта является измерение тактовой частоты RTC 32 768 Гц в сравнении с сигналом 1 PPS (импульс в секунду) от модуля GPS с максимально возможной точностью. Его можно использовать для точной настройки цифровых часов. Частотомер имеет разрешение 144 миллиона отсчетов, а за счет усреднения нескольких измерений точность можно еще больше повысить.
Любую другую частоту можно измерить с аналогичной точностью, если ее разделить до 1 Гц и подать на вход 74HC73. Заменить в прошивке множитель «32768» на номинальную частоту. В этом случае схему PCF8563 можно опустить.
Интересно наблюдать за тем, как кварцевый генератор с цифровыми часами реагирует на окружающую среду: его частота смещается на 2 ppm при нагревании солнечным светом, а затем медленно возвращается к ошибке менее 1 ppm при наступлении тени.
Основная идея состоит в том, чтобы аппаратно разделить сигнал частотой 32 768 Гц на частоту 0,5 Гц и подсчитать тактовые импульсы микроконтроллера (144 МГц), пока этот сигнал частотой 0,5 Гц имеет высокий уровень. Одновременно сигнал 1 PPS от модуля приемника GPS также делится на 2, чтобы получить сигнал частотой 0,5 Г��, и тактовые импульсы частотой 144 МГц подсчитываются, пока этот сигнал также имеет высокий уровень.
Сравнивая результаты двух подсчетов, мы можем определить точность генератора с частотой 32 768 Гц. Разрешение составляет 0,01 ppm. Многие генераторы RTC можно настроить, отрегулировав небольшой внешний конденсатор (4-20 пФ). Удивительно видеть точность измерений (до 4 знаков после запятой) при регулиров��е этого конденсатора — счет остается чрезвычайно стабильным.
Используемый MCU — CH32V203, работающий на тактовой частоте 144 МГц. Несколько блоков кода были написаны с нуля при помощи искусственного интеллекта, поскольку поддержка Arduino для CH32V203 доступна, но все еще находится на ранней стадии и считается незавершенной работой (см. https://github.com/ch32-riscv-ug).
Детали оборудования:
Модуль GPS (Нео-6М): Сигнал PPS управляет светодиодом на модуле. Следуя дорожке печатной платы, контакт 3 является выходом Timepulse. Вывод TX подключен к PA3, что позволяет захватывать предложения GPS через UART2 и анализировать их положение, данные в реальном времени, количество спутников и т. д. (код загружен). Модуль GPS имеет кабель длиной 1 метр и может быть размещен возле окна для лучшего приема спутникового сигнала.
Тактовая частота MCU: CH32V203 использует внешний кварцевый генератор для обеспечения стабильности (важно), а ядро работает на тактовой частоте 144 МГц, генерируемой ФАПЧ. Этот же тактовый сигнал используется для входа счетчика 2 и счетчика 3.
Сигналы затвора: PA3 и PA6 принимают два сигнала частотой 0,5 Гц. Очевидно, эти сигналы не синхронизированы, поэтому встроенное ПО обеспечивает синхронизацию двух счетчиков с входящими импульсами. Счетчики переполняются более 2000 раз — это количество переполнений также отслеживается. Когда сигнал стробирования становится низким, окончательный результат рассчитывается как:
(65 536 × overflow_count) + counter_contents.
Отношение двух значений 144 миллионов отсчетов показывает отклонение между двумя частотами 0,5 Гц. Умножение этого отношения на 32 768 дает факти��ескую частоту генератора RTC.
Чип RTC (PCF8563): этот чип имеет выходную частоту 1 Гц, полученную от внутреннего генератора 32 768 Гц (для этого в регистр 0x0D необходимо записать 0x80). Входной контакт генератора (контакт 1) можно подключить к кристаллу с настроечным триммером или к внешнему источнику частоты 32 768 Гц. Вход защищен от перенапряжения.
TFT-модуль: гнездо для SD-карты было удалено, чтобы сэкономить место внутри плотного корпуса, напечатанного на 3D-принтере.
Плата светодиодного индикатора: 8-битная светодиодная плата отображает два импульса частотой 0,5 Гц и активность линии передачи GPS для базовой проверки оборудования.
Переключатель сброса: Переключатель сброса сбрасывает результаты счетчика. Данные можно отслеживать на последовательном выходе.
Опечатка: (Чертеж перерисован с учетом этих изменений 2 августа 2026 г.)
— Конденсатор сброса 100 нФ отсутствует на схеме (контакт 7 на GND).
--Заменить I2C













![Зажим для кабеля с гвоздями [ассортимент 3-12 мм] Зажим для кабеля с гвоздями [ассортимент 3-12 мм]](/upload/015/u1522/5/6/5b54660b.webp)















