ARM MCU ทำงานเร็วกว่าคริสตัลภายนอกได้อย่างไร


12

ดังนั้นก่อนหน้านี้ฉันทำงานกับ Atmel MCU 8 บิตที่เรียบง่ายเท่านั้นและฉันก็ตระหนักในแผนงานของฉันว่ามันมีผลึก 12Mhz เท่านั้น แต่ MCU นั้นทำงานที่ 100MHz (ฉันคิดว่าค่าเริ่มต้นคือ 80MHz. ฉันทำให้มันสูงขึ้นเพียงครั้งเดียวเพื่อความสนุกสนานมันเป็นเพียงบรรทัดง่าย ๆ ในรหัส)

มันทำอย่างไร ทำไม Atmega328 ถึงทำงานที่ความเร็วคริสตัลมือสอง?


5
1) mHz หมายถึง milli Hertz ดังนั้น 1 ใน 1,000 ของเฮิร์ตซ์ใช้ MHz (capital M) เมื่อคุณหมายถึง Mega Hertz 2) 8 บิต MCU คืออะไร? 3) คณะกรรมการพัฒนาอะไร 4) ATMega 328 ไม่จำเป็นต้องวิ่งด้วยความเร็วของคริสตัลอ่านส่วนของการตอกบัตรในแผ่นข้อมูลเพื่อดูว่าอะไรเป็นไปได้ 5) IC บางตัวมี PLL ซึ่งสามารถใช้เพื่อคูณความถี่สัญญาณนาฬิกาภายนอก
Bimpelrekkie

1
@Bimpelrekkie: ความคิดเห็นส่วนใหญ่นั้นเป็นคำตอบ คุณต้องการคำตอบจากมันหรือไม่?
JRE

ตัวแบ่ง VCO เพื่อเปรียบเทียบกับ 12 MHz สิ้นสุดการคูณ f นั่นคือสิ่งที่ PLL freq synth ทำ
Tony Stewart Sunnyskyguy EE75

@Bimpelrekkie ดูเหมือนว่ามีคนแก้ไขแล้วสำหรับฉัน ฉันพูดถึง Atmel และ atmega328 แล้ว แต่มันไม่สำคัญว่าเป็นตัวอย่าง afaik atmega328p ไม่มี PPL หรือไม่ ฉันอยากรู้ว่าคุณจะคูณมันได้อย่างไร โชคดีที่ Marcus Muller ได้อธิบายไปแล้วดีมาก
user3033693

หน่วยประมวลผลในคอมพิวเตอร์ที่คุณกำลังอ่านอยู่มีแนวโน้มที่จะใช้นาฬิกาอ้างอิง 100Mhz หรือช้ากว่า แต่แกนประมวลผลทำงานในหน่วยกิกะเฮิร์ตซ์
old_timer

คำตอบ:


28

นี่ไม่เกี่ยวอะไรกับแกนประมวลผล ARM มันเกี่ยวกับการทำงานของวงจรตอกบัตร:

ในหลาย ๆ ระบบเช่นไมโครคอนโทรลเลอร์, ชิป RF, ชิปเสียง, ... คุณจำเป็นต้องสร้างนาฬิกาที่เร็วขึ้นซึ่งเป็นนาฬิกาอ้างอิงหลายตัวที่แน่นอน (ตัวอย่างเช่นคริสตัลภายนอก)

คุณทำเช่นนั้นโดยมี oscillator ที่ควบคุมแรงดันไฟฟ้า (VCO) ซึ่งคุณสามารถปรับความถี่ได้โดยการลดหรือควบคุมแรงดันไฟฟ้า

ตอนนี้เพียงแค่ตั้งค่าแรงดันไฟฟ้าควบคุมคุณสามารถนำสิ่งนั้นมาแกว่งที่ความถี่อย่างคร่าว ๆ ใน "ballpark" ที่ถูกต้อง แต่ไม่ใช่ความถี่อินพุทที่แน่นอน โดยเฉพาะอย่างยิ่ง VCOs อาจลอยได้เล็กน้อยดังนั้นความถี่ที่จะ "เดิน" ไปทั่วทุกที่อย่างต่อเนื่อง คุณจำเป็นต้องควบคุม oscillator นั้นโดยเปรียบเทียบกับ oscillator อ้างอิง

วิธีที่จะทำคือการจ้างเฟสล็อกลูป ความคิดง่าย ๆ :

  1. แบ่งความถี่ที่ออกมาของ VCO โดยปัจจัย ; นั่นเป็นปัจจัยที่เราต้องการให้ VCO นั้นเร็วกว่าการอ้างอิง การทำเช่นนั้นง่าย: ตัวอย่างเช่นคุณสามารถใช้ตัวนับดิจิตอลที่นับเป็น N จากนั้นเปลี่ยนเอาต์พุตN
  2. เปรียบเทียบนาฬิกานาฬิกาอ้างอิงที่{ref} หากหนึ่งเร็วกว่าอื่นปรับความถี่ตาม คุณสามารถทำสิ่งนี้ในรูปแบบดิจิตอลโดยเพียงแค่แฮคเกอร์ทั้งสองนาฬิกา - หากว่าพวกเขาเหมือนกันผลลัพธ์ที่ได้คือค่าคงที่ 0 แต่ถ้าอย่างใดอย่างหนึ่งเร็วกว่าอีกแบบหนึ่ง แฮคเกอร์ของนาฬิกาทั้งสองคือ 1 ชะลอหรือเพิ่มความเร็ว VCO ตามนั้นfVCO/Nfref

ด้านบนเป็นลูปควบคุมซึ่งถูกล็อกไปยังเฟสของ - ดังนั้นชื่อ

สำหรับไมโครคอนโทรลเลอร์ "รวย" ซึ่งมีอุปกรณ์ต่อพ่วงจำนวนมากและได้รับประโยชน์จากการมีนาฬิกาหลายตัวภายในจึงเป็นเรื่องปกติที่จะมีอย่างน้อย 1 PLL ATMega328 นั้นค่อนข้างแปลกในแง่นี้: มันเป็นไมโครคอนโทรลเลอร์ที่ค่อนข้างกินไฟและต่อพ่วงที่ยังไม่มี PLL


1
ขอบคุณ :) มันอธิบายได้ดีมาก! แทนที่จะพูดถึงความสนุกหรือมุ่งเน้นไปที่ความผิดพลาดโง่ ๆ ของฉันคุณแค่บอกฉันว่าฉันขออะไร บางสิ่งยากมากสำหรับฉันที่จะใส่ใจ Dyslexia ของฉัน แม้ว่าฉันจะอ่านรางโพสต์ของฉัน 2-3 ครั้งฉันก็ทำพลาดมากมายหรือใส่ตัวพิมพ์ใหญ่โดยไม่ตั้งใจซึ่งฉันไม่ต้องการ ไม่พูดถึงภาษาอังกฤษไม่ใช่ภาษาแรกของฉัน
user3033693

7
@myGamble ภาษาอังกฤษของคุณดีมาก! ฉันคิดว่าความคิดเห็นแรกที่คุณได้รับภายใต้โพสต์ของคุณเป็นเพราะวิศวกรหนุ่มสาวจำนวนมากเพียงลืมเกี่ยวกับตัวพิมพ์ใหญ่ของหน่วย - ซึ่งสามารถกลายเป็นปัญหาได้ในภายหลัง :) ฉันหวังว่าคุณจะไม่หมดกำลังใจ!
Marcus Müller

9

อุปกรณ์บางอย่างมี PLL ซึ่งสามารถคูณความถี่คริสตัลเป็นความถี่สูงขึ้น ATMega328 ไม่มี PLL มันใช้คริสตัลโดยตรง

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