แผนผังจะแบ่งปันคริสตัลหนึ่งเดียวกับสอง micros ได้อย่างไร


20

ฉันจะแบ่งปันคริสตัลเดี่ยว (ไม่ใช่โมดูล oscillator ที่สมบูรณ์) ระหว่างสอง micros ได้อย่างไร ตกลงไหมที่จะเชื่อมต่อทุกอย่างตามปกติสำหรับไมโครตัวแรกและเชื่อมต่อ XO ของมันกับ XI ของไมโครคอนโทรลเลอร์ตัวที่สองโดยตรงหรือไม่ ฉันคาดว่าจะวางไมโครใกล้ชิดกันบนกระดาน

คำตอบ:


17

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

ฉันคาดว่าจะมีปัญหาในการพยายามขับสองออสซิลเลเตอร์จากผลึกเดียวกันหากไม่มีเหตุผลอื่นนอกจากความจุของร่องรอย PCB ยาวที่ต้องใช้ระหว่างโปรเซสเซอร์ทั้งสองจะทำให้เกิดความผิดปกติ

แผนผัง

จำลองวงจรนี้ - แผนผังที่สร้างโดยใช้CircuitLab


1
ไมโครคอนโทรลเลอร์บางตัวมีขาเอาต์พุตนาฬิกาแยกต่างหากซึ่งไม่ได้เชื่อมต่อกับคริสตัล
joeforker

2
โปรเซสเซอร์ MSP430 สามารถกำหนดเส้นทางนาฬิกาภายใน (ACLK, SMCLK หรือ MCLK) ใด ๆ ออกจากหมุด I / O ของพวกเขา ฉันใช้ ACLK out (32768Hz) เพื่อจัดหานาฬิกาสำรอง RTC ไปยังอุปกรณ์ GPS สำหรับเวลาที่พลังงานหลักปิดอยู่
คุณ

7

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

ดังนั้นคุณจะต้องเลือกหนึ่งในสองไมโครเพื่อทำหน้าที่เป็นไดร์เวอร์คริสตัล (กำหนดค่าตามที่แสดงในส่วน 6.2.6 ของแผ่นข้อมูล) และไมโครอื่น ๆ เพื่อใช้อินพุตนาฬิกาภายนอก (6.2.1 ของแผ่นข้อมูล) จากนั้นเปลี่ยนการเชื่อมต่อแผนผังของคุณดังนี้:

แผนผัง

จำลองวงจรนี้ - แผนผังที่สร้างโดยใช้CircuitLab

อีกทางเลือกหนึ่งถ้าต้องการความสมมาตรคุณสามารถใช้ออสซิลเลเตอร์ภายนอกแทนคริสตัลได้ จากนั้นทั้งสองสามารถทำงานในโหมดนาฬิกาภายนอก


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

@Asmyldof แน่นอนฉันต้องการความแม่นยำเวลาของคริสตัล บางทีอาจจำเป็นต้องใช้วิธีแก้ปัญหาแบบสมมาตร? ออสซิลเลเตอร์ภายนอกเชื่อมต่อกันอย่างไร?
GisMofx

1
ดังนั้นถ้า C2 = 10pF (สมมติว่าโหลดประมาณ 10pF เนื่องจากอินพุต CLKI) และเก็บ C1 = 22pF เอาไว้ใช่ไหม
MarkU

1
ไม่มันเพิ่งจะเกิดขึ้นราวกับว่ามันใช้นาฬิกาภายนอก
Houston Fortney

1
@GisMofx ฉันตั้งค่าสถานะเพื่อขอให้รวมคำตอบเพื่อที่จะได้ย้ายไปยังคำถามอื่นเพื่อให้สามารถรักษาได้
Passerby

3

ปัญหาของวิธีการนั้นคือการเชื่อมต่อกับอินพุตออสซิลเลเตอร์ที่สองจะส่งผลต่อความจุของพินนั้นและเปลี่ยนความถี่เล็กน้อยเช่นเดียวกับการลดไดรฟ์คริสตัล แม้ว่ามันอาจจะไม่สำคัญและเป็นไปได้ยากมากที่จะป้องกันการสั่น เมื่อฉันต้องการทำเช่นนั้นสำหรับผลิตภัณฑ์ฉันได้ใช้โมดูล oscillator คริสตัลสำหรับ MCU ทั้งสอง


2
ความจุที่เพิ่มขึ้นเล็กน้อยในสายเอาต์พุตของออสซิลเลเตอร์ไม่ได้เป็นปัญหามากนัก ส่วนใหญ่เป็นความจุของด้านเอาต์พุตของคริสตัลซึ่งเป็นสายอินพุตออสซิลเลเตอร์ที่ก่อให้เกิดภาระบนคริสตัลและจำเป็นต้องมีสิทธิ์ในการรับความถี่ที่เหมาะสมภายในช่วง หากคุณต้องการกระจายนาฬิกาอย่างกว้างขวางให้ใส่ CMOS buffer gate ใกล้กับ micro ด้วยคริสตัล
Olin Lathrop

นอกจากนี้ยังเป็นความคิดที่ดีสำหรับ EMI ที่จะหลีกเลี่ยงสัญญาณนาฬิกาเส้นทางข้ามบอร์ด
joeforker

3

คุณสามารถสร้างออสซิลเลเตอร์โดยใช้ชิป cheapo invertor (0.1 $) หรือเครื่องกำเนิดสัญญาณนาฬิกาพิเศษ (แพงกว่าเล็กน้อย) และป้อนนาฬิกานั้นให้กับ uC ทั้งสอง

เพียงแค่เชื่อมต่อคริสตัลเข้ากับทั้งสองจะไม่ทำงาน (เชื่อถือได้)


2

หากเป็นเช่น PIC ที่ฉันใช้คุณมี XTALout และและ XTALin พร้อมกับ XTAL จริงระหว่างพวกเขากับตัวพิมพ์ใหญ่ (อาจประมาณ 22pf) ลองเชื่อมต่อ XTALout ของอันหนึ่งกับ XTALin ของอีกอัน


แนะนำให้ใช้ตัวเก็บประจุแบบอนุกรมขนาดเล็กเพื่อขับออสซิลเลเตอร์ตัวที่สองจากเอาต์พุตตัวแรก
stevenvh

1

ทำออสซิลเลเตอร์ออกมาจากคริสตัลของคุณและอินเวอร์เตอร์เช่น BarsMonster แนะนำและป้อนเข้าไปในอินพุตของบัฟเฟอร์การกระจาย fanout ICIC เอาต์พุตบัฟเฟอร์ fanout หนึ่งไปยังอินพุตนาฬิกาของแต่ละ MCU

ฉันไม่สามารถแนะนำส่วนที่เฉพาะเจาะจงได้โดยไม่ทราบว่าคุณใช้ micros ตัวใด แต่คุณต้องการเริ่มด้วยตัวกรองเหล่านี้:

  • ประเภท: บัฟเฟอร์ Fanout (การกระจาย)
  • จำนวนแผงวงจร: 1
  • อัตราส่วน - อินพุต: เอาต์พุต: 1: 2

1
รายการชิ้นส่วน 3000 นั้นไม่มีประโยชน์จริง ๆ เลือกหนึ่งในนั้นและอธิบายว่าทำไมจึงเป็นตัวเลือกที่ดี
stevenvh

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