ฉันจะทำให้ออสซิลเลเตอร์ขนาดเล็กทำงานที่ 31,891,269,116 µHz แม่นยำได้อย่างไร


15

ฉันกำลังมองหาเพื่อสร้างโมดูล RTC สำหรับ Arduino ที่ทำงานในเวลา Mars อัตราการแปลงคือ 1.0274912510 Earth seconds ถึง 1 Mars second

ในขณะที่ฉันจัดการเพื่อให้บรรลุผลทางโปรแกรมด้วยความละเอียด <2 วินาที (ซึ่งไม่เหมาะอย่างยิ่งฉันต้องการความแม่นยำมากกว่า 300 มิลลิวินาที) โดยใช้คณิตศาสตร์จุดคงที่ใน Arduino Uno ที่เชื่อมต่อกับโมดูล RTC ปกติฉัน สงสัยว่ามันจะเป็นไปได้หรือไม่ที่จะมีออสซิลเลเตอร์แรงดันต่ำบางชนิดทำงานที่แม่นยำ 31,891,269,116 µHz (31.891269116 kHz) ซึ่งจะมากหรือน้อยสามารถเปลี่ยนได้ด้วยคริสตัลนาฬิกามาตรฐาน 32 kHz (แต่ฉันจะเปิดให้แนวคิดอื่น ๆ ) ตราบใดที่มันไม่แพงอย่างเด็ดขาด)

ความคิดใด ๆ ที่อาจเป็นไปได้? อีกทางเลือกหนึ่งตัวจับเวลาบางประเภทที่ดับลงทุก ๆ 1.0274912510 วินาทีก็เป็นที่ยอมรับเช่นกัน


13
ทำไมหน่วยแปลก ๆ (µHz) นั่นคือ 31.891 kHz ดังนั้นคุณอาจกำลังมองหานาฬิกาคริสตัลขนาด 32kHz
JRE

21
เริ่มต้นด้วยความต้องการของคุณ คุณได้ระบุความแม่นยำที่ไม่ธรรมดา ทำไม? ที่อื่นที่คุณบอกว่าคุณสามารถทำสิ่งที่คุณต้องการด้วย Arduino ฉันขอโทษที่จะบอกคุณนี้ แต่คุณกำลังล้อเล่นตัวเองเว้นแต่คุณจะใช้อะไรบางอย่างเช่นรูบิเดียมหรือนาฬิกาซีเซียมเป็นข้อมูลอ้างอิง บอกให้เรารู้ว่าคุณกำลังทำอะไรและความต้องการด้านประสิทธิภาพของคุณคืออะไร นั่นคือข้อกำหนดด้านการทำงานไม่ใช่ประสิทธิภาพที่คุณได้รับ หากคุณกำลังพยายามผลิตนาฬิกาที่ล็อคไว้กับอีกนาฬิกาหนึ่งพูดเช่นนั้นและแจ้งให้เราทราบว่าความต้องการของคุณ (และความคลาดเคลื่อน) คืออะไร
WhatRoughBeast

46
คุณกำลังพยายามแก้ปัญหาการขาดทักษะการเขียนโปรแกรมด้วยฮาร์ดแวร์ราคาแพงและกำหนดเอง คุณสามารถใช้การแปลงทศนิยมแบบ 256 บิตใน Arduino หรือความแม่นยำที่คุณต้องการ
ท่อ

14
ฉันคิดว่านี่เป็นตัวอย่างที่ดีว่าทำไมการรวมข้อมูลเพิ่มเติมล่วงหน้าทำให้ผู้คนสามารถชี้คุณไปในทิศทางที่ถูกต้อง คำตอบของ Brian Drummond เป็นคำตอบที่ดีที่สุดหรืออย่างน้อยก็เป็นไปได้สำหรับมือสมัครเล่น เป็นตัวอย่างที่ดีว่าทำไมคุณต้องระวังเมื่อระบุความแม่นยำและความแม่นยำ - มีพารามิเตอร์จำนวนมากที่อาจเกี่ยวข้องกับนาฬิกา เรายังไม่ได้กล่าวถึงการชดเชยอุณหภูมิหรือกระวนกระวายใจ
pjc50

11
"อัตราการแปลงคือ 1.0274912510 Earth seconds ถึง 1 Mars second" คุณสับสนความแตกต่างของระยะเวลาระหว่างดาวอังคารกับโลกด้วยความยาวหนึ่งวินาทีหรือไม่? ความยาวของวันแสงอาทิตย์บนดาวอังคารเป็น 88 775 s หรือ 1.02749 วันโลก (86 400 s) ที่อื่นและที่สองถูกกำหนดโดยการแผ่รังสีที่ปล่อยออกมาโดยอะตอมซีเซียมและแม้แต่การยืดเวลาให้กับบัญชีคุณจะต้องมีความเร็วประมาณ 0.23 c เพื่อให้ได้ความแตกต่าง 2.7%
ilkkachu

คำตอบ:


41

ใช้คริสตัล 32768kHz เหมือนคนอื่น แต่หารด้วย 33669 แทนให้ข้อผิดพลาด -5.08ppm (คุณสามารถลบได้โดยการตัดแต่งความจุในการโหลดหากคุณต้องการ)

มันไม่แม่นยำแต่สำหรับนาฬิกา Mars มันจะดีเหมือนนาฬิกาควอตซ์ Earth นั่นคือการเพิกเฉยปัญหาการชดเชยอุณหภูมิสำหรับอุณหภูมิรอบดาวอังคารผลึกนาฬิกาส่วนใหญ่จะถูกตัดเพื่อใช้กับโลกเว้นแต่คุณจะพบซัพพลายเออร์ของดาวอังคาร ...

ฉันจะใช้อุปกรณ์ต่อพ่วงแบบนับถอยหลังใน MSP430 เพื่อทำการแบ่งและ (สมมติว่าคุณกำลังขับนาฬิกากลไกกลไกควอทซ์มาตรฐาน) สร้างพัลส์ 30ms แบบไบโพลาร์บนพินออกทุกวินาทีโดยประมาณตามเวลาเดิมที่คุณสามารถ วัดออสซิลโลสโคป

Arduino หรือคล้ายกันจะทำงานได้ แต่ MSP สามารถนอนหลับระหว่างพัลส์ใช้พลังงานต่ำกว่า 1uA ด้วยการทำงานของ LF oscillator นี่คือตัวอย่างการออกแบบพร้อมซอร์สโค้ดและ PCB สำหรับนาฬิกา - เฉพาะเวลา Earth จนถึงขณะนี้อาจแก้ไขได้ด้วยการเปลี่ยนค่าคงที่


1
ขอขอบคุณ! จากความคิดเห็นอื่น ๆ ฉันคิดว่านี่เป็นตัวเลือกที่เหมาะสมที่สุดโดยไม่ต้องเจาะลึกเข้าไปในขอบเขตของนาฬิกาอะตอมดังนั้นฉันจึงเลือกมันเป็นวิธีแก้ปัญหาสำหรับคำถามของฉัน ฉันยังชื่นชมการออกแบบที่คุณเชื่อมโยงเป็นพิเศษ
renegadeds

พึงระวังว่าตัวเลขที่สำคัญที่คุณให้จะไม่ตรงกับคริสตัล RTC มาตรฐาน ข้อผิดพลาด 5ppm จากคณิตศาสตร์น่าจะน้อยกว่าความทนทานต่อคริสตัล
user2943160

6
@ user2943160 ถ้าคุณมีการอ้างอิงที่ดีคุณสามารถกด 1ppm หรือมากกว่านั้นด้วยการตัดแต่งครั้งแรก - จะมีการหมุนรอบสองสามนาทีต่อนาทีในไม่กี่ปีที่ผ่านมาและ (แปลก ๆ สำหรับการปรับผลึกส้อม) นาฬิกาควอทซ์ราคาถูกทั้งหมดในบ้านของฉันไปในอัตราที่ต่างกันพวกเขาอาจไม่เคยถูกตัดแต่งที่โรงงานและก็ไม่ได้ดีไปกว่านาฬิกาลูกตุ้มชดเชยอุณหภูมิ
Brian Drummond

+1 เฉพาะสำหรับ "ซัพพลายเออร์ชาวอังคาร"
Olin Lathrop

41

คุณทำได้ดีกว่าคำแนะนำของ Brian Drummond แม้ว่าอาจเป็นความจริงที่ว่าออสซิลเลเตอร์ของคุณเป็นแหล่งที่มาของข้อผิดพลาดที่ใหญ่ที่สุดในระบบ แต่ก็ไม่มีเหตุผลที่จะเพิ่มข้อผิดพลาดที่เป็นระบบเพิ่มเติมเมื่อมันง่ายพอที่จะไม่ทำ

ตั้งค่าช่วงเวลาตัวจับเวลาของคุณเป็น 33668 เห็บเริ่มตัวนับที่ 0 และทุก ๆ ตัวจับเวลาขัดจังหวะเพิ่มตัวนับ 6754

หากหลังจากเพิ่มขึ้นตัวนับคือ> = 8105 จากนั้นลบ 8105 และตั้งค่าช่วงเวลาตัวจับเวลาสำหรับวินาทีต่อไปนี้เป็น 33669 เห็บ

มิฉะนั้นปล่อยให้เคาน์เตอร์อยู่คนเดียวและตั้งค่าช่วงเวลาการจับเวลาสำหรับวินาทีต่อไปนี้เป็น 33668

สิ่งนี้จะทำให้คุณ (สมมติว่าเป็นคริสตัลที่สมบูรณ์แบบ 32.768kHz) ช่วงเวลาเฉลี่ยของ

(33668 + 6754 / 8105) / 32768 ~= 1.0274912510006

วินาที (ข้อผิดพลาดน้อยกว่าหนึ่งส่วนต่อล้านล้านเทียบกับ 1.0274912510) แทน 1.0274963378906 วินาที (เกือบ 5 ส่วนต่อล้านข้อผิดพลาด) ซึ่งหมายความว่าความแม่นยำในระยะยาวของนาฬิกาของคุณจะขึ้นอยู่กับความแม่นยำของออสซิลเลเตอร์อย่างแท้จริง ข้อผิดพลาดเนื่องจากคณิตศาสตร์จะช่วยให้เกิดข้อผิดพลาดน้อยกว่าหนึ่งขีดต่อปี แม้ว่าความยาวของวินาทีเดียวจะมีข้อผิดพลาดสัมพัทธ์สูงสุดถึง 25ppm แต่ช่วงเวลาเฉลี่ยโดยเฉลี่ยจะนานกว่าและนานกว่านั้นข้อผิดพลาดจะหายไป

นี่เป็นอัลกอริทึมของ Bresenham ที่ใช้กับการบอกเวลาและพบเศษส่วน 6754/8105 ดังนี้

32768 * 1.027491251 = 33668.833312768

เศษส่วนต่อเนื่องที่แน่นอนของ 33668.833312768 คือ [33668; 1, 4, 1, 1349, 1, 7]

การลดคำศัพท์สุดท้ายให้ค่าประมาณ 33668 + 6754/8105 ซึ่งมีชิ้นส่วนทั้งหมดที่พอดีเป็น 16 บิต


16

10101014


ฉันหวังว่าจะหลีกเลี่ยงฮาร์ดแวร์ราคาแพงถ้าเป็นไปได้ ตอนนี้ฉันกำลังทำสิ่งนี้ด้วยโมดูล RTC ปกติและ Arduino และฉันสามารถทำการแปลง 1,000 มิลลิวินาทีถึง 1027.4912510ms อย่างไรก็ตามฉันมีความละเอียดเพียง 1-2 วินาทีเท่านั้นซึ่งหมายความว่ามันถูกต้อง แต่ไม่แม่นยำมากนัก .
renegadeds

12
@renegadeds จากนั้นคุณควรทำให้ชัดเจนในคำถามของคุณว่าความแม่นยำเป็นที่ยอมรับ และโปรดระบุบริบท: แท็ก [arduino] เพียงอันเดียวจะเป็นคำใบ้ที่ดีว่าคุณไม่ได้สร้างฐานตั้งห้องปฏิบัติการที่มีความแม่นยำสูง
Dmitry Grigoryev

1
สังเกตเห็นฉันได้อัปเดตคำถามและเพิ่มแท็ก Arduino
renegadeds

15

มันสามารถทำได้ด้วยรูบิเดียมหรือนาฬิกาอ้างอิงอะตอมอื่นที่ 10MHz หรืออาจเป็น PLL ให้ (พูด) 100MHz แล้วนับด้วยแอมป์เฟสสะสม ~ 36 บิตเพื่อให้ความละเอียด 0.001Hz หลังสามารถทำได้ด้วย FPGA ขนาดเล็ก

คุณสามารถอ่านวิธีการ Direct Digital Synthesis (DDS) ได้ มีชิปที่ทำ DDS แต่อาจไม่กว้างเท่านี้เลย

โมดูลนาฬิกา Rubidium มีวางจำหน่ายในตลาดส่วนเกินหรือจากผู้ผลิตเช่น Microsemi


7

คุณไม่ได้นิยาม "แพง" ดังนั้นนี่เป็นภาพของความมืด

เริ่มต้นด้วยเครื่องกำเนิดไฟฟ้าเชิงพาณิชย์ (รวมถึง eBay) 10 MHz รูบิเดียมมีให้เลือกมากมาย แต่ไม่ว่าคุณจะได้รับความแม่นยำเท่าใดก็ตาม

ตอนนี้สร้างตัวแบ่ง progammable ความยาว 28 บิต ด้วยความเร็ว 10 MHz คุณสามารถใช้ตรรกะแบบ 74HC CMOS ได้ แต่คุณจะต้องใช้การตั้งค่าที่รวดเร็ว ผลลัพธ์ยังทำให้เกิดการหารด้วย flip-flop สองตัวซึ่งให้บิต 29

ตัวหารสามารถเรียกใช้ในอัตรา 10,274,912 หรือ 10,274,913 ขึ้นอยู่กับสถานะของบิต 29 สำหรับการป้อนข้อมูล 10 MHz ที่สมบูรณ์แบบช่วงเวลาเอาต์พุตที่มีประสิทธิภาพสำหรับบิต 28 จะเป็น 1.02749125 วินาทีซึ่งมีความแม่นยำประมาณ 1 ppb หรือประมาณ 30 มิลลิวินาที / ปี แน่นอนว่าการป้อนข้อมูลที่แม่นยำน้อยลงนั้นจะสร้างเอาต์พุตที่แม่นยำน้อยลง

การใช้ 74HC161s มาตรฐาน bog คุณสามารถทำได้ด้วย 8 ไอซีและถ้าคุณระวังคุณอาจใช้บอร์ดต้นแบบต้นแบบมาตรฐานแม้ว่าคุณจะต้องระวังเรื่องการโค่นระบบพื้น Perfboard จะมีราคาถูกกว่ากะทัดรัดและทนทานกว่า แต่การเดินสายจะสะดวกกว่าเพราะคุณจะต้องประสานการเชื่อมต่อ จากนั้นคุณสามารถใส่ลงในบางอย่างเช่น RTV ระดับอิเล็กทรอนิกส์ (ไม่ใช่ RTV ที่คุณซื้อที่ร้านฮาร์ดแวร์) สำหรับขนาดโมดูลสุดท้ายในช่วง 2 x 2 x 1/2 นิ้วไม่นับ oscillator

แก้ไข

โปรดทราบว่ามาตรฐานประสิทธิภาพของคุณซึ่งเชื่อมโยงกับ "ปกติ" RTCs นั้นอยู่ในช่วงความแม่นยำ 1 วินาที / วันซึ่งแย่กว่าวิธีนี้ 30 เท่า ดังนั้นก่อนอื่นคุณสามารถทำได้ด้วยบิต 29 สเตจหรือแบ่ง 10 MHz ของคุณเป็น 5 MHz และใช้อัตราส่วน 5,137,456 อัตรานาฬิกาที่ต่ำกว่าที่เคาน์เตอร์จะช่วยให้โครงสร้างการพกพาง่ายขึ้นหลีกเลี่ยงการพกพาที่รวดเร็วซึ่งจำเป็นที่ 10 MHz ตอนนี้ความแม่นยำของคุณอยู่ที่ 60 มิลลิวินาทีต่อปีสำหรับนาฬิกาที่สมบูรณ์แบบ

แก้ไขเพิ่มเติม

ดูอย่างรวดเร็วที่ eBay แสดง OCXOs ขนาด 10 MHz จำนวนน้อยกว่า 20 bucks โดยทั่วไปจะมีความเสถียร 1 ppb หรือดีกว่าโดยมี 0.2 ppb เป็นข้อมูลจำเพาะทั่วไป รับหนึ่งเหล่านี้และคุณควรจะอยู่ในสภาพดี คุณต้องการยืมเครื่องวัดความละเอียด / ความถี่รอบระยะเวลาที่ค่อนข้างสูงเพื่อกำหนดความถี่เอาท์พุทที่แท้จริงจากนั้นปรับอัตราส่วนการหารให้ตรงกัน


เห็นด้วยและแม้ว่า OCXO ไม่ได้อยู่ในงบประมาณพลังงาน TCXO คือและยังสามารถปรับปรุงผลึกนาฬิกาได้
ฮอบส์

4

101110141011

106

PLL ประเภท "N N synth" ใช้เพื่อให้ได้อัตราส่วนของการอ้างอิงเช่น 10Mhz จากหน่วย GPS บางตัว

หาก TCXO oscillator มีความเสถียร 1ppm ก็สามารถปรับได้มากกว่านี้เพียงเล็กน้อยและไม่สามารถชดเชยออฟเซ็ต 2.07% จาก 1 pps หรือ 1.0274912510 Hz ดังนั้น PLL ที่มีชิป N แบบเศษส่วนเป็นวิธีหนึ่งในการทำเช่นนี้ด้วย VC-OCXO หรือฝาครอบเชิงกลปรับ OCXO

เพิ่ม - เพื่อสร้าง 1pps ในเวลา MARs แล้วอัตราส่วนหารคือ 26,337.44856 โดยใช้ตัวเลขจำนวนเต็ม 5 ตัวและส่วนที่เหลือ 5 หลัก

  • หากคุณสามารถปรับแต่ง Xtal เป็น 0.01 ppm มันจะมีความเสถียรเพียง 1ppm เท่านั้นยกเว้นในกรณีที่มีอุณหภูมิประมาณ 30 องศาเซลเซียสเนื่องจาก Tempco นั้นปกติจะมีอุณหภูมิรอบร่างกายสำหรับ XTALS บางตัวซึ่งไม่จำเป็นต้องใช้ MEMs หากไม่มี Vcc และ temp อยู่ภายใน 0.1 องศาเซลเซียสอะไรก็ตามที่พยายามแก้ไขข้อผิดพลาดของสารตกค้างที่ดีกว่า 0.01 ppm นั้นเป็นไปไม่ได้แม้แต่ 0.1 ppm ก็ยากในระยะสั้นและในระยะยาวจะมีอย่างน้อย 1ppm ต่อปี

  • ตามทฤษฎีแล้วถ้าคุณมีการปรับเทียบนาฬิกา 1ppm จาก GPS เพื่อปรับเวลาโลก 1ppm มันจะเป็นไปไม่ได้เลยที่จะคาดหวังความถูกต้องที่แม่นยำกว่าในการแก้ไขส่วนที่เหลือ

  • ค่าความผิดพลาดตกค้างของตัวหารต่อวินาที คือ 44856/100000 (+26,337)

  • การแปลง 44856 เป็นไบนารี = 1010111100111000
  • สิ่งนี้ต้องการตัวนับส่วนที่เหลือเพื่อสลับระหว่าง / 44856 และ 45857

  • เราทำการแบ่งส่วนตกค้างนี้โดยการตัดทอนเลขฐานสองเหลือ 8 บิตจากนั้นหมุนบิตเพื่อให้ MSB กลายเป็น LSB

  • 10101111 กลายเป็น 11110101

  • ทุกวินาทีตัวนับตกค้างจาก 11110101 และตำแหน่ง "n" บิต = 1 คือค่านับในไบนารี n ^ 2 โดยที่อัตราส่วนจำนวนเต็มหารคือ 45857 แทนที่จะเป็น 44856 ตั้งแต่ LSB = 1 มันหมายถึงทุกการเปลี่ยนครั้งที่ 2 จนกระทั่ง 101 วินาทีจากนั้นตัวเลือกตัวแบ่งจะถูกสลับเป็น 1pps ต่อไป นี่เป็นการทำซ้ำเพื่อเลือกตัวแบ่งที่จะใช้สำหรับวินาทีถัดไปจากนั้นตัวชี้เพิ่มขึ้นจนกว่าตัวชี้จะถึงจุดสิ้นสุดและรอนาฬิกา Earth 1pps ต่อไป

  • กระบวนการนี้ถูกทำซ้ำสำหรับการนับจำนวนของไบนารี่ตกค้างที่หมุนได้ทั้งหมดนี้หรือ 10101111> 11110101 = 245 วินาทีเพื่อให้ตัวหาร N synth แบบเศษส่วนของ 1pps เวลา Mars ถูกสร้างขึ้นทุกวินาทีพร้อมการแก้ไขรอบ 245 วินาทีเพื่อให้ทันเวลา ในระยะยาว

- บางทีอัตราส่วนตัวแบ่งจุดลอยตัวสำหรับนาฬิกานั้นง่ายกว่า


2

คุณสามารถแก้ปัญหานี้ได้เล็กน้อยในซอฟต์แวร์โดยไม่ต้องเปลี่ยนฮาร์ดแวร์เลย (แม้ว่าคุณอาจต้องการความถี่อ้างอิงที่เสถียรกว่า) โดยใช้เศษส่วนไบนารีและคุณสามารถทำได้ด้วยวิธีที่ให้ความละเอียดระดับมิลลิวินาทีและสามารถทำให้ฟรีได้อย่างง่ายดาย มีข้อผิดพลาดในการแปลงมากพอที่จะให้คุณเห็นความถูกต้องพื้นฐานของแหล่งข้อมูลใด ๆ ที่คุณสามารถอ้างอิงได้รวมถึงนาฬิกาอะตอม

สิ่งที่คุณจะทำคือปรับเปลี่ยนตัวจับเวลาขัดจังหวะเพื่อสะสมในการลงทะเบียนที่กว้างมากและในแต่ละการขัดจังหวะจะเพิ่มมูลค่าที่ค่อนข้างยาวซึ่งจะแม่นยำเท่ากับการแสดงอัตราส่วนของมิลลิวินาทีโลกเป็นมิลลิวินาทีวินาทีตามที่คุณต้องการ

สมมุติว่าคุณต้องการการแก้ปัญหาแบบ 32 บิตสำหรับการแปลง คุณสามารถใช้ตัวสะสม 64- บิตกับ 32 บิตที่ต่ำกว่าแทนเศษส่วนที่คุณจะทำคือหาค่าที่เหมาะสมน้อยกว่า 2 ^ 32 เล็กน้อยซึ่งแสดงถึงปัจจัยการแปลง ทุกครั้งที่ Earth ของคุณเกิดการขัดจังหวะการยิงคุณเพิ่มมูลค่านี้ไปยังตัวสะสม เมื่อใดก็ตามที่คุณต้องการสอบถามนาฬิกาคุณจะส่งคืน 32 บิตบนซึ่งเป็นจำนวนมิลลิวินาทีวินาทีที่ผ่านไปทั้งหมดในขณะที่ 32 บิตต่ำกว่าจะถูกเก็บไว้ภายในเท่านั้นเพื่อหลีกเลี่ยงข้อผิดพลาดในการปัดเศษ

การใช้เศษส่วนไบนารีแบบยาวเช่นนี้ทำให้คุณสามารถทำการแปลงได้อย่างแม่นยำมากที่สุดเท่าที่คุณต้องการ 32 บิตนั้นยาวเกินไปสำหรับเศษส่วนในขณะที่ 32 บิตสำหรับมิลลิวินาทีทั้งหมดอาจสั้นเกินไป แต่คุณสามารถปรับได้ตามต้องการ

อนึ่งเทคนิคการสะสมในการลงทะเบียนที่ยาวนาน แต่การรายงานจำนวนบิตที่สำคัญที่สุดจำนวนหนึ่งคือวิธีการสังเคราะห์ดิจิตอลโดยตรงสามารถสร้างความละเอียดความถี่สูงมากได้

คุณสามารถลองทำส่วนหนึ่งของการแปลงโดยการเปลี่ยนอัตราส่วนของตัวแบ่งจาก 8 หรือ 16 MHz ระบบนาฬิกาเป็นมิลลิวินาทีขัดจังหวะย้ายมันใกล้กับช่วงเวลาของ "Mars มิลลิวินาที" โดยเฉพาะอย่างยิ่งถ้าคุณต้องการบางสิ่งที่แม่นยำกว่าคริสตัลราคาถูกคุณอาจต้องรับมือกับการอ้างอิง 10 MHz ที่มีระเบียบวินัยโดย GPS หรือมากกว่าโดยตรงจากนาฬิกาอะตอมดังนั้นคุณสามารถแทนที่แหล่งกำเนิดสัญญาณนาฬิกา AVR 8/16 MHz ตามปกติและทำการคำนวณใหม่ อัตราส่วนแบ่งตาม


0

การสังเคราะห์ดิจิตัลโดยตรง (DDS) หรือออสซิลเลเตอร์ควบคุมเชิงตัวเลขเป็นวิธีที่ง่ายในการรับความละเอียดระดับความถี่เอาท์พุทที่ต้องการโดยไม่ต้องพึ่งพาความถี่สัญญาณนาฬิกา

ด้วยวิธีนี้คุณจะมีตัวสะสมเฟสความละเอียดสูง ทุกลูปรอบตัวคุณเพิ่มการเพิ่มเฟสซึ่งมีความละเอียดดี เอาต์พุตเป็นบิตสะสมสูงสุด

เมื่อใช้มันเพื่อให้ squarewave ขอบสามารถเปลี่ยนได้ด้วยนาฬิกาอินพุต (หรืออัตราการวนรอบซอฟต์แวร์) ดังนั้นขอบกระวนกระวายใจจากที่มันควรจะเป็น แต่เมื่อเวลาผ่านไปไม่มีข้อผิดพลาดสะสม - คุณสามารถแก้ไขเป็น สูงตามที่คุณต้องการ

คุณสามารถทำได้ในซอฟต์แวร์ค่อนข้างง่าย (เช่นบน AVR) และตอนนี้ micros บางตัวมีฮาร์ดแวร์ NCO http://ww1.microchip.com/downloads/en/AppNotes/90003131A.pdf PIC ขนาดเล็กสามารถทำได้ในฮาร์ดแวร์ที่มีความละเอียด 20 บิต (1ppm) จาก 32kHz xtal หรือจากเตาอบ 10MHz ที่แม่นยำ


0

ดูว่าการรับผลึกควอทซ์ที่กำหนดเองในเตาอบทำงานด้วยความถี่ที่คุณต้องการ พวกเขาไม่เสียค่าใช้จ่ายมากไปกว่าความถี่มาตรฐาน เว็บค้นหา "คริสตัลควอตซ์แบบกำหนดเอง"

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.