فهرست مطالب:

GPSDO YT ، فرکانس مرجع نوسان ساز انضباطی 10 مگاهرتز. کم هزینه. دقیق: 3 مرحله
GPSDO YT ، فرکانس مرجع نوسان ساز انضباطی 10 مگاهرتز. کم هزینه. دقیق: 3 مرحله

تصویری: GPSDO YT ، فرکانس مرجع نوسان ساز انضباطی 10 مگاهرتز. کم هزینه. دقیق: 3 مرحله

تصویری: GPSDO YT ، فرکانس مرجع نوسان ساز انضباطی 10 مگاهرتز. کم هزینه. دقیق: 3 مرحله
تصویری: SDG #163 What's all this GPSDO stuff, anyhow? Why is there an FPGA? 2024, جولای
Anonim
GPSDO YT ، فرکانس مرجع نوسان ساز انضباطی 10 مگاهرتز. کم هزینه. دقیق
GPSDO YT ، فرکانس مرجع نوسان ساز انضباطی 10 مگاهرتز. کم هزینه. دقیق
GPSDO YT ، فرکانس مرجع نوسان ساز انضباطی 10 مگاهرتز. کم هزینه. دقیق
GPSDO YT ، فرکانس مرجع نوسان ساز انضباطی 10 مگاهرتز. کم هزینه. دقیق
GPSDO YT ، فرکانس مرجع نوسان ساز انضباطی 10 مگاهرتز. کم هزینه. دقیق
GPSDO YT ، فرکانس مرجع نوسان ساز انضباطی 10 مگاهرتز. کم هزینه. دقیق

*******************************************************************************

STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP

این یک پروژه منسوخ است.

در عوض نسخه صفحه نمایش LCD 2x16 جدید من را که در اینجا موجود است بررسی کنید:

www.instructables.com/id/GPSDO-YT-10-Mhz-L…

نسخه قدیمی را برای اسناد اینجا گذاشتم.

*******************************************************************************

سلام بچه ها،

GPSDO چیست؟ GPSDO به معنی: نوسان ساز منظم GPS. GPS برای سیستم موقعیت یابی جهانی همه ماهواره های GPS مجهز به ساعت اتمی هماهنگ هستند. ماژول GPS این سیگنال ها را از چندین ماهواره دریافت می کند. و با مثلث بندی ، محل خود را می داند. اما در اینجا چیزی که به ما علاقه دارد نبض در ثانیه است که روی ماژول یافت می شود. با این پالس دقیق (از ساعت اتمی) ، می توانیم یک نوسان ساز بسیار دقیق انجام دهیم. برای چی ؟ برای مرجع ، برای کالیبراسیون شمارنده فرکانس یا فقط برای سرگرمی داشتن یکی در آزمایشگاه خود.

بسیاری از آنها در اینترنت شماتیک هستند. من برخی را امتحان کرده ام. برخی از آنها خوب هستند ، یکی با 2313 کوچک 5 هرتز بسیار کند بود. اما مال من ساده ترین ، مفیدترین و راحت ترین است. و من کد hex را به شما می دهم. آنها هیچ VCO و هیچ تقسیم کننده ای ندارند. مدار با VCO خوب کار می کند. اما ، باید دارای سیگنال پالس 10 کیلو هرتز یا بیشتر باشد. اگر آنتن خیلی ضعیف شود ، نبض از بین برود یا اصلاً نبض نداشته باشد ، نوسان ساز (ocxo) به خودی خود کار می کند و VFC (کنترل فرکانس ولتاژ) دیگر دقیق نیست. بازخورد VCO برای ادامه کار به فرکانس مرجع نیاز دارد. اگر نه ، از 1 تا 2 هرتز متغیر است! همچنین ، ماژول gps ارزان تر در این پیکربندی کار نمی کند. برای ایجاد VCO ما باید حداقل 10 کیلو هرتز داشته باشیم. من با 1000 هرتز امتحان کردم. فاصله بسیار زیاد بود. فرکانس متفاوت بود. بنابراین با ublox neo-6m نمی توانید gpsdo vco عالی انجام دهید زیرا حداکثر فرکانس خروجی 1000Hz است. شما باید یک neo-7m یا بالا خریداری کنید.

GPSDO YT من به این ترتیب کار می کند. کنترل کننده تنظیمات خوبی را برای هر OCXO با vfc 0 تا 5v پیدا کرد. اگر سیگنال پزشک عمومی را از دست بدهیم ، فرکانس به هیچ وجه حرکت نمی کند. هنگامی که سیگنال دوباره ظاهر می شود ، کنترل کننده آخرین مقدار خوب شناخته شده خود را گرفته و مانند قبل ادامه می دهد. در محدوده ، با یک نوسان ساز مرجع. نمی توانیم بگوییم سیگنال چه زمانی از بین رفته یا چه زمانی دوباره بازگشته است. سیگنال یکسان است.

در صورت تمایل می توانید از gpsdo بدون آنتن استفاده کنید. چند سوار بعداً رانش بسیار کمی خواهید داشت. ولی…. چقدر بزرگتر زمان توضیحات فرا رسیده است.

در اینجا برخی از ریاضیات است … ریاضی آسان ، من را دنبال کنید با این کار آسان است. تا کنون الگوریتم دارای 6 مرحله است. هر مرحله یک نمونه از 1 تا 1000 ثانیه طول می کشد ، تنظیم pwm مناسب را پیدا کرده و برای دقت بیشتر به سراغ نمونه های طولانی تر می رود.

دقت = (((تعداد ثانیه x 10E6) + 1)/تعداد ثانیه) - 10E6

فاز 1 ، 1 نمونه دوم برای 10،000 ، 000 شمارش برای +- 1 هرتز دقت

مرحله 2 ، 10 ثانیه نمونه برای 100 ، 000 ، 000 شمارش برای +-0.1Hz دقت

فاز 3 ، 60 ثانیه نمونه برای 600 ، 000 ، 000 شمارش برای +-0.01666 هرتز دقت

فاز 4 ، 200 ثانیه نمونه برای 2 ، 000 ، 000 ، 000 شمارش برای +-0.005 هرتز

فاز 5 ، 900 ثانیه نمونه برای 9 ، 000 ، 000 ، 000 شمارش برای +-0.001111 هرتز

فاز 6 ، نمونه 1000 ثانیه ای به مدت 10 میلیارد برای دقت +-0.001 هرتز

بدترین حالت. وقتی به مرحله 6 می رسیم ، این عدد می تواند هر 1000 ثانیه کمی تغییر کند یا نه. برخی اوقات 10 ، 000 ، 000 ، 001 یا 9 ، 999 ، 999 ، 999 خواهد بود ، بنابراین ، +یا - 0 ، 000 ، 000.001 تنوع برای 1000 سالگی. اکنون باید مقدار را برای 1 ثانیه بدانیم.

10 مگاهرتز = 1 ثانیه

برای 1 ثانیه = 10 ، 000 ، 000 ، 001 تعداد/1000 = 10 ، 000 ، 000.001 هرتز (بدترین حالت برای 1 ثانیه)

10 ، 000 ، 000.001 - 10 ، 000 ، 000 = 0.001 هرتز/ثانیه سریعتر یا کندتر

0.001Hz X 60 X 60 X24 X365 = 31536 هرتز/سال

بنابراین به یاد داشته باشید ، 10 مگاهرتز 1 ثانیه است ، 31536Hz X 1 / 10E6 = 0 ، 0031536 ثانیه / سال

یک روش سریعتر دیگر برای محاسبه. یک miss for 10E9Mhz 1/10E9 = 1E-10 است

1E-10 x 60x60x24x365 = 0 ، 0031536 ثانیه/سال.

آیا این برای شما به اندازه کافی دقیق است؟

با این حال ، شما باید یک OXCO خوب داشته باشید. ترجیح می دهم خروجی سینوس Double Oven 12v Sinus. پایدارتر ، بی صدا و دقیق. اما من همین نتیجه را با 5 ولت ساده دارم. به عنوان مثال ، stp 2187 دارای ثبات کوتاه مدت (انحراف آلان) 2x10-12 = 0.000 ، 000 ، 000 ، 002 هرتز پایداری است. در همان زمان ، هنگامی که نبض gps در دسترس است ، Avr همیشه pwm (فرکانس) را تصحیح می کند. UC همیشه در حال شمارش است … همیشه. این بدان معناست که در صفحه نمایش تاریخ و زمان را مشاهده نخواهید کرد. وقتی uC در حال نمونه برداری از 900 است ، این یکی 900 ثانیه مشغول است. باید تمام ساعت را حساب کند. مشکل این است که uC با 10 مگاهرتز اجرا می شود. هر ساعت باید شمارش شود. خودش داره حساب میکنه اگر فقط یک ساعت از دست رفته باشد ، نمونه خوب نخواهد بود و تنظیمات pwm درست نخواهد بود. نمی توانم هر ثانیه صفحه را تازه کنم.

وقتی نمونه گیری شروع می شود. Uc شروع به شمارش timer0 کنید. هر 256 ساعت یک وقفه ایجاد می کند. ثبت X افزایش می یابد. هنگامی که کامل است ثبت نام Y افزایش می یابد و X به 0 و غیره بازنشانی می شود. در پایان ، در آخرین پالس gps ، شمارش متوقف می شود. و اکنون و فقط اکنون می توانم صفحه را به روز کنم و برای محاسبه pwm ریاضی انجام دهم.

با دانستن این ، من فقط 25 ، 6 ماه (256 ساعت قبل از وقفه) زمان خواندن و نمایش زمان یا سایر موارد را دارم. غیر ممکنه. یک وقفه را می توان خنثی کرد ، نه 2. من می توانم زمان را بعد از 1000 دوباره بازسازی کنم … اما دیدن زمان با فاصله 15 ، 16 دقیقه عملی نخواهد بود. من یک ساعت ، یک ساعت ، یک تلفن همراه دارم تا زمان را بدانم:) من یک مرجع 10 مگاهرتز انجام می دهم. نه یک ساعت.

مشکل دیگری که من داشتم ، برخی از آموزش های avr دارای 2 چرخه است. شامل دستورالعمل rjmp. این بدان معناست که اگر اولین یا آخرین نبض gps همزمان با آموزش 2 چرخه ظاهر شود ، uC یک ساعت را از دست می دهد. زیرا uC قبل از شروع وقفه ، دستورالعمل را به پایان می رساند. بنابراین شمارنده یک چرخه بعد شروع یا متوقف می شود. بنابراین من نمی توانم یک حلقه انتظار زمان انجام دهم … اما در واقع ، من چاره دیگری ندارم. باید جایی حلقه می کردم !! I بنابراین من از دستورالعمل rjmp و nop (این کاری انجام ندهید) استفاده می کنم. Nop یک دستورالعمل یک چرخه است. من دستورالعمل 400 nop را برای یک rjmp در atmega48 قرار داده ام. 2000 در نسخه atmega88 و atmega328p. بنابراین شانس کمتری برای اولین یا آخرین نبض در دستورالعمل rjmp وجود دارد. اما بله امکان پذیر است و اگر این اتفاق بیفتد ، این خطا در نمونه گیری بعدی اصلاح خواهد شد.

صفحه نمایش اختیاری است. می توانید مدار را فقط با ، uC ، OCXO و فیلتر کم گذر (خازن مقاومت) انجام دهید ، روشن کرده و منتظر بمانید. پس از 1 ساعت فرکانس قابل قبولی خواهید داشت. اما برای رسیدن به فاز 6 چند ساعت طول می کشد.

Pwm 16 بیت است. مرحله 65535 5v/65535 = 76 ، 295 uV

تغییرات OCXO 2 هرتز در 1 ولت است. 1v/76 ، 295uV = 13107 مرحله برای 2 هرتز. 2/13107 = 152.59uHz به صورت pwm

فاز 5 ، pwm را 3 تغییر می دهد ، فاز 6 2 است. چرا … چرا 3؟ زیرا 3 فرکانس را با 0.000 ، 000 ، 000 ، 4 در مقیاس 15 دقیقه تغییر می دهد. و 4 عدد جادویی من در الگوریتم من است. به عنوان مثال ، اگر در فاز یک ، اولین فرکانس 10.000 ، 003 مگاهرتز پیدا شده است. من 0 ، 000 ، 000.4 پله پایین می آیم.

گام بسیار بزرگ می تواند از 10.000003 به 10.000001 و بعد از 9 ، 999998 هرتز برسد. من هدف را گم کرده ام

با 0 ، 0000004. سریعتر از 0 ، 1 است و مطمئن هستم که از عددی دور نمی زنم. و غیره من همین کار را با 10 ثانیه ، 60 ثانیه و فاز 200 و 900 انجام می دهم. 1000 در حالت اجرا است و از مرحله pwm 2 استفاده کنید

لطفاً توجه داشته باشید که رسیدن به مرحله 5 طولانی تر است. فاصله بین 4 و 5 بیشتر است. اما از 5 به 6 سریعتر عبور می کند.

هنگامی که فاز 6 دقیقاً 10 بیلیارد شمارش کرده است ، مقادیر pwm در eeprom ذخیره می شود. اکنون نوبت به حالت اجرا رسیده است. این نمونه 1000 ثانیه نمونه را شمارش می کند اما فقط با 2 مرحله pwm. در حالت اجرا ، فرکانس واقعی نمایش داده می شود و با فاصله 1000 ثانیه به روز می شود. اگر سیگنال در حالت اجرا از بین برود در حالت خودکار ارسال می شود. بدون تغییر pwm در این حالت. پس از بازگشت سیگنال ، مجدداً به فاز 5 باز می گردد تا مجدداً همگام سازی شود.

اگر بعد از ذخیره شدن eeprom مدار قطع شود. این مرحله در مرحله 5 هنگام روشن شدن با مقدار eeprom pwm شروع می شود.

برای پاک کردن مقدار eeprom ، کافی است دکمه هنگام راه اندازی را فشار دهید. Pwm 50٪ بار خواهد بود و کالیبراسیون از مرحله 1 شروع می شود.

من ساعت ها وقت می گذارم تا چیزهای مختلف ، پیکربندی مدار را امتحان کنم. من آزمایش های زیادی انجام دادم ، با آمپر OP ، بافر و سایر تراشه ها. و در پایان … بهترین نتیجه ای که گرفتم نیازی به آن ندارد. فقط یک منبع تغذیه پایدار خوب و مقداری خازن فیلتر. بنابراین من این را ساده می دانم.

مرحله 1: خرید قطعات

خرید قطعات
خرید قطعات
خرید قطعات
خرید قطعات
خرید قطعات
خرید قطعات

اولین کاری که باید انجام دهید خرید قطعات است. زیرا اغلب حمل و نقل بسیار بسیار طولانی است.

ماژول GPS: من از ublox neo-6m استفاده می کنم. من این را در ebay خریدم. جستجو کنید ، هزینه آن حدود 7 تا 10 دلار است.

به طور پیش فرض ، این گیرنده 1 پالس در ثانیه را فعال می کند. ما نیازی نداریم کاری انجام دهیم.

می توانید از هر ماژول GPS با خروجی پالس 1 هرتز استفاده کنید. شما یکی دارید. از آن استفاده کن!

OCXO: من 2 نوسان ساز را امتحان کردم. خروجی موج سینوسی دوگانه stp2187 فر 12 ولت. و خروجی موج مربعی ISOTEMP 131-100 5V. هر دو از radioparts16 در ebay می آیند. من خدمات بسیار خوبی از آنها داشتم و قیمت آن ارزان تر بود.

AVR: کد بر روی atmega48 مناسب است. اما پیشنهاد می کنم atmega88 یا atmega328p بخرید. تقریباً همین قیمت است. این را در digikey یا ebay بخرید. من از نسخه شیب دار استفاده می کنم. می توانید نسخه رویه را خریداری کنید ، اما توجه داشته باشید ، پین ها با طرح کلی یکسان نیستند.

نمایشگر LCD: هر صفحه نمایش سازگار با 4x20 HD44780 کار می کند. حدس بزنید از کجا خریدم:) بله در ebay چند سال پیش. در حال حاضر گران تر از قبل است. اما زیر 20 دلار آمریکا در دسترس است.

شاید در آینده ای نزدیک ، یک کد برای صفحه نمایش 2x16 انجام دهم. این نمایشگرها تنها 4 دلار قیمت دارند. و بین من و شما ، نمایش 2 خط کافی است.

شما باید یک برنامه نویس AVR ISP داشته باشید. برنامه نویسی AVR مانند آردوینو نیست. آردوینو قبلاً برای برقراری ارتباط با پورت سریال برنامه ریزی شده است. یک avr کاملاً جدید باید با ISP یا برنامه نویس ولتاژ بالا موازی برنامه ریزی شود. ما در اینجا از isp استفاده می کنیم.

A 74hc04 یا 74ac0 ، تنظیم کننده ولت 7812 و 7805 ، مقاومت ، خازن…. digikey ، ebay

مرحله 2: اینجا Schematic است و Gpsdo_YT_v1_0.hex

Image
Image
Here Is Schematic و Gpsdo_YT_v1_0.hex
Here Is Schematic و Gpsdo_YT_v1_0.hex
Here Is Schematic و Gpsdo_YT_v1_0.hex
Here Is Schematic و Gpsdo_YT_v1_0.hex

من فکر می کنم که شماتیک تنها چیزی است که شما برای تحقق این پروژه نیاز دارید. در صورت تمایل می توانید از یک تخته مسی با روکش اچ یا تخته سوراخ دار استفاده کنید.

شما می توانید از هر جعبه ای که می خواهید استفاده کنید ، اما من یک جعبه فلزی را پیشنهاد می کنم. یا فقط روی تخته نان برای تفریح مثل من:)

من منتظر اتصال آنتن و اتصال bnc هستم تا پروژه خود را در یک جعبه قرار دهم.

شما باید بیت فیوز مناسب را انتخاب کنید. مطمئن شوید که نوسان ساز خارجی انتخاب شده است. اگر با اسیلاتور خارجی مشکل دارید ، External Crystal را امتحان کنید. و ساعت low.ckdiv8 علامت گذاری نشده است. تصویر را ببینید. توجه داشته باشید ، هنگامی که ساعت خارجی کمی فیوز می شود ، باید یک ساعت خارجی برای برنامه نویسی یا اجرای کد ارائه دهید. به عبارت دیگر ، نوسان ساز را در پین xtal1 وصل کنید.

به هر حال … می توانید از کد مشابه برای انجام فرکانس شمارنده با 1 گیت دوم استفاده کنید. فقط ساعت را وارد کنید تا با xtal1 pin اندازه گیری شود و شمارنده فرکانس +-1 هرتز خواهید داشت.

به محض داشتن موارد جدید ، پروژه را به روز می کنم.

در عین حال ، اگر پروژه به شما علاقه دارد ، شما مواد کافی برای شروع و حتی به پایان رساندن آن قبل از من را دارید

من 2 ویدئو بارگذاری کردم ، شما می توانید فاز یک و آخرین آن را مشاهده کنید.

برای هر گونه سوال یا نظر در دسترس هستم متشکرم.

26 فوریه 2017…. نسخه 1.1 موجود است

-atmega48 دیگر پشتیبانی نمی شود. فضای کافی نیست.

-تعداد ماهواره قفل شده اضافه شد.

-پشتیبانی از 2x16 ال سی دی اگر شما 4x20 دارید ، نیز کار می کند. اما 2 خط آخر چیزی نشان نمی دهد.

مرحله 3: وارد Eeprom شوید

وارد Eeprom می شود
وارد Eeprom می شود

در اینجا محل تخلیه eeprom بعد از چند ساعت در زمان اجرا است. من نحوه خواندن این مطلب را توضیح خواهم داد. باز هم می گویم آسان است:)

در آدرس 00 ، 01 مقدار pwm ذخیره می شود. به محض شمارش فاز 5 9 میلیارد ، مقدار pwm هر بار که شمارنده دقیقاً به 10 میلیارد برسد به روز می شود.

به محض اینکه ما در مرحله 5 هستیم ، همه شمارش ها پس از مقدار pwm در eeprom ذخیره می شوند. از آدرس 02 ، بعد از 03 و غیره شروع کنید.

این مثال از ocxo 5 ولت من به دست آمد. ما می توانیم مقدار pwm 0x9A73 = 39539 اعشاری را در 65536 بخوانیم. = 60 ، 33 or یا 3.0165 ولت.

بنابراین آدرس 00:01 0x9A73 است

بعد ، می توانید 03 را بخوانید. برای 9 ، 000 ، 000 ، 003 Pwm 3 کاهش می یابد زیرا ما هنوز در مرحله 5 هستیم

00 برای 10 ، 000 ، 000.000 pwm بماند دست نخورده است و ما به حالت در حال اجرا (مرحله 6)

02 برای 10 ، 000 ، 000.002 در این حالت ، مقدار pwm از 2 کاهش می یابد

01 برای 10 ، 000 ، 000.001 pwm مقدار از 2 کاهش می یابد

01 برای 10 ، 000 ، 000.001 pwm مقدار دوباره از 2 کاهش می یابد

00 برای 10،000،000.000 pwm اقامت دست نخورده است

00 برای 10،000،000.000 pwm اقامت دست نخورده است

00 برای 10،000،000.000 pwm اقامت دست نخورده است

اکنون می دانید که چگونه eeprom را بخوانید. هر 1000 ثانیه مقدار جدید در eeprom نوشته می شود. هنگامی که eeprom پر است ، از آدرس 2 راه اندازی مجدد می شود.

میانگین مقدار FF 9 ، 999 ، 999.999 است

با استفاده از این دامپ می توانید دقت را بدون هیچ گونه نمایشگر LCD پیگیری کنید.

می توانید فایل eeprom را با یک برنامه نویس isp تخلیه کنید.

امیدوارم اطلاعات کافی به شما داده باشم اگر نه ، به من اطلاع دهید. توصیه ، خطا ، هر چیزی.

یانیک

توصیه شده: