שְׁאֵלָה:
האם ניתן להפעיל מיקרו-בקרים בתדרי שעון נמוכים באופן שרירותי?
endolith
2009-12-16 09:58:52 UTC
view on stackexchange narkive permalink

גיליון הנתונים של ה- ATTiny13A, למשל, מפרט את תדירות המינימום של 0 מגה-הרץ. האם זה אומר שניתן להפעיל את השעון בכל תדר נמוך באופן שרירותי ללא השפעות רעות? אני מניח שהוא שואב זרם נמוך יותר במהירויות שעון נמוכות יותר? האם 0 מגה-הרץ אומר שאתה יכול לעצור את השעון לחלוטין וכל עוד החשמל עדיין יופעל, הוא יזכור את מצבו ללא הגבלת זמן?

ברצוני להוסיף, זו שאלה מצוינת. מרבית חברות ה- EE הבכירות לא מקדישות לקרוא ולחשוב על גיליונות נתונים, שהיא השלמה עבורך או עלבון כלפיהם, ברצוני לרמוז על שתיהן.
אני לא לגמרי בטוח שהמתנד הפנימי RC מכובה, אלא אם כן אתה מורה לו במפורש (באמצעות אפשרויות שונות לחיסכון בחשמל). לא בטוח למה הוא משמש, אבל לפחות ל- EEPROM וכנראה ל- ADC.
@jippie איזה RC פנימי אתה אומר? ATMegaX למשל, כולל את ה- RC הפנימי לשעון המערכת (בדרך כלל 8Mhz, עם prescaler אופציונלי div 8), יש לו מתנד כלב שמירה. שעון המערכת נבחר נתיך וכנראה כבוי בעת שימוש בשעון חיצוני. האחרים כפי שאמרת עשויים להיות מושבתים על ידי מצבי חיסכון בחשמל, אבל אני בספק אם יעצור בשעון המערכת.
חָמֵשׁ תשובות:
#1
+75
todbot
2009-12-16 10:07:32 UTC
view on stackexchange narkive permalink

כן. אם בגליון הנתונים כתוב "פעולה סטטית לחלוטין", אתה יכול לשעון אותו בכל מהירות, אפילו 0 הרץ. לשבב "דינמי" צריך להיות שעון בקצב מסוים או שהוא מאבד ממצבו.

האם יש לך דוגמה למיקרו שמאפשר זאת?
מיקרו-בקרים המכילים פלאש על שבב עשויים לציין מהירות שעון פלאש מינימלית (ומקסימלית) בעת כתיבה להבזק. עם זאת, בעת קריאה מ- Flash, זה לא חל.
MrEvil, סדרת Atmel AVR ATtiny המוזכרת בשאלה היא סטטית לחלוטין, מכיוון שלדעתי רוב שבבי ה- AVR של Atmel. ואני חושב שרוב כל בקרי ה- PIC של Microchip.
ברצוני להוסיף MSP430s לרשימת todbot. רוב המיקרו-בקרים המודרניים כן, מהסוג הדינמי הם כאב ראש לעיצוב, ולכן לרוב לא.
למעשה, אני חושב שה- ADC ב- ATTiny13A לא עובד בתדרים נמוכים, אולי בגלל קבלת הדגימה והחזקה שנרקבת? "כברירת מחדל, מעגלי הקירוב הרציפים דורשים תדר שעון קלט בין 50 קילוהרץ ל -200 קילוהרץ כדי לקבל רזולוציה מרבית. ... מודול ה- ADC מכיל מחוון מחוון, שמייצר תדר שעון ADC מקובל מכל תדר מעבד מעל 100 קילו-הרץ."
endolith - אני מסכים, ADC בדרך כלל לא עובדים בתדרים נמוכים. עד כמה שאני יכול לדעת, כל השאר כמעט בכל המיקרו-בקרים המודרניים ממשיכים לעבוד בסדר עד "0 הרץ", המכונה "השהה ללא הגבלת זמן". בפרט, למיקרו-בקרים רבים יש מצב "שינה נמוכה בהספק" שעוצר את כל השעונים, עד שמשהו - בדרך כלל אדם שלוחץ על כפתור - מעיר אותו והוא מתחדש ממש במקום בו הפסיק. Http://en.wikipedia .org / wiki / Static_logic_ (digital_logic)
ה- RCA 1802 (http://en.wikipedia.org/wiki/RCA_1802) היה, AFAIK המיקרו הראשון שאפשר פעולה סטטית, עוד בשנת 1976.
עם זאת, ה- ADC עשוי להיחשב כהיקפי מנקודת המבט של טווח השעון של ליבת המעבד. נראה כי פעולה סטטית אינה עניין גדול. אתה יכול לחבר מעגל רציף באמצעות שבבי TTL וזה יעבוד למהירויות שעון נמוכות באופן שרירותי. זה דברים כמו נוכחות של DRAM שצריך לרענן שיוצרים אתגרים.
@Kaz: כאשר מייצרים מכשיר NMOS, יעיל יותר בחשמל למשוך אוטובוס ללא תנאי במחצית מחזור ואז למשוך אותו בתנאי נמוך יותר במחצית השנייה של המחזור, מאשר להשתמש במשיכה פסיבית שחייבת להיות חזקה מספיק כדימשוך את האוטובוס גבוה בתוך מחזור.הגישה הקודמת תבזבז את הזרם ביחס לקיבולת האוטובוסים * בפועל * בכל מחזור, ואילו האחרונה תבזבז את הזרם היחסי לזרם המקור האמיתי של מעגל שיכולת המקור הנוכחית הגרועה ביותר (הנמוכה ביותר) חייבת להיות מספיקה בכדי להניע את הגרוע ביותר-קיבולת (מקסימום) של אוטובוס.
@Kaz: מכשירי NMOS רבים כמו 6502 השתמשו לפיכך בהיגיון דינמי לדברים כמו נהיגה באוטובוסים, ולא רק "זיכרון" דינמי.שימוש בנהיגה דינמית של אוטובוסים משמעו שיש להבטיח יחסי קיבול / דליפה, אך אחרת מאפשר מרווחים נדיבים הרבה יותר בפרמטרים ייצוריים רבים אחרים ממה שהיה אפשרי בתכנון סטטי לחלוטין.
#2
+23
Kortuk
2009-12-16 10:41:34 UTC
view on stackexchange narkive permalink

אני מפרסם תשובה נוספת, רק בגלל שהשאלה האחרונה שהייתה לך לא נענתה לפני כן.

Todbot צודק לחלוטין. זה גם ימשוך הספק נמוך יותר במהירויות נמוכות יותר. זה גם אומר שאם אתה מספק את השעון ממעבד אחר, למשל, אתה יכול להפסיק לספק אותו בכל נקודה ואז להתחיל לשעון אותו אחר כך, כל עוד לא תלך מהר יותר מהמהירות המרבית, יהיה בסדר.

השבבים שיש לי מקבלים סדר גודל משתנים בין מתנד 32768 הרץ לזה של 1 מגה הרץ. היו לי יישומים שבהם לא הייתי זקוק למהירות, פשוט הייתי צריך עוד בחור קטן שעושה לי טיפול בסיסי בנתונים.

מקווה שזה יעזור.

תמיד רציתי להפעיל קו שעון של מיקרו-בקר עם כפתור לחצן. תן לאדם להיות השעון. :) ברמה רצינית, דברים ממש נחמדים בעיצובים הסטטיים האלה הם שצריכת החשמל שלהם היא ליניארית עם מהירות השעון: האטו את השעון והשתמשו בפחות חשמל. זה יכול להיות ממש שימושי.
כן, אבל אני אוהב לציין, צריכת חשמל היא פונקציה ליניארית עם קיזוז, גם ללא שעון הם עדיין צורכים חשמל, במיוחד עם כל היציאות המונעות. הרגע קיבלנו מתמחים חדשים בעבודתי, אציע לנו להשתמש בלחצן ולחץ מה קורה.
@todbot רעיון נחמד. :-) אבל הקפד לדחות את כפתור הלחצן.
נסה עם "כננת טחינה" (כמו בז'רגון שמשמעותה: http://www.jargon.net/jargonfile/g/grindcrank.html): -)) (וכן, לפני שנים רבות בניתי אחד לשלב דרך קוד כשהשתמשתי בטורבו פסקל בבית הספר :-)
@todbot זה לא ממש מופרך או קשה, אם אתה יכול לקבל הפשטה גסה. ישנן מספר דוגמאות לאנשים המשתמשים בגאדג'טים כאלה כדי ללמד כיצד מחשבים עובדים. למייק פרדקו יש ספר ממש טוב, והוא אפילו מגיע עם לוחות PCB (אם כי לא עבור פרויקט המחשב): http://www.amazon.com/Digital-Electronics-Guidebook-Michael-Predko/dp/0071377816/ref=sr_1_1 ? ie = UTF8 & qid = 1260970753 & sr = 8-1
-1
@Axeman - קובץ הז'רגון טוען כי "כננת הטחינה" היא מיתית. הנה ראיות להפך: http://www.computerhistory.org/babbage/. הארכובה מימין מניעה את המחשב; זה שמשמאל מניע את המדפסת. תוכל להרגיש טוב יותר את גודל הדבר על ידי צפייה בסרטון בדף זה; גובהו כשמונה מטרים.
@PeteBecker: למחשבון הקורטה היה גם ארכובה, שניתן היה ממש למשוך אותה למעלה או למטה כדי לבחור חיבור או חיסור.
#3
+18
supercat
2011-04-09 22:11:49 UTC
view on stackexchange narkive permalink

רוב העיצובים המודרניים של המיקרו-בקר יעבדו עם כל תבנית על קלט השעון שלהם, בתנאי ששום דופק גבוה אינו מתחת לאורך מינימלי מסוים, אין דופק נמוך מתחת לאורך מינימלי מסוים, ולא נמוך-גבוה-נמוך או גבוה זוג דופקים נמוך-גבוה נמוך מאורך מסוים. בעיקרון מה שקורה הוא שאחרי שהשבב יבצע את כל הפעולות הקשורות לקצה שעון מסוים, השבב יהיה במצב בו הוא לא עושה דבר מלבד לחכות לקצה השעון הבא. אם קצה השעון הבא לא יגיע לעשרה ימים אז (אלא אם כן יש לשבב כלב שמירה חיצוני כלשהו) השבב יהיה באותו מצב כאילו הקצה הגיע ברגע שהשבב היה מוכן אליו.

מיקרו-מעבדים, מיקרו-בקרים והתקנים אחרים ישנים היו בעלי זמן שעון גבוה ו / או שעון נמוך. מעבדים כאלה השתמשו בלוגיקה דינמית כדי לחסוך מעגלים. כדוגמה לוגיקה דינמית, שקול רושם משמרות: ביט רישום סטטי טיפוסי דורש מעגל שני טרנזיסטורים להחזיק את הערך, ואילו סיבית רישום דינמית מחזיקה את הערך בשער טרנזיסטור הקריאה. רושם משמרות דינמי בשני פאזות עשוי להתממש ב- NMOS באמצעות ארבעה NFET ושני נגדים לכל ביט. מרשם משמרות סטטי ידרוש שמונה NFET וארבעה נגדים לכל ביט. גישות לוגיות דינמיות אינן נפוצות כמעט כל כך כיום. עוד בשנות השבעים, קיבול השער היה משמעותי ולא היה מי שנפטר ממנו. לפיכך לא הייתה שום סיבה מיוחדת שלא לנצל זאת. כיום, קיבול השער בדרך כלל נמוך בהרבה, ויצרני השבבים מנסים באופן פעיל להפחית אותו עוד יותר. הפיכת הגיון דינמי לעבודה בצורה מהימנה תדרוש לעיתים קרובות עבודה מכוונת להגדלת קיבולת השער. ברוב המקרים, שטח השבבים הנוסף הדרוש להגדלת הקיבול יכול לשמש בצורה יעילה באותה מידה כדי להוסיף טרנזיסטורים נוספים כדי להפוך את הקיבול למיותר.

אתה מזכיר את NMOS ו- IIRC יש קשר בין הפופולריות של לוגיקה דינמית לבין MOS (CMOS) משלים שעדיין אינו זמין.
@jpc: בחנתי שרטוטים של שבבי NMOS שונים - חלקם בפירוט רב, כולל ה- Atari 2600 TIA שהיא עבודה אמיתית של גאונות - אנשים עדיין מוצאים דברים חדשים לעשות איתה שלושה עשורים מאוחר יותר. אני חושב שיתרון אחד של NMOS לעומת CMOS מנקודת מבט של נוחות עיצובית הוא ש- "shoot-through" (הפעלה בו זמנית של כונן בצד גבוה ונמוך) אינו גורם, אם כי אודה בסקרנות מדוע CMOS אינו מופעל במתח נמוך מספיק, כך שנקודת המעבר בכניסה תשאיר את מנהלי ההתקנים בצד גבוה ונמוך, במקום להפעיל את שניהם.
@jpc: ב- NMOS, ניתן ליישם שער XOR עם שני טרנזיסטורים ושני נגדים, אם הקלטים מספיק "חזקים". גם אם צריך להוסיף ממירים לשני הקלטים, שער XOR עם ארבעה טרנזיסטורים יהיה טוב יותר מגישות רבות אחרות. אף פעם לא ראיתי את הגישה הנהוגה, למרות שתכננתי מעגל דומה באמצעות BJT בסביבות 1978 (הרעיון העיצובי יעבוד טוב יותר עם MOSFETS, אך לא ידעתי עליהם דבר).
+1 - אני מרגיש שהפנינה האמיתית שהזכרת כאן היא שמהירויות שעון נמוכות יותר אמנם חוסכות בחשמל, אבל לא כמו מצבי שינה שתוכננו במיוחד כדי לייעל את החיסכון בחשמל. המעיים שלי אומרים לי שתחסוך יותר כוח בהפעלת מתנד מהיר בשילוב שימוש נבון במצב שינה, מעבר לריצה בתדירות נמוכה באמת כל הזמן.
@JoelB: זה תלוי בגורמים רבים. במעבדים רבים קיים עיכוב בין הפעלת שעון מהיר לבין היכולת להשתמש בו בפועל; במהלך תקופה זו, אדם יבזבז כוח. אם צריך היה להתעורר למשל 100x / שנייה, אולי עדיף לרוץ לאט ברציפות מאשר להתחיל ולהפסיק כל הזמן. מצד שני, אם מישהו יתחיל ויעצור את השעון המהיר, זה יכול להיות טוב למזער את משך הזמן שהוא פועל במידה שניתן לעשות זאת מבלי לבזבז אנרגיה נוספת. לדוגמה...
... אם למעבד יש "מצב מתח ליבה גבוה" שיכול לרוץ עד 16 מגה-הרץ ו"מצב מתח ליבה נמוך "שיכול לרוץ עד 4 מגה-הרץ, מעבר בין מצבי" עצירה "ל" -4 מגה-הרץ" עשוי להיות טוב יותר מאשר לעבור בין מצבי "עצירה" ל- "1 מגה-הרץ" אם הראשון ידרוש לבזבז פחות זמן ער; גם אם מעבר למצב 16Mhz יפחית את זמן ההשכמה עוד יותר, כנראה שזה לא יהיה שווה את עלות האנרגיה הנוספת.
@supercat - זה בהחלט תלוי בגורמים רבים (חלקם בלתי ניתנים לכימות). בסופו של דבר, האנרגיה היא המלך ותצטרך להתאים את ערכת השעון שלך בידיעת היישום / המעבד שלך וכמה / לעיתים קרובות העיבוד יתרחש. רק רציתי להצביע על נקודת המבט של "יער לעצים" שהבאת באמצעות אזכור מצב שינה בדיון זה. המעיים שלי אומרים לי שיש עדיין הרבה קוד ייצור עם 'while (1) {_ nop;}' שמהנדסים בעלי כוונות טובות חושבים שהם חוסכים הכי הרבה כוח על ידי ריצה במהירות איטית יותר במקום ליישם את מצב השינה כמו שצריך.
@JoelB: ההערה שלך הזכירה לי בעיה שחלק מהמהנדסים האחרים קיבלו זמן מה: פלט השמע של המערכת לפעמים מזמזם בצורה מעצבנת. התברר שבכל פעם שמערכת ההפעלה מגלה כי למעבד אין מה לעשות, הוא היה מרדים אותו. זה הפחית את צריכת החשמל, בתורו מאפשר ל- VDD לעלות מעט. כל 10 שניות, המעבד היה מתעורר כדי לראות אם יש עוד מה לעשות. הבעיה נפתרה על ידי הוספת משהו כמו: "לעשות {} בזמן (audio_powered_on ());" לפני הצהרת "שינה ()" במשימת סרק שכן במצב זה, חיסכון בכוח * לא היה * מלך.
@supercat - נשמע שהסיפור הזה מוכיח בדיוק את ההפך. צריך היה לתכנן ספק כוח שצוין / מווסת / מסונן / מנותק כראוי כך שלא תהיה לו השפעה ניכרת על השמע על העומס התפעולי הצפוי של המעבד. אז נראה שכוח (או ליתר דיוק _עיצוב אספקת חשמל_) הוא עדיין המלך. תיקון נהדר אגב!
למה אתה מתכוון בכך שיש שינה פחות כוח מאשר עצירת השעון?ב- atmel למשל, הדבר היחיד ששונה בין שינה לריצה, זה אילו שעונים נעצרים.אין דבר אחר ששינה יכולה לעשות?אלא אם כן זה מפחית כוח לחלקים?
לסינון אספקת החשמל @JoelB: יש שלושה היבטים: (1) למנוע מגרוטאות מבפנים לצאת החוצה;(2) למנוע מגרוטאות בחוץ להיכנס פנימה;(3) למנוע משינויים במשיכת הזרם לשנות מתח פנימי.אופטימיזציה למספר 1 בדרך כלל תשפיע לרעה על מספר 3.אם המכשיר היה משתמש באספקה נפרדת לחלוטין עבור שמע ומעבד, זה היה מונע את הבעיה אך דורש יותר אלקטרוניקה לאספקת חשמל;הבעיה הייתה שהמעבד ומעגלי השמע היו באותו צד של אותו פילטר.
@SectoKia: האלטרנטיבה לא הייתה בין עצירת השעון לשינה אלא בין שינה במצב סרק לעומת ביצוע הוראות חסרות תועלת כדי להבטיח משיכת כוח אחידה יותר.למרות שמעבדים רבים אכן מפחיתים חשמל לחלקים משמעותיים במצבי שינה נמוכים יותר.
#4
+12
flup
2013-12-19 15:28:24 UTC
view on stackexchange narkive permalink

כן, אתה יכול לעצור את השעון לחלוטין ולהפעיל אותו מחדש במועד מאוחר יותר ללא השלכות. אתה יכול אפילו להחליף את השעון בלחיצת כפתור ולעבור בתוכנית שלך ממש צעד אחר צעד (תדר: בערך 0.1 הרץ).

ההספק כמעט ליניארי עם התדר: ב -10 מגה הרץ המיקרו-בקר יצרוך פי 10 הספק רב כמו ב- 1 מגה הרץ. אין פירוש הדבר כי ב 0 הרץ הצריכה היא אפס לחלוטין. תמיד יש פיזור סטטי, אבל זה נמוך מאוד, בדרך כלל 1 uA או פחות.

PS: שים לב של- ADC אכן יש תדירות הפעלה מינימלית. אם התדר נמוך מדי הקבל שעליו נמדד המתח יתפרק יותר מדי והמדידה שלך תהיה שגויה.

לחץ על הכפתור?מה לגבי שיפוץ?
נדרש שיפוץ.
#5
+10
Buzby
2013-04-17 15:08:18 UTC
view on stackexchange narkive permalink

אם איחרתי להגיע לשאלה זו, זה הזכיר לי פרויקט שראיתי לפני זמן מה.

זהו גלאי עטלפים שמשתמש ב- PIC שפועל באפס הרץ במשך רוב הזמן ואז נשעון מעצם האות שהוא מזהה.

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

בפרויקט זה (http://scanlime.org/2008/09/using-an-avr-as-an-rfid-tag/) האות הוא גם השעון * וגם הכוח לשבב *. :)


שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 2.0 עליו הוא מופץ.
Loading...