Mục lục:

GPSDO YT, Bộ dao động có kỷ luật Tần số tham chiếu 10Mhz. Giá thấp. Chính xác.: 3 bước
GPSDO YT, Bộ dao động có kỷ luật Tần số tham chiếu 10Mhz. Giá thấp. Chính xác.: 3 bước

Video: GPSDO YT, Bộ dao động có kỷ luật Tần số tham chiếu 10Mhz. Giá thấp. Chính xác.: 3 bước

Video: GPSDO YT, Bộ dao động có kỷ luật Tần số tham chiếu 10Mhz. Giá thấp. Chính xác.: 3 bước
Video: Fine Tune CB Shop Stryker Radios 955 .. NIST Certified GPS Disciplined Oscillator Verified. 38 LSB. 2024, Tháng bảy
Anonim
GPSDO YT, Bộ dao động có kỷ luật Tần số tham chiếu 10Mhz. Giá thấp. Chính xác
GPSDO YT, Bộ dao động có kỷ luật Tần số tham chiếu 10Mhz. Giá thấp. Chính xác
GPSDO YT, Bộ dao động có kỷ luật Tần số tham chiếu 10Mhz. Giá thấp. Chính xác
GPSDO YT, Bộ dao động có kỷ luật Tần số tham chiếu 10Mhz. Giá thấp. Chính xác
GPSDO YT, Bộ dao động có kỷ luật Tần số tham chiếu 10Mhz. Giá thấp. Chính xác
GPSDO YT, Bộ dao động có kỷ luật Tần số tham chiếu 10Mhz. Giá thấp. Chính xác

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

STOP STOP STOP

Đây là một dự án lỗi thời.

Thay vào đó, hãy kiểm tra phiên bản màn hình LCD 2x16 mới của tôi có sẵn tại đây:

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

Tôi để lại phiên bản cũ ở đây để làm tài liệu.

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

Chào các cậu, GPSDO là gì? GPSDO có nghĩa là: Bộ dao động có kỷ luật GPS. GPS cho hệ thống định vị toàn cầu. Tất cả các vệ tinh GPS đều được trang bị đồng hồ nguyên tử đồng bộ. Mô-đun GPS nhận các tín hiệu này từ một số vệ tinh. Và bằng phương pháp tam giác, anh ta biết được vị trí của mình. Nhưng ở đây, điều khiến chúng tôi quan tâm là xung trên giây được tìm thấy trên mô-đun. Với xung chính xác này (từ đồng hồ nguyên tử), chúng ta có thể tạo ra một bộ dao động rất chính xác. Để làm gì ? Để tham khảo, để hiệu chuẩn bộ đếm tần số hoặc chỉ để giải trí khi có một bộ đếm trong phòng thí nghiệm của mình.

Chúng có rất nhiều sơ đồ trên internet. Tôi đã thử một số. Một số là tốt, một với một tí hon2313 là 5 hertz quá chậm. Nhưng của tôi là đơn giản, hữu ích và tiện lợi nhất. Và tôi đang cung cấp cho bạn mã.hex. Chúng không có VCO và không có dải phân cách. Mạch với VCO đang hoạt động tốt. Nhưng nó phải có tín hiệu xung liên tục từ 10khz trở lên. Nếu ăng-ten quá yếu, thiếu xung hoặc không có xung nào, Bộ tạo dao động (ocxo) đang tự chạy và VFC (Điều khiển tần số điện áp) không còn chính xác nữa. Phản hồi VCO cần có tần số tham chiếu để tiếp tục. Nếu không, nó thay đổi từ 1 đến 2 Hertz! Ngoài ra, mô-đun gps rẻ hơn không hoạt động trong cấu hình này. Chúng ta phải có ít nhất 10khz để tạo VCO. Tôi đã thử với 1000 hertz. Khoảng cách quá lớn, tần số thay đổi. Vì vậy, với ublox neo-6m, bạn không thể làm một vco gpsdo tuyệt vời vì tần số đầu ra tối đa là 1000Hz. Bạn phải mua một tân 7m trở lên.

Đây là cách GPSDO YT của tôi hoạt động. Bộ điều khiển đã tìm thấy sự điều chỉnh tốt cho bất kỳ OCXO nào có vfc 0 đến 5v. Nếu chúng ta mất tín hiệu GPs, tần số sẽ không di chuyển. Khi tín hiệu xuất hiện trở lại, bộ điều khiển sẽ lấy giá trị tốt đã biết cuối cùng của mình và tiếp tục như trước. Trên phạm vi, với một bộ dao động tham chiếu. Chúng tôi không thể biết khi nào tín hiệu bị mất hoặc khi nào nó quay trở lại. Tín hiệu cũng vậy.

Sau khi hiệu chuẩn, bạn có thể sử dụng gpsdo mà không cần ăng-ten nếu muốn. Một vài lần gắn kết sau này bạn sẽ bị trôi rất ít. Nhưng…. lớn hơn bao nhiêu? Đã đến lúc cho một số lời giải thích.

Đây là một số môn Toán … Toán học dễ dàng, theo tôi nó rất dễ dàng. Cho đến nay thuật toán có 6 giai đoạn. Mỗi giai đoạn lấy mẫu từ 1 đến 1000 giây, nhận thấy điều chỉnh pwm tốt và chuyển đến hầu hết các mẫu dài hơn để có độ chính xác cao hơn.

Độ chính xác = (((Số giây x 10E6) + 1) / số giây) - 10E6

Mẫu pha 1, 1 giây cho 10, 000, 000 số đếm cho độ chính xác + - 1 Hz

giai đoạn 2, mẫu 10 giây cho 100, 000, 000 số đếm cho độ chính xác + -0,1Hz

Mẫu pha 3, 60 giây cho số đếm 600, 000, 000 cho độ chính xác + -0,01666 Hz

Giai đoạn 4, 200 giây Mẫu cho số đếm 2, 000, 000, 000 cho độ chính xác + -0,005 Hz

Mẫu pha 5, 900 giây cho số đếm 9, 000, 000, 000 cho độ chính xác + -0,001111 Hz

Giai đoạn 6, mẫu 1000 giây cho 10 tỷ số đếm cho độ chính xác + -0,001 Hz

Trường hợp xấu nhất. Khi chúng ta đến giai đoạn 6. Con số này có thể thay đổi một chút sau mỗi 1000 giây hoặc không. một lúc nào đó nó sẽ là 10, 000, 000, 001 hoặc 9, 999, 999, 999 Vì vậy, + hoặc - 0, 000, 000.001 biến thể trong 1000 giây. Bây giờ chúng ta phải biết giá trị trong 1 giây.

10Mhz = 1 giây

Trong 1 giây = 10, 000, 000, 001 số / 1000 giây = 10, 000, 000,001 Hz (trường hợp xấu nhất là 1 giây)

10, 000, 000.001 - 10, 000, 000 = 0,001 Hz / s nhanh hơn hoặc chậm hơn

0,001Hz X 60 X 60 X24 X365 = 31536 Hz / năm

Vì vậy, hãy nhớ, 10Mhz là 1 giây, 31536Hz X 1 / 10E6 = 0, 0031536 giây / năm

Một phương pháp khác nhanh hơn để tính toán. một lần bỏ lỡ fo 10E9Mhz là 1 / 10E9 = 1E-10

1E-10 x 60x60x24x365 = 0, 0031536 giây / năm.

Điều đó có đủ chính xác cho bạn?

tuy nhiên, bạn phải có một OXCO tốt. Tôi thích đầu ra Double Oven 12v Sinus hơn. Ổn định, yên tĩnh và chính xác hơn. Nhưng tôi có kết quả tương tự với 5V đơn giản. Ví dụ, stp 2187 có thời gian ổn định ngắn (độ lệch allan) là 2x10-12 = 0,000, 000, 000, 002 Hz độ ổn định. Đồng thời, khi có xung gps, Avr sẽ luôn hiệu chỉnh pwm (tần số). UC luôn đếm… luôn luôn. Điều này có nghĩa là trên màn hình, bạn sẽ không thấy ngày và giờ. Khi uC đang lấy mẫu 900 giây, uC này bận trong 900 giây. Nó phải đếm tất cả đồng hồ. Vấn đề là uC đang chạy ở 10Mhz. Mỗi đồng hồ phải được đếm. Nó đang đếm chính nó. Nếu chỉ thiếu một đồng hồ, mẫu sẽ không tốt và điều chỉnh của pwm sẽ không đúng. Tôi không thể làm mới màn hình mỗi giây.

Khi bắt đầu lấy mẫu. Uc bắt đầu đếm bộ đếm thời gian0. Mỗi 256 đồng hồ tạo ra một sự gián đoạn. Thanh ghi X được tăng dần. khi nó đầy, thanh ghi Y được tăng lên và X đặt lại thành 0, v.v. Vào cuối, ở một xung gps cuối cùng của anh ta, quá trình đếm sẽ dừng lại. Và bây giờ và duy nhất bây giờ tôi có thể cập nhật hiển thị và thực hiện một số phép toán để tính toán pwm.

biết rằng, tôi chỉ có 25, 6 us (256 đồng hồ trước khi ngắt) để đọc và hiển thị thời gian hoặc khác. Điều đó là không thể. Một lần gián đoạn có thể được tăng cường, không phải 2. Tôi có thể làm mới thời gian sau 1000 giây… nhưng sẽ không thực tế khi xem thời gian với khoảng thời gian 15, 16 phút. Tôi có đồng hồ, đồng hồ, điện thoại di động để biết thời gian:) Tôi đang làm tham chiếu 10Mhz. Không phải đồng hồ.

Một vấn đề khác mà tôi gặp phải, một số hướng dẫn avr có 2 chu kỳ. Bao gồm cả hướng dẫn rjmp. Điều này có nghĩa là nếu xung gps đầu tiên hoặc cuối cùng xuất hiện cùng lúc với lệnh 2 chu kỳ, uC sẽ bỏ lỡ một đồng hồ. Bởi vì uC sẽ kết thúc lệnh trước khi bắt đầu ngắt. Vì vậy, bộ đếm sẽ bắt đầu hoặc dừng một chu kỳ sau đó. Vì vậy, tôi không thể thực hiện vòng lặp chờ thời gian… Nhưng trên thực tế, tôi không có lựa chọn nào khác. Tôi cần phải lặp lại một nơi nào đó !! Tôi Vì vậy, tôi đang sử dụng hướng dẫn rjmp và nop (điều này không làm gì cả). Nop là một lệnh một chu kỳ. Tôi đã đặt 400 hướng dẫn nop cho một rjmp trên atmega48. 2000 trên phiên bản atmega88 và atmega328p. Vì vậy, cơ hội ít hơn để xung đầu tiên hoặc cuối cùng đến với lệnh rjmp. Nhưng có, nó có thể xảy ra và nếu điều này xảy ra, lỗi này sẽ được sửa chữa ở lần lấy mẫu tiếp theo.

Màn hình là tùy chọn. Bạn chỉ có thể làm mạch với uC, OCXO và bộ lọc thông thấp (tụ điện trở), bật và đợi. Sau 1 giờ bạn sẽ có tần suất chấp nhận được. Nhưng để đạt được giai đoạn 6. Phải mất vài giờ.

Pwm là 16 bit. 65535 bước. 5v / 65535 = 76, 295 uV

OCXO biến thiên là 2Hz x 1V. 1v / 76, 295uV = 13107 bước trong 2 hz. 2/13107 = 152,59uHz theo bước pwm

Giai đoạn 5, đang thay đổi pwm bằng 3, giai đoạn 6 là 2. bước… Tại sao lại là 3? bởi vì 3 đang thay đổi tần số bằng 0,000, 000, 000, 4 ở thang 15 phút. và 4 là con số kỳ diệu của tôi trong thuật toán của tôi. Ví dụ, nếu trong giai đoạn một, tần số đầu tiên được tìm thấy là 10.000, 003Mhz. Tôi giảm xuống 0, 000, 000.4 bước.

Bước quá lớn có thể vượt qua từ 10.000003 đến 10.000001 và sau 9, 999998Hz. Tôi đang bắn trượt mục tiêu.

Với 0, 0000004. Nó nhanh hơn 0, 1 và tôi chắc chắn hơn là không bỏ qua một số. Và như thế. Tôi đang làm tương tự với pha 10 giây, 60 giây và 200 giây và 900 giây. 1000 giây là chế độ đang chạy và sử dụng bước pwm là 2

Xin lưu ý rằng giai đoạn 5 dài hơn để đạt được. Khoảng cách giữa 4 và 5 là lớn hơn. Nhưng nó giúp vượt qua từ 5 đến 6 nhanh hơn.

Khi giai đoạn 6 đã đếm chính xác 10 tỷ, các giá trị pwm được lưu trong eeprom. Bây giờ, đã đến lúc cho chế độ chạy. Cái này đếm mẫu 1000 giây nhưng chỉ với pwm 2 bước. Ở chế độ chạy, tần số thực được hiển thị và cập nhật ở khoảng thời gian 1000 giây. Nếu tín hiệu bị mất trong chế độ đang chạy, nó sẽ tự chạy. Không thay đổi pwm trong chế độ này. Khi tín hiệu quay trở lại, nó quay trở lại pha 5 để đồng bộ hóa lại.

Nếu mạch được rút ra sau khi eeprom được lưu. Quá trình này sẽ bắt đầu ở pha 5 khi bật nguồn với giá trị eeprom pwm.

Để xóa giá trị eeprom, chỉ cần nhấn nút khi khởi động. Pwm 50% sẽ được tải và hiệu chuẩn sẽ bắt đầu từ giai đoạn 1.

Tôi vượt qua nhiều giờ để thử những thứ khác nhau, cấu hình của mạch. Tôi đã thực hiện nhiều thử nghiệm, với OP amp, bộ đệm và chip khác. Và cuối cùng … kết quả tốt nhất tôi nhận được không cần nó. Chỉ cần một nguồn điện ổn định tốt và một số tụ lọc. Vì vậy, tôi giữ điều này đơn giản.

Bước 1: Mua phụ tùng

Mua các bộ phận
Mua các bộ phận
Mua các bộ phận
Mua các bộ phận
Mua các bộ phận
Mua các bộ phận

Điều đầu tiên cần làm là mua các bộ phận. Vì thường vận chuyển rất lâu.

Mô-đun Gps: Tôi đang sử dụng ublox neo-6m. Tôi đã mua cái này trên ebay. Thực hiện một cuộc tìm kiếm, nó có giá khoảng 7 đến 10 đô la Mỹ.

Theo mặc định, bộ thu này được bật 1 xung theo giây. Chúng ta không cần phải làm gì cả.

Bạn có thể sử dụng bất kỳ mô-đun gps nào có đầu ra xung 1 Hertz. Bạn có một. Dùng nó!

OCXO: Tôi đã thử 2 bộ dao động. Một lò nướng đôi stp2187 12v đầu ra sóng sin. Và một ISOTEMP 131-100 5V, đầu ra sóng vuông. Cả hai đều đến từ radio16 trên ebay. Tôi đã có một dịch vụ rất tốt từ họ và giá cả rẻ hơn.

AVR: Mã phù hợp với một atmega48 nhỏ. Nhưng tôi đề nghị mua một atmega88 hoặc atmega328p. Nó gần như cùng một mức giá. Mua cái này trên digikey hoặc ebay. Tôi đang sử dụng phiên bản nhúng. Bạn có thể mua phiên bản gắn kết bề mặt, nhưng hãy chú ý, các chân cắm không giống với sơ đồ.

Màn hình LCD: Mọi màn hình tương thích 4x20 HD44780 sẽ hoạt động. Đoán nơi tôi đã mua của tôi:) Có trên ebay một vài năm trước đây. Bây giờ nó đắt hơn trước. Nhưng có sẵn dưới $ 20 US.

Có thể trong tương lai gần, tôi sẽ tạo mã cho màn hình 2x16. Những màn hình chỉ có 4 đô la. Và giữa bạn và tôi, hiển thị 2 dòng là đủ.

Bạn phải có một lập trình viên AVR ISP. Lập trình AVR không giống như Arduino. Arduino đã được lập trình để giao tiếp trên cổng nối tiếp. Một avr hoàn toàn mới phải được lập trình với ISP hoặc Bộ lập trình điện áp cao song song. Chúng tôi đang sử dụng isp ở đây.

A 74hc04 hoặc 74ac0, bộ điều chỉnh vôn 7812 và 7805, điện trở, tụ điện…. digikey, ebay

Bước 2: Đây là giản đồ và Gpsdo_YT_v1_0.hex

Image
Image
Đây là giản đồ và Gpsdo_YT_v1_0.hex
Đây là giản đồ và Gpsdo_YT_v1_0.hex
Đây là giản đồ và Gpsdo_YT_v1_0.hex
Đây là giản đồ và Gpsdo_YT_v1_0.hex

Tôi nghĩ rằng sơ đồ là tất cả những gì bạn cần để thực hiện dự án này. Bạn có thể sử dụng bảng đồng mạ với phương pháp khắc hoặc bảng chỉ đục lỗ nếu bạn thích.

Bạn có thể sử dụng bất kỳ hộp nào bạn muốn, nhưng tôi đề xuất một hộp kim loại. Hoặc chỉ trên breadboard cho vui như của tôi:)

Tôi đang đợi phần mở rộng ăng-ten và đầu nối bnc để đưa dự án của tôi vào hộp.

Bạn phải chọn đúng bit cầu chì. Đảm bảo rằng bộ dao động bên ngoài được chọn. Nếu bạn gặp sự cố với Bộ tạo dao động bên ngoài, hãy thử Bộ tạo dao động bên ngoài. Và đồng hồ low.ckdiv8 không được chọn. Xem hình. Hãy chú ý, khi đồng hồ bên ngoài kết hợp bit, bạn phải cung cấp đồng hồ bên ngoài để lập trình hoặc chạy mã. Nói cách khác, kết nối Bộ tạo dao động ở chân xtal1.

Nhân tiện… bạn có thể sử dụng mã tương tự để làm bộ đếm tần số với 1 cổng thứ hai. Chỉ cần nhập đồng hồ cần đo vào chân xtal1 và bạn sẽ có bộ đếm tần số + -1 Hz.

Tôi sẽ cập nhật dự án ngay khi tôi có nội dung mới.

Trong khi chờ đợi, nếu bạn quan tâm đến dự án, bạn có đủ tài liệu để bắt đầu và thậm chí hoàn thành nó trước tôi

Mình đã tải lên 2 video, các bạn có thể xem giai đoạn một và giai đoạn cuối.

Tôi sẵn sàng trả lời bất kỳ câu hỏi hoặc nhận xét nào. Cảm ơn bạn.

Ngày 26 tháng 2 năm 2017…. Phiên bản 1.1 có sẵn.

-atmega48 không được hỗ trợ nữa. Không đủ không gian.

- Thêm số lượng vệ tinh bị khóa.

-Hỗ trợ màn hình LCD 2x16. Nếu bạn có một chiếc 4x20, cũng sẽ hoạt động. Nhưng 2 dòng cuối sẽ không hiển thị gì.

Bước 3: Đăng nhập Eeprom

Đăng nhập Eeprom
Đăng nhập Eeprom

Đây là kết quả của eeprom sau một vài giờ chạy uf. Tôi sẽ giải thích cách đọc cái này. Một lần nữa, thật dễ dàng:)

Tại địa chỉ 00, 01 được lưu trữ giá trị pwm. Ngay sau đợt 5 đếm được 9 tỷ, giá trị pwm được cập nhật mỗi khi bộ đếm đạt chính xác 10 tỷ.

Ngay sau khi chúng ta ở giai đoạn 5. Tất cả các số đếm được lưu trữ trong eeprom sau giá trị pwm. Bắt đầu từ địa chỉ 02, sau 03, v.v.

Ví dụ này đến từ ocxo 5 volt của tôi. Chúng ta có thể đọc giá trị pwm của 0x9A73 = 39539 thập phân trên 65536. = 60, 33% hoặc 3.0165 Volt.

Vì vậy, địa chỉ 00:01 là 0x9A73

Tiếp theo, bạn có thể đọc 03. Đối với 9, 000, 000, 003 Pwm bị hạ xuống 3 vì chúng ta chưa ở giai đoạn 5

00 cho thời gian lưu lại 10, 000, 000, 000 pwm là không chạm và chúng tôi chuyển sang chế độ chạy (giai đoạn 6)

02 cho 10, 000, 000,002 Trong trường hợp đó, giá trị pwm bị giảm từ 2

01 cho 10, 000, 000.001 giá trị pwm bị giảm từ 2

01 cho 10, 000, 000.001 giá trị pwm bị giảm xuống từ 2 một lần nữa

00 cho kỳ nghỉ 10, 000, 000, 000 pwm là không đụng đến

00 cho kỳ nghỉ 10, 000, 000, 000 pwm là không đụng đến

00 cho kỳ nghỉ 10, 000, 000, 000 pwm là không đụng đến

Bây giờ bạn đã biết cách đọc eeprom. Mỗi 1000 giây giá trị mới được viết bằng eeprom. Khi eeprom đầy, nó sẽ khởi động lại từ địa chỉ 2.

Giá trị FF có nghĩa là 9, 999, 999,999

Với kết xuất này, bạn có thể theo dõi độ chính xác mà không cần bất kỳ màn hình LCD nào.

Bạn có thể kết xuất tệp eeprom với một lập trình viên isp.

Tôi hy vọng rằng tôi đã cung cấp cho bạn đủ thông tin. Nếu không, hãy cho tôi biết. Lời khuyên, lỗi, bất cứ điều gì.

Yannick

Đề xuất: