ไมโครคอนโทรลเลอร์สามารถทำงานที่ความถี่สัญญาณนาฬิกาต่ำได้หรือไม่?


103

ตัวอย่างเช่นแผ่นข้อมูลสำหรับ ATTiny13A จะแสดงความถี่ขั้นต่ำเป็น 0 MHz นี่หมายความว่านาฬิกาสามารถทำงานที่ความถี่ต่ำโดยไม่มีกฎเกณฑ์ใด ๆ ได้หรือไม่? ฉันสมมติว่ามันดึงกระแสไฟฟ้าที่ต่ำกว่าด้วยความเร็วสัญญาณนาฬิกาที่ลดลง? 0 MHz หมายความว่าคุณสามารถหยุดนาฬิกาได้อย่างสมบูรณ์และตราบใดที่ยังคงมีการใช้พลังงานอยู่มันจะจดจำสถานะของมันได้อย่างไม่มีกำหนด?


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

ฉันไม่แน่ใจทั้งหมดว่า RC oscillator ภายในปิดตัวลงเว้นแต่คุณจะสั่งให้ทำอย่างนั้น (ผ่านทางเลือกการประหยัดพลังงานต่างๆ) ไม่แน่ใจว่าใช้กับอะไร แต่อย่างน้อยก็สำหรับ EEPROM และอาจเป็น ADC
jippie

1
@ jippie คุณกำลังพูดอะไร RC ภายใน? ตัวอย่างเช่น ATMegaX มี RC ภายในสำหรับนาฬิการะบบ (ปกติ 8Mhz พร้อมด้วย div 8 prescaler เสริม) มันมีจ้องจับผิด watchdog นาฬิการะบบถูกเลือกและอาจปิดเมื่อใช้นาฬิกาภายนอก คนอื่น ๆ ตามที่คุณพูดอาจถูกปิดใช้งานโดยโหมดประหยัดพลังงาน แต่ฉันสงสัยว่าจะหยุดโดยนาฬิการะบบ
Diego C Nascimento

คำตอบ:


73

ใช่. หากแผ่นข้อมูลระบุว่า "การดำเนินการคงที่" คุณสามารถนาฬิกาได้ทุกความเร็วแม้กระทั่ง 0 Hz ชิป "ไดนามิก" จำเป็นต้องมีนาฬิกาในอัตราที่กำหนดหรือสูญเสียสถานะ


1
คุณมีตัวอย่างของไมโครที่อนุญาตสิ่งนี้หรือไม่?
MrEvil

4
ไมโครคอนโทรลเลอร์ที่มีแฟลชบนชิปอาจระบุความเร็วสัญญาณนาฬิกาขั้นต่ำ (และสูงสุด) แฟลชเมื่อเขียนไปยังแฟลช อย่างไรก็ตามเมื่ออ่านจากแฟลชสิ่งนี้จะไม่สามารถใช้ได้
Steve Melnikoff

8
MrEvil ซีรีย์ Atmel AVR ATtiny ที่กล่าวถึงในคำถามนั้นเป็นแบบสแตติกฉันคิดว่า Atmel AVR ชิพส่วนใหญ่ทั้งหมด และฉันคิดว่าคอนโทรลเลอร์ไมโครคอนโทรลเลอร์ PIC ของ Microchip ส่วนใหญ่ทั้งหมด
todbot

7
ที่จริงแล้วฉันคิดว่า ADC ใน ATTiny13A ไม่ทำงานที่ความถี่ต่ำอาจเป็นเพราะตัวเก็บประจุแบบเก็บตัวอย่างและเนื้อที่ลดลง? "ตามค่าเริ่มต้นวงจรประมาณต่อเนื่องจำเป็นต้องใช้ความถี่สัญญาณนาฬิกาอินพุตระหว่าง 50 kHz และ 200 kHz เพื่อให้ได้ความละเอียดสูงสุด ... โมดูล ADC ประกอบด้วยพรีสเกลเลอร์ซึ่งสร้างความถี่สัญญาณนาฬิกา ADC ที่ยอมรับได้จากความถี่ CPU ใด ๆ ที่สูงกว่า 100 kHz"
endolith

8
endolith - ฉันเห็นด้วยว่า ADC มักจะไม่ทำงานที่ความถี่ต่ำ เท่าที่ฉันสามารถบอกได้ทุกอย่างในไมโครคอนโทรลเลอร์ที่ทันสมัยทุกคนยังคงทำงานได้ดีไปจนถึง "0 Hz" หรือ "หยุดชั่วคราวไปเรื่อย ๆ " โดยเฉพาะอย่างยิ่งไมโครคอนโทรลเลอร์จำนวนมากมีโหมด "การนอนหลับพลังงานต่ำ" ซึ่งจะหยุดนาฬิกาทั้งหมดจนกว่าจะมีบางสิ่งที่คนมักจะกดปุ่ม - ปลุกให้มันตื่นขึ้นมา en.wikipedia.org/wiki/Static_logic_(digital_logic)
davidcary

23

ฉันกำลังโพสต์คำตอบอื่นเพียงเพราะคำถามสุดท้ายที่คุณยังไม่ได้ตอบมาก่อน

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

ชิปที่ฉันได้รับคำสั่งเปลี่ยนขนาดระหว่าง 32768Hz oscillator และ 1MHz ฉันมีแอพพลิเคชั่นที่ฉันไม่ต้องการความเร็วฉันแค่ต้องการคนตัวเล็ก ๆ อีกคนที่ทำการจัดการข้อมูลพื้นฐานให้ฉัน

หวังว่านี่จะช่วยได้


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

5
ใช่ แต่ฉันอยากจะทราบว่าการใช้พลังงานเป็นฟังก์ชันเชิงเส้นที่มีการชดเชยแม้ว่าจะไม่มีนาฬิกาที่พวกเขายังคงใช้พลังงานโดยเฉพาะอย่างยิ่งเมื่อมีการขับเคลื่อนผลลัพธ์ เราเพิ่งได้ฝึกงานใหม่ในที่ทำงานของฉันฉันจะแนะนำให้เราใช้ปุ่มกดและดูว่าเกิดอะไรขึ้น
Kortuk

13
@todbot ความคิดที่ดี :-) แต่ให้แน่ใจว่าได้หักล้างปุ่มกด
starblue

4
ลองด้วย "ข้อเหวี่ยงข้อเหวี่ยง" (เช่นเดียวกับในความหมายของศัพท์แสง: jargon.net/jargonfile/g/grindcrank.html ) :-)) (และใช่หลายปีที่ผ่านมาฉันได้สร้างรหัสผ่านถึงขั้นตอนเมื่อฉันใช้ Turbo Pascal ที่โรงเรียน :-)
Axeman

@todbot มันไม่ได้ไกลหรือยากจริงๆถ้าคุณสามารถยอมรับสิ่งที่เป็นนามธรรม มีตัวอย่างหลายคนที่ใช้แกดเจ็ตดังกล่าวเพื่อสอนวิธีการใช้คอมพิวเตอร์ Myke Predko มีหนังสือที่ดีมากและมันยังมาพร้อมกับ PCBs (แม้ว่าจะไม่ใช่สำหรับโครงการคอมพิวเตอร์): amazon.com/Digital-Electronics-Guidebook-Michael-Predko/dp/…
Lou

17

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

โปรดทราบว่าโดยทั่วไปการหยุดนาฬิกาในไมโครคอนโทรลเลอร์จะลดการใช้กระแสไฟฟ้าลงอย่างมาก แต่ไม่มากเท่ากับการใช้คุณสมบัติ "สลีป" การบริโภคในปัจจุบันของไมโครคอนโทรลเลอร์ส่วนใหญ่ในโหมด "เรียกใช้" สามารถประมาณได้ค่อนข้างดีว่าเป็นกระแสคงที่ที่นิ่งบวกจำนวนหนึ่งของกระแสไฟฟ้าต่อรอบต่อวินาที (ซึ่งอาจจะมากกว่า 'ตามธรรมชาติ' ที่แสดงเป็นประจุต่อรอบ) ตัวอย่างเช่นชิปอาจมีกระแสคงที่ 10uA บวกกระแส 0.1mA / MHz (100pC / รอบ) การใช้งานชิพที่ความเร็ว 10MHz จะให้ค่าปัจจุบัน 1.01mA การรันที่ 1MHz จะให้ค่า 0.11mA ทำงานที่ 100KHz จะให้ผล 0.02mA ทำงานที่ 1Hz woudl ให้ผลตอบแทน 0.0100001mA ในทางกลับกันชิปอาจมีกระแสสลีป 1uA โดยทั่วไปแล้ว การเข้าสู่โหมดสลีปจะเป็นการปิดพื้นที่ของชิปที่จะไม่ทำสิ่งใดที่มีประโยชน์ในขณะที่ชิปกำลังหลับอยู่ดังนั้นจึงหลีกเลี่ยงการรั่วไหลของกระแสไฟฟ้าบริเวณดังกล่าว ในบางกรณีจะลดแรงดันไฟฟ้าไปยังพื้นที่เช่นไฟล์ลงทะเบียนไปยังระดับที่ไฟล์ลงทะเบียนสามารถเก็บเนื้อหาของพวกเขา แต่ไม่สามารถเข้าถึงได้อย่างรวดเร็ว (เนื่องจากไม่สามารถเข้าถึงได้เลยความเร็วในการเข้าถึงไม่สำคัญ) .

ไมโครโปรเซสเซอร์ที่เก่ากว่าบางตัวไมโครคอนโทรลเลอร์และอุปกรณ์อื่น ๆ มีเวลาสูงสุดนาฬิกาและ / หรือนาฬิกาต่ำสุด โปรเซสเซอร์ดังกล่าวใช้ประโยชน์จากตรรกะแบบไดนามิกเพื่อบันทึกวงจร เป็นตัวอย่างของตรรกะแบบไดนามิกให้พิจารณา shift register: บิตเรจิสเตอร์คงที่ทั่วไปต้องใช้วงจรสองทรานซิสเตอร์เพื่อเก็บค่าในขณะที่บิตเรจิสเตอร์แบบไดนามิกเก็บค่าไว้ที่ประตูของทรานซิสเตอร์ที่อ่านได้ การลงทะเบียนการเปลี่ยนแปลงแบบไดนามิกสองเฟสที่โอเวอร์คล็อกอาจเกิดขึ้นได้ใน NMOS โดยใช้ NFET สี่ตัวและตัวต้านทานสองตัวต่อบิต การลงทะเบียนกะแบบคงที่จะต้องมีแปด NFET และตัวต้านทานสี่ตัวต่อบิต วิธีการเชิงตรรกะแบบไดนามิกไม่ได้เป็นเรื่องธรรมดาในปัจจุบัน ย้อนกลับไปในปี 1970 ความจุของเกทมีมากและไม่มีการกำจัดมัน ดังนั้นจึงไม่มีเหตุผลใดที่จะไม่ใช้ประโยชน์จากมัน วันนี้ โดยทั่วไปความจุของเกตจะต่ำกว่ามากและผู้ผลิตชิปกำลังพยายามลดความจุลงอย่างมาก การทำลอจิกแบบไดนามิกที่เชื่อถือได้มักจะต้องมีการทำงานอย่างจงใจเพื่อเพิ่มความจุของเกท ในกรณีส่วนใหญ่พื้นที่ชิปเพิ่มเติมที่จำเป็นในการเพิ่มความจุอาจจะถูกใช้อย่างมีประสิทธิภาพเพื่อเพิ่มทรานซิสเตอร์มากขึ้นเพื่อที่จะทำให้ความจุไม่จำเป็น


คุณพูดถึง NMOS และ IIRC มีการเชื่อมต่อระหว่างความนิยมของตรรกะแบบไดนามิกและ MOS ที่สมบูรณ์ (CMOS) ที่ยังไม่พร้อมใช้งาน
jpc

@ jpc: ฉันได้ตรวจสอบแผนงานของชิป NMOS ต่างๆ - บางอย่างในรายละเอียดที่ดีรวมถึง Atari 2600 TIA ซึ่งเป็นงานอัจฉริยะที่แท้จริง - ผู้คนยังคงหาสิ่งใหม่ที่จะทำกับมันสามทศวรรษต่อมา ฉันคิดว่าข้อดีอย่างหนึ่งของ NMOS เมื่อเทียบกับ CMOS จากจุดยืนการออกแบบที่สะดวกสบายคือ 'การยิงผ่าน' (การเปิดใช้งานพร้อมกันของไดรฟ์สูงและต่ำโดยไม่ตั้งใจ) เป็นปัจจัยที่ไม่ใช่ถึงแม้ว่าฉันจะสารภาพความอยากรู้ CMOS ไม่ทำงานที่แรงดันไฟต่ำพอที่จุดตัดขวางบนอินพุตจะปล่อยให้ไดรเวอร์ด้านข้างสูงและต่ำปิดแทนที่จะเปิดใช้งานทั้งสองอย่าง
supercat

@jpc: ใน NMOS เป็นไปได้ที่จะใช้เกท XOR พร้อมทรานซิสเตอร์สองตัวและตัวต้านทานสองตัวหากอินพุตมี "ความแข็งแกร่ง" เพียงพอ แม้ว่าเราจะต้องเพิ่มอินเวอร์เตอร์ให้กับอินพุตทั้งสอง แต่ประตู xor สี่ตัวต้านทานสี่ตัวต้านทานจะดีกว่าวิธีการอื่น ๆ ฉันไม่เคยเห็นวิธีที่ใช้แม้ว่าฉันจะออกแบบวงจรที่คล้ายกันโดยใช้ BJT ในปี 1978 (แนวคิดการออกแบบจะทำงานได้ดีขึ้นกับ MOSFETS แต่ฉันไม่รู้อะไรเกี่ยวกับพวกเขา)
supercat

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

@ JoelB: ขึ้นอยู่กับหลายปัจจัย ในโปรเซสเซอร์จำนวนมากมีความล่าช้าระหว่างการเปิดใช้นาฬิกาอย่างรวดเร็วและความสามารถในการใช้งานจริง ในช่วงเวลานี้ใครจะเสียพลังงาน หากต้องตื่นขึ้นเช่น 100x / วินาทีมันอาจจะดีกว่าที่จะทำงานช้าอย่างต่อเนื่องมากกว่าที่จะเริ่มต้นและหยุดอย่างต่อเนื่อง ในทางกลับกันหากมีใครกำลังจะเริ่มและหยุดนาฬิกาเร็วมันอาจจะเป็นการดีที่จะลดระยะเวลาที่มันวิ่งไปจนถึงระดับที่สามารถทำได้โดยไม่ต้องเสียพลังงานเพิ่มเติม ตัวอย่างเช่น ...
supercat

12

ใช่คุณสามารถหยุดนาฬิกาได้อย่างสมบูรณ์และเริ่มใหม่ในภายหลังโดยไม่มีผลกระทบ คุณสามารถแทนที่นาฬิกาด้วยปุ่มกดและผ่านโปรแกรมของคุณอย่างแท้จริงทีละขั้นตอน (ความถี่: ประมาณ 0.1 Hz)

พลังงานเกือบเป็นเส้นตรงกับความถี่: ที่ 10 MHz ไมโครคอนโทรลเลอร์จะใช้พลังงานมากถึง 10 เท่าที่ 1 MHz นี่ไม่ได้หมายความว่าที่ 0 Hz การบริโภคจะเป็นศูนย์อย่างสมบูรณ์แม้ว่า มีการกระจายแบบคงที่เสมอ แต่ก็ต่ำมากโดยทั่วไปคือ 1 uA หรือน้อยกว่า

PS: สังเกตว่า ADC มีความถี่ในการทำงานขั้นต่ำ หากความถี่ต่ำเกินไปตัวเก็บประจุที่วัดแรงดันไฟฟ้าจะคายประจุมากเกินไปและการวัดของคุณจะผิด


ปุ่มกด? การเดบิตเป็นอย่างไร
Peter Mortensen

1
จำเป็นต้องเปิดการใช้งาน
Vovanium

10

มาถึงคำถามนี้มันทำให้ฉันนึกถึงโครงการที่ฉันเห็นในขณะที่กลับมา

มันเป็นตัวตรวจจับค้างคาวที่ใช้ PIC ที่ทำงานที่ศูนย์ Hz เป็นส่วนใหญ่แล้วจะถูกตอกบัตรโดยสัญญาณที่ตรวจจับได้

http://www.micro-examples.com/public/microex-navig/doc/077-picobat.html


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