Atmel 8-bit AVR מיקרו-בקר עם 2/4/8K בתים בתוך מערכת פלאש לתכנות
תכונות
- ביצועים גבוהים, AVR® 8-Bit מיקרו-בקר בהספק נמוך
- אדריכלות RISC מתקדמת
- 120 הוראות חזקות - ביצוע מחזור השעון היחיד ביותר
- 32 x 8 רישומי עבודה למטרות כלליות
- מבצע סטטי לחלוטין
- זיכרונות תכנית ונתונים שאינם נדיפים
- 2/4 / 8K בתים פלאש זיכרון לתכנות בתוך המערכת
- הַתמָדָה: 10,000 מחזורי כתיבה/מחיקה
- 128/256/512 בתים EEPROM לתכנות במערכת
- הַתמָדָה: 100,000 מחזורי כתיבה/מחיקה
- 128/256/512 בתים SRAM פנימי
- נעילת תכנות לתכנות פלאש לתכנות עצמי ו- EEPROM אבטחת נתונים
תכונות היקפיות
- טיימר / מונה 8 סיביות עם Prescaler ושתי ערוצי PWM
- טיימר / מונה במהירות גבוהה 8 סיביות עם פרסקלר נפרד
- 2 יציאות PWM בתדירות גבוהה עם רושמים השוואת פלט נפרדים
- מחולל זמן מת מתכנת
- USI - ממשק סידורי אוניברסלי עם גלאי תנאי התחלה
- 10 סיביות ADC
4 ערוצים עם סיום יחיד
2 זוגות ערוצי ADC דיפרנציאליים עם רווח לתכנות (1x, 20x)
מדידת טמפרטורה
טיימר כלב שמירה לתכנות עם מתנד על שבב נפרד
משווה אנלוגי על שבב
תכונות מיקרו-בקר מיוחדות
debugWIRE מערכת איתור באגים על שבב
ניתן לתכנות בתוך המערכת באמצעות יציאת SPI
מקורות הפרעה חיצוניים ופנימיים
צריכת חשמל סרק נמוכה, הפחתת רעש ADC ומצבי כיבוי
מעגל איפוס הפעלה משופר
מעגל איתור חום מתוכנת
מתנד מכויל פנימי
קלט / פלט וחבילות
שישה קווי I / O ניתנים לתכנות
8 פינים PDIP, 8 פינים SOIC, 20 פנקסים QFN / MLF ו- 8 פינים TSSOP (רק ATtiny45 / V)
כרך הפעלהtage
- 1.8 - 5.5V עבור ATtiny25V / 45V / 85V
- 2.7 - 5.5 וולט עבור ATtiny25 / 45/85
ציון מהירות
- ATtiny25V / 45V / 85V: 0 - 4 MHz @ 1.8 - 5.5V, 0 - 10 MHz @ 2.7 - 5.5V
- ATtiny25 / 45/85: 0 - 10 MHz @ 2.7 - 5.5 V, 0 - 20 MHz @ 4.5 - 5.5 V
טווח טמפרטורות תעשייתי
צריכת חשמל נמוכה
מצב פעיל:
1 מגה-הרץ, 1.8 וולט: 300 µA
מצב כיבוי:
תצורות סיכה
Pinout ATtiny25 / 45/85
תיאורי סיכות
VCC: Supply Voltage.
GND: קרקע.
יציאה B (PB5:PB0): יציאה B היא יציאת I/O דו-כיוונית של 6 סיביות עם נגדי משיכה פנימיים (נבחרים עבור כל סיביות). למאגרי הפלט של Port B יש מאפייני כונן סימטריים עם יכולת כיור ומקור גבוהים כאחד. בתור כניסות, פינים של יציאה B שנמשכים כלפי חוץ נמוך יספקו זרם אם נגדי המשיכה יופעלו. הפינים של יציאה B הם משולשים כאשר מצב איפוס הופך לפעיל, גם אם השעון אינו פועל.
יציאה B משרתת גם את הפונקציות של תכונות מיוחדות שונות של ATtiny25 / 45/85 כמפורט
ב- ATtiny25, יציאות ה- I / O המתוכנות PB3 ו- PB4 (סיכות 2 ו -3) מוחלפות במצב תאימות ATtiny15 לתמיכה בתאימות לאחור עם ATtiny15.
איפוס: איפוס קלט. רמה נמוכה על סיכה זו למשך זמן ארוך יותר מאורך הפולס המינימלי תיצור איפוס, גם אם השעון אינו פועל ובתנאי שפין האיפוס לא הושבת. אורך הדופק המינימלי ניתן ב טבלה 21-4 בעמוד 165. לא מובטח שפעימות קצרות יותר יניבו איפוס.
סיכת האיפוס יכולה לשמש גם כסיכת קלט / פלט (חלשה).
מֵעַלview
ה- ATtiny25 / 45/85 הוא מיקרו-בקרת 8-סיביות CMOS בעל הספק נמוך המבוסס על ארכיטקטורת RISC המשופרת באמצעות AVR. על ידי ביצוע הוראות חזקות במחזור שעון יחיד, ה- ATtiny25 / 45/85 משיג תפוקות המתקרבות ל -1 MIPS למגה-הרץ ומאפשרת למעצב המערכת לייעל את צריכת החשמל לעומת מהירות העיבוד.
תרשים בלוקים
ליבת ה- AVR משלבת מערך הוראות עשיר עם 32 רושמי עבודה כלליים. כל 32 הרגיסטרים מחוברים ישירות ליחידת הלוגיקה האריתמטית (ALU), ומאפשרים גישה לשני רגיסטרים עצמאיים בהוראה אחת המבוצעת במחזור שעון אחד. הארכיטקטורה המתקבלת יעילה יותר בקוד תוך השגת תפוקות עד פי עשרה מהר יותר ממיקרו בקרי CISC קונבנציונליים.
ה- ATtiny25 / 45/85 מספק את התכונות הבאות: 2/4 / 8K בתים של פלאש לתכנות בתוך המערכת, 128/256/512 בתים EEPROM, 128/256/256 בתים SRAM, 6 קווי קלט / פלט למטרות כלליות, 32 כללי רישומי עבודה ייעודיים, טיימר / מונה 8 סיביות אחד עם מצבי השוואה, טיימר / מונה מהיר 8 סיביות, ממשק סידורי אוניברסלי, הפרעות פנימיות וחיצוניות, ADC 4 ערוצים, 10 סיביות, טיימר כלב שמירה לתכנות עם פנימי מתנד ושלושה מצבי חיסכון בחשמל באמצעות תוכנה. מצב סרק מפסיק את המעבד תוך שהוא מאפשר למערכת SRAM, טיימר / דלפק, ADC, Comparator Analog ו- Interrupt להמשיך ולתפקד. מצב הכיבוי שומר את תוכן הרישום, ומבטל את כל פונקציות השבב עד להפסקה או לאיפוס החומרה הבא. מצב הפחתת רעש של ADC עוצר את המעבד ואת כל מודולי הקלט / פלט למעט ADC, כדי למזער רעשי מיתוג במהלך המרות ADC.
המכשיר מיוצר בטכנולוגיית הזיכרון הלא-נדיפה בצפיפות גבוהה של אטמל. ה- ISP Flash שבב מאפשר לתכנות מחדש את זיכרון התוכנית בתוך המערכת באמצעות ממשק טורי SPI, על ידי מתכנת זיכרון קונבנציונאלי שאינו נדיף או על ידי קוד אתחול על שבב הפועל על ליבת ה- AVR.
ה- AVR ATtiny25 / 45/85 נתמך עם חבילת כלים מלאה של פיתוח תוכניות ומערכות הכוללות: C- קורסרים, מכלולי מאקרו, איתור באגים / סימולטורים וערכות הערכה.
על משאבים
קבוצה מקיפה של כלי פיתוח, הערות יישומים וגיליונות נתונים זמינים להורדה http://www.atmel.com/avr.
קוד Examples
תיעוד זה מכיל קוד פשוט למשלampדברים המראים בקצרה כיצד להשתמש בחלקים שונים של המכשיר. הקוד הזה למשלamples מניחים שכותרת הספציפית לחלק file כלול לפני הידור. שים לב שלא כל ספקי המהדר C כוללים הגדרות ביט בכותרת files והטיפול בפסיקה ב- C תלוי במהדר. אנא אשר עם תיעוד המהדר C לפרטים נוספים.
עבור רישומי קלט / פלט הממוקמים במפת הקלט / פלט המורחבת, יש להחליף את הוראות "IN", "OUT", "SBIS", "SBIC", "CBI" ו- "SBI בהוראות המאפשרות גישה ל- I מורחב / O. בדרך כלל, משמעות הדבר היא "LDS" ו- "STS" בשילוב עם "SBRS", "SBRC", "SBR" ו- "CBR". שים לב שלא כל מכשירי ה- AVR כוללים מפת קלט / פלט מורחבת.
חישת מגע קיבולית
Atmel QTouch Library מספקת פתרון פשוט לשימוש עבור ממשקים רגישים למגע במיקרו-בקרים של Atmel AVR. ספריית QTouch כוללת תמיכה בשיטות רכישה של QTouch® ו-QMatrix®.
חישת מגע מתווספת בקלות לכל יישום על ידי קישור ספריית QTouch ושימוש בממשק תכנות היישומים (API) של הספרייה להגדרת ערוצי המגע והחיישנים. לאחר מכן היישום מתקשר לממשק ה- API כדי לאחזר מידע על הערוץ ולקבוע את מצב חיישן המגע.
ספריית QTouch הינה בחינם וניתן להוריד אותה מהאתמל webאֲתַר. למידע נוסף ופרטי יישום, עיין במדריך למשתמש של ספריית QTouch - זמין גם באתר Atmel webאֲתַר.
שמירת נתונים
תוצאות הסמכת אמינות מראות ששיעור הכשל בשמירת נתונים צפוי נמוך בהרבה מ -1 PPM במשך 20 שנה בטמפרטורה של 85 מעלות צלזיוס או 100 שנה בטמפרטורה של 25 מעלות צלזיוס.
ליבת מעבד AVR
מָבוֹא
חלק זה דן בארכיטקטורת הליבה של AVR באופן כללי. התפקיד העיקרי של ליבת המעבד הוא להבטיח ביצוע נכון של התוכנית. לכן על המעבד להיות מסוגל לגשת לזיכרונות, לבצע חישובים, לשלוט בציוד היקפי ולטפל בהפרעות.
אדריכלי מעלview
על מנת למקסם את הביצועים וההקבלה, ה- AVR משתמש בארכיטקטורה של הרווארד - עם זיכרונות ואוטובוסים נפרדים לתכנית ולנתונים. הוראות בזיכרון התוכנית מבוצעות באמצעות צינור ברמה אחת. בזמן ביצוע הוראה אחת, ההוראה הבאה תועבר מראש מזיכרון התוכנית. תפיסה זו מאפשרת לבצע הוראות בכל מחזור שעון. זיכרון התוכנית הוא זיכרון פלאש בתוך המערכת.
הרשמה לגישה מהירה File מכיל 32 x 8 סיביות אוגרי עבודה לשימוש כללי עם זמן גישה למחזור שעון בודד. זה מאפשר פעולת יחידת לוגיקה אריתמטית במחזור אחד (ALU). בפעולת ALU טיפוסית, שני אופרנדים יוצאים מהמרשם File, הפעולה מבוצעת והתוצאה מאוחסנת בחזרה ברישום File- במחזור שעון אחד.
שישה מתוך 32 המרשמים יכולים לשמש כשלושה מצביעי רישום כתובות עקיפים של 16 סיביות עבור כתובת שטח נתונים - המאפשרים חישובי כתובות יעילים. אחת ממצביעי הכתובת הללו יכולה לשמש גם כמצביעת כתובת לטבלאות חיפוש בזיכרון התוכנית Flash. רושמי הפונקציות הנוספים הללו הם רישום ה- X-, Y- ו- Z-16 ביט, המתואר בהמשך פרק זה.
ה- ALU תומך בפעולות חשבון ולוגיקה בין אוגרים או בין קבוע לרישום. ניתן לבצע פעולות של רישום יחיד גם ב- ALU. לאחר פעולת חשבון, רישום הסטטוס מעודכן כדי לשקף מידע על תוצאת הפעולה.
זרימת התוכנית ניתנת על ידי הוראות קפיצה ושיחה מותנות ללא תנאי, המסוגלות לתת מענה ישיר לכל מרחב הכתובות. לרוב הוראות ה- AVR יש פורמט מילים יחיד של 16 סיביות, אך ישנן גם הוראות של 32 סיביות.
במהלך הפרעות ושיחות תת-דרך, כתובת השולח Program Counter (PC) מאוחסנת בערימה. הסטאק מוקצה למעשה בנתונים הכלליים SRAM, וכתוצאה מכך גודל ה- Stack מוגבל רק בגודל ה- SRAM הכולל ובשימוש ב- SRAM. על כל תוכניות המשתמש לאתחל את ה- SP בשגרת האיפוס (לפני ביצוע תת-רוטינות או הפרעות). Stack Pointer (SP) נגיש לקריאה / כתיבה בחלל הקלט / פלט. ניתן לגשת בקלות לנתוני SRAM דרך חמשת מצבי ההתייחסות השונים הנתמכים בארכיטקטורת ה- AVR.
חללי הזיכרון בארכיטקטורת ה- AVR הם כולם מפות זיכרון ליניאריות ורגילות.
למודול הפסקה גמיש יש את רושמי הבקרה שלו במרחב הקלט / פלט עם סיבית הפעלה גלובלית נוספת נוספת ברשמת הסטטוס. לכל ההפרעות יש וקטור הפרעה נפרד בטבלה וקטור הפרעה. להפרעות יש עדיפות בהתאם למיקום ה- Interrupt Vector שלהם. ככל שכתובת ה- Interrupt Vector נמוכה יותר, כך העדיפות גבוהה יותר.
מרחב זיכרון הקלט/פלט מכיל 64 כתובות עבור פונקציות היקפיות של מעבד כמו רשומי בקרה, SPI ופונקציות קלט/פלט אחרות. ניתן לגשת לזיכרון הקלט/פלט ישירות, או כמיקומי מרחב הנתונים בהתאם לאלה של המרשם File, 0x20 - 0x5F.
ALU - יחידת לוגיקה אריתמטית
AVR ALU בעל ביצועים גבוהים פועל בחיבור ישיר עם כל 32 מרשמי העבודה למטרות כלליות. בתוך מחזור שעון יחיד, מתבצעות פעולות חשבון בין רושמים למטרות כלליות או בין רשום למיידי. פעולות ה- ALU מחולקות לשלוש קטגוריות עיקריות - חשבונות, לוגיים ופונקציות ביט. יישומים מסוימים של האדריכלות מספקים גם מכפיל חזק התומך גם בכפל חתום / לא חתום וגם בפורמט חלקי. לקבלת תיאור מפורט עיין בסעיף "מערך ההוראות".
רישום סטטוס
רישום הסטטוס מכיל מידע על תוצאת ההוראה החשבונית שבוצעה לאחרונה. מידע זה יכול לשמש לשינוי זרימת התוכנית על מנת לבצע פעולות מותנות. שים לב שרשם הסטטוסים מתעדכן לאחר כל פעולות ה- ALU, כמפורט בהפניה למערך ההוראות. זה במקרים רבים יסיר את הצורך בשימוש בהוראות ההשוואה הייעודיות, וכתוצאה מכך קוד מהיר וקומפקטי יותר.
רישום הסטטוס אינו מאוחסן באופן אוטומטי בעת כניסה לשגרת הפסקות ומשוחזר בעת חזרה מהפרעה. זה חייב להיות מטופל על ידי תוכנה.
SREG - AVR Status Register
רישום מצב ה- AVR - SREG - מוגדר כ:
קצת | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3F | I | T | H | S | V | N | Z | C | סרג |
קריאה/כתיבה | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
ערך התחלתי | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ביט 7 - I: הפסקת הפרעה גלובלית
יש להגדיר את הסיבית Global Interrupt Enable כדי שהפרעות יתאפשרו. בקרת הפסקת הפרט האינדיבידואלית מתבצעת אז ברשומות בקרה נפרדות. אם רישום הפעלת הפסקת הגלובלי מנוקה, אף אחת מההפרעות אינה מופעלת ללא תלות בהגדרות הפעלת הפרעות הבודדות. ה- I-bit מנוקה על ידי חומרה לאחר התרחשות הפרעה, והוא מוגדר על ידי הוראת RETI כדי לאפשר הפרעות עוקבות. ניתן להגדיר ולנקות את ה- I-bit גם על ידי היישום באמצעות הוראות SEI ו- CLI, כמתואר בהתייחס לערכת ההוראות.
ביט 6 - T: אחסון העתקות סיביות
הוראות העתקת הביט BLD (Bit LoaD) ו- BST (Bit Store) משתמשות ב- T-bit כמקור או כיעד לביט המופעל. קצת מרשם במרשם File ניתן להעתיק ל- T על פי הוראת BST, ומעט ב- T ניתן להעתיק למעט במרשם במרשם. File לפי הוראת BLD.
ביט 5 - H: חצי דגל נשיאה
חצי דגל נשיאה H מציין חצי נשיאה בכמה פעולות חשבון. Half Carry שימושי בחשבון BCD. ראה "תיאור מערך ההוראות" למידע מפורט.
Bit 4 – S: Sign Bit, S = N ⊕ V
ה- S-bit הוא תמיד בלעדי או בין הדגל N השלילי לדגל הצפת השלמות V של השניים. ראה מידע מפורט על תיאור מערך ההוראות.
ביט 3 - V: דגל הצפת השלמה של שתיים
דגל הצפת ה- V של השניים משלים תומך בחשבון משלים של שניים. ראה "תיאור מערך ההוראות" למידע מפורט.
ביט 2 - N: דגל שלילי
הדגל השלילי N מציין תוצאה שלילית בפעולת חשבון או לוגיקה. ראה "תיאור מערך ההוראות" למידע מפורט.
ביט 1 - Z: אפס דגל
אפס הדגל Z מציין תוצאה אפסית בפעולת חשבון או לוגיקה. ראה "תיאור מערך ההוראות" למידע מפורט.
ביט 0 - ג: דגל נשיאה
דגל הנשיאה C מציין נשיאה בפעולת חשבון או לוגיקה. ראה "תיאור מערך ההוראות" למידע מפורט.
מרשם למטרות כלליות File
המרשם File מותאם לערכת ההוראות RISC משופרת של AVR. על מנת להשיג את הביצועים והגמישות הנדרשים, תוכניות הקלט/פלט הבאות נתמכות על ידי הרשמה File:
אופרנד פלט של 8 סיביות וקלט תוצאה אחד של 8 סיביות
שני אופראנדים של 8 סיביות ופלט קלט אחד של 8 סיביות
שני אופראנדים של 8 סיביות ופלט קלט אחד של 16 סיביות
אופרנד פלט של 16 סיביות וקלט תוצאה אחד של 16 סיביות
איור 4-2 מציג את מבנה 32 רושמי העבודה הכלליים למעבד.
כפי שמוצג ב איור 4-2, לכל רישום מוקצית גם כתובת זיכרון נתונים, הממפה אותם ישירות ל -32 המיקומים הראשונים של מרחב הנתונים של המשתמש. אף על פי שאינו מיושם פיזית כמיקומי SRAM, ארגון זיכרון זה מספק גמישות רבה בגישה לרשמים, מכיוון שניתן להגדיר את רגיסי X-, Y- ו- Z- מצביע לאינדקס כל רשם ברשומות file.רוב ההוראות הפועלות במרשם File יש להם גישה ישירה לכל הרשמים, ורובם הם הוראות מחזור יחיד.
רישום ה- X, ה- Y-register ו- Z-register
לרושמים R26..R31 יש כמה פונקציות שנוספו לשימושם הכללי. רושמים אלה הם מצביעי כתובות של 16 סיביות לטיפול עקיף במרחב הנתונים. שלושת רישומי הכתובת העקיפים X, Y ו- Z מוגדרים כמתואר ב איור 4-3.
במצבי ההתייחסות השונים לרשומות הכתובות הללו יש פונקציות כמו תזוזה קבועה, תוספת אוטומטית וירידה אוטומטית (ראו את ההפניה להגדרת ההוראות לפרטים).
מצביע ערימה
ה- Stack משמש בעיקר לאחסון נתונים זמניים, לאחסון משתנים מקומיים ולאחסון כתובות החזרה לאחר הפרעות ושיחות תת-דרך. רישום מצביעי הערימה תמיד מצביע על החלק העליון של הערימה. שים לב שה- Stack מיושם כצומח ממיקומי זיכרון גבוהים יותר למיקומי זיכרון נמוכים יותר. זה מרמז שפקודת Stack PUSH מקטינה את מצביע הערימה.
מצביע הערימה מצביע על אזור ערימת הנתונים של SRAM שבו נמצאים ערימות תת-הערימה והפסקות. שטח הגיבוב הזה בנתוני SRAM חייב להיות מוגדר על ידי התוכנית לפני ביצוע שיחות תת-דרכים או הפעלת הפרעות. יש להגדיר את מצביע הערימה לנקודה מעל 0x60. מצביע הערימה מופחת על ידי אחד כאשר נתונים נדחפים אל הערימה באמצעות הוראת ה- PUSH, והיא מופחתת על ידי שתיים כאשר כתובת ההחזרה נדחפת אל הערימה עם קריאה או הפרעה תת-דרך. מצביע הערימה מצטבר על ידי אחד כאשר קופצים נתונים מהערימה עם הוראות POP, והוא מוגדל על ידי שניים כאשר נתונים מוצצים מהערימה עם חזרה מ- RET תת-דרך או חזרה מ- RETI הפסיקה.
מצביע ערימת ה- AVR מיושם כשני רושמים של 8 סיביות בחלל הקלט / פלט. מספר הסיביות המשמש בפועל תלוי ביישום. שים לב שמרחב הנתונים בחלק מהיישומים של ארכיטקטורת ה- AVR הוא כל כך קטן שרק SPL נדרש. במקרה זה, ה- SPH Register לא יהיה נוכח.
SPH ו- SPL - Register Pointer Register
קצת | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | |
0x3E | SP15 | SP14 | SP13 | SP12 | SP11 | SP10 | SP9 | SP8 | SPH |
0x3D | SP7 | SP6 | SP5 | SP4 | SP3 | SP2 | SP1 | SP0 | SPL |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||
קריאה/כתיבה | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
קריאה/כתיבה | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
ערך התחלתי | רמנד | רמנד | רמנד | רמנד | רמנד | רמנד | רמנד | רמנד | |
ערך התחלתי | רמנד | רמנד | רמנד | רמנד | רמנד | רמנד | רמנד | רמנד |
תזמון ביצוע הוראות
סעיף זה מתאר את מושגי תזמון הגישה הכלליים לביצוע פקודות. ה-CPU של הרסיבר מונע על ידי שעון המעבד clkCPU, שנוצר ישירות ממקור השעון שנבחר עבור השבב. לא נעשה שימוש בחלוקת שעון פנימית.
איור 4-4 מציג את אחוזי ההוראה וההוראות המקבילות המאופיינות על ידי הארכיטקטורה של הרווארד ורשם הגישה המהירה File מוּשָׂג. זהו רעיון הצינור הבסיסי להשגת עד 1 MIPS לכל מגהרץ עם התוצאות הייחודיות המתאימות לפונקציות לכל עלות, פונקציות לכל שעונים ופונקציות ליחידת כוח.
איור 4-5. פעולת ALU במחזור אחד
אפס והפסיק את הטיפול
ה- AVR מספק מספר מקורות הפסקה שונים. להפרעות אלה ולווקטור האיפוס הנפרד יש וקטור תוכנית נפרד במרחב הזיכרון של התוכנית. לכל ההפרעות מוקצים סיביות הפעלה בודדות שיש לכתוב בהגיון אחד יחד עם סיבית ה- Global Interrupt Enable במרשם המצב על מנת לאפשר את ההפרעה.
הכתובות הנמוכות ביותר במרחב זיכרון התוכנית מוגדרות כברירת מחדל כקטורי איפוס והפרעה. הרשימה המלאה של הווקטורים מוצגת ב "מפריע" בעמוד 48. הרשימה קובעת גם את רמות העדיפות של ההפרעות השונות. ככל שהכתובת נמוכה יותר רמת העדיפות גבוהה יותר. ל- RESET יש את העדיפות הגבוהה ביותר, ואחריה INT0 - בקשת הפסקה חיצונית 0.
כאשר מתרחשת הפרעה, ה- Interrupt Global Enrupt I-bit מנוקה וכל ההפרעות מושבתות. תוכנת המשתמש יכולה לכתוב לוגיקה ל- I-bit כדי לאפשר הפרעות מקוננות. כל ההפרעות המופעלות יכולות להפריע לשגרת ההפרעה הנוכחית. ה- I-bit מוגדר אוטומטית כאשר מתבצעת הוראת Return from Interrupt - RETI.
יש בעצם שני סוגים של הפרעות. הסוג הראשון מופעל על ידי אירוע שמגדיר את דגל ההפרעה. עבור הפרעות אלה, מונה התוכנית מווקטור לווקטור ההפרעה בפועל על מנת לבצע את שגרת הטיפול בהפסקות, והחומרה מנקה את דגל ההפרעה המתאים. ניתן לנקות דגלים להפסיק גם על ידי כתיבת לוגיקה למיקום סיביות הדגל שאותו יש לנקות. אם מתרחש מצב הפסקה בזמן שמנקים את ביט הפעלת ההתאמה המתאים, דגל ההפרעה ייקבע וייזכר עד שההפרעה מופעלת, או שהדגל מנוקה על ידי תוכנה. באופן דומה, אם תנאי הפרעה אחד או יותר מתרחשים בזמן ביטול הפעלת Global Interrupt Enable, דגל ההפסקה המתאים יוגדר וייזכר עד להגדרת ביט ה- Global Interrupt Enable, ואז יבוצע לפי סדר עדיפויות.
הסוג השני של הפרעות יופעל כל עוד קיים מצב ההפרעה. להפרעות אלה אין צורך בדגלים להפריע. אם מצב ההפרעה נעלם לפני הפעלת ההפרעה, ההפרעה לא תופעל.
כאשר ה- AVR יוצא מהפסקה, הוא תמיד יחזור לתוכנית הראשית ויבצע הוראה נוספת לפני שתוגש כל הפסקה ממתינה.
שים לב כי רישום הסטטוס אינו מאוחסן אוטומטית בעת כניסה לשגרת הפרעה, ואינו משוחזר בעת חזרה משגרת הפרעה. זה חייב להיות מטופל על ידי תוכנה.
בעת שימוש בהוראת CLI להשבתת הפרעות, ההפרעות יושבתו באופן מיידי. לא תתבצע הפרעה לאחר הוראת CLI, גם אם היא מתרחשת במקביל להוראת CLI. האקס הבאample מראה כיצד ניתן להשתמש בזה כדי למנוע הפרעות במהלך רצף הכתיבה של EEPROM המתוזמן.
קוד הרכבה Example |
ב-r16, SREG; לאחסן ערך SREG
cli ; השבת פסיקות במהלך רצף מתוזמן sbi EECR, EEMPE; התחל לכתוב EEPROM sbi EECR, EEPE החוצה SREG, r16; שחזור ערך SREG (I-bit) |
קוד C Example |
char cSREG;
cSREG = SREG; /* אחסן ערך SREG */ /* השבת פסיקות במהלך רצף מתוזמן */ _CLI (); EECR |= (1< EECR | = (1 < SREG = cSREG; /* שחזור ערך SREG (I-bit) */ |
בעת שימוש בהוראת SEI כדי לאפשר הפרעות, ההוראה הבאה לאחר SEI תבוצע לפני כל הפרעה תלויה, כפי שמוצג באקס זהample.
קוד הרכבה Example |
סיי ; הגדר הפעלת פסיקה גלובלית
לִישׁוֹן; להיכנס לשינה, מחכה להפרעה ; הערה: יכנס לשינה לפני כל המתנה ; להפריע (ים) |
קוד C Example |
_SEI(); /* set Global Interrupt Enable */
_לִישׁוֹן(); /* היכנס למצב שינה, ממתין להפרעה */ / * הערה: יכנס לשינה לפני כל הפרעה (ים) בהמתנה * / |
הפסק את זמן התגובה
תגובת ביצוע ההפרעה לכל הפרעות ה- AVR המופעלות היא מינימום ארבעה מחזורי שעון. לאחר ארבעה מחזורי שעון מתבצעת כתובת וקטור התוכנית לשגרת הטיפול בהפרעה בפועל. במהלך תקופת מחזור השעון הארבע הזו, דלפק התוכנית נדחק אל הערימה. הווקטור הוא בדרך כלל קפיצה לשגרת ההפרעה, וקפיצה זו אורכת שלושה מחזורי שעון. אם מתרחשת הפרעה במהלך ביצוע הוראה מרובת מחזורים, הוראה זו הושלמה לפני שההפרעה מוגשת. אם מתרחשת הפרעה כאשר ה- MCU נמצא במצב שינה, זמן התגובה לביצוע ההפרעה מוגדל בארבעה מחזורי שעון. עליה זו מגיעה בנוסף לזמן ההפעלה ממצב השינה שנבחר.
חזרה משגרת טיפול בהפסקות אורכת ארבעה מחזורי שעון. במהלך ארבעת מחזורי השעון הללו, מונה התוכנית (שני בתים) מופנה חזרה מהערימה, מצביע הערימה מצטבר על ידי שניים, ו- I-bit ב- SREG מוגדר.
זיכרונות AVR
חלק זה מתאר את הזיכרונות השונים ב- ATtiny25 / 45/85. בארכיטקטורת ה- AVR שני חללי זיכרון עיקריים, זיכרון הנתונים ומרחב זיכרון התוכנית. בנוסף, ה- ATtiny25 / 45/85 כולל זיכרון EEPROM לאחסון נתונים. כל שלושת חללי הזיכרון הם לינאריים וקבועים.
זיכרון תוכנת פלאש בתכנות מחדש במערכת
ה- ATtiny25 / 45/85 מכיל 2/4 / 8K בתים על גבי שבב זיכרון פלאש לתכנות מחדש לאחסון תוכניות. מכיוון שכל הוראות ה- AVR ברוחב 16 או 32 ביט, הפלאש מאורגן כ- 1024/2048/4096 x 16.
לזיכרון הפלאש יש סיבולת של לפחות 10,000 מחזורי כתיבה / מחיקה. מונה התוכנית ATtiny25 / 45/85 (PC) הוא ברוחב 10/11/12 סיביות, וכך מתייחס למיקומי זיכרון התוכנית 1024/2048/4096. "תוכנית זיכרון- מינג ”בעמוד 147 מכיל תיאור מפורט על הורדת נתונים פלאשיים באמצעות סדרות SPI.
ניתן להקצות טבלאות קבועות בכל שטח כתובת זיכרון התוכנית (ראה תיאור הוראות LPM - Load Program Memory).
איור 5-1. תוכנית מפת זיכרון
זיכרון נתונים SRAM
איור 5-2 מראה כיצד מארגן את זיכרון SRAM ATtiny25 / 45/85.
מיקומי זיכרון הנתונים התחתונים של 224/352/607 פונים הן לרשם File, זיכרון הקלט והנתונים והנתונים הפנימיים SRAM. 32 המיקומים הראשונים פונים לרשם File, 64 המיקומים הבאים זיכרון הקלט/פלט הסטנדרטי, והמיקומים האחרונים 128/256/512 מתייחסים לנתוני SRAM הפנימיים.
חמשת מצבי ההתייחסות השונים לכיסוי זיכרון הנתונים: ישיר, עקיף עם עקירה, עקיף, לא ישיר עם הורדה מוקדמת, ועקיף עם תוספת לאחר. במרשם File, רישומי R26 עד R31 כוללים את רגידי המצביע כתובת עקיפים.
הפנייה הישירה מגיעה לכל שטח הנתונים.
מצב העקיפה עם עקירה מגיע ל 63 מיקומי כתובת מכתובת הבסיס שניתנה על ידי רישום Y- או Z-.
כשמשתמשים ברישום מצבי פנייה עקיפים עם הפחתה אוטומטית לפני הגדלה, רישומי הכתובות X, Y ו- Z מצטמצמים או מגדילים.
32 רגידי העבודה למטרות כלליות, 64 רגיסי קלט/פלט ו- 128/256/512 בתים של נתונים פנימיים ב- SRt ATtiny25/45/85 נגישים כולם באמצעות כל מצבי ההתייחסות הללו. הקופה File מתואר ב “דור- רשום מטרות File"בעמוד 10.
איור 5-2. מפת זיכרון נתונים
גישה לזיכרון נתונים פִּי
סעיף זה מתאר את מושגי תזמון הגישה הכלליים לגישה לזיכרון פנימי. הגישה ל-SRAM לנתונים הפנימיים מתבצעת בשני מחזורי clkCPU כמתואר ב איור 5-3.
איור 5-3. מחזורי גישה ל-SRAM נתונים על-שבב זיכרון נתונים EEPROM
ה- ATtiny25 / 45/85 מכיל 128/256/512 בתים של זיכרון EEPROM נתונים. הוא מאורגן כמרחב נתונים נפרד, בו ניתן לקרוא ולכתוב בתים בודדים. ל- EEPROM סיבולת של לפחות 100,000 מחזורי כתיבה / מחיקה. הגישה בין ה- EEPROM למעבד מתוארת להלן, תוך ציון רישומי כתובות ה- EEPROM, רישום הנתונים של EEPROM ורשם הבקרה של EEPROM. לפרטים ראה "הורדה טורית" בעמוד 151.
גישה לקריאה / כתיבה של EEPROM
לרשומות הגישה של EEPROM ניתן להגיע במרחב הקלט / פלט.
זמני הגישה לכתיבה עבור ה- EEPROM ניתנים ב טבלה 5-1 בעמוד 21. פונקציית תזמון עצמי, לעומת זאת, מאפשרת לתוכנת המשתמש לזהות מתי ניתן לכתוב את הביט הבא. אם קוד המשתמש מכיל הוראות הכותבות את ה-EEPROM, יש לנקוט באמצעי זהירות מסוימים. בספקי כוח מסוננים בכבדות, VCC צפוי לעלות או לרדת לאט
הפעל/הורדה. זה גורם למכשיר לפרק זמן מסוים לפעול בווליוםtage נמוך מהמצוין כמינימום עבור תדר השעון בשימוש. לִרְאוֹת "מניעת שחיתות ב- EEPROM" בעמוד 19 לפרטים כיצד להימנע מבעיות במצבים אלה.
על מנת למנוע כתיבת EEPROM לא מכוונת, יש לעקוב אחר הליך כתיבה ספציפי. מתייחס "אָטוֹמִי תכנות בתים ”בעמוד 17 ו "תכנות בתים מפוצלים" בעמוד 17 לפרטים על כך.
לאחר קריאת ה- EEPROM, המעבד נעצר לארבעה מחזורי שעון לפני ביצוע ההוראה הבאה. כאשר נכתב ה- EEPROM, המעבד נעצר לשני מחזורי שעון לפני ביצוע ההוראה הבאה.
תכנות בתים אטומיים
השימוש בתכנות בתים אטומיים הוא המצב הפשוט ביותר. בעת כתיבת בית ל- EEPROM, על המשתמש לכתוב את הכתובת לרשם EEAR ולנתונים לרשום EEDR. אם ביטים של EEPMn הם אפסים, כתיבת EEPE (תוך ארבעה מחזורים לאחר כתיבת EEMPE) תפעיל את פעולת המחיקה / כתיבה. גם מחיקת המחיקה והכתיבה נעשית בפעולה אחת וזמן התכנות הכולל נקבע טבלה 5-1 בעמוד 21. סיבית ה- EEPE נשארת מוגדרת עד לסיום פעולות המחיקה והכתיבה. אמנם המכשיר עסוק בתכנות, אך לא ניתן לבצע פעולות EEPROM אחרות.
תכנות פיצול בתים
אפשר לפצל את מחזור המחיקה והכתיבה בשתי פעולות שונות. זה עשוי להיות שימושי אם המערכת דורשת זמן גישה קצר למשך פרק זמן מוגבל (בדרך כלל אם אספקת הכוח כרךtage נופל). כדי להתקדם- tagבשיטה זו, נדרש שהמיקומים שייכתבו נמחקו לפני פעולת הכתיבה. אך מכיוון שפעולות המחיקה והכתיבה מפוצלות, ניתן לבצע את פעולות המחיקה כאשר המערכת מאפשרת לבצע פעולות קריטיות בזמן (בדרך כלל לאחר הפעלה).
לִמְחוֹק
כדי למחוק בית, יש לכתוב את הכתובת ל- EEAR. אם סיביות ה- EEPMn הן 0b01, כתיבת ה- EEPE (תוך ארבעה מחזורים לאחר כתיבת ה- EEMPE) תפעיל את פעולת המחיקה בלבד (זמן התכנות נקבע ב טבלה 5-1 על עמוד 21). סיבית ה- EEPE נשארת מוגדרת עד להשלמת פעולת המחיקה. בעוד המכשיר עסוק בתכנות, לא ניתן לבצע פעולות EEPROM אחרות.
לִכתוֹב
כדי לכתוב מיקום, על המשתמש לכתוב את הכתובת ל- EEAR ואת הנתונים ל- EEDR. אם סיביות ה- EEPMn הן 0b10, כתיבת ה- EEPE (תוך ארבעה מחזורים לאחר כתיבת ה- EEMPE) תפעיל את פעולת הכתיבה בלבד (זמן התכנון נקבע ב טבלה 5-1 בעמוד 21). סיבית ה- EEPE נשארת מוגדרת עד להשלמת פעולת הכתיבה. אם המיקום שייכתב לא נמחק לפני הכתיבה, יש לראות בנתונים המאוחסנים אבודים. בעוד המכשיר עסוק בתכנות, לא ניתן לבצע פעולות EEPROM אחרות.
המתנד המכויל משמש לזמן הגישה ל- EEPROM. ודא שתדר המתנד עומד בדרישות המתוארות בסעיף "OSCCAL - רישום כיול מתנד" בעמוד 31.
הקוד הבא למשלamples מציגים מכלול אחד ופונקציית C אחת למחיקה, כתיבה או כתיבה אטומית של ה- EEPROM. האקסamples מניחים כי הפרעות נשלטות (למשל על ידי השבתת הפרעות ברחבי העולם) כך שלא יתרחשו הפרעות במהלך ביצוע פונקציות אלה.
קוד הרכבה Example |
EEPROM_כתוב:
; המתן לסיום הכתיבה הקודמת sbic EECR,EEPE rjmp EEPROM_write ; הגדר את מצב התכנות ldi r16, (0<<EEPM1)|(0<<EEPM0) החוצה EECR, r16 ; הגדר כתובת (r18: r17) במרשם הכתובות החוצה EEARH, r18 החוצה EEARL, r17 ; כתוב נתונים (r19) לרישום הנתונים יוצא EEDR, r19 ; כתוב אחד הגיוני ל- EEMPE sbi EECR,EEMPE ; התחל לכתוב eeprom על ידי הגדרת EEPE sbi EECR,EEPE לְהַשְׁרוֹת |
קוד C Example |
void EEPROM_write(char unsigned ucAddress, unsigned Char ucData)
{ /* המתן להשלמת הכתיבה הקודמת */ while(EECR & (1< ; /* הגדר מצב תכנות */ EECR = (0 < / * הגדר רישומי כתובות ונתונים * / EEAR = ucAddress; EEDR = ucData; /* כתוב אחד לוגי ל-EEMPE */ EECR | = (1 < / * התחל לכתוב eeprom על ידי הגדרת EEPE * / EECR | = (1 < } |
הקוד הבא למשלamples להראות הרכבה ופונקציות C לקריאת ה- EEPROM. האקסamples מניחים כי הפרעות נשלטות כך שלא יתרחשו הפרעות במהלך ביצוע פונקציות אלה.
קוד הרכבה Example |
EEPROM_read:
; המתן לסיום הכתיבה הקודמת sbic EECR,EEPE rjmp EEPROM_read ; הגדר כתובת (r18: r17) במרשם הכתובות החוצה EEARH, r18 החוצה EEARL, r17 ; התחל לקרוא את eeprom על ידי כתיבת EERE sbi EECR,EERE ; קרא נתונים ממאגר הנתונים ב-r16,EEDR לְהַשְׁרוֹת |
קוד C Example |
char unsigned EEPROM_read (char unsigned ucAddress)
{ / * המתן לסיום הכתיבה הקודמת * / ואילו (EECR & (1 < ; / * הגדר רישום כתובות * / EEAR = ucAddress; /* התחל קריאת eeprom על ידי כתיבת EERE */ EECR | = (1 < / * החזרת נתונים מרשם הנתונים * / החזר EEDR; } |
מניעת שחיתות EEPROM
בתקופות של VCC נמוך, נתוני ה-EEPROM עלולים להיות פגומים מכיוון שנפח האספקהtage נמוך מדי כדי שה-CPU וה-EEPROM יפעלו כהלכה. בעיות אלו זהות למערכות ברמת הלוח המשתמשות ב-EEPROM, ויש ליישם את אותם פתרונות עיצוב.
פגיעה בנתוני EEPROM יכולה להיגרם על ידי שני מצבים כאשר ה-voltage נמוך מדי. ראשית, רצף כתיבה רגיל ל-EEPROM דורש נפח מינימליtage לפעול בצורה נכונה. שנית, המעבד עצמו יכול לבצע הוראות בצורה שגויה, אם כרך האספקהtage נמוך מדי.
ניתן להימנע בקלות משחיתות נתונים ב- EEPROM על ידי ביצוע המלצה זו לעיצוב:
שמור על RESET הרסיבר פעיל (נמוך) בתקופות של אספקת חשמל לא מספקתtagה. זה יכול להיעשות על ידי הפעלת גלאי החום הפנימי (BOD). אם רמת הזיהוי של ה-BOD הפנימי אינה תואמת את
רמת הזיהוי הדרושה, ניתן להשתמש במעגל הגנה חיצוני לאיפוס VCC נמוך. אם מתרחש איפוס בזמן פעולת כתיבה מתבצעת, פעולת הכתיבה תושלם בתנאי שספק הכוח כרךtage מספיק.
זיכרון קלט / פלט
הגדרת חלל הקלט / פלט של ה- ATtiny25 / 45/85 מוצגת ב "סיכום הרשמה" בעמוד 200.
כל ה- ATtiny25 / 45/85 קלט / פלטים וציוד היקפי ממוקמים בחלל ה- I / O. ניתן לגשת לכל מיקומי ה- I / O באמצעות הוראות LD / LDS / LDD ו- ST / STS / STD, ומעבירים נתונים בין 32 רושמי העבודה הכלליים למרחב הקלט / פלט. רישומי קלט / פלט בטווח הכתובות 0x00 - 0x1F נגישים באופן ישיר באמצעות הוראות SBI ו- CBI. ברשומות אלה ניתן לבדוק את הערך של סיביות בודדות באמצעות הוראות SBIS ו- SBIC. לפרטים נוספים עיין בסעיף ערכת ההוראות. בעת שימוש בפקודות ה- I / O הספציפיות IN ו- OUT, יש להשתמש בכתובות ה- I / O 0x00 - 0x3F. כאשר מטפלים ברישומי קלט / פלט כמרחב נתונים באמצעות הוראות LD ו- ST, יש להוסיף 0x20 לכתובות אלה.
לצורך תאימות עם התקנים עתידיים, יש לכתוב ביטים שמורים לאפס אם ניגשים אליהם. לעולם אין לכתוב כתובות זיכרון קלט / פלט שמורות.
חלק מדגלי הסטטוס מנוקים על ידי כתיבת הודעה הגיונית להם. שים לב כי הוראות CBI ו- SBI יפעלו רק על הסיבית שצוינה, ולכן ניתן להשתמש בהן במרשמים המכילים דגלי סטטוס כאלה. הוראות CBI ו- SBI עובדות עם רושמים 0x00 עד 0x1F בלבד.
הסברים על רישומי בקרת ה- I / O והציוד ההיקפי מוסברים בסעיפים מאוחרים יותר.
תיאור הרשמה
EEARH - EEPROM Register Address
קצת | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1F | – | – | – | – | – | – | – | EEAR8 | עיניים |
קריאה/כתיבה | R | R | R | R | R | R | R | R/W | |
ערך התחלתי | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X/0 |
ביטים 7: 1 - מיל ': ביטים שמורים
סיביות אלה שמורות לשימוש עתידי ותמיד ייקראו כאפס.
ביטים 0 - EEAR8: כתובת EEPROM
זהו קטע הכתובת המשמעותי ביותר ב- EEPROM של ATtiny85. במכשירים עם פחות EEPROM, כלומר ATtiny25 / ATtiny45, סיבית זו שמורה ותמיד תקרא אפס. הערך ההתחלתי של רישום כתובות EEPROM (EEAR) אינו מוגדר ולכן יש לכתוב ערך מתאים לפני הגישה ל- EEPROM.
EEARL - רישום כתובות EEPROM
קצת
0x1E | EEAR7 | EEAR6 | EEAR5 | EEAR4 | EEAR3 | EEAR2 | EEAR1 | EEAR0 | ארל |
אחורי / כתוב | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
ערך התחלתי | X | X | X | X | X | X | X | X |
ביט 7 - EEAR7: כתובת EEPROM
זהו קטע הכתובת EEPROM המשמעותי ביותר של ATtiny45. במכשירים עם פחות EEPROM, כלומר ATtiny25, סיבית זו שמורה ותמיד תקרא אפס. הערך ההתחלתי של רישום כתובות EEPROM (EEAR) אינו מוגדר ולכן יש לכתוב ערך מתאים לפני הגישה ל- EEPROM.
ביטים 6: 0 - EEAR [6: 0]: כתובת EEPROM
אלה החלקים (הנמוכים) של רישום הכתובות של EEPROM. בתים הנתונים EEPROM מטופלים באופן ליניארי בטווח 0 ... (128/256 / 512-1). הערך ההתחלתי של EEAR אינו מוגדר ולכן יש לכתוב ערך מתאים לפני שניתן יהיה לגשת ל- EEPROM.
EEDR - EEPROM Data Register
קצת | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1D | EEDR7 | EEDR6 | EEDR5 | EEDR4 | EEDR3 | EEDR2 | EEDR1 | EEDR0 | EEDR |
קריאה/כתיבה | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
ערך התחלתי | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
עבור פעולת הכתיבה EEPROM, הרישום EEDR מכיל את הנתונים שייכתבו ל- EEPROM בכתובת שניתנה על ידי EEAR Register. עבור פעולת הקריאה EEPROM, ה- EEDR מכיל את הנתונים שהוקראו מה-
EEPROM בכתובת EEAR.
5.5.4 רישום בקרת EEPROM |
|||||||||
ביט 7 6 5 | 4 | 3 | 2 | 1 | 0 | ||||
0x1C – | – | EEPM1 | EEPM0 | מַפְחִיד | EEMPE | EEPE | EERE | EECR | |
קרא / כתוב R R R / W | R/W | R/W | R/W | R/W | R/W | ||||
ערך התחלתי 0 0 X | X | 0 | 0 | X | 0 |
ביט 7 - מילואים: ביט שמור
סיבית זו שמורה לשימוש עתידי ותמיד תקרא כ- 0 ב ATtiny25 / 45/85. לתאימות למכשירי AVR עתידיים, תמיד כתוב את הסיביות הזו לאפס. לאחר הקריאה, מיסוך את הקטע הזה.
ביט 6 - מילואים: ביט שמור
סיבית זו שמורה ב- ATtiny25 / 45/85 ותמיד תקרא כ- zero.
ביטים 5: 4 - EEPM [1: 0]: ביטים במצב תכנות EEPROM
הגדרת סיביות מצב התכנות EEPROM מגדירה איזו פעולת תכנות תופעל בעת כתיבת EEPE. ניתן לתכנת נתונים בפעולה אטומית אחת (למחוק את הערך הישן ולתכנת את הערך החדש) או לפצל את פעולות המחיקה והכתיבה בשתי פעולות שונות. זמני התכנות עבור המצבים השונים מוצגים ב טבלה 5-1. בזמן שה- EEPE מוגדר, כל התכתבות ל- EEPMn תתעלם. במהלך האיפוס, ביטים EEPMn יאופסו ל- 0b00 אלא אם כן ה- EEPROM עסוק בתכנות.
טבלה 5-1. סיביות של מצב EEPROM
EEPM1 | EEPM0 | זמן תכנות | מִבצָע |
0 | 0 | 3.4 אלפיות השנייה | מחק וכתב בפעולה אחת (פעולה אטומית) |
0 | 1 | 1.8 אלפיות השנייה | מחק בלבד |
1 | 0 | 1.8 אלפיות השנייה | כתוב בלבד |
1 | 1 | – | שמור לשימוש עתידי |
ביט 3 - EERIE: EEPROM Ready Interrupt Enable
כתיבת EERIE לאחת מאפשרת את הפרעת EEPROM Ready אם ה- I-bit ב- SREG מוגדר. כתיבת EERIE לאפס מבטלת את ההפרעה. ה- EEPROM Ready Interrupt מייצר הפרעה קבועה כאשר זיכרון שאינו נדיף מוכן לתכנות.
ביט 2 - EEMPE: תכנית אב EEPROM מופעלת
ביט ה- EEMPE קובע אם לכתיבת EEPE לאחד תהיה השפעה או לא.
כאשר EEMPE מוגדר, הגדרת EEPE בתוך ארבעה מחזורי שעון תתכנת את ה- EEPROM בכתובת שנבחרה. אם EEMPE הוא אפס, הגדרת EEPE לא תשפיע. כאשר EEMPE נכתב לאחד על ידי תוכנה, החומרה מנקה את הסיביות לאפס לאחר ארבעה מחזורי שעון.
ביט 1 - EEPE: תוכנית EEPROM מאפשרת
תוכנית EEPROM הפעלת אות EEPE היא אות הפעלת התכנות ל- EEPROM. כאשר EEPE נכתב, ה- EEPROM יתוכנת בהתאם להגדרת סיביות EEPMn. יש לכתוב את סיבית ה- EEMPE לאחת לפני שכתוב לוגי ל- EEPE, אחרת אין כתיבת EEPROM. לאחר שחלף זמן הגישה לכתיבה, ביט ה- EEPE מנוקה על ידי חומרה. כאשר הוגדר EEPE, המעבד נעצר לשני מחזורים לפני ביצוע ההוראה הבאה.
ביט 0 - EERE: EEPROM קריאת הפעלה
אות ה- EEPROM Read Enable - EERE - הוא מהלך הקריאה ל- EEPROM. כאשר מוגדרת הכתובת הנכונה במרשם EEAR, יש לכתוב את ביט ה- EERE לאחת כדי להפעיל את קריאת ה- EEPROM. גישת הקריאה של EEPROM לוקחת הוראה אחת, והנתונים המבוקשים זמינים באופן מיידי. כאשר קוראים את ה- EEPROM, המעבד נעצר לארבעה מחזורים לפני ביצוע ההוראה הבאה. על המשתמש לסקור את ביט ה- EEPE לפני תחילת פעולת הקריאה. אם פעולת כתיבה מתבצעת, לא ניתן לקרוא את ה- EEPROM ולא לשנות את רישום EEAR.
שעון מערכת ואפשרויות שעון
מערכות שעון והפצתן
שעון מעבד
שעון המעבד מנותב לחלקים של המערכת העוסקים בהפעלת ליבת ה- AVR. לְשֶׁעָבַרampמאפיינים של מודולים כאלה הם מרשם המטרות הכלליות File, רשם הסטטוסים וזיכרון הנתונים המחזיק את מצביע הערימה. עצירת שעון המעבד מעכבת את הליבה מביצוע פעולות וכלליות.
שעון קלט / פלט - clkI / O
שעון הקלט / פלט משמש את רוב מודולי הקלט / פלט, כמו טיימר / דלפק. שעון ה- I / O משמש גם את מודול ה- Interrupt Interrupt, אך שימו לב כי חלק מההפרעות החיצוניות מזוהות על ידי לוגיקה אסינכרונית, מה שמאפשר לזהות הפרעות כאלה גם אם שעון ה- I / O נעצר.
שעון פלאש - clkFLASH
שעון הפלאש שולט בהפעלת ממשק הפלאש. שעון הפלאש בדרך כלל פעיל במקביל לשעון המעבד.
שעון ADC - clkADC
ה- ADC מסופק עם תחום שעון ייעודי. זה מאפשר לעצור את שעוני המעבד ו- I / O על מנת להפחית את הרעש שנוצר על ידי מעגלים דיגיטליים. זה נותן תוצאות המרה מדויקות יותר של ADC.
PLL פנימי לייצור שעון היקפי מהיר - clkPCK
ה- PLL הפנימי ב- ATtiny25 / 45/85 מייצר תדר שעון מוכפל פי 8 מקלט מקור. כברירת מחדל, ה- PLL משתמש בפלט של המתנד הפנימי, 8.0 MHz RC כמקור. לחלופין, אם מוגדר bit LSM של PLLCSR PLL ישתמש בפלט של מתנד RC חלקי שניים. לפיכך תפוקת ה- PLL, השעון ההיקפי המהיר הוא 64 מגה-הרץ. ניתן לבחור את השעון ההיקפי המהיר, או שעון שנקבע מראש מכך, כמקור השעון עבור טיימר / מונה 1 או כשעון מערכת. לִרְאוֹת איור 6-2. התדר של השעון ההיקפי המהיר מחולק לשניים כאשר LSM של PLLCSR מוגדר, וכתוצאה מכך תדר שעון של 32 מגה-הרץ. שימו לב, לא ניתן להגדיר LSM אם PLLCLK משמש כשעון מערכת.
איור 6-2. מערכת שעון PCK.
ה- PLL נעול על מתנד ה- RC והתאמת מתנד ה- RC באמצעות רישום OSCCAL תתאים את השעון ההיקפי המהיר בו זמנית. עם זאת, גם אם מתנד ה- RC מועבר לתדר גבוה מ- 8 מגה-הרץ, תדר השעון ההיקפי המהיר רווי ב- 85 מגה-הרץ (המקרה הגרוע ביותר) ונותר מתנודד בתדר המרבי. יש לציין כי ה- PLL במקרה זה אינו נעול עוד עם שעון המתנד RC. לכן, מומלץ לא לקחת את התאמות OSCCAL לתדר גבוה מ- 8 מגה-הרץ על מנת לשמור על ה- PLL בטווח ההפעלה הנכון.
ה- PLL הפנימי מופעל כאשר:
סיבית ה- PLLE במרשם PLLCSR מוגדרת.
נתיך CKSEL מתוכנת ל '0001'.
נתיך CKSEL מתוכנת ל '0011'.
ה-PLLCSR bit PLOCK מוגדר כאשר PLL נעול. גם מתנד RC פנימי וגם PLL כבויים במצבי כיבוי והמתנה במצבי שינה.
PLL פנימי במצב תאימות ATtiny15
מכיוון ש- ATtiny25 / 45/85 הוא מכשיר העברה למשתמשי ATtiny15 קיים מצב תאימות של ATtiny15 לתאימות אחורית. מצב התאימות ATtiny15 נבחר על ידי תכנות נתיכי CKSEL ל '0011'.
במצב התאימות ATtiny15 תדר המתנד הפנימי RC מכויל עד 6.4 מגה הרץ ומקדם הכפל של ה- PLL מוגדר 4x. לִרְאוֹת איור 6-3. עם התאמות אלה מערכת השעון תואמת ATtiny15 ולשעון ההיקפי המהיר וכתוצאה מכך יש תדר של 25.6 מגהרץ (זהה לזה שב ATtiny15).
איור 6-3. מערכת שעון PCK במצב תאימות ATtiny15.
מקורות שעון
למכשיר יש את אפשרויות מקור השעון הבאות, לבחירה על ידי סיביות Flash Fuse כפי שמוצג להלן. השעון מהמקור שנבחר מוחדר למחולל השעון AVR ומנותב למודולים המתאימים.
טבלה 6-1. אפשרויות שעון מכשיר בחר
אפשרות שעון מכשיר | CKSEL[3:0](1) |
שעון חיצוני (לִרְאוֹת עמוד 26) | 0000 |
שעון PLL בתדירות גבוהה (לִרְאוֹת עמוד 26) | 0001 |
מתנד פנימי מכויל (לִרְאוֹת עמוד 27) | 0010(2) |
מתנד פנימי מכויל (לִרְאוֹת עמוד 27) | 0011(3) |
מתנד פנימי של 128 קילוהרץ (לִרְאוֹת עמוד 28) | 0100 |
מתנד קריסטל בתדירות נמוכה (לִרְאוֹת עמוד 29) | 0110 |
מתנד קריסטל / מהוד קרמי (לִרְאוֹת עמוד 29) | 1000 - 1111 |
שָׁמוּר | 0101, 0111 |
עבור כל הנתיכים "1" פירושו לא מתוכנת ואילו "0" פירושו מתוכנת.
המכשיר נשלח עם אפשרות זו שנבחרה.
זה יבחר במצב תאימות ATtiny15, שבו שעון המערכת מחולק לארבעה, וכתוצאה מכך תדר שעון 1.6 מגה-הרץ. לקבלת מידע נוסף, ראה "מתנד פנימי מכויל" בעמוד 27.
האפשרויות השונות עבור כל אפשרות שעון ניתנות בסעיפים הבאים. כאשר המעבד מתעורר מ- Power-down, מקור השעון הנבחר משמש לתזמון ההפעלה, מה שמבטיח פעולת מתנד יציבה לפני תחילת ביצוע ההוראות. כאשר המעבד מתחיל מאיפוס, קיים עיכוב נוסף המאפשר לכוח להגיע לרמה יציבה לפני תחילת הפעולה הרגילה. מתנד כלב השמירה משמש לתזמון חלק בזמן אמת זה של זמן ההפעלה. מספר מחזורי המתנד של WDT המשמשים לכל פסק זמן מוצג בסעיף טבלה 6-2.
טבלה 6-2. מספר מחזורי מתנד כלב השמירה
פסק זמן טיפוסי | מספר מחזורים |
4 אלפיות השנייה | 512 |
64 אלפיות השנייה | 8K (8,192) |
שעון חיצוני
כדי להניע את המכשיר ממקור שעון חיצוני, יש להניע את CLKI כמוצג בסעיף איור 6-4. כדי להפעיל את המכשיר בשעון חיצוני, יש לתכנת את נתיכי ה- CKSEL ל - "00".
איור 6-4. תצורת כונן שעון חיצוני
כאשר מקור שעון זה נבחר, זמני ההפעלה נקבעים על ידי נתיכי SUT כמוצג בסעיף טבלה 6-3.
טבלה 6-3. זמני הפעלה לבחירת השעון החיצוני
SUT[1:0] | זמן ההפעלה מההפעלה | עיכוב נוסף מאיפוס | שימוש מומלץ |
00 | 6 סי.קיי | 14CK | BOD מופעל |
01 | 6 סי.קיי | 14CK + 4 אלפיות השנייה | כוח עולה במהירות |
10 | 6 סי.קיי | 14CK + 64 אלפיות השנייה | לאט עולה כוח |
11 | שָׁמוּר |
בעת החלת שעון חיצוני נדרש להימנע משינויים פתאומיים בתדר השעון המיושם כדי להבטיח פעולה יציבה של ה- MCU. שונות בתדירות של יותר מ -2% ממחזור שעון אחד למשנהו יכולה להוביל להתנהגות בלתי צפויה. נדרש לוודא כי ה- MCU נשמר באיפוס במהלך שינויים כאלה בתדר השעון.
שים לב שניתן להשתמש במכירה המקדימה של שעון המערכת כדי ליישם שינויים בזמן הריצה של תדר השעון הפנימי תוך שמירה על פעולה יציבה. מתייחס "מדף שעון מערכת" בעמוד 31 לפרטים.
שעון PLL בתדירות גבוהה
יש PLL פנימי המספק קצב שעון סמלי של 64 מגה הרץ הנעול למתנד RC לשימוש בטיימר / מונה 1 היקפי ולמקור שעון המערכת. כאשר נבחר כמקור שעון מערכת, על ידי תכנות CKSEL נתיכים ל '0001', הוא מחולק בארבעה כמו שמוצג ב טבלה 6-4.
טבלה 6-4. מצבי הפעלה של שעון PLL בתדר גבוה
CKSEL[3:0] | תדר נומינלי |
0001 | 16 מגה-הרץ |
כאשר מקור שעון זה נבחר, זמני ההפעלה נקבעים על ידי נתיכי SUT כמוצג בסעיף טבלה 6-5.
טבלה 6-5. זמני הפעלה עבור שעון PLL בתדר גבוה
SUT[1:0] | זמן ההפעלה מ- Power Down | עיכוב נוסף מאיפוס הפעלה (VCC = 5.0V) | שימוש מומלץ |
00 | 14CK + 1K (1024) CK + 4 מילישניות | 4 אלפיות השנייה | BOD מופעל |
טבלה 6-5. זמני הפעלה עבור שעון PLL בתדר גבוה
SUT[1:0] | זמן ההפעלה מ- Power Down | עיכוב נוסף מאיפוס הפעלה (VCC = 5.0V) | שימוש מומלץ |
01 | 14CK + 16K (16384) CK + 4 מילישניות | 4 אלפיות השנייה | כוח עולה במהירות |
10 | 14CK + 1K (1024) CK + 64 מילישניות | 4 אלפיות השנייה | לאט עולה כוח |
11 | 14CK + 16K (16384) CK + 64 מילישניות | 4 אלפיות השנייה | לאט עולה כוח |
מתנד פנימי מכויל
כברירת מחדל, מתנד RC הפנימי מספק שעון משוער של 8.0 מגה-הרץ. אם כי כרךtage ותלוי טמפרטורה, השעון הזה יכול להיות מכויל בצורה מדויקת מאוד על ידי המשתמש. לִרְאוֹת “מכויל מתנד RC פנימי מכויל מדורגת ”בעמוד 164 ו "מהירות מתנד פנימית" בעמוד 192 לפרטים נוספים. המכשיר נשלח עם נתיך CKDIV8 שתוכנת. לִרְאוֹת "מדף שעון מערכת" בעמוד 31 לפרטים נוספים.
ניתן לבחור שעון זה כשעון המערכת על ידי תכנות נתיכי CKSEL כמוצג ב לוח 6-6 בעמוד
27. אם נבחר, הוא יפעל ללא רכיבים חיצוניים. במהלך האיפוס, חומרה טוענת את ערך הכיול שתוכנת מראש לרישום OSCCAL ובכך מכייל אוטומטית את מתנד ה- RC. הדיוק של כיול זה מוצג ככיול במפעל ב טבלה 21-2 בעמוד 164.
על ידי שינוי רישום OSCCAL מ- SW, ראה "OSCCAL - רישום כיול מתנד" בעמוד 31, ניתן לקבל דיוק כיול גבוה יותר מאשר באמצעות כיול המפעל. הדיוק של כיול זה מוצג ככיול משתמשים ב טבלה 21-2 בעמוד 164.
כאשר מתנד זה משמש כשעון השבב, המתנד של כלב השמירה עדיין ישמש לטיימר כלב השמירה ולזמן הפסקה לאיפוס. למידע נוסף על ערך הכיול שתוכנת מראש, עיין בסעיף “קלי- bration Bytes "בעמוד 150.
ניתן גם להגדיר את המתנד הפנימי שיספק שעון של 6.4 מגה הרץ על ידי כתיבת נתיכי CKSEL ל "0011", כפי שמוצג ב טבלה 6-6 לְהַלָן. הגדרה זו מתייחסת למצב תאימות ATtiny15 ונועדה לספק מקור שעון מכויל ב- 6.4 מגה הרץ, כמו ב- ATtiny15. במצב תאימות ATtiny15 ה- PLL משתמש במתנד הפנימי שפועל ב -6.4 מגה-הרץ כדי ליצור אות שעון היקפי של 25.6 מגה-הרץ עבור טיימר / מונה 1 (ראה "טיימר / מונה 8 סיביות ב -1 מצב ATtiny15 ”בעמוד 95). שים לב שבמצב פעולה זה אות השעון 6.4 מגה הרץ מחולק תמיד לארבעה, ומספק שעון מערכת 1.6 מגה הרץ.
טבלה 6-6. מצבי הפעלה של מתנד RC מכויל פנימי
CKSEL[3:0] | תדר נומינלי |
0010(1) | 8.0 מגה-הרץ |
0011(2) | 6.4 מגה-הרץ |
המכשיר נשלח עם אפשרות זו שנבחרה.
הגדרה זו תבחר במצב תאימות ATtiny15, כאשר שעון המערכת מחולק לארבעה, וכתוצאה מכך תדר שעון של 1.6 מגה הרץ.
כאשר מתנד פנימי מכויל 8 מגה-הרץ נבחר כמקור שעון זמני ההפעלה נקבעים על ידי נתיכי SUT כמוצג בסעיף טבלה 6-7 לְהַלָן.
טבלה 6-7. זמני הפעלה עבור שעון מתנד RC פנימי מכויל
SUT[1:0] | זמן ההפעלה מההפעלה | עיכוב נוסף מאיפוס (VCC = 5.0V) | שימוש מומלץ |
00 | 6 סי.קיי | 14CK(1) | BOD מופעל |
01 | 6 סי.קיי | 14CK + 4 אלפיות השנייה | כוח עולה במהירות |
10(2) | 6 סי.קיי | 14CK + 64 אלפיות השנייה | לאט עולה כוח |
11 | שָׁמוּר |
1. אם מתוכנת נתיך RSTDISBL, זמן ההפעלה הזה יוגדל ל- 14CK + 4 ms כדי להבטיח שניתן להיכנס למצב תכנות.
2. המכשיר נשלח עם אפשרות זו שנבחרה.
ב- ATtiny15 מצב תאימות זמני ההפעלה נקבעים על ידי נתיכי SUT כמוצג בסעיף טבלה 6-8 לְהַלָן.
טבלה 6-8. זמני הפעלה עבור שעון מתנד RC פנימי מכויל (במצב ATtiny15)
SUT[1:0] | זמן ההפעלה מההפעלה | עיכוב נוסף מאיפוס (VCC = 5.0V) | שימוש מומלץ |
00 | 6 סי.קיי | 14CK + 64 אלפיות השנייה | |
01 | 6 סי.קיי | 14CK + 64 אלפיות השנייה | |
10 | 6 סי.קיי | 14CK + 4 אלפיות השנייה | |
11 | 1 סי.קיי | 14CK(1) |
הערה: אם הנתיך RSTDISBL מתוכנת, זמן ההפעלה הזה יגדל ל-14CK + 4 ms כדי להבטיח שניתן להיכנס למצב תכנות.
לסיכום, מידע נוסף על מצב תאימות ATtiny15 ניתן למצוא בסעיפים "יציאה B (PB5: PB0)" ב עמוד 2, "PLL פנימי במצב תאימות של ATtiny15" בעמוד 24, "טיימר / מונה 8 של 1 סיביות במצב ATtiny15" מופעל עמוד 95, "מגבלות של debugWIRE" בעמוד 140, "כיול בתים" בעמוד 150 ובטבלה "מדף שעון בחר "בעמוד 33.
מתנד פנימי של 128 קילוהרץ
המתנד הפנימי של 128 קילו-הרץ הוא מתנד בעל הספק נמוך המספק שעון של 128 קילו-הרץ. התדר נומינלי ב-3V ו-25°C. ניתן לבחור שעון זה כשעון המערכת על ידי תכנות הנתיכים של CKSEL ל-"0100".
כאשר מקור שעון זה נבחר, זמני ההפעלה נקבעים על ידי נתיכי SUT כמוצג בסעיף טבלה 6-9.
טבלה 6-9. זמני הפעלה עבור המתנד הפנימי 128 קילו-הרץ
SUT[1:0] | זמן ההפעלה מההפעלה | עיכוב נוסף מאיפוס | שימוש מומלץ |
00 | 6 סי.קיי | 14CK(1) | BOD מופעל |
01 | 6 סי.קיי | 14CK + 4 אלפיות השנייה | כוח עולה במהירות |
10 | 6 סי.קיי | 14CK + 64 אלפיות השנייה | לאט עולה כוח |
11 | שָׁמוּר |
הערה: אם הנתיך RSTDISBL מתוכנת, זמן ההפעלה הזה יגדל ל-14CK + 4 ms כדי להבטיח שניתן להיכנס למצב תכנות.
מתנד קריסטל בתדירות נמוכה
כדי להשתמש בגביש שעון של 32.768 קילוהרץ כמקור השעון למכשיר, יש לבחור את מתנד הקריסטל בתדר נמוך על ידי הגדרת נתיכי CKSEL ל '0110'. יש לחבר את הגביש כמתואר ב איור 6-5. למציאת קיבול עומס מתאים לקריסת 32.768 קילוהרץ, אנא עיין בגיליון הנתונים של היצרן.
כאשר נבחר מתנד זה, זמני ההפעלה נקבעים על ידי נתיכי SUT כמוצג בסעיף טבלה 6-10.
טבלה 6-10. זמני הפעלה עבור בחירת שעון מתנד קריסטל בתדר נמוך
SUT[1:0] | זמן ההפעלה מ- Power Down | עיכוב נוסף מאיפוס (VCC = 5.0V) | שימוש מומלץ |
00 | 1K (1024) CK(1) | 4 אלפיות השנייה | כוח עולה במהירות או BOD מופעל |
01 | 1K (1024) CK(1) | 64 אלפיות השנייה | לאט עולה כוח |
10 | 32K (32768) CK | 64 אלפיות השנייה | תדירות יציבה בהפעלה |
11 | שָׁמוּר |
הערה: יש להשתמש באפשרויות אלה רק אם יציבות התדר בעת ההפעלה אינה חשובה.
מתנד הקריסטל בתדירות נמוכה מספק קיבול עומס פנימי, ראה טבלה 6-11 בכל סיכת TOSC.
טבלה 6-11. קיבול של מתנד קריסטל בתדר נמוך
הֶתקֵן | 32 קילוהרץ Osc. סוּג | מכסה (Xtal1 / Tosc1) | מכסה (Xtal2 / Tosc2) |
ATtiny25 / 45/85 | Osc System. | 16 pF | 6 pF |
מתנד קריסטל / מהוד קרמי
XTAL1 ו- XTAL2 הם קלט ופלט בהתאמה של היפוך amplifer אשר ניתן להגדיר לשימוש כמתנד שבב, כפי שמוצג איור 6-5. ניתן להשתמש בקריסטל קוורץ או בתהודה קרמית.
C1 ו-C2 צריכים להיות תמיד שווים עבור גבישים ותהודה. הערך האופטימלי של הקבלים תלוי בקריסטל או במהוד בשימוש, בכמות הקיבול התועה וברעש האלקטרומגנטי של הסביבה. מופיעות כמה הנחיות ראשוניות לבחירת קבלים לשימוש עם גבישים טבלה 6-12 לְהַלָן. עבור מהוד קרמי יש להשתמש בערכי הקבלים שניתנו על ידי היצרן.
טבלה 6-12. מצבי הפעלה של מתנד קריסטל
CKSEL[3:1] | טווח תדרים (MHz) | טווח מומלץ לקבלים C1 ו- C2 לשימוש עם גבישים (pF) |
100(1) | 0.4 - 0.9 | – |
101 | 0.9 - 3.0 | 12 - 22 |
110 | 3.0 - 8.0 | 12 - 22 |
111 | 8.0 - | 12 - 22 |
הערות: אין להשתמש באפשרות זו עם גבישים, רק עם מהודים קרמיים.
המתנד יכול לפעול בשלושה מצבים שונים, כל אחד מהם מותאם לטווח תדרים ספציפי. מצב ההפעלה נבחר על ידי נתיכי CKSEL [3: 1] כפי שמוצג ב טבלה 6-12.
נתיך CKSEL0 יחד עם SUT [1: 0] נתיכים בוחרים את זמני ההפעלה כפי שמוצג בסעיף טבלה 6-13.
טבלה 6-13. זמני הפעלה עבור בחירת שעון מתנד קריסטל
CKSEL0 | SUT[1:0] | זמן ההפעלה מההפעלה | עיכוב נוסף מאיפוס | שימוש מומלץ |
0 | 00 | 258 סי.קיי(1) | 14CK + 4 אלפיות השנייה | מהוד קרמי, כוח עולה במהירות |
0 | 01 | 258 סי.קיי(1) | 14CK + 64 אלפיות השנייה | מהוד קרמי, כוח עולה לאט |
0 | 10 | 1K (1024) CK(2) | 14CK | מהוד קרמי, BOD מופעל |
0 | 11 | 1K (1024) CK(2) | 14CK + 4 אלפיות השנייה | מהוד קרמי, כוח עולה במהירות |
1 | 00 | 1K (1024) CK(2) | 14CK + 64 אלפיות השנייה | מהוד קרמי, כוח עולה לאט |
1 | 01 | 16K (16384) CK | 14CK | מתנד קריסטל, מופעל על ידי BOD |
1 | 10 | 16K (16384) CK | 14CK + 4 אלפיות השנייה | מתנד קריסטל, כוח עולה במהירות |
1 | 11 | 16K (16384) CK | 14CK + 64 אלפיות השנייה | מתנד קריסטל, כוח אט אט עולה |
הערות
יש להשתמש באופציות אלה רק כאשר אינן פועלות קרוב לתדר המרבי של המכשיר, ורק אם יציבות התדרים בעת ההפעלה אינה חשובה ליישום. אפשרויות אלה אינן מתאימות לקריסטלים.
אפשרויות אלה מיועדות לשימוש עם מהוד קרמי ויבטיחו יציבות תדרים בעת ההפעלה. ניתן להשתמש בהם גם עם גבישים כאשר הם לא פועלים קרוב לתדר המרבי של המכשיר, ואם יציבות התדר בעת ההפעלה אינה חשובה ליישום.
מקור שעון ברירת מחדל
המכשיר נשלח עם CKSEL = "0010", SUT = "10", ו-CKDIV8 מתוכנתים. הגדרת מקור השעון המוגדרת כברירת מחדל היא אפוא מתנד RC הפנימי הפועל ב-8 מגה-הרץ עם זמן ההפעלה הארוך ביותר ושינוי קנה-מידה ראשוני של שעון מערכת של 8, וכתוצאה מכך שעון מערכת של 1.0 מגה-הרץ. הגדרת ברירת מחדל זו מבטיחה שכל המשתמשים יכולים לבצע את הגדרת מקור השעון הרצויה באמצעות In-System או High-voltagמתכנת אלקטרוני.
Prescaler שעון מערכת
ניתן לחלק את שעון המערכת ATtiny25 / 45/85 על ידי הגדרת "CLKPR - רישום גימור לפני שעון" בעמוד 32. ניתן להשתמש בתכונה זו כדי להפחית את צריכת החשמל כאשר הדרישה להספק עיבוד נמוכה. זה יכול לשמש עם כל אפשרויות מקור השעון, וזה ישפיע על תדר השעון של המעבד וכל הציוד ההיקפי הסינכרוני. clkI/O, clkADC, clkCPU ו-clkFLASH מחולקים בפקטור כפי שמוצג ב טבלה 6-15 בעמוד 33.
זמן החלפה
בעת מעבר בין הגדרות prescaler, מערכת Clock Clock Prescaler מבטיחה שלא יתרחשו תקלות במערכת השעון וששום תדר ביניים אינו גבוה יותר מתדר השעון המתאים להגדרה הקודמת, ולא מתדר השעון המתאים להגדרה החדשה.
מונה האדווה המיישם את מחוון ההפעלה פועל בתדר השעון הלא מחולק, שעשוי להיות מהיר יותר מתדר השעון של המעבד. לפיכך, לא ניתן לקבוע את מצבו של המחוון - גם אם הוא היה קריא, ולא ניתן לחזות בדיוק את הזמן המדויק של מעבר מחלוקת שעון אחת לאחרת.
מרגע כתיבת ערכי CLKPS, לוקח בין T1 + T2 ל- T1 + 2 * T2 לפני שתדר השעון החדש פעיל. במרווח זה מיוצרים 2 קצוות שעון פעילים. כאן, T1 היא תקופת השעון הקודמת, ו- T2 היא התקופה המתאימה להגדרת prescaler החדשה.
מאגר פלט השעון
המכשיר יכול להוציא את שעון המערכת על סיכת CLKO (כאשר אינו משמש כסיכת XTAL2). כדי לאפשר את הפלט, יש לתכנת את נתיך ה- CKOUT. מצב זה מתאים כששעון השבב משמש להנעת מעגלים אחרים במערכת. שים לב שהשעון לא יופלט במהלך האיפוס וכי הפעולה הרגילה של סיכת הקלט / פלט תעקף כאשר מתוכנת הנתיך. ניתן לבחור מתנד RC פנימי, מתנד WDT, PLL ושעון חיצוני (CLKI) כאשר השעון מופעל ב- CLKO. לא ניתן להשתמש במתנדים קריסטליים (XTAL1, XTAL2) להוצאת שעון ב- CLKO. אם משתמשים במכשיר השעון של מערכת השעון, זה שעון המערכת המחולק שמופלט.
תיאור הרשמה
OSCCAL - רישום כיול מתנד
קצת | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x31 | CAL7 | CAL6 | CAL5 | CAL4 | CAL3 | CAL2 | CAL1 | CAL0 | OSCCAL |
קריאה/כתיבה | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
ביטים 7: 0 - CAL [7: 0]: ערך כיול מתנד
רישום כיול המתנד משמש לחיתוך מתנד ה- RC הפנימי המכויל כדי להסיר את שינויי התהליך מתדר המתנד. ערך כיול שתוכנת מראש נכתב אוטומטית לרשם זה במהלך איפוס השבבים, מה שמקבל את התדר המכויל למפעל כמפורט בסעיף טבלה 21-2 בעמוד 164. תוכנת היישום יכולה לכתוב רישום זה כדי לשנות את תדר המתנד. ניתן לכייל את המתנד לתדרים כמפורט ב טבלה 21-2 בעמוד 164. כיול מחוץ לטווח זה אינו מובטח.
שים לב כי מתנד זה משמש לזמן הגישות לכתיבת EEPROM ו- Flash, וזמני כתיבה אלה יושפעו בהתאם. אם EEPROM או Flash נכתבים, אל תכייל יותר מ- 8.8 MHz. אחרת, כתיבת ה- EEPROM או ה- Flash עלולה להיכשל.
ביט ה- CAL7 קובע את טווח הפעולה של המתנד. הגדרת סיבית זו ל 0 נותנת את טווח התדרים הנמוך ביותר, הגדרת סיבית זו ל -1 נותנת את טווח התדרים הגבוה ביותר. שני טווחי התדרים חופפים, במילים אחרות הגדרה של OSCCAL = 0x7F נותנת תדר גבוה יותר מאשר OSCCAL = 0x80.
ביטים CAL [6: 0] משמשים לכוונון התדר בטווח שנבחר. הגדרה של 0x00 נותנת את התדר הנמוך ביותר בטווח זה, והגדרה של 0x7F נותנת את התדר הגבוה ביותר בטווח.
כדי להבטיח פעולה יציבה של ה- MCU יש לשנות את ערך הכיול בקטנה. שונות בתדירות של יותר מ -2% ממחזור אחד למשנהו יכולה להוביל להתנהגות בלתי צפויה. שינויים ב- OSCCAL לא יעלו על 0x20 לכל כיול. נדרש לוודא כי ה- MCU נשמר באיפוס במהלך שינויים כאלה בתדר השעון
טבלה 6-14. טווח תדרים פנימי של מתנד RC
ערך OSCCAL | תדר נמוך ביותר אופייני ביחס לתדר נומינלי | התדירות הגבוהה ביותר האופיינית ביחס לתדירות הנומינלית |
0x00 | 50% | 100% |
0x3F | 75% | 150% |
0x7F | 100% | 200% |
CLKPR - רישום לפני הגודל של השעון
קצת | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x26 | CLKPCE | – | – | – | CLKPS3 | CLKPS2 | CLKPS1 | CLKPS0 | CLKPR |
קריאה/כתיבה | R/W | R | R | R | R/W | R/W | R/W | R/W |
ערך התחלתי 0 0 0 0 ראה תיאור סיביות
ביט 7 - CLKPCE: שינוי Prescaler שעון מאפשר
יש לכתוב את סיבית CLKPCE בלוגיקה אחת כדי לאפשר שינוי של סיביות CLKPS. סיבית ה- CLKPCE מתעדכנת רק כאשר הסיביות האחרות ב- CLKPR נכתבות בו זמנית לאפס. CLKPCE מנוקה על ידי חומרה ארבעה מחזורים לאחר כתיבתו או כאשר סיביות CLKPS נכתבות. שכתוב של ביט ה- CLKPCE בתוך תקופת פסק זמן זה אינו מאריך את תקופת פסק הזמן, ואינו מנקה את ביט ה- CLKPCE.
ביטים 6: 4 - מיל ': ביטים שמורים
סיביות אלה הן סיביות שמורות ב- ATtiny25 / 45/85 ותמיד יקראו כאפס.
ביטים 3: 0 - CLKPS [3: 0]: Prescaler שעון בחר ביטים 3 - 0
סיביות אלה מגדירות את גורם החלוקה בין מקור השעון שנבחר לשעון המערכת הפנימי. ניתן לכתוב סיביות אלה בזמן ריצה כדי לשנות את תדר השעון בהתאם לדרישות היישום. כאשר המחלק מחלק את קלט השעון הראשי ל- MCU, המהירות של כל ציוד היקפי סינכרוני מופחתת כאשר משתמשים בגורם חלוקה. גורמי החלוקה מובאים ב טבלה 6-15.
כדי למנוע שינויים לא מכוונים בתדירות השעון, יש לפעול לפי הליך כתיבה מיוחד לשינוי סיביות ה- CLKPS:
כתוב את ה- Bit Prescaler Change Enable (CLKPCE) לאחד וכל שאר הביטים ב- CLKPR לאפס.
בתוך ארבעה מחזורים, כתוב את הערך הרצוי ל- CLKPS תוך כתיבת אפס ל- CLKPCE.
יש להשבית את ההפרעות בעת שינוי הגדרת prescaler כדי לוודא שהליך הכתיבה אינו מופרע.
ה-CKDIV8 Fuse קובע את הערך ההתחלתי של סיביות CLKPS. אם CKDIV8 אינו מתוכנת, סיביות ה-CLKPS יאופסו ל-"0000". אם CKDIV8 מתוכנת, סיביות CLKPS מאופסות ל-"0011", ונותן מקדם חלוקה של שמונה בעת ההפעלה. יש להשתמש בתכונה זו אם למקור השעון שנבחר יש תדר גבוה מהתדר המרבי של המכשיר בתנאי ההפעלה הנוכחיים. שימו לב שניתן לכתוב כל ערך לביטים של CLKPS ללא קשר להגדרת ה- Fuse CKDIV8. תוכנת היישום חייבת לוודא שיש גורם חלוקה מספיק
נבחר אם למקור השעון שנבחר יש תדר גבוה מהתדר המרבי של המכשיר בתנאי ההפעלה הנוכחיים. המכשיר נשלח עם נתיך CKDIV8 שתוכנת.
טבלה 6-15. שעון Prescaler בחר
CLKPS3 | CLKPS2 | CLKPS1 | CLKPS0 | גורם חלוקת השעון |
0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 1 | 2 |
0 | 0 | 1 | 0 | 4 |
0 | 0 | 1 | 1 | 8 |
0 | 1 | 0 | 0 | 16 |
0 | 1 | 0 | 1 | 32 |
0 | 1 | 1 | 0 | 64 |
0 | 1 | 1 | 1 | 128 |
1 | 0 | 0 | 0 | 256 |
1 | 0 | 0 | 1 | שָׁמוּר |
1 | 0 | 1 | 0 | שָׁמוּר |
1 | 0 | 1 | 1 | שָׁמוּר |
1 | 1 | 0 | 0 | שָׁמוּר |
1 | 1 | 0 | 1 | שָׁמוּר |
1 | 1 | 1 | 0 | שָׁמוּר |
1 | 1 | 1 | 1 | שָׁמוּר |
הערה: ה-prescaler מושבת במצב תאימות ATtiny15 ואין לכתיבה ל-CLKPR, ולא לתכנות הנתיך CKDIV8 השפעה כלשהי על שעון המערכת (שתמיד יהיה 1.6 מגה-הרץ).
ניהול צריכת חשמל ומצבי שינה
הביצועים הגבוהים ויעילות הקוד המובילה בתעשייה הופכים את מיקרו-בקרי ה- AVR לבחירה אידיאלית עבור יישומי הספק נמוך. בנוסף, מצבי שינה מאפשרים ליישום לכבות מודולים שאינם בשימוש ב- MCU ובכך לחסוך בחשמל. ה- AVR מספק מצבי שינה שונים המאפשרים למשתמש להתאים את צריכת החשמל לדרישות היישום.
מצבי שינה
איור 6-1 בעמוד 23 מציג את מערכות השעון השונות ואת תפוצתן ב- ATtiny25 / 45/85. האיור מועיל בבחירת מצב שינה מתאים. טבלה 7-1 מציג את מצבי השינה השונים ומקורות ההשכמה שלהם.
טבלה 7-1. תחומי שעון פעילים ומקורות השכמה במצבי שינה שונים
תחומי שעון פעילים | מתנדים | מקורות התעוררות | ||||||||||
מצב שינה | clkCPU | clkFLASH | clkIO | clkADC | clkPCK | מקור השעון הראשי מופעל | INT0 ושינוי סיכה | SPM / EEPROM
מוּכָן |
מצב התחלה של USI |
ADC | I/O אחר | כֶּלֶב שְׁמִירָה לְהַפְרִיעַ |
לְהִתְבַּטֵל | X | X | X | X | X | X | X | X | X | X | ||
הפחתת רעש ADC | X | X | X(1) | X | X | X | X | |||||
הפסקת חשמל | X(1) | X | X |
הערה: עבור INT0, רק הפסקת רמה.
כדי להיכנס לכל אחד משלושת מצבי השינה, יש לכתוב את סיבית ה- SE ב- MCUCR ללוגיקה אחת ולהפעיל הוראת SLEEP. סיביות ה- SM [1: 0] ברישום MCUCR בוחרות באיזה מצב שינה (סרק, הפחתת רעש ADC או כיבוי כוח) יופעלו על ידי הוראות SLEEP. לִרְאוֹת טבלה 7-2 לסיכום.
אם מתרחשת הפרעה מופעלת בזמן שה- MCU נמצא במצב שינה, ה- MCU מתעורר. MCU נעצר לאחר מכן במשך ארבעה מחזורים בנוסף לזמן ההפעלה, מבצע את שגרת ההפסקה וממשיך את הביצוע מההוראה לאחר SLEEP. תוכן המרשם File ו- SRAM אינם משתנים כאשר המכשיר מתעורר משינה. אם מתרחשת איפוס במהלך מצב שינה, ה- MCU מתעורר ומתבצע מהווקטור איפוס.
הערה: אם נעשה שימוש בהפרעה שהופעלה על ידי רמה להתעוררות, יש להחזיק את הרמה המשתנה למשך זמן מה כדי להעיר את ה-MCU (וכדי שה-MCU יכנס לשגרת שירות ההפרעות). לִרְאוֹת "הפרעות חיצוניות" בעמוד 49 לפרטים.
מצב אידיאלי
כאשר הסיביות SM[1:0] נכתבות ל-00, הוראת ה-SLEEP גורמת ל-MCU להיכנס למצב סרק, עוצרת את ה-CPU אך מאפשרת ל-Anlog Comparator, ADC, USI, Timer/Counter, Watchdog ולמערכת הפסיקות להמשיך לפעול- אוכלים. מצב שינה זה בעצם עוצר את clkCPU ו-clkFLASH, תוך שהוא מאפשר לשאר השעונים לפעול.
מצב סרק מאפשר ל- MCU להתעורר מהפרעות מופעלות חיצוניות כמו גם מפנימיות כמו הצפת טיימר. אם אין צורך בהשכמה מההפרעה של Analog Comparator, ניתן לכבות את ה- Comparator Analog על ידי הגדרת סיבית ה- ACD ב- "ACSR - בקרת השוואה אנלוגית ורישום מצב" בעמוד 120. זה יקטין את צריכת החשמל במצב סרק. אם ה- ADC מופעל, המרה מתחילה אוטומטית כאשר נכנסים למצב זה.
מצב הפחתת רעש ADC
כאשר הסיביות SM[1:0] נכתבות ל-01, הוראת ה-SLEEP גורמת ל-MCU להיכנס למצב הפחתת רעשים של ADC, עוצרת את ה-CPU אך מאפשרת ל-ADC, לפסיקות החיצוניות ול-Watchdog להמשיך לפעול (אם מופעל). מצב שינה זה עוצר את clkI/O, clkCPU ו-clkFLASH, תוך שהוא מאפשר לשאר השעונים לפעול.
זה משפר את סביבת הרעש של ה- ADC, ומאפשר מדידות ברזולוציה גבוהה יותר. אם ה- ADC מופעל, המרה מתחילה אוטומטית כאשר נכנסים למצב זה. מלבד ההפרעה המלאה של ADC, רק איפוס חיצוני, איפוס כלב שמירה, איפוס חום-החוצה, הפרעה מוכנה ל- SPM / EEPROM, הפרעה ברמה חיצונית ב- INT0 או הפרעה להחלפת סיכה יכולים להעיר את ה- MCU מ- ADC הפחתת רעש מצב.
מצב כיבוי
כאשר סיביות ה- SM [1: 0] נכתבות ל -10, ההוראה SLEEP גורמת ל- MCU להיכנס למצב כיבוי. במצב זה, המתנד נעצר, בעוד ההפרעות החיצוניות, זיהוי מצב USI מתחיל וכלב השמירה ממשיך לפעול (אם מופעל). רק איפוס חיצוני, איפוס כלב שמירה, איפוס חום-החוצה, הפרעת מצב USI, הפרעה ברמה חיצונית ב- INT0 או הפרעה להחלפת סיכה יכולים להעיר את ה- MCU. מצב שינה זה עוצר את כל השעונים שנוצרו, ומאפשר הפעלה של מודולים אסינכרוניים בלבד.
תוכנת BOD השבתה
כאשר הגלאי החום (BOD) מופעל על ידי נתיכים של BODLEVEL (ראה טבלה 20-4 בעמוד 148), ה-BOD עוקב באופן פעיל אחר כרך האספקהtagה במהלך תקופת שינה. במכשירים מסוימים ניתן לחסוך בחשמל על ידי השבתת ה-BOD על ידי תוכנה במצב שינה "כיבוי". צריכת החשמל במצב שינה תהיה אז באותה רמה כמו כאשר BOD מושבת באופן גלובלי על ידי נתיכים.
אם BOD מושבת על ידי תוכנה, פונקציית BOD כבויה מיד לאחר הכניסה למצב שינה. עם התעוררות משינה, BOD מופעל שוב באופן אוטומטי. זה מבטיח פעולה בטוחה במקרה שרמת ה-VCC ירדה במהלך תקופת השינה.
כאשר ה- BOD הושבת, זמן ההשכמה ממצב שינה יהיה זהה להתעוררות מ- RESET. על המשתמש להגדיר באופן ידני את זמני ההשכמה כך שלפניה של פערי הפס יהיה זמן להתחיל וה- BOD יפעל כראוי לפני שה- MCU ימשיך לבצע קוד. ראה SUT [1: 0] ו- CKSEL [3: 0] ביטים נתיכים בטבלה "נתיך בתים נמוכים" בעמוד 149
השבתת BOD נשלטת על ידי ביט BODS (BOD Sleep) של MCU Control Register, ראה "MCUCR - בקרת MCU הירשם ”בעמוד 37. כתיבת סיבית זו לאחת מכבה את BOD ב- Power-Down, בעוד שכתיבת אפס שומרת על ה- BOD פעיל. הגדרת ברירת המחדל היא אפס, כלומר BOD פעיל.
הכתיבה לביט BODS נשלטת על ידי רצף מתוזמן וסיבית הפעלה, ראה “MCUCR - MCU Control Regis- ter ”בעמוד 37.
מגבלות
פונקציונליות השבתת BOD יושמה במכשירים הבאים בלבד:
ATtiny25, גרסה E, וחדשה יותר
ATtiny45, גרסה D, וחדשה יותר
ATtiny85, גרסה C וחדשה יותר
מהדורות מסומנות על חבילת המכשיר והן יכולות להיות ממוקמות באופן הבא:
הצד התחתון של החבילות 8P3 ו- 8S2
הצד העליון של החבילה 20M1
רישום הפחתת חשמל
רשם הפחתת הכוח (PRR), ראה "PRR - רישום הפחתת חשמל" בעמוד 38, מספק שיטה להפחתת צריכת החשמל על ידי עצירת השעון לציוד היקפי בודד. המצב הנוכחי של ציוד היקפי קפוא ולא ניתן לקרוא או לכתוב את רושמי ה- I / O. משאבים המשמשים את ציוד היקפי בעת עצירת השעון יישארו תפוסים, ומכאן שרוב המקרים צריכים להיות מושבתים לפני שעוצרים את השעון. הערת מודול, אשר נעשית על ידי ניקוי הסיבית ב- PRR, מעמידה את המודול באותו מצב כמו לפני כיבוי.
ניתן להשתמש בכיבוי המודולים במצב סרק ובמצב פעיל כדי להפחית משמעותית את צריכת החשמל הכוללת. בכל שאר מצבי השינה, השעון כבר נעצר. לִרְאוֹת "זרם אספקת מודולי קלט / פלט" בעמוד 177 למשלamples.
מזעור צריכת החשמל
יש לקחת בחשבון כמה נושאים כשמנסים למזער את צריכת החשמל במערכת מבוקרת AVR. באופן כללי, יש להשתמש במצבי שינה ככל האפשר, ולבחור את מצב השינה כך שכמה שפחות מתפקודי המכשיר יפעלו. יש להשבית את כל הפונקציות שאינן נחוצות. בפרט, המודולים הבאים עשויים להזדקק לשיקול מיוחד כאשר מנסים להשיג את צריכת החשמל הנמוכה ביותר.
ממיר אנלוגי לדיגיטלי
אם מופעלת, ה- ADC יופעל בכל מצבי השינה. כדי לחסוך בחשמל, יש להשבית את ה- ADC לפני שנכנס למצב שינה כלשהו. כאשר ה- ADC מושבת ומופעל שוב, ההמרה הבאה תהיה המרה מורחבת. מתייחס "ממיר אנלוגי לדיגיטלי" בעמוד 122 לפרטים על פעולת ADC.
משווה אנלוגי
כאשר נכנסים למצב סרק, יש להשבית את המשווה האנלוגי אם לא נעשה בו שימוש. כאשר נכנסים למצב הפחתת רעשים של ADC, יש להשבית את המשווה האנלוגי. במצבי שינה אחרים, המשווה האנלוגי מושבת באופן אוטומטי. עם זאת, אם ה-Anlog Comparator מוגדר להשתמש ב-Internal Voltagהתייחס כקלט, המשווה האנלוגי צריך להיות מושבת בכל מצבי השינה. אחרת, הכרך הפנימיtage Reference תופעל, ללא תלות במצב שינה. מתייחס "משווה אנלוגי" בעמוד 119 לפרטים על אופן הגדרת התצורה של ה- Comparator Analog.
גלאי שחום
אם אין צורך בגלאי החום ביישום, יש לכבות את המודול הזה. אם הגלאי השחזה מופעל על ידי נתיכי BODLEVEL, הוא יופעל בכל מצבי השינה, ולכן, תמיד צורכים חשמל. במצבי שינה עמוקים יותר, הדבר יתרום משמעותית לצריכת הזרם הכוללת. לִרְאוֹת "Detec החוצה- "בעמוד 41 ו "תוכנת BOD השבתה" בעמוד 35 לפרטים על אופן הגדרת התצורה של הגלאי החום.
כרך פנימיtage הפניה
הכרך הפנימיtage Reference יופעל בעת הצורך על-ידי זיהוי ה-Brown-out, ה-Analog Comparator או ה-ADC. אם מודולים אלה מושבתים כמתואר בסעיפים לעיל, הערך הפנימי כרךtagההפניה תושבת והיא לא תצרוך חשמל. כאשר מופעל שוב, המשתמש חייב לאפשר להפניה להתחיל לפני השימוש בפלט. אם הפניה נשמרת במצב שינה, ניתן להשתמש בפלט באופן מיידי. מתייחס "כרך פנימיtagהפנייה" בעמוד 42 לפרטים על זמן ההפעלה.
טיימר כלב שמירה
אם אין צורך בטיימר כלב השמירה ביישום, יש לכבות את המודול הזה. אם טיימר כלב השמירה מופעל, הוא יופעל בכל מצבי השינה, ולכן, תמיד צורכים חשמל. במצבי שינה עמוקים יותר, הדבר יתרום משמעותית לצריכת הזרם הכוללת. מתייחס "טיימר כלב השמירה" בעמוד 42 לקבלת פרטים על אופן ההגדרה של טיימר כלב השמירה.
סיכות נמל
בעת כניסה למצב שינה, יש להגדיר את כל פיני היציאה כך שישתמשו במינימום חשמל. הדבר החשוב ביותר הוא אם כן להבטיח שאף פינים לא מניעים עומסים התנגדות. במצבי שינה שבהם מופסקים גם שעון הקלט/פלט (clkI/O) וגם שעון ה-ADC (clkADC), מאגרי הקלט של המכשיר יהיו מושבתים. זה מבטיח שלא נצרך חשמל
לפי לוגיקת הקלט כשאינו נחוץ. במקרים מסוימים, יש צורך בהיגיון הקלט לזיהוי מצבי השכמה, וכן
לאחר מכן הוא יופעל. עיין בסעיף "אפשרויות כניסה דיגיטלית ומצב שינה" בעמוד 57 לפרטים אילו פינים מופעלים. אם מאגר הקלט מופעל ואות הקלט נותר צף או בעל רמת אות אנלוגית קרובה ל-VCC/2, מאגר הקלט ישתמש בהספק מופרז.
עבור פיני כניסה אנלוגיים, מאגר הקלט הדיגיטלי צריך להיות מושבת בכל עת. רמת אות אנלוגית קרובה ל-VCC/2 בפין כניסה יכולה לגרום לזרם משמעותי אפילו במצב פעיל. ניתן להשבית מאגרי קלט דיגיטליים על ידי כתיבה ל-Digital Input Disable Register (DIDR0). מתייחס “DIDR0 - רישום השבת קלט דיגיטלי 0” בעמוד 121 לפרטים.
תיאור הרשמה
MCUCR - MCU Control Register
מרשם הבקרה של MCU מכיל סיביות בקרה לניהול צריכת חשמל.
קצת | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | BODSE | ISC01 | ISC00 | MCUCR |
קריאה/כתיבה | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
ערך התחלתי | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ביט 7 - BODS: BOD Sleep
פונקציונליות השבתת BOD זמינה במכשירים מסוימים בלבד. לִרְאוֹת "מגבלות" בעמוד 36.
על מנת להשבית את ה- BOD בזמן השינה (ראה טבלה 7-1 בעמוד 34) יש לכתוב את ביט ה- BODS לוגי אחד. זה נשלט על ידי רצף מתוזמן וסיבית ההפעלה, BODSE ב- MCUCR. ראשית, גם BODS וגם BODSE חייבים להיות מוגדרים לאחד. שנית, בתוך ארבעה מחזורי שעון, BODS חייב להיות מוגדר לאחד ו- BODSE צריך להיות מוגדר לאפס. ביט ה- BODS פעיל שלושה מחזורי שעון לאחר הגדרתו. יש לבצע הוראת שינה בזמן ש- BODS פעיל כדי לכבות את ה- BOD למצב השינה בפועל. ביט ה- BODS מנוקה אוטומטית לאחר שלושה מחזורי שעון.
במכשירים שבהם לא הושם ה- Sleeping BOD ביט זה אינו בשימוש ותמיד יקרא אפס.
ביט 5 - SE: הפעלת שינה
יש לכתוב את סיביות ה-SE ללוגיקה XNUMX כדי לגרום ל-MCU להיכנס למצב שינה בעת ביצוע הוראת ה-SLEEP. כדי למנוע את כניסת ה-MCU למצב שינה אלא אם כן זו מטרת המתכנת, מומלץ לכתוב את ה-Sleep Enable (SE) bit לאחד ממש לפני ביצוע הוראת ה-SLEEP ולנקות אותו מיד לאחר היקיצה.
ביטים 4: 3 - SM [1: 0]: מצב שינה בחר ביטים 1 ו -0
ביטים אלה בוחרים בין שלושת מצבי השינה הזמינים כפי שמוצג ב טבלה 7-2.
טבלה 7-2. מצב שינה בחר
SM1 | SM0 | מצב שינה |
0 | 0 | לְהִתְבַּטֵל |
0 | 1 | הפחתת רעש ADC |
1 | 0 | הפסקת חשמל |
1 | 1 | שָׁמוּר |
ביט 2 - BODSE: הפעלת שינה של BOD
פונקציונליות השבתת BOD זמינה במכשירים מסוימים בלבד. לִרְאוֹת "מגבלות" בעמוד 36.
סיבית ה- BODSE מאפשרת הגדרת סיבית בקרת BODS, כפי שמוסבר בתיאור הסיביות של BODS. השבתת BOD נשלטת על ידי רצף מתוזמן.
סיבית זו אינה בשימוש במכשירים שבהם תוכנת BOD אינה זמינה, לא יושמה ותקרא כאפס בהתקנים אלה.
PRR - רישום הפחתת חשמל
רישום הפחתת החשמל מספק שיטה להפחתת צריכת החשמל בכך שהיא מאפשרת להשבית אותות שעון היקפיים.
קצת | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x20 | – | – | – | – | PRTIM1 | PRTIM0 | פרוסי | PRADC | PRR |
קריאה/כתיבה | R | R | R | R | R/W | R/W | R/W | R/W | |
ערך התחלתי | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ביטים 7: 4 - מיל ': ביטים שמורים
סיביות אלה הן סיביות שמורות ב- ATtiny25 / 45/85 ותמיד יקראו כאפס.
ביט 3 - PRTIM1: טיימר / מונה להפחתת חשמל 1
כתיבת לוגיקה למעט זה מכבה את מודול הטיימר / מונה 1. כאשר הפעלת טיימר / מונה 1 מופעלת, הפעולה תימשך כמו לפני הכיבוי.
ביט 2 - PRTIM0: טיימר / מונה להפחתת חשמל 0
כתיבת לוגיקה למעט זה מכבה את מודול הטיימר / מונה 0. כאשר הפעלת טיימר / מונה 0 מופעלת, הפעולה תימשך כמו לפני הכיבוי.
ביט 1 - PRUSI: הפחתת כוח USI
כתיבת לוגיקה למעט זה מכבה את ה- USI על ידי עצירת השעון למודול. כאשר מעירים את ה- USI שוב, יש לאתחל את ה- USI מחדש כדי להבטיח פעולה תקינה.
ביט 0 - PRADC: ADC להפחתת הספק
כתיבת לוגיקה למעט זה מכבה את ה- ADC. יש להשבית את ה- ADC לפני כיבויו. שים לב ששעון ה- ADC משמש גם חלקים מסוימים של המשווה האנלוגי, כלומר, לא ניתן להשתמש במשווה האנלוגי כאשר סיבית זו גבוהה.
בקרת מערכת ואיפוס
איפוס ה- AVR
במהלך האיפוס, כל רושמי ה- I / O מוגדרים לערכים הראשוניים שלהם, והתוכנית מתחילה לבצע מה- Reset Vector. ההוראה המוצבת ב- Vector Reset חייבת להיות RJMP - Relative Jump - הוראות לשגרת הטיפול באיפוס. אם התוכנית לעולם אינה מאפשרת מקור הפסקה, לא נעשה שימוש בווקטורי ההפרעה וניתן להציב קוד תכנית רגיל במיקומים אלה. תרשים המעגל ב איור 8-1 מציג את לוגיקת האיפוס. הפרמטרים החשמליים של מעגלי האיפוס ניתנים ב "מאפייני מערכת ואיפוס" בעמוד 165.
איור 8-1 איפוס לוגיקה
יציאות ה- I / O של ה- AVR מתאפסות באופן מיידי למצבן ההתחלתי כאשר מקור האיפוס פעיל. זה לא מצריך שום מקור שעון לפעול.
לאחר שכל מקורות האיפוס לא היו פעילים, מופעל מונה עיכוב הממתח את האיפוס הפנימי. זה מאפשר לכוח להגיע לרמה יציבה לפני תחילת הפעולה הרגילה. תקופת פסק הזמן של מונה ההשהיה מוגדרת על ידי המשתמש באמצעות נתיכי SUT ו- CKSEL. הבחירות השונות לתקופת העיכוב מוצגות ב "שָׁעוֹן מקורות ”בעמוד 25.
אפס מקורות
ל- ATtiny25 / 45/85 ארבעה מקורות לאיפוס:
איפוס הפעלה. ה-MCU מאופס כאשר כרך האספקהtage מתחת לסף איפוס הפעלה (VPOT).
איפוס חיצוני. ה- MCU מתאפס כאשר קיימת רמה נמוכה על הסיכה RESET לאורך זמן הדופק המינימלי.
איפוס כלב שמירה. ה- MCU מאופס כשתקופת טיימר כלב השמירה תפוג והכלב מופעל.
איפוס חום-אאוט. ה-MCU מאופס כאשר כרך האספקהtage VCC נמצא מתחת לסף איפוס החום (VBOT) וגלאי השחרור מופעל.
איפוס הפעלה
דופק איפוס הפעלה (POR) נוצר על ידי מעגל איתור שבב. רמת הזיהוי מוגדרת ב "סיס- tem ומאפייני איפוס "בעמוד 165. ה-POR מופעל בכל פעם ש-VCC מתחת לרמת הזיהוי. ניתן להשתמש במעגל ה-POR כדי להפעיל את איפוס ההפעלה, כמו גם כדי לזהות כשל בנפח האספקהtage.
מעגל Power-on Reset (POR) מבטיח שהמכשיר מאופס מההפעלה. הגעה לסף איפוס הפעלה כרךtage מפעיל את מונה ההשהיה, שקובע כמה זמן המכשיר נשמר ב-RESET לאחר עליית VCC. אות האיפוס מופעל שוב, ללא כל עיכוב, כאשר VCC יורד מתחת לרמת הזיהוי.
איור 8-2. הפעלה של MCU, איפוס קשור ל-VCC
איפוס פנימי
איור 8-3. הפעלה של MCU, איפוס מורחב חיצונית
איפוס חיצוני
איפוס חיצוני נוצר על ידי רמה נמוכה על סיכת RESET אם היא מופעלת. אפס פעימות הארוכות יותר מרוחב הדופק המינימלי (ראה "מאפייני מערכת ואיפוס" בעמוד 165) ייצור איפוס, גם אם השעון לא פועל. פולסים קצרים יותר אינם מובטחים ליצור איפוס. כאשר האות המופעל מגיע ל-Reset Threshold Voltage – VRST – על הקצה החיובי שלו, מונה ההשהייה מפעיל את ה-MCU לאחר פקיעת תקופת ה-Time-out.
איור 8-4. איפוס חיצוני במהלך הפעולה
זיהוי שחום
ל-ATtiny25/45/85 יש מעגל On-chip Brown-out Detection (BOD) לניטור רמת ה-VCC במהלך הפעולה על ידי השוואתה לרמת טריגר קבועה. ניתן לבחור את רמת ההדק עבור ה-BOD על ידי ה-BODLEVEL Fuses. לרמת ההדק יש היסטרזיס כדי להבטיח זיהוי חום ללא נקודות. יש לפרש את ההיסטרזיס ברמת הזיהוי כ-VBOT+ = VBOT + VHYST/2 ו-VBOT- = VBOT – VHYST/2.
כאשר ה-BOD מופעל, וה-VCC יורד לערך מתחת לרמת ההדק (VBOT- in איור 8-5), ה-Brown-out Reset מופעל מיד. כאשר VCC עולה מעל רמת ההדק (VBOT+ in איור 8-5), מונה ההשהיה מפעיל את ה-MCU לאחר תום תקופת הפסק זמן tTOUT.
מעגל BOD יזהה ירידה ב-VCC רק אם הוולtage נשאר מתחת לרמת ההדק למשך זמן רב יותר מ-tBOD שניתן ב "מאפייני מערכת ואיפוס" בעמוד 165.
איפוס כלב שמירה
כאשר ה-Watchdog פסק זמן קצוב, הוא יפיק דופק איפוס קצר של משך מחזור CK אחד. בקצה הנופל של הדופק הזה, טיימר ההשהיה מתחיל לספור את תקופת הפסק זמן tTOUT. מתייחס "טיימר כלב השמירה" בעמוד 42 לפרטים על הפעלת טיימר כלב השמירה.
כרך ידtagה עיון הפעלת אותות וזמן הפעלה
כרךtagלהפניה יש זמן הפעלה שעשוי להשפיע על אופן השימוש בה. זמן ההפעלה נתון "מאפייני מערכת ואיפוס" בעמוד 165. כדי לחסוך בחשמל, לא תמיד ההפניה מופעלת. ההפניה מופעלת במצבים הבאים:
כאשר ה- BOD מופעל (על ידי תכנות ה- BODLEVEL [2: 0] Fuse Bits).
כאשר הפניית פער הפס מחוברת למכשיר האנלוגי (על ידי הגדרת סיבית ACBG ב- ACSR).
כאשר ה- ADC מופעל.
לפיכך, כאשר ה- BOD אינו מופעל, לאחר הגדרת סיבית ה- ACBG או הפעלת ה- ADC, על המשתמש תמיד לאפשר להפעלת הפניה לפני השימוש בפלט מה- Comparator Analog או ADC. כדי להפחית את צריכת החשמל במצב הכיבוי, המשתמש יכול להימנע משלושת התנאים לעיל כדי להבטיח שההפניה כבויה לפני כניסה למצב כיבוי.
טיימר כלב שמירה
טיימר כלב השעון שעון מתנד על שבב שעובד על 128 קילוהרץ. על ידי שליטה על מחוון טיימר כלב השעון, ניתן לכוונן את מרווח האיפוס של כלב השמירה כפי שמוצג ב טבלה 8-3 בעמוד 46. WDR - איפוס כלב השמירה - ההוראות מאפסות את טיימר כלב השמירה. טיימר כלב השמירה מאופס גם כאשר הוא מושבת וכאשר מתרחש איפוס שבב. ניתן לבחור עשר תקופות שונות של מחזור שעון לקביעת תקופת האיפוס. אם תקופת האיפוס תפוג ללא איפוס כלב שמירה נוסף, ה- ATtiny25 / 45/85 מתאפס ומבוצע מ- Reset Vector. לקבלת פרטי תזמון על איפוס כלב השמירה, עיין ב טבלה 8-3 בעמוד 46.
ניתן גם להגדיר את טיימר כלב השמירה ליצור הפרעה במקום איפוס. זה יכול להיות מאוד מועיל כשמשתמשים בכלב השמירה כדי להתעורר מ- Power-down.
כדי למנוע השבתה לא מכוונת של כלב השמירה או שינוי לא מכוון של תקופת פסק הזמן, שתי רמות בטיחות שונות נבחרות על ידי הנתיך WDTON כמוצג ב טבלה 8-1 עיין ב "רצפים מתוזמנים לשינוי השיחה איור של טיימר כלב השמירה "בעמוד 43 לפרטים.
טבלה 8-1. תצורת WDT כפונקציה של הגדרות הנתיכים של WDTON
WDTON | רמת בטיחות | מצב התחלתי של WDT | כיצד להשבית את ה- WDT | כיצד לשנות פסק זמן |
לא מתוכנת | 1 | נָכֶה | רצף מתוזמן | אין מגבלות |
מתוכנת | 2 | מופעל | תמיד מופעל | רצף מתוזמן |
איור 8-7. טיימר כלב השמירה
רצפים מתוזמנים לשינוי התצורה של טיימר כלב השמירה
הרצף לשינוי תצורה שונה מעט בין שתי רמות הבטיחות. נהלים נפרדים מתוארים לכל רמה.
רמת בטיחות 1: במצב זה, ה-Watchdog Timer מושבת תחילה, אך ניתן להפעיל אותו על ידי כתיבת סיביות WDE ל-bit ללא כל הגבלה. יש צורך ברצף מתוזמן בעת השבתת טיימר Watchdog מופעל. כדי להשבית טיימר Watchdog מופעל, יש לבצע את ההליך הבא:
באותה פעולה, כתוב לוגיקה ל- WDCE ו- WDE. יש לכתוב לוגיקה ל- WDE ללא קשר לערכו הקודם של ביט ה- WDE.
במהלך ארבעת מחזורי השעון הבאים, באותה פעולה, כתוב את סיביות ה- WDE וה- WDP כרצונך, אך עם סיבית ה- WDCE.
רמת בטיחות 2: במצב זה, ה-Watchdog Timer מופעל תמיד, והביט של WDE תמיד ייקרא כאחד. יש צורך ברצף מתוזמן בעת שינוי תקופת פסק הזמן של Watchdog. כדי לשנות את פסק הזמן של Watchdog, יש לבצע את ההליך הבא:
באותה פעולה, כתוב לוגי ל- WDCE ו- WDE. למרות ש- WDE מוגדר תמיד, יש לכתוב את ה- WDE לאחד כדי להתחיל את הרצף המתוזמן.
בארבעת מחזורי השעון הבאים, באותה פעולה, כתוב את סיביות ה- WDP כרצונך, אך עם סיבית ה- WDCE. הערך שנכתב לסיבית ה- WDE אינו רלוונטי.
קוד Example
הקוד הבא למשלample מציג מכלול אחד ופונקציית C אחת לכיבוי ה- WDT. האקסample מניח כי הפרעות נשלטות (למשל על ידי השבתת הפרעות גלובליות) כך שלא יתרחשו הפרעות במהלך ביצוע פונקציות אלה.
קוד הרכבה Example(1) |
WDT_off:
wdr ; נקה WDRF ב- MCUSR ldi r16, (0< יוצא MCUSR, r16 ; כתוב אחד הגיוני ל- WDCE ו- WDE ; שמור על הגדרת prescaler ישנה כדי למנוע איפוס של כלב שמירה לא מכוון ב-r16, WDTCR ori r16, (1< יוצא WDTCR, r16 ; כבה את WDT ldi r16, (0< יוצא WDTCR, r16 לְהַשְׁרוֹת |
קוד C Example(1) |
void WDT_off(void)
{ _WDR (); /* נקה WDRF ב-MCUSR */ MCUSR = 0x00 /* כתוב אחד לוגי ל-WDCE ו-WDE */ WDTCR |= (1< / * כבה את WDT * / WDTCR = 0x00; } |
הערה: 1. ראה “קוד לשamples ”בעמוד 6.
תיאור הרשמה
MCUSR - MCU Status Register
רישום הסטטוס של MCU מספק מידע על איזה מקור איפוס גרם לאיפוס MCU.
קצת | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x34 | – | – | – | – | WDRF | בורף | EXTRF | PORF | MCUSR |
קריאה/כתיבה | R | R | R | R | R/W | R/W | R/W | R/W |
ערך התחלתי 0 0 0 0 ראה תיאור סיביות
ביטים 7: 4 - מיל ': ביטים שמורים
סיביות אלה הן סיביות שמורות ב- ATtiny25 / 45/85 ותמיד יקראו כאפס.
ביט 3 - WDRF: דגל איפוס כלב השמירה
סיבית זו מוגדרת אם אפס כלב שמירה מתרחש. הביט מאופס על ידי איפוס הפעלה או על ידי כתיבת אפס לוגי לדגל.
ביט 2 - BORF: דגל איפוס שחום
סיבית זו מוגדרת אם מתרחש איפוס חום. הביט מאופס על ידי איפוס הפעלה או על ידי כתיבת אפס לוגי לדגל.
ביט 1 - EXTRF: דגל איפוס חיצוני
סיבית זו מוגדרת אם מתרחש איפוס חיצוני. הביט מאופס על ידי איפוס הפעלה או על ידי כתיבת אפס לוגי לדגל.
ביט 0 - PORF: דגל איפוס הפעלה
סיבית זו מוגדרת אם מתבצע איפוס הפעלה. הביט מאופס רק על ידי כתיבת אפס לוגי לדגל.
כדי להשתמש בדגלי איפוס לאיתור מצב איפוס, על המשתמש לקרוא ואז לאפס את ה- MCUSR מוקדם ככל האפשר בתוכנית. אם הרישום מנוקה לפני שמתחולל איפוס נוסף, ניתן למצוא את מקור האיפוס על ידי בחינת דגלי האיפוס.
WDTCR - רישום בקרת טיימר כלב השמירה
קצת | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x21 | WDIF | WDIE | WDP3 | WDCE | WDE | WDP2 | WDP1 | WDP0 | WDTCR |
קריאה/כתיבה | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
ערך התחלתי | 0 | 0 | 0 | 0 | X | 0 | 0 | 0 |
ביט 7 - WDIF: דגל הפסקה של פסק הזמן של כלב השמירה
סיבית זו נקבעת כאשר מתרחש פסק זמן בטיימר כלב השעון וטיימר כלב השמירה מוגדר להפסקה. WDIF מנוקה על ידי חומרה בעת ביצוע וקטור הטיפול בהפרעה המתאים. לחלופין, WDIF מנוקה על ידי כתיבת לוגיקה לדגל. כאשר ה- I-bit ב- SREG ו- WDIE מוגדרים, ההפסקה של פסק הזמן של Watchdog מבוצעת.
ביט 6 - WDIE: הפסקת הפסקת הזמן של כלב השמירה מופעלת
כאשר סיבית זו נכתבת לאחד, WDE מנוקה, ומוגדר ה- I-bit במרשם המצב, מופעלת הפסקת הזמן הקצוב לכלב השמירה. במצב זה ההפרעה המתאימה מבוצעת במקום איפוס אם מתרחש פסק זמן בטיימר כלב השמירה.
אם מוגדר WDE, WDIE מנוקה אוטומטית על ידי חומרה כאשר מתרחש פסק זמן. זה שימושי לשמירה על אבטחת כלב האיפוס בזמן השימוש בהפסקה. לאחר ניקוי סיבית ה- WDIE, פסק הזמן הבא יפיק איפוס. כדי להימנע מאיפוס כלב השמירה, יש להגדיר את WDIE לאחר כל הפסקה.
טבלה 8-2. תצורת טיימר Watchdog
WDE | WDIE | מדינת טיימר כלב השמירה | פעולה על פסק זמן |
0 | 0 | נֶעצָר | אַף לֹא אֶחָד |
0 | 1 | רִיצָה | לְהַפְרִיעַ |
1 | 0 | רִיצָה | אִתחוּל |
1 | 1 | רִיצָה | לְהַפְרִיעַ |
ביט 4 - WDCE: שינוי כלב שמירה מופעל
יש להגדיר סיבית זו כאשר סיבית ה- WDE נכתבת לאפס לוגי. אחרת, כלב השמירה לא יושבת. לאחר שנכתב לאחד, החומרה תנקה את החלק הזה לאחר ארבעה מחזורי שעון. עיין בתיאור סיבית ה- WDE לקבלת הליך השבתת כלב שמירה. יש להגדיר סיבית זו גם בעת שינוי סיביות prescaler. לִרְאוֹת "רצפים מתוזמנים לשינוי התצורה של טיימר כלב השמירה "בעמוד 43.
ביט 3 - WDE: כלב שמירה מופעל
כאשר ה- WDE כתוב לוגי אחד, טיימר כלב השמירה מופעל, ואם ה- WDE כתוב לאפס ההיגיון, הפונקציה טיימר כלב השמירה מושבתת. ניתן לנקות WDE רק אם לסיבית WDCE יש רמת לוגיקה אחת. כדי להשבית טיימר כלב שמירה מופעל, יש לבצע את ההליך הבא:
באותה פעולה, כתוב לוגיקה ל- WDCE ו- WDE. יש לכתוב לוגיקה ל- WDE למרות שהיא מוגדרת כזו לפני תחילת פעולת ההשבתה.
בארבעת מחזורי השעון הבאים, כתוב לוגיקה 0 ל- WDE. זה משבית את כלב השמירה.
ברמת הבטיחות 2, לא ניתן להשבית את טיימר כלב השמירה, אפילו לא באמצעות האלגוריתם שתואר לעיל. לִרְאוֹת "רצפים מתוזמנים לשינוי תצורת טיימר כלב השמירה" בעמוד 43.
ברמת הבטיחות 1, WDE נעקף על ידי WDRF ב- MCUSR. לִרְאוֹת "MCUSR - MCU Status Register" בעמוד 44 לתיאור WDRF. פירוש הדבר ש- WDE מוגדר תמיד כאשר מוגדר WDRF. כדי לנקות WDE, יש לנקות את WDRF לפני השבתת כלב השמירה לפי ההליך המתואר לעיל. תכונה זו מבטיחה איפוס מרובה במהלך תנאים הגורמים לכישלון, והפעלה בטוחה לאחר הכשל.
הערה: אם טיימר ה-Watchdog לא הולך לשמש באפליקציה, חשוב לעבור הליך השבתת Watchdog באתחול המכשיר. אם ה-Watchdog מופעל בטעות, למשלampעל ידי מצביע בורח או מצב שחום, המכשיר יאופס, מה שיוביל לאיפוס כלב שמירה חדש. כדי להימנע ממצב זה, תוכנת היישום צריכה תמיד לנקות את דגל ה- WDRF ואת סיכת הבקרה של WDE בשגרת האתחול.
ביטים 5, 2: 0 - WDP [3: 0]: כלב השמירה טיימר Prescaler 3, 2, 1 ו- 0
סיביות ה- WDP [3: 0] קובעות את הגדרת הטיימר של כלב השעון כאשר זרימת השעון מופעלת. ערכי הגדרת הצעדים השונים ותקופות הזמן הקצובות להם תואמים טבלה 8-3.
טבלה 8-3. Watchdog Timer Prescale Select
WDP3 | WDP2 | WDP1 | WDP0 | מספר מחזורי מתנד WDT | פסק זמן טיפוסי ב-VCC = 5.0V |
0 | 0 | 0 | 0 | מחזורי 2K (2048) | 16 אלפיות השנייה |
0 | 0 | 0 | 1 | מחזורי 4K (4096) | 32 אלפיות השנייה |
0 | 0 | 1 | 0 | מחזורי 8K (8192) | 64 אלפיות השנייה |
0 | 0 | 1 | 1 | מחזורי 16K (16384) | 0.125 ש' |
0 | 1 | 0 | 0 | מחזורי 32K (32764) | 0.25 ש' |
0 | 1 | 0 | 1 | מחזורי 64K (65536) | 0.5 ש' |
0 | 1 | 1 | 0 | מחזורי 128K (131072) | 1.0 ש' |
0 | 1 | 1 | 1 | מחזורי 256K (262144) | 2.0 ש' |
1 | 0 | 0 | 0 | מחזורי 512K (524288) | 4.0 ש' |
1 | 0 | 0 | 1 | מחזורי 1024K (1048576) | 8.0 ש' |
טבלה 8-3. בחירה מראש של טיימר Watchdog (המשך)
WDP3 | WDP2 | WDP1 | WDP0 | מספר מחזורי מתנד WDT | פסק זמן טיפוסי ב-VCC = 5.0V |
1 | 0 | 1 | 0 | שָׁמוּר(1) | |
1 | 0 | 1 | 1 | ||
1 | 1 | 0 | 0 | ||
1 | 1 | 0 | 1 | ||
1 | 1 | 1 | 0 | ||
1 | 1 | 1 | 1 |
הערה: 1. אם נבחר, אחת מההגדרות החוקיות מתחת ל-0b1010 תשמש.
מפריע
סעיף זה מתאר את הפרטים של הטיפול בהפרעה כפי שבוצעו ב- ATtiny25 / 45/85. להסבר כללי על הטיפול בהפסקת ה- AVR, עיין ב "איפוס והפסקת הטיפול" בעמוד 12.
הפרע וקטורים ב- ATtiny25 / 45/85
וקטורי ההפרעה של ATtiny25 / 45/85 מתוארים ב טבלה 9-1לְהַלָן.
טבלה 9-1. איפוס וקטע וקטורים
מס 'וקטור | כתובת התוכנית | מָקוֹר | הגדרת הפרעה |
1 | 0x0000 | אִתחוּל | סיכה חיצונית, איפוס הפעלה, איפוס חום-החוצה, איפוס כלב שמירה |
2 | 0x0001 | INT0 | בקשת הפרעה חיצונית 0 |
3 | 0x0002 | PCINT0 | הצמד בקשה להפסקת שינוי 0 |
4 | 0x0003 | TIMER1_COMPA | טיימר / מונה 1 השווה התאמה א ' |
5 | 0x0004 | TIMER1_OVF | טיימר / מונה 1 הצפה |
6 | 0x0005 | TIMER0_OVF | טיימר / מונה 0 הצפה |
7 | 0x0006 | EE_RDY | EEPROM מוכן |
8 | 0x0007 | ANA_COMP | משווה אנלוגי |
9 | 0x0008 | ADC | המרת ADC הושלמה |
10 | 0x0009 | TIMER1_COMPB | טיימר / מונה 1 השווה התאמה ב ' |
11 | 0x000A | TIMER0_COMPA | טיימר / מונה 0 השווה התאמה א ' |
12 | 0x000B | TIMER0_COMPB | טיימר / מונה 0 השווה התאמה ב ' |
13 | 0x000C | WDT | פסק זמן של כלב שמירה |
14 | 0x000D | USI_START | USI START |
15 | 0x000E | USI_OVF | הצפת USI |
אם התוכנית לעולם אינה מאפשרת מקור הפסקה, לא נעשה שימוש בווקטורי ההפרעה, וניתן להציב קוד תכנית רגיל במיקומים אלה.
התקנה טיפוסית וכללית עבור כתובות וקטור להפריע ב- ATtiny25/45/85 מוצגת בתוכנית exampלה למטה.
קוד הרכבה Example | ||
.org 0x0000 | ; הגדר את הכתובת של הבא | הַצהָרָה |
rjmp איפוס | ; כתובת 0x0000 | |
rjmp INT0_ISR | ; כתובת 0x0001 | |
rjmp PCINT0_ISR | ; כתובת 0x0002 | |
rjmp TIM1_COMPA_ISR | ; כתובת 0x0003 | |
rjmp TIM1_OVF_ISR | ; כתובת 0x0004 | |
rjmp TIM0_OVF_ISR | ; כתובת 0x0005 | |
rjmp EE_RDY_ISR | ; כתובת 0x0006 | |
rjmp ANA_COMP_ISR | ; כתובת 0x0007 | |
rjmp ADC_ISR | ; כתובת 0x0008 | |
rjmp TIM1_COMPB_ISR | ; כתובת 0x0009 | |
rjmp TIM0_COMPA_ISR | ; כתובת 0x000A | |
rjmp TIM0_COMPB_ISR | ; כתובת 0x000B | |
rjmp WDT_ISR | ; כתובת 0x000C | |
rjmp USI_START_ISR | ; כתובת 0x000D | |
rjmp USI_OVF_ISR | ; כתובת 0x000E | |
אפס: | ; תחילת התוכנית הראשית | |
; כתובת 0x000F | ||
… |
הערה: ראה “קוד לשamples ”בעמוד 6.
הפרעות חיצוניות
ההפרעות החיצוניות מופעלות על ידי סיכת INT0 או כל אחד מסיכות PCINT [5: 0]. שים לב שאם מופעלת, ההפרעות יופעלו גם אם סיכות INT0 או PCINT [5: 0] מוגדרות כפלטים. תכונה זו מספקת דרך ליצור הפרעה בתוכנה. הפרעות בשינוי פין PCI יופעלו אם כל פין PCINT [5: 0] מופעל. ה- PCMSK Register שולט אילו סיכות תורמות להפרעות להחלפת הסיכה. הפרעות לשינוי הסיכה ב- PCINT [5: 0] מזוהות באופן אסינכרוני. זה מרמז שניתן להשתמש בהפרעות אלה להעיר את החלק גם ממצבי שינה שאינם מצב סרק.
הפרעות INT0 יכולות להיות מופעלות על ידי קצה נופל או עולה או רמה נמוכה. זה מוגדר כמצוין במפרט לרישום בקרת MCU - MCUCR. כאשר הפסקת INT0 מופעלת ומוגדרת כרמה המופעלת, ההפרעה תופעל כל עוד הסיכה מוחזקת נמוכה. שים לב כי זיהוי של הפרעות בקצה נופל או עולה ב- INT0 מחייב נוכחות של שעון קלט / פלט, המתואר ב "מערכות שעון והפצתן" ב עמוד 23.
הפרעה ברמה נמוכה
הפרעה ברמה נמוכה ב- INT0 מזוהה בצורה אסינכרונית. זה מרמז שניתן להשתמש בהפרעה זו להעיר את החלק גם ממצבי שינה שאינם מצב סרק. שעון ה- I / O נעצר בכל מצבי השינה למעט מצב סרק.
שים לב שאם נעשה שימוש בהפרעה שהופעלה ברמה להתעוררות מכיבוי, יש להחזיק את הרמה הנדרשת מספיק זמן כדי שה-MCU ישלים את ההתעוררות כדי להפעיל את הפסקת הרמה. אם הרמה תיעלם לפני תום זמן ההפעלה, ה-MCU עדיין יתעורר, אך לא תיווצר הפרעה. זמן ההפעלה מוגדר על ידי נתיכים SUT ו-CKSEL כמתואר ב "שעון מערכת ואפשרויות שעון" בעמוד 23.
אם הרמה הנמוכה בסיכת ההפסקה מוסרת לפני שהתקן התעורר, ביצוע התוכנית לא יופנה לשגרת שירות ההפסקה אלא ימשיך מההוראות בעקבות פקודת SLEEP.
סיכת שינוי תזמון הפסקה
אקסampהעיתוי של הפרעה לשינוי סיכה מוצג ב איור 9-1.
תיאור הרשמה
MCUCR - MCU Control Register
רישום בקרת ההפרעה החיצונית A מכיל סיביות בקרה לבקרת תחושת הפסקה.
קצת | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | BODSE | ISC01 | ISC00 | MCUCR |
קריאה/כתיבה | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
ערך התחלתי | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ביטים 1: 0 - ISC0 [1: 0]: הפסקת בקרת החושים 0 ביט 1 וסיבית 0
ההפרעה החיצונית 0 מופעלת באמצעות הסיכה החיצונית INT0 אם מוגדרים דגל ה- SREG I ומסכת ההפרעה המתאימה. הרמה והקצוות בסיכה INT0 החיצונית המפעילים את ההפרעה מוגדרים ב טבלה 9-2. הערך בסיכה INT0 הוא sampהוביל לפני זיהוי קצוות. אם נבחר הפרעה של קצה או החלפה, פעימות שיחזיקו מעמד זמן רב יותר מתקופת שעון אחת ייצרו הפרעה. לא מובטח כי פולסים קצרים יותר יניבו הפרעה. אם נבחרה הפרעה ברמה נמוכה, יש להחזיק את הרמה הנמוכה עד להשלמת ההוראה המבוצעת כעת כדי ליצור הפרעה.
טבלה 9-2. Interrupt 0 Sense Control
ISC01 | ISC00 | תֵאוּר |
0 | 0 | הרמה הנמוכה של INT0 מייצרת בקשת הפסקה. |
0 | 1 | כל שינוי הגיוני ב- INT0 יוצר בקשת הפסקה. |
1 | 0 | הקצה הנופל של INT0 מייצר בקשת הפסקה. |
1 | 1 | הקצה העולה של INT0 מייצר בקשה להפסקה. |
GIMSK - רישום מסכות הפסקה כלליות
קצת | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3B | – | INT0 | PCIe | – | – | – | – | – | GIMSK |
קריאה/כתיבה | R | R/W | R/W | R | R | R | R | R | |
ערך התחלתי | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ביטים 7, 4: 0 - מיל ': ביטים שמורים
סיביות אלה הן סיביות שמורות ב- ATtiny25 / 45/85 ותמיד יקראו כאפס.
ביט 6 - INT0: בקשת הפסקה חיצונית 0 אפשר
כאשר סיבית ה- INT0 מוגדרת (אחת) וה- I בסמל הרישום (SREG) מוגדר (אחד), מופעלת הפרעת הסיכה החיצונית. ביטול החישה Interrupt 0 ביטים 1/0 (ISC01 ו- ISC00) במרשם הבקרה של MCU (MCUCR) מגדיר אם ההפרעה החיצונית מופעלת בקצה עולה ו / או נופל של סיכת ה- INT0 או רמת הרגישות. פעילות על הסיכה תגרום לבקשת הפסקה גם אם INT0 מוגדרת כפלט. ההפסקה המקבילה של בקשת הפסקה חיצונית 0 מתבצעת מווקטור ההפרעה INT0.
ביט 5 - PCIE: הפעלת שינוי הצמד
כאשר סיבית ה- PCIE מוגדרת (אחת) וה- I בסמל הרישום (SREG) מוגדר (אחד), הפסקת החלפת הסיכה מופעלת. כל שינוי בכל סיכת PCINT [5: 0] מופעלת תגרום להפרעה. ההפסקה המתאימה של בקשת הפסקה לשינוי פין מבוצעת מתוך וקטור הפרעה של PCI. סיכות PCINT [5: 0] מופעלות באופן אינדיבידואלי על ידי ה- PCMSK0 Register.
GIFR - רישום דגל כללי להפסיק
קצת | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3A | – | INTF0 | PCIF | – | – | – | – | – | GIFR |
קריאה/כתיבה | R | R/W | R/W | R | R | R | R | R | |
ערך התחלתי | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ביטים 7, 4: 0 - מיל ': ביטים שמורים
סיביות אלה הן סיביות שמורות ב- ATtiny25 / 45/85 ותמיד יקראו כאפס.
ביט 6 - INTF0: דגל הפרעה חיצוני 0
כאשר קצה או שינוי הגיוני בסיכה INT0 מפעילים בקשת הפסקה, INTF0 הופך להיות מוגדר (אחד). אם ה- I-bit ב- SREG וה- INT0 ב- GIMSK מוגדרים (אחד), ה- MCU יקפוץ לווקטור ה- Interrupt המתאים. הדגל מנוקה כשמבצעים את שגרת ההפרעה. לחלופין, ניתן לנקות את הדגל על ידי כתיבת דגל הגיוני אליו. דגל זה מנוקה תמיד כאשר INT0 מוגדר כהפרעה ברמה.
ביט 5 - PCIF: פין שינוי דגל הפרעה
כאשר שינוי הגיוני בכל סיכת PCINT [5: 0] מפעיל בקשת הפסקה, PCIF הופך להיות מוגדר (אחד). אם ה- I-bit ב- SREG ובסיס ה- PCIE ב- GIMSK מוגדרים (אחד), ה- MCU יקפוץ לווקטור ה- Interrupt המתאים. הדגל מנוקה כשמבצעים את שגרת ההפרעה. לחלופין, ניתן לנקות את הדגל על ידי כתיבת דגל הגיוני אליו.
PCMSK - רישום מסיכות לשינוי פין
קצת | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x15 | – | – | PCINT5 | PCINT4 | PCINT3 | PCINT2 | PCINT1 | PCINT0 | PCMSK |
קריאה/כתיבה | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
ערך התחלתי | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ביטים 7: 6 - מיל ': ביטים שמורים
סיביות אלה הן סיביות שמורות ב- ATtiny25 / 45/85 ותמיד יקראו כאפס.
ביטים 5: 0 - PCINT [5: 0]: החלפת סיכה הפעלת מסכה 5: 0
כל סיבית PCINT [5: 0] בוחרת אם הפסקת החלפת סיכה מופעלת על סיכת הקלט / פלט המתאימה. אם PCINT [5: 0] מוגדר וסיבית ה- PCIE ב- GIMSK מוגדרת, הפסקת שינוי הסיכה מופעלת על סיכת ה- I / O המתאימה. אם PCINT [5: 0] מנוקה, הפסקת החלפת הסיכה על סיכת ה- I / O המתאימה מושבתת.
יציאות I/O
מָבוֹא
לכל יציאות הרסיבר יש פונקציונליות אמיתית של Read-Modify-Write כשהן משמשות כיציאות I/O דיגיטליות כלליות. משמעות הדבר היא שניתן לשנות את הכיוון של פין יציאה אחד מבלי לשנות בטעות את הכיוון של כל פין אחר עם הוראות SBI ו-CBI. אותו הדבר חל בעת שינוי ערך הכונן (אם מוגדר כפלט) או הפעלה/השבתה של נגדי משיכה (אם מוגדרים כקלט). לכל מאגר פלט מאפייני כונן סימטריים עם יכולת כיור ומקור גבוהים כאחד. דרייבר הפינים חזק מספיק כדי להניע ישירות צגי LED. לכל פיני היציאה יש נגדי משיכה לבחירה בנפרד עם נפח אספקהtage התנגדות בלתי משתנה. לכל פיני הקלט/פלט יש דיודות הגנה הן ל-VCC והן לאדמה כפי שמצוין ב איור 10-1. עיין ב "מאפייני חשמל" בעמוד 161 לרשימה מלאה של פרמטרים.
איור 10-1. I/O Pin Equivalent Schematic
כל הרשמים והפניות הסיביות בחלק זה כתובים בצורה כללית. "X" באותיות קטנות מייצג את אות המספור ליציאה, וקטנה "n" מייצגת את מספר הסיביות. עם זאת, בעת שימוש ברשומות או בהגדרות סיביות בתוכנית, יש להשתמש בטופס המדויק. לשעברample, PORTB3 עבור ביט מספר. 3 בנמל B, כאן מתועד בדרך כלל כ- PORTxn. רשימות הקלט/פלט הפיזיות ומיקומי הסיביות מפורטים "תיאור הרשמה" ב עמוד 64.
לכל מיקוד מוקצים שלושה מיקומי כתובות זיכרון קלט / פלט, אחד לכל רישום הנתונים - PORTx, רישום כיוון הנתונים - DDRx, וסיכות קלט היציאה - PINx. מיקום קלט / פלט של סיכות קלט היציאה נקרא לקריאה בלבד, בעוד שרשם הנתונים ורשם כיווני הנתונים נקראים / כותבים. עם זאת, כתיבת לוגיקה אחת לרגע ב- PINx Register, תביא להחלפת הסיבית המתאימה במרשם הנתונים. בנוסף, ה- Pull-up Disable - PUD ביט ב- MCUCR משבית את פונקציית המשיכה עבור כל הפינים בכל היציאות כאשר היא מוגדרת.
השימוש ביציאת הקלט / פלט כקלט / פלט דיגיטלי כללי מתואר ב "יציאות כמו קלט / פלט דיגיטלי כללי" בעמוד 53. רוב פינות היציאה מרובות עם פונקציות חלופיות לתכונות ההיקפיות במכשיר. כיצד כל פונקציה חלופית מפריעה לסיכת היציאה מתואר ב "פונקציות נמל חלופיות" בעמוד 57. עיין בסעיפי המודולים הבודדים לתיאור מלא של הפונקציות החלופיות.
שים לב כי הפעלת הפונקציה החלופית של חלק מסיכות היציאה אינה משפיעה על השימוש בסיכות האחרות ביציאה כקלט / פלט דיגיטלי כללי.
יציאות כמו קלט / פלט דיגיטלי כללי
היציאות הן יציאות קלט / פלט דו כיווניות עם משיכות פנימיות אופציונליות. איור 10-2 מציג תיאור פונקציונלי של סיכת יציאת קלט / פלט אחת, המכונה כאן באופן כללי Pxn.
איור 10-2. קלט/פלט דיגיטלי כללי(1)
הגדרת התצורה של הסיכה
כל סיכת יציאה מורכבת משלושה סיביות רישום: DDxn, PORTxn ו- PINxn. כפי שנראה ב "תיאור הרשמה" ב עמוד 64, ניתן לגשת לבסיסי DDxn בכתובת ה- I / O של DDRx, לסיביות ה- PORTxn בכתובת ה- I / O של PORTx, ולסיביות ה- PINxn בכתובת ה- I / O של PINx.
סיבית DDxn ברישום DDRx בוחרת את כיוון הפין הזה. אם DDxn נכתב בהגיון אחד, Pxn מוגדר כסיכת פלט. אם DDxn נכתב בהיגיון אפס, Pxn מוגדר כסיכת קלט.
אם PORTxn כתוב בהיגיון כאשר הסיכה מוגדרת כסיכת כניסה, נגע המשיכה מופעל. כדי לכבות את נגד המשיכה, יש לכתוב PORTxn אפס לוגיקה או להגדיר את הסיכה כסיכת פלט. סיכות היציאה מוצגות שלוש כאשר מצב האיפוס הופך פעיל, גם אם לא פועלים שעונים.
אם PORTxn נכתב בהיגיון אחד כאשר הסיכה מוגדרת כסיכת פלט, סיכת היציאה מונעת גבוה (אחד). אם PORTxn נכתב בהיגיון אפס כאשר הסיכה מוגדרת כסיכת פלט, סיכת היציאה מונעת נמוכה (אפס).
החלפת סיכה
כתיבת לוגיקה ל- PINxn מחליפה את הערך של PORTxn, ללא תלות בערך DDRxn. שים לב שניתן להשתמש בהוראת SBI להחלפת סיבית אחת ביציאה.
מעבר בין קלט לפלט
בעת מעבר בין תלת-מצבים ({DDxn, PORTxn} = 0b00) לבין פלט גבוה ({DDxn, PORTxn} = 0b11), מצב ביניים עם אפשרות משיכה {DDxn, PORTxn} = 0b01) או פלט נמוך ({DDxn, PORTxn} = 0b10) חייב להתרחש. בדרך כלל, מצב ה-pull-up מאופשר מקובל לחלוטין, מכיוון שסביבה בעלת עכבה גבוהה לא תבחין בהבדל בין נהג גבוה חזק ל-pull-up. אם זה לא המקרה, ניתן להגדיר את סיביות ה-PUD ב-MCUCR Register לנטרל את כל ה- pull-ups בכל היציאות.
מעבר בין קלט עם משיכה כלפי מעלה ונפח נמוך יוצר את אותה הבעיה. על המשתמש להשתמש במצב השלישי ({DDxn, PORTxn} = 0b00) או במצב הפלט הגבוה ({DDxn, PORTxn} = 0b10) כצעד ביניים.
טבלה 10-1 מסכם את אותות הבקרה לערך הסיכה.
טבלה 10-1. תצורות סיכות יציאה
DDxn | PORTxn | PUD
(ב- MCUCR) |
I/O | משיכה למעלה | הֶעָרָה |
0 | 0 | X | קֶלֶט | לֹא | תלת-ממדי (Hi-Z) |
0 | 1 | 0 | קֶלֶט | כֵּן | Pxn יקבל זרם אם הרחבה משך נמוך. |
0 | 1 | 1 | קֶלֶט | לֹא | תלת-ממדי (Hi-Z) |
1 | 0 | X | תְפוּקָה | לֹא | תפוקה נמוכה (כיור) |
1 | 1 | X | תְפוּקָה | לֹא | תפוקה גבוהה (מקור) |
קריאת ערך הסיכה
ללא תלות בהגדרת Bit Direction Data DDxn, ניתן לקרוא את סיכת היציאה דרך ביט ה- PINxn Register. כפי שנראה ב איור 10-2, סיבית ה- PINxn של הרישום והבריח הקודם מהווים סנכרון. זה נדרש כדי למנוע גרורות אם הסיכה הפיזית משנה ערך קרוב לקצה השעון הפנימי, אך היא גם מכניסה עיכוב. איור 10-3 מציג דיאגרמת תזמון של הסנכרון בעת קריאת ערך סיכה שהופעל חיצונית. עיכובי ההפצה המקסימליים והמינימליים מסומנים tpd,max ו-tpd,min בהתאמה.
שקול את תקופת השעון שמתחילה זמן קצר לאחר הקצה הנופל הראשון של שעון המערכת. התפס סגור כאשר השעון נמוך, והולך שקוף כאשר השעון גבוה, כפי שמצוין באזור המוצלל של האות "SYNC LATCH". ערך האות ננעל כאשר שעון המערכת נמוך. הוא נשעון אל ה- PINxn Register בקצה השעון החיובי הבא. כפי שמצוין על ידי שני החיצים tpd, max ו- tpd, min, מעבר אות בודד על הסיכה יתעכב בין ½ ל- 1 ½ תקופת שעון המערכת בהתאם לזמן הקביעה.
כשאתה מקריא בחזרה ערך סיכה שהוקצה לתוכנה, יש להכניס הוראת nop כמצוין ב איור 10-4. ההוראה החוצה קובעת את האות "SYNC LATCH" בקצה החיובי של השעון. במקרה זה, העיכוב tpd דרך הסנכרון הוא תקופת שעון מערכת אחת.
הקוד הבא למשלample מראה כיצד להגדיר את פיני היציאה B 0 ו-1 גבוה, 2 ו-3 נמוך, ולהגדיר את פיני היציאה מ-4 עד 5 כקלט עם משיכה שהוקצה לפין יציאה 4. ערכי הפינים המתקבלים נקראים שוב, אבל כפי שצוין קודם לכן, כלולה הוראת nop כדי שתוכל לקרוא בחזרה את הערך שהוקצה לאחרונה לחלק מהסיכות.
קוד הרכבה Example(1) |
…
; הגדר משיכות והגדר תפוקות גבוהות ; הגדר כיוונים עבור פיני יציאה ldi r16,(1<<PB4)|(1<<PB1)|(1<<PB0) ldi r17,(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0) יוצא PORTB,r16 החוצה DDRB,r17 ; הכנס nop לסנכרון לא ; קרא סיכות יציאה ב-r16, PINB … |
הערה: עבור תוכנית ההרכבה, שני אוגרים זמניים משמשים כדי למזער את הזמן ממועד הגדרת ה-pull-ups בפינים 0, 1 ו-4, עד שסיביות הכיוון מוגדרים כהלכה, מגדירים את סיביות 2 ו-3 כנמוכות ומגדירות מחדש את סיביות 0 ו 1 כנהגים גבוהים חזקים.
קוד C Example |
לא חתום char i;
… /* הגדר משיכות והגדר פלטים גבוהים */ /* הגדר כיוונים עבור פיני יציאה */ PORTB = (1< DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0); /* הכנס nop לסנכרון*/ _NOP (); /* קרא פיני יציאה */ i = PINB; … |
קלט דיגיטלי מאפשר ומצבי שינה
כפי שמוצג ב איור 10-2, אות הכניסה הדיגיטלית יכול להיות clamped לאדמה בכניסה של schmitt-trigger. האות המסומן SLEEP באיור, נקבע על ידי בקר השינה של MCU במצב כיבוי כדי למנוע צריכת חשמל גבוהה אם חלק מאותות הכניסה נותרים צפים, או שיש להם רמת אות אנלוגית קרובה ל-VCC/2.
SLEEP נעקף עבור סיכות יציאה המופעלות כסיכות הפסקה חיצוניות. אם בקשת ההפסקה החיצונית אינה מופעלת, SLEEP פעיל גם עבור סיכות אלה. SLEEP נעקף גם על ידי פונקציות חלופיות שונות אחרות כמתואר ב "פונקציות נמל חלופיות" בעמוד 57.
אם רמה לוגית גבוהה ("אחד") קיימת על פין פסיקה חיצוני אסינכרוני המוגדר כ"הפסקה בקצה עולה, בקצה נופל או כל שינוי לוגי בפין" בזמן שההפרעה החיצונית אינה מופעלת, דגל ההפרעה החיצוני התואם יהיה להיות מוגדר בעת חידוש ממצב השינה שהוזכר לעיל, כמו clampכשיש מצב שינה אלה מייצר את השינוי הלוגי המבוקש.
סיכות לא מחוברות
אם סיכות מסוימות אינן בשימוש, מומלץ לוודא שלסיכות אלו יש רמה מוגדרת. למרות שרוב התשומות הדיגיטליות מושבתות במצבי שינה עמוקה כמתואר לעיל, יש להימנע מכניסות צפות כדי להפחית את צריכת הזרם בכל שאר המצבים בהם הכניסות הדיגיטליות מופעלות (איפוס, מצב פעיל ומצב סרק).
השיטה הפשוטה ביותר להבטיח רמה מוגדרת של סיכה שאינה בשימוש, היא לאפשר את המשיכה הפנימית. במקרה זה, המשיכה תהיה מושבתת במהלך האיפוס. אם חשובה צריכת חשמל נמוכה במהלך האיפוס, מומלץ להשתמש ב- pull-up או pulldown חיצוני. חיבור פינים שאינם בשימוש ישירות ל-VCC או GND אינו מומלץ, מכיוון שהדבר עלול לגרום לזרמים מוגזמים אם הפין מוגדר בטעות כמוצא.
פונקציות נמל חלופיות
לרוב פינות היציאה יש פונקציות חלופיות בנוסף להיותן קלט / פסי דיגיטלי כללי. איור 10-5 מראה כיצד סיכת הפלט של היציאה מאותתת מהפשוט איור 10-2 ניתן לבטל על ידי פונקציות חלופיות. יתכן שהאותות העוקפים אינם קיימים בכל פינות היציאה, אך האיור משמש כתיאור כללי המתאים לכל סיכות היציאה במשפחת המיקרו-בקרים AVR.
טבלה 10-2. תיאור כללי של עקיפת אותות עבור פונקציות חלופיות
שם אות | שם מלא | תֵאוּר |
PUOE | הפעלת משיכה למעלה מאפשרת | אם אות זה מוגדר, הפעלת המשיכה נשלטת על ידי אות ה- PUOV. אם אות זה מנוקה, המשיכה מופעלת כאשר
{DDxn, PORTxn, PUD} = 0b010. |
PUOV | ערך ביטול משיכה למעלה | אם מוגדר PUOE, ה- pull-up מופעל / מושבת כאשר PUOV מוגדר / מנוקה, ללא קשר להגדרת סיביות DDxn, PORTxn ו- PUD. |
DDOE | ביטול כיוון נתונים מופעל | אם מוגדר אות זה, מופעל מנהל התקן הפלט נשלט על ידי אות DDOV. אם אות זה מנוקה, מנהל ההתקן מופעל על ידי ביט הרישום DDxn. |
DDOV | ערך עקיפת כיוון נתונים | אם DDOE מוגדר, מנהל ההתקן מופעל / מושבת כאשר DDOV מוגדר / מנוקה, ללא קשר להגדרת ביט הרישום DDxn. |
PVOE | אפשרות ביטול ערך הנמל מופעלת | אם אות זה מוגדר ומנהל הפלט מופעל, ערך היציאה נשלט על ידי אות ה- PVOV. אם PVOE מנוקה, ומנהל הפלט מופעל, ערך היציאה נשלט על ידי ביט הרישום PORTxn. |
PVOV | ערך עקיפת ערך נמל | אם מוגדר PVOE, ערך היציאה מוגדר ל- PVOV, ללא קשר להגדרת ביט ה- PORTxn Register. |
PTOE | הפעלת החלפת נמל הפעלת | אם מוגדר PTOE, סיבית PORTxn Register הפוכה. |
דיואה | קלט דיגיטלי מאפשר ביטול אפשרות | אם סיבית זו מוגדרת, האפשרות כניסה דיגיטלית נשלטת על ידי אות DIEOV. אם אות זה מנוקה, האפשרות קלט דיגיטלי נקבעת על ידי מצב MCU (מצב רגיל, מצב שינה). |
DIEOV | קלט דיגיטלי מאפשר ערך עקיפה | אם מוגדר DIEOE, הקלט הדיגיטלי מופעל / מושבת כאשר DIEOV מוגדר / מנוקה, ללא קשר למצב ה- MCU (מצב רגיל, מצב שינה). |
DI | קלט דיגיטלי | זהו הקלט הדיגיטלי לפונקציות חלופיות. באיור, האות מחובר לפלט של ההדק schmitt אך לפני הסנכרון. אלא אם כן הקלט הדיגיטלי משמש כמקור שעון, המודול עם הפונקציה החלופית ישתמש בסנכרון משלו. |
AIO | קלט / יציאה אנלוגיים | זהו הקלט / הפלט האנלוגי אל / מפונקציות חלופיות. האות מחובר ישירות לרפידה, וניתן להשתמש בו בכיוון אחד. |
סעיפי המשנה הבאים מתארים בקצרה את הפונקציות החלופיות עבור כל יציאה, ומתייחסים לאותות העל לפונקציה החלופית. לקבלת פרטים נוספים, עיין בתיאור הפונקציה החלופית.
פונקציות חלופיות של יציאה B
סיכות יציאה B עם פונקציה חלופית מוצגות ב טבלה 10-3.
טבלה 10-3. פונקציות חלופיות של יציאות B Pins
סיכת יציאה | פונקציה חלופית |
PB5 | ![]() איפוס: איפוס סיכה dW: debugWIRE I / O ADC0: ADC קלט ערוץ 0 PCINT5: הפסקת שינוי פין, מקור 5 |
PB4 | XTAL2: פלט מתנד קריסטל CLKO: פלט שעון מערכת ADC2: ADC קלט ערוץ 2
OC1B: טיימר / מונה 1 השווה פלט התאמה B PCINT4: שינוי שינוי פין 0, מקור 4 |
PB3 | XTAL1: קלט מתנד קריסטל CLKI: כניסת שעון חיצונית ADC3: ערוץ קלט ADC 3
OC1B: טיימר משולב / מונה 1 השווה התאמת פלט B PCINT3: שינוי פין הפרעה 0, מקור 3 |
PB2 | SCK: קלט שעון סידורי ADC1: ADC קלט ערוץ 1
T0: טיימר / דלפק 0 מקור שעון USCK: שעון USI (מצב שלושה חוטים) SCL: שעון USI (מצב שני חוטים) INT0: הפסקה חיצונית 0 קלט PCINT2: שינוי שינוי סיכה 0, מקור 2 |
PB1 | MISO: קלט נתוני מאסטר SPI / פלט נתוני עבדים AIN1: משווה אנלוגי, קלט שלילי OC0B: טיימר / מונה 0 השווה התאמה B פלט OC1A: טיימר / מונה 1 השווה התאמה פלט DO: פלט נתונים USI (מצב שלושה חוטים) PCINT1: שינוי פין 0, מקור 1 |
PB0 | MOSI :: פלט נתוני מאסטר / קלט נתוני עבדים AIN0: משווה אנלוגי, קלט חיובי
OC0A: טיימר/מונה0 השווה פלט התאמה A OC1A: טיימר משלים / מונה 1 השווה התאמת פלט DI: קלט נתונים USI (מצב שלושה חוטים) SDA: קלט נתונים USI (מצב שני חוטים) AREF: הפניה אנלוגית חיצונית PCINT0: הפסקת שינוי פין 0, מקור 0 |
יציאה B, ביט 5 - RESET / dW / ADC0 / PCINT5
RESET: קלט איפוס חיצוני פעיל נמוך ומאופשר על ידי ביטול תכנות ("1") את נתיך RSTDISBL. Pullup מופעל ומנהל הפלט והקלט הדיגיטלי מבוטלים כאשר הסיכה משמשת כסיכת RESET.
dW: כאשר מתוכנת נתיך debugWIRE Enable (DWEN) וביט נעילה אינם מתוכנתים, מופעלת מערכת debugWIRE בתוך התקן היעד. סיכת יציאת RESET מוגדרת כסיכת קלט / פלט דו כיוונית של חוט AND (ניקוז פתוח) עם אפשרות משיכה מופעלת והופכת לשער התקשורת בין המטרה לאמולטור.
ADC0: ממיר אנלוגי לדיגיטלי, ערוץ 0.
PCINT5: שינוי פין מקור הפסק 5.
יציאה B, ביט 4 - XTAL2 / CLKO / ADC2 / OC1B / PCINT4
XTAL2: סיכת מתנד שעון שבב 2. משמש כסיכת שעון עבור כל מקורות שעון השבב למעט כיול פנימי של מתאם RC ושעון חיצוני. כאשר משתמשים בו כסיכת שעון, לא ניתן להשתמש בסיכה כסיכת קלט / פלט. בעת שימוש במתנד RC מכוול פנימי או בשעון חיצוני כמקור שעון שבב, PB4 משמש כסיכת קלט / פלט רגילה.
CLKO: ניתן להעביר את שעון המערכת המחולק על גבי הסיכה PB4. שעון המערכת המחולק יופלט אם נתיך CKOUT מתוכנת, ללא קשר להגדרות PORTB4 ו- DDB4. זה יופלט גם במהלך האיפוס.
ADC2: ממיר אנלוגי לדיגיטלי, ערוץ 2.
OC1B: פלט השווה פלט התאמה: סיכת PB4 יכולה לשמש פלט חיצוני עבור טיימר / מונה 1 השווה התאמה B כאשר היא מוגדרת כפלט (סט DDB4). סיכת OC1B היא גם סיכת הפלט עבור פונקציית הטיימר במצב PWM.
PCINT4: שינוי פין מקור הפסק 4.
יציאה B, ביט 3 - XTAL1 / CLKI / ADC3 / OC1B / PCINT3
XTAL1: סיכת מתנד שעון שבב 1. משמש לכל מקורות שעון השבב למעט מתנד RC מכויל פנימי. כאשר משתמשים בו כסיכת שעון, לא ניתן להשתמש בסיכה כסיכת קלט / פלט.
CLKI: קלט שעון ממקור שעון חיצוני, ראה "שעון חיצוני" בעמוד 26.
ADC3: ממיר אנלוגי לדיגיטלי, ערוץ 3.
OC1B: פלט הפוך השווה פלט התאמה: הפין PB3 יכול לשמש פלט חיצוני עבור טיימר / מונה 1 השווה התאמה B כאשר הוא מוגדר כפלט (סט DDB3). סיכת OC1B היא גם סיכת הפלט ההפוכה עבור פונקציית הטיימר במצב PWM.
PCINT3: שינוי פין מקור הפסק 3.
יציאה B, ביט 2 - SCK / ADC1 / T0 / USCK / SCL / INT0 / PCINT2
SCK: פלט שעון ראשי, סיכת כניסה של שעון סלבד לערוץ SPI. כאשר ה- SPI מופעל כעבד, סיכה זו מוגדרת כקלט ללא קשר להגדרת DDB2. כאשר SPI מופעל כ- Master, כיוון הנתונים של סיכה זו נשלט על ידי DDPB2. כאשר ה- SPI נאלץ להיות כניסה קלט, עדיין ניתן לשלוט במשיכה באמצעות ביט ה- PORTB2.
ADC1: ממיר אנלוגי לדיגיטלי, ערוץ 1.
T0: מקור מונה טיימר / מונה 0.
USCK: שעון ממשק סידורי אוניברסלי במצב תלת חוטי.
SCL: שעון סידורי במצב דו-חוטי למצב דו-חוטי USI.
INT0: מקור הפרעה חיצוני 0.
PCINT2: שינוי פין מקור הפסק 2.
יציאה B, ביט 1 - MISO / AIN1 / OC0B / OC1A / DO / PCINT1
MISO: קלט נתונים ראשי, סיכת פלט נתוני slave לערוץ SPI. כאשר ה- SPI מופעל כ- Master, סיכה זו מוגדרת כקלט ללא קשר להגדרת DDB1. כאשר SPI מופעל כעבד, כיוון הנתונים של סיכה זו נשלט על ידי DDB1. כאשר הסיכה נאלצת על ידי ה- SPI להיות קלט, עדיין ניתן לשלוט במשיכה באמצעות ביט ה- PORTB1.
AIN1: קלט שלילי של השוואה אנלוגית. הגדר את סיכת היציאה כקלט כשהמשיכה הפנימית כבויה כדי למנוע מפונקציית היציאה הדיגיטלית להפריע לפונקציה של ה- Comparator Analog.
OC0B: פלט השווה פלט התאמה. סיכה PB1 יכולה לשמש פלט חיצוני עבור ה- Timer / Counter0 Compare Match B. סיכת PB1 צריכה להיות מוגדרת כפלט (DDB1 set (one)) כדי לשרת פונקציה זו. סיכת OC0B היא גם סיכת הפלט עבור פונקציית הטיימר במצב PWM.
OC1A: פלט השוואת פלט התאמה: הפין PB1 יכול לשמש פלט חיצוני עבור טיימר / מונה 1 השווה התאמה B כאשר הוא מוגדר כפלט (סט DDB1). סיכת OC1A היא גם סיכת הפלט עבור פונקציית הטיימר במצב PWM.
DO: מצב תלת חוטי פלט נתונים של ממשק סידורי אוניברסלי. מצב תלת חוטי פלט נתונים עוקף את ערך ה- PORTB1 והוא מועבר לנמל כאשר מוגדר ביט כיוון הנתונים DDB1 (אחד). PORTB1 עדיין מאפשר משיכה, אם הכיוון מוזן וה- PORTB1 מוגדר (אחד).
PCINT1: שינוי פין מקור הפסק 1.
יציאה B, ביט 0 - MOSI / AIN0 / OC0A / OC1A / DI / SDA / AREF / PCINT0
MOSI: פלט נתוני מאסטר של SPI, קלט נתוני עבדים לערוץ SPI. כאשר ה- SPI מופעל כעבד, סיכה זו מוגדרת כקלט ללא קשר להגדרת DDB0. כאשר SPI מופעל כ- Master, כיוון הנתונים של סיכה זו נשלט על ידי DDB0. כאשר הסיכה נאלצת על ידי ה- SPI להיות קלט, עדיין ניתן לשלוט במשיכה באמצעות ביט ה- PORTB0.
AIN0: קלט חיובי של משווה אנלוגי. הגדר את סיכת היציאה כקלט כשהמשיכה הפנימית כבויה כדי למנוע מפונקציית היציאה הדיגיטלית להפריע לפונקציה של ה- Comparator Analog.
OC0A: פלט השווה פלט התאמה. סיכת PB0 יכולה לשמש פלט חיצוני עבור טיימר / Counter0 השוואה התאמה A כאשר היא מוגדרת כפלט (סט DDB0 (אחד)). סיכת OC0A היא גם סיכת הפלט עבור פונקציית הטיימר למצב PWM.
OC1A: פלט הפוך השווה פלט התאמה: סיכת PB0 יכולה לשמש פלט חיצוני עבור טיימר / מונה 1 השווה התאמה B כאשר היא מוגדרת כפלט (סט DDB0). סיכת OC1A היא גם סיכת הפלט ההפוכה עבור פונקציית הטיימר במצב PWM.
SDA: נתוני ממשק סידורי במצב דו-חוטי.
AREF: התייחסות אנלוגית חיצונית עבור ADC. מנהל התקן המשיכה והפלט מושבתים ב-PB0 כאשר הפין משמש כאסמכתא חיצונית או כרך פנימיtagהפנייה עם קבל חיצוני בפין AREF.
DI: קלט נתונים במצב USI תלת חוטי. מצב תלת-חוטי USI אינו עוקף את פונקציות היציאה הרגילות, לכן יש להגדיר את הסיכה ככניסה לפונקציית DI.
PCINT0: שינוי פין מקור הפסק 0.
טבלה 10-4 ו טבלה 10-5 קשר את הפונקציות החלופיות של יציאה B לאותות העל המוצגים ב איור 10-5 על עמוד 58.
טבלה 10-4. עקיפת אותות עבור פונקציות חלופיות ב-PB[5:3]
שם אות | PB5 / RESET / ADC0 / PCINT5 | PB4/ADC2/XTAL2/ OC1B/PCINT4 | PB3/ADC3/XTAL1/ OC1B/PCINT3 |
PUOE | ![]() |
0 | 0 |
PUOV | 1 | 0 | 0 |
DDOE | RSTDISBL(1) • DWEN(1) | 0 | 0 |
DDOV | להעביר debugWire | 0 | 0 |
PVOE | 0 | OC1B אפשר | ![]() OC1B אפשר |
PVOV | 0 | OC1B | OC1B |
PTOE | 0 | 0 | 0 |
דיואה | ![]() RSTDISBL(1) + (PCINT5 • PCIE + ADC0D) |
PCINT4 • PCIE + ADC2D | PCINT3 • PCIE + ADC3D |
DIEOV | ADC0D | ADC2D | ADC3D |
DI | קלט PCINT5 | קלט PCINT4 | קלט PCINT3 |
AIO | RESET קלט, ADC0 קלט | קלט ADC2 | קלט ADC3 |
הערה: כאשר הנתיך הוא "0" (מתוכנת).
טבלה 10-5. עקיפת אותות עבור פונקציות חלופיות ב-PB[2:0]
שם אות | PB2/SCK/ADC1/T0/ USCK/SCL/INT0/PCINT2 | PB1/MISO/DO/AIN1/ OC1A/OC0B/PCINT1 | PB0/MOSI/DI/SDA/AIN0/AR EF/OC1A/OC0A/
PCINT0 |
PUOE | USI_TWO_WIRE | 0 | USI_TWO_WIRE |
PUOV | 0 | 0 | 0 |
DDOE | USI_TWO_WIRE | 0 | USI_TWO_WIRE |
DDOV | (USI_SCL_HOLD + PORTB2) • DDB2 | 0 | ![]() ![]() (SDA + PORTB0) • DDB0 |
PVOE | USI_TWO_WIRE • DDB2 | OC0B הפעל + OC1A הפעל + USI_THREE_WIRE | ![]() OC0A הפעל + OC1A הפעל + (USI_TWO_WIRE DDB0) |
PVOV | 0 | OC0B + OC1A + DO | ![]() OC0A + OC1A |
PTOE | USITC | 0 | 0 |
דיואה | PCINT2 • PCIE + ADC1D + USISIE | PCINT1 • PCIE + AIN1D | PCINT0 • PCIE + AIN0D + USISIE |
DIEOV | ADC1D | AIN1D | AIN0D |
DI | T0 / USCK / SCL / INT0 /
קלט PCINT2 |
קלט PCINT1 | קלט DI / SDA / PCINT0 |
AIO | קלט ADC1 | קלט שלילי של השוואה אנלוגית | קלט משווה אנלוגי חיובי |
תיאור הרשמה
MCUCR - MCU Control Register
קצת | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | BODSE | ISC01 | ISC00 | MCUCR |
קריאה/כתיבה | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
ערך התחלתי | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ביט 6 - PUD: השבת משיכה למעלה
כאשר סיבית זו נכתבת לאחד, המשיכות ביציאות ה- I / O מושבתות גם אם הרישומים DDxn ו- PORTxn מוגדרים כך שיאפשרו את המשיכות ({DDxn, PORTxn} = 0b01). לִרְאוֹת "קביעת תצורה של הסיכה" בעמוד 54 לפרטים נוספים אודות תכונה זו.
PORTB - רישום נתונים של יציאה B
קצת | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x18 | – | – | פורט 5 | פורט 4 | פורט 3 | פורט 2 | פורט 1 | פורט 0 | פורטב |
קריאה/כתיבה | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
ערך התחלתי | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
DDRB - רישום כיווני נתונים של יציאה B
קצת | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x17 | – | – | DDB5 | DDB4 | DDB3 | DDB2 | DDB1 | DDB0 | DDRB |
קריאה/כתיבה | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
ערך התחלתי | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
PINB - יציאה B כתובת סיכות קלט
קצת | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x16 | – | – | PINB5 | PINB4 | PINB3 | PINB2 | PINB1 | PINB0 | PINB |
קריאה/כתיבה | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
ערך התחלתי | 0 | 0 | לא | לא | לא | לא | לא | לא |
טיימר 8 סיביות / מונה 0 עם PWM
תכונות
שתי יחידות השוואה בין תפוקה עצמאית
פלט מאופק כפול של השוואת פלטים
נקה טיימר בהשוואת התאמה (טעינה אוטומטית)
ללא אפנון, מאפנן רוחב דופק נכון שלב (PWM)
תקופת PWM משתנה
מחולל תדרים
שלושה מקורות הפסקה עצמאיים (TOV0, OCF0A ו- OCF0B)
מֵעַלview
טיימר / מונה 0 הוא מודול טיימר / מונה של 8 סיביות למטרות כלליות, עם שתי יחידות פלט עצמאיות להשוואה, ותמיכה ב- PWM. זה מאפשר עיתוי ביצוע מדויק של ביצוע התוכנית (ניהול אירועים) ויצירת גלים.
תרשים בלוקים פשוט יותר של טיימר / מונה 8 סיביות מוצג ב איור 11-1. למיקום בפועל של סיכות קלט / פלט, עיין ב "Pinout ATtiny25 / 45/85" בעמוד 2. רישומי קלט / פלט נגישים למעבד, כולל ביטי קלט / פלט וסיכות קלט / פלט, מוצגים מודגשים. רישום הקלט / פלט הספציפי למכשיר ומיקומי הסיביות מופיעים ב "תיאור הרשמה" בעמוד 77.
הטיימר/מונה (TCNT0) ו-Output Compare Registers (OCR0A ו-OCR0B) הם אוגרים של 8 סיביות. האותות של בקשת פסיקה (בקיצור של Int.Req. באיור) גלויים כולם ב-Tier Interrupt Flag Register (TIFR). כל ההפסקות מסוימות בנפרד עם ה-Timer Interrupt Mask Register (TIMSK). TIFR ו-TIMSK אינם מוצגים באיור.
ניתן להפעיל את הטיימר/מונה באופן פנימי, באמצעות ה-prescaler, או על ידי מקור שעון חיצוני בפין T0. בלוק הלוגיקה Clock Select שולט באיזה מקור שעון וקצה הטיימר/מונה משתמש כדי להגדיל (או להקטין) את ערכו. הטיימר/מונה אינו פעיל כאשר לא נבחר מקור שעון. הפלט מהלוגיקה של בחירת השעון מכונה שעון הטיימר (clkT0).
רושמי השוואת הפלט השונים שנאגרו כפול (OCR0A ו- OCR0B) מושווים עם ערך הטיימר / מונה בכל עת. התוצאה של ההשוואה יכולה לשמש את מחולל צורות הגל לייצור פלט PWM או תדר משתנה על סיכות השוואת הפלט (OC0A ו- OC0B). ראה "יחידת השוואת תפוקה" בעמוד 69. לפרטים. אירוע השוואת ההתאמה יקבע גם את דגל השוואה (OCF0A או OCF0B) אשר באמצעותו ניתן ליצור בקשת הפסקה להשוואת פלט.
הגדרות
הפניות רבות לרישום ולסיביות בחלק זה נכתבות בצורה כללית. אות קטנה "n" מחליפה את מספר הטיימר / מונה, במקרה זה 0. אות קטנה "x" מחליפה את יחידת השוואת הפלט, במקרה זה השווה את יחידה A או השווה את יחידה B. עם זאת, כאשר משתמשים בהגדרת הרישום או הביט בתוכנית יש להשתמש בטופס המדויק, כלומר, TCNT0 לגישה לערך מונה טיימר / מונה 0 וכן הלאה.
ההגדרות ב טבלה 11-1 משמשים גם באופן נרחב לאורך המסמך.
טבלה 11-1. הגדרות
קָבוּעַ | תֵאוּר |
תַחתִית | הדלפק מגיע ל- BOTTOM כשהוא הופך ל 0x00 |
MAX | הדלפק מגיע למקסימום מקסימלי שלו כשהוא הופך ל- 0xFF (עשרוני 255) |
רֹאשׁ | הדלפק מגיע ל- TOP כאשר הוא הופך להיות שווה לערך הגבוה ביותר ברצף הספירה. ניתן להקצות את ערך ה- TOP להיות הערך הקבוע 0xFF (MAX) או לערך המאוחסן במרשם OCR0A. המטלה תלויה באופן הפעולה |
טיימר / דלפק נגד מקורות ושעון מקורות
ניתן להשעין את הטיימר / דלפק על ידי מקור שעון פנימי או חיצוני. מקור השעון נבחר על ידי הלוגיקה של שעון בחירה אשר נשלטת על ידי סיביות בחירת השעון (c) הנמצאות ברשמת בקרת הטיימר / מונה 0 (TCCR0B).
מקור שעון פנימי עם Prescaler
טיימר/מונה0 ניתן לשעון ישירות על ידי שעון המערכת (על ידי הגדרת CS0[2:0] = 1). זה מספק את הפעולה המהירה ביותר, עם תדירות טיימר/שעון מונה מקסימלית השווה לתדר השעון של המערכת (fCLK_I/O). לחלופין, ניתן להשתמש באחד מארבעה ברזים מה-prescaler כמקור שעון. לשעון המותאם מראש יש תדר של אחד מהם
איפוס Prescaler
מכשיר ההרשמה פועל בחינם, כלומר הוא פועל ללא תלות בהיגיון בחירת השעון של טיימר/מונה 0. מכיוון שהמכשיר המזין אינו מושפע מבחירת השעון של הטיימר/הדלפק, למצב המונח יהיו השלכות על מצבים בהם נעשה שימוש בשעון מוקדם. אקס אחדampחלקו של חפץ קנה מידה מוקדם הוא כאשר הטיימר/מונה מופעל ושעון על ידי מכשיר ההקלדה מראש (6> CS0 [2: 0]> 1). מספר מחזורי שעון המערכת מרגע שהטיימר מופעל ועד לספירה הראשונה שמתרחשת יכול להיות בין 1 ל- N+1 מחזורי שעון מערכת, כאשר N שווה למחלק המחלקה (8, 64, 256 או 1024).
ניתן להשתמש ב- Rescaler Reset לסינכרון הטיימר / דלפק לביצוע התוכנית.
מקור שעון חיצוני
מקור שעון חיצוני המופעל על פין T0 יכול לשמש כשעון טיימר/מונה (clkT0). פין T0 הוא sampהוביל פעם בכל מחזור שעון מערכת על פי ההיגיון של סנכרון הסיכות. המסונכרנים (sampled) אות מועבר לאחר מכן
דרך גלאי הקצה. איור 11-2 מציג דיאגרמת בלוקים מקבילה פונקציונלית של הסנכרון T0 ולוגיקת גלאי הקצוות. האוגרים מתועדים בקצה החיובי של שעון המערכת הפנימי (clkI/O). התפס שקוף בתקופה הגבוהה של שעון המערכת הפנימית.
גלאי הקצה יוצר פולס clkT0 אחד עבור כל קצה חיובי (CS0[2:0] = 7) או שלילי (CS0[2:0] = 6) שהוא מזהה.
רישומי ה- OCR0x נאגרים כפול בעת שימוש בכל אחד ממצבי ה- PWM (Modulation Width Modulation). עבור מצבי הפעולה הרגילים והנקיים של טיימר בהשוואה (CTC), המאגר הכפול מושבת. המאגר הכפול מסנכרן את העדכון של OCR0x Compare Registers לחלק העליון או התחתון של רצף הספירה. הסנכרון מונע התרחשות של פעימות PWM באורך מוזר ולא סימטרי, ובכך הופך את הפלט ללא תקלות.
הגישה ל- OCR0x Register עשויה להיראות מורכבת, אך זה לא המקרה. כאשר המאגר הכפול מופעל, למעבד יש גישה אל OCR0x Buffer Register, ואם חציצה כפולה אינה זמינה, המעבד ייגש ישירות ל- OCR0x.
השווה תפוקת כוח
במצבי ייצור צורת גל שאינם PWM, ניתן לכפות על פלט ההתאמה של המשווה על ידי כתיבת אחד לביט השוואת כוח פלט (FOC0x). אילוץ התאמה של התאמה לא יגדיר את דגל ה- OCF0x או יטען / ימחק את הטיימר, אך סיכת ה- OC0x תעודכן כאילו התרחש התאמת השוואה אמיתית (הגדרות הסיביות של COM0x [1: 0] מגדירות אם סיכת OC0x מוגדרת, מנוקה או מחליף).
השווה בין חסימת התאמות לפי TCNT0 כתוב
כל פעולות כתיבת המעבד לרישום TCNT0 יחסמו כל התאמה השווה שתתרחש במחזור שעון הטיימר הבא, גם כאשר הטיימר נעצר. תכונה זו מאפשרת לאתחל את OCR0x לאותו ערך כמו TCNT0 מבלי לגרום להפסקה כאשר שעון הטיימר / מונה מופעל.
שימוש ביחידת השוואת התפוקה
מכיוון שכתיבת TCNT0 בכל אופן פעולה תחסום את כל התאמות ההשוואה במחזור שעון טיימר אחד, ישנם סיכונים הכרוכים בשינוי TCNT0 בעת שימוש ביחידת השוואת הפלט, ללא קשר לשאלה האם טיימר / מונה פועל או לא. אם הערך שנכתב ל- TCNT0 שווה לערך OCR0x, החמצת ההתאמה תתפספס, וכתוצאה מכך ייצור שגוי של צורות גל. באופן דומה, אל תכתוב את ערך TCNT0 השווה ל- BOTTOM כאשר הדלפק נספר למטה.
יש לבצע את הגדרת ה- OC0x לפני הגדרת רישום כיוון הנתונים לפין היציאה. הדרך הקלה ביותר להגדיר את ערך ה- OC0x היא להשתמש בסיביות Strobe של השוואת כוח פלט (FOC0x) במצב רגיל. רושמי ה- OC0x שומרים על ערכיהם גם בעת מעבר בין מצבי דור גל.
שים לב שהביטים COM0x [1: 0] אינם מאגרים כפול יחד עם ערך ההשוואה. שינוי ביטי ה- COM0x [1: 0] ייכנס לתוקף באופן מיידי.
השווה יחידת פלט התאמה
למצב השוואת פלט השוואה (COM0x [1: 0]) יש שתי פונקציות. מחולל צורת הגל עושה שימוש בסיביות COM0x [1: 0] לצורך הגדרת מצב השוואת הפלט (OC0x) בהתאמת השוואה הבאה. כמו כן, ביטי COM0x [1: 0] שולטים במקור פלט הסיכה OC0x. איור 11-6 מציג סכמה פשוטה של הלוגיקה המושפעת מהגדרת הסיביות COM0x [1: 0]. רושמי ה- I / O, ביטי ה- I / O וסיכות ה- I / O באיור מוצגים מודגשים. מוצגים רק החלקים של רושמי בקרת הנמל / פלט הכלליים (DDR ו- PORT) המושפעים מהסיביות COM0x [1: 0]. כאשר מתייחסים למצב OC0x, הכוונה היא לרישום OC0x הפנימי, ולא לסיכת OC0x. אם מתרחש איפוס מערכת, הרישום OC0x מאופס ל- "0".
כאשר OC0A / OC0B מחובר לסיכת הקלט / פלט, הפונקציה של ביטים COM0A [1: 0] / COM0B [1: 0] תלויה בהגדרת הסיביות WGM0 [2: 0]. טבלה 11-2 מציג את פונקציונליות הסיביות של COM0x [1: 0] כאשר סיביות ה- WGM0 [2: 0] מוגדרות למצב רגיל או למצב CTC (שאינו PWM).
טבלה 11-2. השווה מצב פלט, מצב שאינו PWM
COM0A1 COM0B1 | COM0A0 COM0B0 | תֵאוּר |
0 | 0 | פעולת יציאה רגילה, OC0A / OC0B מנותק. |
0 | 1 | החלף את OC0A / OC0B על השוואת התאמה |
1 | 0 | נקה OC0A / OC0B בהשוואת התאמה |
1 | 1 | הגדר OC0A / OC0B בהשוואת התאמה |
טבלה 11-3 מציג את פונקציונליות הסיביות COM0x [1: 0] כאשר סיביות WGM0 [2: 0] מוגדרות למצב PWM מהיר.
טבלה 11-3. השווה מצב פלט, מצב PWM מהיר(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | תֵאוּר |
0 | 0 | פעולת יציאה רגילה, OC0A / OC0B מנותק. |
0 | 1 | שָׁמוּר |
1 | 0 | נקה OC0A / OC0B בהשוואת התאמה, הגדר OC0A / OC0B בתחתית (במצב לא הפוך) |
1 | 1 | הגדר OC0A / OC0B בהשוואת התאמה, נקה OC0A / OC0B בתחתית (מצב הפוך) |
הערה: מקרה מיוחד מתרחש כאשר OCR0A או OCR0B שווה TOP ו-COM0A1/COM0B1 מוגדר. במקרה זה, מתעלמים מההתאמה של ההשוואה, אך ההגדרה או הניקוי מתבצעת בתחתית. לִרְאוֹת "מצב PWM מהיר" בעמוד 73 לפרטים נוספים.
טבלה 11-4 מציג את פונקציונליות הסיביות של COM0x [1: 0] כאשר סיביות ה- WGM0 [2: 0] מוגדרות למצב PWM נכון.
טבלה 11-4. השווה מצב פלט, מצב PWM Correct לשלב(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | תֵאוּר |
0 | 0 | פעולת יציאה רגילה, OC0A / OC0B מנותק. |
0 | 1 | שָׁמוּר |
1 | 0 | נקה OC0A / OC0B בהשוואת התאמה בעת ספירת יתר. הגדר OC0A / OC0B בהשוואת התאמה בעת ספירה לאחור. |
1 | 1 | הגדר OC0A / OC0B בהשוואת התאמה בעת ספירת יתר. נקה OC0A / OC0B בהשוואת התאמה בעת ספירה למטה. |
הערה: 1. מקרה מיוחד מתרחש כאשר OCR0A או OCR0B שווה TOP ו-COM0A1/COM0B1 מוגדר. במקרה זה, מתעלמים מה- Compare Match, אך ההגדרה או הניקוי מתבצעת ב-TOP. לִרְאוֹת "מצב PWM לתיקון שלב" בעמוד 74 לפרטים נוספים.
ביטים 3: 2 - מיל ': ביטים שמורים
סיביות אלה הן סיביות שמורות ב- ATtiny25 / 45/85 ותמיד יקראו כאפס.
ביטים 1: 0 - WGM0 [1: 0]: מצב יצירת צורת גל
בשילוב עם סיבית ה- WGM02 שנמצאת ברישום TCCR0B, סיביות אלו שולטות ברצף הספירה של הדלפק, במקור לערך מונה מקסימלי (TOP) ובאיזה סוג של ייצור צורות גל לשימוש, ראה טבלה 11-5. מצבי פעולה הנתמכים על ידי יחידת הטיימר / מונה הם: מצב רגיל (מונה), נקה טיימר במצב השוואה (CTC) ושני סוגים של מצבי אפנון רוחב דופק (PWM) (ראה "דרכי פעולה" בעמוד 71).
טבלה 11-5. תיאור סיביות של מצב יצירת צורות גל
מצב | WGM 02 | WGM 01 | WGM 00 | טיימר / אופן פעולה מונה | רֹאשׁ | עדכון OCRx בשעה | TOV דגל מוגדר |
0 | 0 | 0 | 0 | נוֹרמָלִי | 0xFF | מִיָדִי | MAX(1) |
1 | 0 | 0 | 1 | PWM, שלב נכון | 0xFF | רֹאשׁ | תַחתִית(2) |
2 | 0 | 1 | 0 | CTC | OCRA | מִיָדִי | MAX(1) |
3 | 0 | 1 | 1 | PWM מהיר | 0xFF | תַחתִית(2) | MAX(1) |
4 | 1 | 0 | 0 | שָׁמוּר | – | – | – |
5 | 1 | 0 | 1 | PWM, שלב נכון | OCRA | רֹאשׁ | תַחתִית(2) |
6 | 1 | 1 | 0 | שָׁמוּר | – | – | – |
7 | 1 | 1 | 1 | PWM מהיר | OCRA | תַחתִית(2) | רֹאשׁ |
ביט 7 - FOC0A: השוואת תפוקת כוח A
סיבית FOC0A פעילה רק כאשר סיביות ה- WGM מציינות מצב שאינו PWM.
עם זאת, כדי להבטיח תאימות עם התקנים עתידיים, יש להגדיר סיבית זו לאפס כאשר TCCR0B נכתב כאשר הוא פועל במצב PWM. בעת כתיבת לוגית לסיבית FOC0A, התאמת השוואה מיידית נאלצת על יחידת יצירת צורת הגל. פלט OC0A משתנה בהתאם להגדרת הסיביות של COM0A [1: 0]. שים לב שהסיבית FOC0A מיושמת כסטרוב. לכן הערך הנוכחי בסיביות COM0A [1: 0] הוא הקובע את השפעת ההשוואה המאולצת.
Strobe FOC0A לא ייצור הפרעה, וגם לא ינקה את הטיימר במצב CTC באמצעות OCR0A כ- TOP. ביט ה- FOC0A נקרא תמיד כאפס.
ביט 6 - FOC0B: השוואת תפוקת כוח ב '
סיבית FOC0B פעילה רק כאשר סיביות ה- WGM מציינות מצב שאינו PWM.
עם זאת, כדי להבטיח תאימות עם מכשירים עתידיים, יש להגדיר סיבית זו לאפס כאשר TCCR0B נכתב כאשר הוא פועל במצב PWM. כאשר כותבים לוגית לסיבית FOC0B, נאלצת התאמת השוואה מיידית על יחידת הדור הגל. פלט OC0B משתנה בהתאם להגדרת סיביות COM0B [1: 0]. שים לב שהסיבית FOC0B מיושמת כסטרוב. לכן הערך הקיים בסיביות COM0B [1: 0] הוא הקובע את השפעת ההשוואה המאולצת.
Strobe FOC0B לא ייצור הפרעה, וגם לא ינקה את הטיימר במצב CTC באמצעות OCR0B כ TOP.
ביט ה- FOC0B נקרא תמיד כאפס.
ביטים 5: 4 - מיל ': ביטים שמורים
סיביות אלה הן סיביות שמורות ב- ATtiny25 / 45/85 ותמיד יקראו כאפס.
ביט 3 - WGM02: מצב יצירת צורת גל
ראה את התיאור ב "TCCR0A - רישום טיימר / בקרת מונה A" בעמוד 77.
ביטים 2: 0 - CS0 [2: 0]: בחירת שעון
שלושת הסיביות לבחירת שעון בוחרות את מקור השעון שישמש את טיימר / מונה.
טבלה 11-6. תיאור סיביות בחר שעון
CS02 | CS01 | CS00 | תֵאוּר |
0 | 0 | 0 | אין מקור שעון (טיימר / מונה נעצר) |
0 | 0 | 1 | clkI/O/(ללא קנה מידה מראש) |
0 | 1 | 0 | clkI/O/8 (מ-prescaler) |
0 | 1 | 1 | clkI/O/64 (מ-prescaler) |
1 | 0 | 0 | clkI/O/256 (מ-prescaler) |
1 | 0 | 1 | clkI/O/1024 (מ-prescaler) |
1 | 1 | 0 | מקור שעון חיצוני על סיכת T0. שעון בקצה נופל. |
1 | 1 | 1 | מקור שעון חיצוני על סיכת T0. שעון בקצה עולה. |
אם נעשה שימוש במצבי סיכה חיצוניים עבור ה- Timer / Counter0, מעברים על סיכת ה- T0 יעברו את המונה גם אם הסיכה מוגדרת כפלט. תכונה זו מאפשרת שליטה בתוכנה על הספירה.
להתמודד ולהשוות יחידות
הפעולה הכללית של טיימר / מונה 1 מתוארת במצב אסינכרוני והפעולה במצב הסינכרון מוזכרת רק אם ישנם הבדלים בין שני המצבים הללו. איור 12-2 מראה טיימר / מונה 1 דיאגרמת חסימת רישום סנכרון ועיכובי סנכרון בין רישומים. שים לב שכל פרטי השעון אינם מוצגים באיור. ערכי הרישום של טיימר / מונה 1 עוברים דרך רישומי הסינכרון הפנימיים, הגורמים לעיכוב סנכרון הקלט, לפני שהם משפיעים על פעולת המונה. ניתן לקרוא את הרישומים TCCR1, GTCCR, OCR1A, OCR1B ו- OCR1C מיד לאחר כתיבת הרישום. ערכי הקריאה מתעכבים עבור הרישום והדגלים של טיימר / מונה 1 (TCNT1) (OCF1A, OCF1B ו- TOV1) בגלל סנכרון הקלט והפלט.
הטיימר / מונה 1 כולל רזולוציה גבוהה ושימוש ברמת דיוק גבוהה עם הזדמנויות הגדרת הצבעים הנמוכות יותר. זה יכול גם לתמוך בשני מודולים של רוחב דופק מדויק במהירות גבוהה, 8 סיביות, באמצעות מהירויות שעון עד 64 מגה הרץ (או 32 מגה הרץ במצב מהירות נמוכה). במצב זה, טיימר / מונה 1 ורישומי השוואת הפלט משמשים כ- PWM עצמאי כפול עם תפוקות לא חופפות ולא הפוכות. מתייחס עמוד 86 לתיאור מפורט על פונקציה זו. באופן דומה, ההזדמנויות הגבוהות לקידום החיזוק הופכות את היחידה הזו למועילה עבור פונקציות במהירות נמוכה יותר או פונקציות תזמון מדויקות עם פעולות נדירות.
איור 12-2. טיימר/מונה 1 תרשים בלוקים של רישום סנכרון.
טיימר / מונה 1 וה- prescaler מאפשרים הפעלת המעבד מכל מקור שעון בזמן שה- prescaler פועל בשעון ה- PCK המהיר של 64 מגה-הרץ (או 32 מגה-הרץ במצב מהירות נמוכה) במצב אסינכרוני.
שים לב שתדר שעון המערכת חייב להיות נמוך משליש מתדר ה- PCK. מנגנון הסנכרון של טיימר / מונה 1 אסינכרוני זקוק לשני קצוות ה- PCK לפחות כששעון המערכת גבוה. אם תדירות שעון המערכת גבוהה מדי, זהו סיכון שאובדן נתונים או ערכי בקרה.
הבא איור 12-3 מראה את דיאגרמת החסימה עבור טיימר / מונה 1.
טבלה 12-1. השוואת מצב בחר במצב PWM
COM1x1 | COM1x0 | השפעה על סיכות להשוואת תפוקה |
0 | 0 | OC1x לא מחובר. OC1x לא מחובר. |
0 | 1 | OC1x נוקה בתאריך השוואה. הגדר כאשר TCNT1 = $ 00. OC1x מוגדר בהתאמת השוואה. נוקה כאשר TCNT1 = $ 00. |
1 | 0 | OC1x נוקה בתאריך השוואה. הגדר כאשר TCNT1 = $ 00. OC1x לא מחובר. |
1 | 1 | OC1x מוגדר בהתאמת השוואה. נוקה כאשר TCNT1 = $ 00. OC1x לא מחובר. |
מאפייני ADC
טבלה 21-8. מאפייני ADC, ערוצים בודדים. TA = -40°C עד +85°C
סֵמֶל | פָּרָמֶטֶר | מַצָב | מינימום | טיפ | מקסימום | יחידות |
הַחְלָטָה | 10 | ביטים | ||||
דיוק מוחלט (כולל שגיאות INL, DNL וכימות, רווח וקיזוז) | VREF = 4V, VCC = 4V,
שעון ADC = 200 קילוהרץ |
2 | LSB | |||
VREF = 4V, VCC = 4V,
שעון ADC = 1 מגה-הרץ |
3 | LSB | ||||
VREF = 4V, VCC = 4V,
שעון ADC = 200 קילוהרץ מצב הפחתת רעש |
1.5 | LSB | ||||
VREF = 4V, VCC = 4V,
שעון ADC = 1 מגה-הרץ מצב הפחתת רעש |
2.5 | LSB | ||||
אי ליניאריות אינטגרלית (INL) (דיוק לאחר כיול קיזוז ורווח) | VREF = 4V, VCC = 4V,
שעון ADC = 200 קילוהרץ |
1 | LSB | |||
אי ליניאריות דיפרנציאלית (DNL) | VREF = 4V, VCC = 4V,
שעון ADC = 200 קילוהרץ |
0.5 | LSB | |||
שגיאת רווח | VREF = 4V, VCC = 4V,
שעון ADC = 200 קילוהרץ |
2.5 | LSB | |||
שגיאת קיזוז | VREF = 4V, VCC = 4V,
שעון ADC = 200 קילוהרץ |
1.5 | LSB | |||
זמן המרה | המרת ריצה בחינם | 14 | 280 | µs | ||
תדר השעון | 50 | 1000 | קילוהרץ | |||
VIN | קלט כרךtage | GND | VREF | V | ||
רוחב פס קלט | 38.4 | קילוהרץ | ||||
AREF | הפניה חיצונית כרךtage | 2.0 | VCC | V | ||
וינט | כרך פנימיtage הפניה | 1.0 | 1.1 | 1.2 | V | |
הפניה פנימית של 2.56 וולט (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
RREF | 32 | kΩ | ||||
גֶשֶׁם | התנגדות קלט אנלוגית | 100 | MΩ | |||
פלט ADC | 0 | 1023 | LSB |
הערה: 1. הערכים הם קווים מנחים בלבד.
טבלה 21-9. מאפייני ADC, ערוצים דיפרנציאליים (מצב חד קוטבי). TA = -40°C עד +85°C
סֵמֶל | פָּרָמֶטֶר | מַצָב | מינימום | טיפ | מקסימום | יחידות |
הַחְלָטָה | רווח = פי 1 | 10 | ביטים | |||
רווח = פי 20 | 10 | ביטים | ||||
דיוק מוחלט (כולל INL, DNL ו-
כימות, שגיאות קיזוז וקיזוז) |
רווח = פי 1
VREF = 4V, VCC = 5V שעון ADC = 50 - 200 קילוהרץ |
10.0 | LSB | |||
רווח = פי 20
VREF = 4V, VCC = 5V שעון ADC = 50 - 200 קילוהרץ |
20.0 | LSB | ||||
אי ליניאריות אינטגרלית (INL) (דיוק לאחר כיול קיזוז ורווח) | רווח = פי 1
VREF = 4V, VCC = 5V שעון ADC = 50 - 200 קילוהרץ |
4.0 | LSB | |||
רווח = פי 20
VREF = 4V, VCC = 5V שעון ADC = 50 - 200 קילוהרץ |
10.0 | LSB | ||||
שגיאת רווח | רווח = פי 1 | 10.0 | LSB | |||
רווח = פי 20 | 15.0 | LSB | ||||
שגיאת קיזוז | רווח = פי 1
VREF = 4V, VCC = 5V שעון ADC = 50 - 200 קילוהרץ |
3.0 | LSB | |||
רווח = פי 20
VREF = 4V, VCC = 5V שעון ADC = 50 - 200 קילוהרץ |
4.0 | LSB | ||||
זמן המרה | המרת ריצה בחינם | 70 | 280 | µs | ||
תדר השעון | 50 | 200 | קילוהרץ | |||
VIN | קלט כרךtage | GND | VCC | V | ||
VDIFF | הפרש קלט כרךtage | VREF/רווח | V | |||
רוחב פס קלט | 4 | קילוהרץ | ||||
AREF | הפניה חיצונית כרךtage | 2.0 | VCC – 1.0 | V | ||
וינט | כרך פנימיtage הפניה | 1.0 | 1.1 | 1.2 | V | |
הפניה פנימית של 2.56 וולט (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
RREF | התנגדות קלט התייחסות | 32 | kΩ | |||
גֶשֶׁם | התנגדות קלט אנלוגית | 100 | MΩ | |||
פלט המרה של ADC | 0 | 1023 | LSB |
הערה: הערכים הם קווים מנחים בלבד.
טבלה 21-10. מאפייני ADC, ערוצים דיפרנציאליים (מצב דו קוטבי). TA = -40°C עד +85°C
סֵמֶל | פָּרָמֶטֶר | מַצָב | מינימום | טיפ | מקסימום | יחידות |
הַחְלָטָה | רווח = פי 1 | 10 | ביטים | |||
רווח = פי 20 | 10 | ביטים | ||||
דיוק מוחלט (כולל INL, DNL ו-
כימות, שגיאות קיזוז וקיזוז) |
רווח = פי 1
VREF = 4V, VCC = 5V שעון ADC = 50 - 200 קילוהרץ |
8.0 | LSB | |||
רווח = פי 20
VREF = 4V, VCC = 5V שעון ADC = 50 - 200 קילוהרץ |
8.0 | LSB | ||||
אי ליניאריות אינטגרלית (INL) (דיוק לאחר כיול קיזוז ורווח) | רווח = פי 1
VREF = 4V, VCC = 5V שעון ADC = 50 - 200 קילוהרץ |
4.0 | LSB | |||
רווח = פי 20
VREF = 4V, VCC = 5V שעון ADC = 50 - 200 קילוהרץ |
5.0 | LSB | ||||
שגיאת רווח | רווח = פי 1 | 4.0 | LSB | |||
רווח = פי 20 | 5.0 | LSB | ||||
שגיאת קיזוז | רווח = פי 1
VREF = 4V, VCC = 5V שעון ADC = 50 - 200 קילוהרץ |
3.0 | LSB | |||
רווח = פי 20
VREF = 4V, VCC = 5V שעון ADC = 50 - 200 קילוהרץ |
4.0 | LSB | ||||
זמן המרה | המרת ריצה בחינם | 70 | 280 | µs | ||
תדר השעון | 50 | 200 | קילוהרץ | |||
VIN | קלט כרךtage | GND | VCC | V | ||
VDIFF | הפרש קלט כרךtage | VREF/רווח | V | |||
רוחב פס קלט | 4 | קילוהרץ | ||||
AREF | הפניה חיצונית כרךtage | 2.0 | VCC – 1.0 | V | ||
וינט | כרך פנימיtage הפניה | 1.0 | 1.1 | 1.2 | V | |
הפניה פנימית של 2.56 וולט (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
RREF | התנגדות קלט התייחסות | 32 | kΩ | |||
גֶשֶׁם | התנגדות קלט אנלוגית | 100 | MΩ | |||
פלט המרה של ADC | -512 | 511 | LSB |
סיכום מערך ההוראות
זִכרוֹנִיוּת | אופרנדים | תֵאוּר | מִבצָע | דגלים | # שעונים |
הוראות אריתמטיקה ולוגיקה | |||||
לְהוֹסִיף | Rd, Rr | הוסף שני רושמים | Rd ← Rd + Rr | Z, C, N, V, H | 1 |
ADC | Rd, Rr | הוסף עם Carry שני רושמים | Rd ← Rd + Rr + C | Z, C, N, V, H | 1 |
ADIW | Rdl, K | הוסף מיידי ל- Word | Rdh:Rdl ← Rdh:Rdl + K | Z, C, N, V, S | 2 |
תַת | Rd, Rr | גרע שני רושמים | Rd ← Rd – Rr | Z, C, N, V, H | 1 |
סובי | Rd, K | הורד את הקבוע מהקופה | Rd ← Rd – K | Z, C, N, V, H | 1 |
SBC | Rd, Rr | חיסור עם נשיאת שני רושמים | Rd ← Rd – Rr – C | Z, C, N, V, H | 1 |
SBCI | Rd, K | גרע עם Carry Constant מ- Reg. | Rd ← Rd – K – C | Z, C, N, V, H | 1 |
SBIW | Rdl, K | גרע מיידית מ- Word | Rdh:Rdl ← Rdh:Rdl – K | Z, C, N, V, S | 2 |
ו | Rd, Rr | לוגיים ורשמים | Rd ← Rd ∙ Rr | Z, N, V. | 1 |
אנדי | Rd, K | לוגי AND רישום וקבוע | Rd ← Rd ∙ K | Z, N, V. | 1 |
OR | Rd, Rr | או רישומים לוגיים או | Rd ← Rd v Rr | Z, N, V. | 1 |
ORI | Rd, K | לוגי או רישום וקבוע | Rd ← Rd v K | Z, N, V. | 1 |
EOR | Rd, Rr | רישומי בלעדי או | Rd ← Rd ⊕ Rr | Z, N, V. | 1 |
COM | Rd | השלמה של אחד | Rd ← 0xFF − Rd | Z, C, N, V. | 1 |
נג | Rd | השלמה של שניים | Rd ← 0x00 − Rd | Z, C, N, V, H | 1 |
SBR | Rd, K | הגדר סיביות ברשימה | Rd ← Rd v K | Z, N, V. | 1 |
CBR | Rd, K | נקה ביטים ברשימה | Rd ← Rd ∙ (0xFF – K) | Z, N, V. | 1 |
INC | Rd | תוֹסֶפֶת | Rd ← Rd + 1 | Z, N, V. | 1 |
DEC | Rd | הצהרה | Rd ← Rd − 1 | Z, N, V. | 1 |
TST | Rd | בדוק אפס או מינוס | Rd ← Rd ∙ Rd | Z, N, V. | 1 |
CLR | Rd | נקה הרשמה | Rd ← Rd ⊕ Rd | Z, N, V. | 1 |
SER | Rd | הגדר הרשמה | Rd ← 0xFF | אַף לֹא אֶחָד | 1 |
הוראות סניף | |||||
RJMP | k | קפיצה יחסית | PC ← PC + k + 1 | אַף לֹא אֶחָד | 2 |
IJMP | קפיצה עקיפה אל (Z) | PC ← Z | אַף לֹא אֶחָד | 2 | |
RCALL | k | שיחה תת-שגרתית יחסית | PC ← PC + k + 1 | אַף לֹא אֶחָד | 3 |
ICALL | שיחה עקיפה אל (Z) | PC ← Z | אַף לֹא אֶחָד | 3 | |
לְהַשְׁרוֹת | החזרת תת-נוהל | מחשב ← ערימה | אַף לֹא אֶחָד | 4 | |
רשתות | להפריע לחזור | מחשב ← ערימה | I | 4 | |
CPSE | Rd, Rr | השווה, דלג אם שווה | אם (Rd = Rr) PC ← PC + 2 או 3 | אַף לֹא אֶחָד | 1/2/3 |
CP | Rd, Rr | לְהַשְׁווֹת | Rd - Rr | Z, N, V, C, H | 1 |
מחיר לקליק | Rd, Rr | השווה עם Carry | Rd − Rr − C | Z, N, V, C, H | 1 |
מדד המחירים לצרכן | Rd, K | השווה הרשמה עם מיידי | Rd - K | Z, N, V, C, H | 1 |
SBRC | Rr, ב | דלג אם סיבית בסימן הרישום | if (Rr(b)=0) PC ← PC + 2 או 3 | אַף לֹא אֶחָד | 1/2/3 |
SBRS | Rr, ב | דלג אם מוגדר Bit in Register | if (Rr(b)=1) PC ← PC + 2 או 3 | אַף לֹא אֶחָד | 1/2/3 |
SBIC | פ, ב | דלג אם ביט בהרשמת קלט / פלט מנוקה | אם (P(b)=0) PC ← PC + 2 או 3 | אַף לֹא אֶחָד | 1/2/3 |
SBIS | פ, ב | דלג אם מוגדר סיבית בקלט / פלט | אם (P(b)=1) PC ← PC + 2 או 3 | אַף לֹא אֶחָד | 1/2/3 |
BRBS | ש, ק | סניף אם מוגדר דגל סטטוס | אם (SREG(s) = 1) אז PC←PC+k + 1 | אַף לֹא אֶחָד | 1/2 |
BRBC | ש, ק | ענף אם דגל הסטטוס נוקה | אם (SREG(s) = 0) אז PC←PC+k + 1 | אַף לֹא אֶחָד | 1/2 |
BREQ | k | סניף אם שווה | אם (Z = 1) אז PC ← PC + k + 1 | אַף לֹא אֶחָד | 1/2 |
BRNE | k | סניף אם לא שווה | אם (Z = 0) אז PC ← PC + k + 1 | אַף לֹא אֶחָד | 1/2 |
BRCS | k | סניף אם סט נשיאה | אם (C = 1) אז PC ← PC + k + 1 | אַף לֹא אֶחָד | 1/2 |
BRCC | k | סניף אם הסחיבה מסומנת | אם (C = 0) אז PC ← PC + k + 1 | אַף לֹא אֶחָד | 1/2 |
BRSH | k | סניף אם זהה או גבוה יותר | אם (C = 0) אז PC ← PC + k + 1 | אַף לֹא אֶחָד | 1/2 |
BRLO | k | סניף אם תחתון | אם (C = 1) אז PC ← PC + k + 1 | אַף לֹא אֶחָד | 1/2 |
BRMI | k | סניף אם מינוס | אם (N = 1) אז PC ← PC + k + 1 | אַף לֹא אֶחָד | 1/2 |
BRPL | k | סניף אם פלוס | אם (N = 0) אז PC ← PC + k + 1 | אַף לֹא אֶחָד | 1/2 |
BRGE | k | ענף אם גדול יותר או שווה, חתום | אם (N ⊕ V= 0) אז PC ← PC + k + 1 | אַף לֹא אֶחָד | 1/2 |
BRLT | k | סניף אם פחות מאפס, חתום | אם (N ⊕ V= 1) אז PC ← PC + k + 1 | אַף לֹא אֶחָד | 1/2 |
BRHS | k | ענף אם סט חצי דגל נשיאה | אם (H = 1) אז PC ← PC + k + 1 | אַף לֹא אֶחָד | 1/2 |
BRHC | k | ענף אם חצי דגל נשיאה נוקה | אם (H = 0) אז PC ← PC + k + 1 | אַף לֹא אֶחָד | 1/2 |
BRTS | k | ענף אם סט דגל T | אם (T = 1) אז PC ← PC + k + 1 | אַף לֹא אֶחָד | 1/2 |
BRTC | k | ענף אם דגל T נוקה | אם (T = 0) אז PC ← PC + k + 1 | אַף לֹא אֶחָד | 1/2 |
BRVS | k | סניף אם מוגדר דגל הצפה | אם (V = 1) אז PC ← PC + k + 1 | אַף לֹא אֶחָד | 1/2 |
BRVC | k | סניף אם דגל הצפה מנוקה | אם (V = 0) אז PC ← PC + k + 1 | אַף לֹא אֶחָד | 1/2 |
גבינת ברי | k | ענף אם הפסק מופעל | אם (I = 1) אז PC ← PC + k + 1 | אַף לֹא אֶחָד | 1/2 |
BRID | k | סניף אם הפרעה מושבתת | אם (I = 0) אז PC ← PC + k + 1 | אַף לֹא אֶחָד | 1/2 |
הוראות BIT ו- BIT-TEST | |||||
SBI | P, b | הגדר סיבית בהרשמת קלט / פלט | I/O(P,b) ← 1 | אַף לֹא אֶחָד | 2 |
CBI | P, b | נקה ביט ברישום קלט / פלט | I/O(P,b) ← 0 | אַף לֹא אֶחָד | 2 |
LSL | Rd | העברה לוגית שמאלה | Rd(n+1) ← Rd(n), Rd(0) ← 0 | Z, C, N, V. | 1 |
LSR | Rd | העברה לוגית ימינה | Rd(n) ← Rd(n+1), Rd(7) ← 0 | Z, C, N, V. | 1 |
רול | Rd | סובב שמאלה דרך נשיאה | Rd(0)←C,Rd(n+1)← Rd(n),C←Rd(7) | Z, C, N, V. | 1 |
ROR | Rd | סובב ימינה דרך נשיאה | Rd(7)←C,Rd(n)← Rd(n+1),C←Rd(0) | Z, C, N, V. | 1 |
ASR | Rd | שינוי אריתמטי ימינה | Rd(n) ← Rd(n+1), n=0..6 | Z, C, N, V. | 1 |
זִכרוֹנִיוּת | אופרנדים | תֵאוּר | מִבצָע | דגלים | # שעונים |
לְהַחלִיף | Rd | החלף נשנושים | Rd(3..0)←Rd(7..4),Rd(7..4)←Rd(3..0) | אַף לֹא אֶחָד | 1 |
BSET | s | סט דגלים | SREG(ים) ← 1 | SREG (ים) | 1 |
BCLR | s | דגל ברור | SREG(ים) ← 0 | SREG (ים) | 1 |
BST | Rr, ב | חנות ביטים מהרשמה ל- T | T ← Rr(b) | T | 1 |
BLD | Rd, ב | עומס סיביות מ- T לרישום | Rd(b) ← T | אַף לֹא אֶחָד | 1 |
SEC | הגדר נשיאה | C ← 1 | C | 1 | |
CLC | נקה נשיאה | C ← 0 | C | 1 | |
SEN | הגדר דגל שלילי | N ← 1 | N | 1 | |
CLN | נקה דגל שלילי | N ← 0 | N | 1 | |
SEZ | הגדר אפס דגל | Z ← 1 | Z | 1 | |
CLZ | נקה דגל אפס | Z ← 0 | Z | 1 | |
SEI | הפעלת פסיקה גלובלית | אני ← 1 | I | 1 | |
CLI | השבתת הפרעה גלובלית | אני ← 0 | I | 1 | |
SES | הגדר דגל בדיקה חתום | S ← 1 | S | 1 | |
CLS | נקה דגל בדיקה חתום | S ← 0 | S | 1 | |
SEV | הגדר הצפה משלימה של שתיים. | V ← 1 | V | 1 | |
CLV | נקה הצפה של שתיים משניים | V ← 0 | V | 1 | |
מַעֲרֶכֶת | הגדר T ב- SREG | T ← 1 | T | 1 | |
CLT | נקה T ב- SREG | T ← 0 | T | 1 | |
סאה | הגדר דגל חצי נשיאה ב- SREG | H ← 1 | H | 1 | |
CLH | נקה חצי דגל נשיאה ב- SREG | H ← 0 | H | 1 | |
הוראות העברת נתונים | |||||
MOV | Rd, Rr | מעבר בין רישומים | Rd ← Rr | אַף לֹא אֶחָד | 1 |
MOVW | Rd, Rr | העתק את Word | Rd+1:Rd ← Rr+1:Rr | אַף לֹא אֶחָד | 1 |
LDI | Rd, K | טען מיידית | Rd ← K | אַף לֹא אֶחָד | 1 |
LD | Rd, X | טען בעקיפין | Rd ← (X) | אַף לֹא אֶחָד | 2 |
LD | Rd, X + | טען בעקיפין ופוסט-בע"מ. | Rd ← (X), X ← X + 1 | אַף לֹא אֶחָד | 2 |
LD | Rd, - X | טען בעקיפין וטרום דצמבר. | X ← X – 1, Rd ← (X) | אַף לֹא אֶחָד | 2 |
LD | Rd, Y | טען בעקיפין | Rd ← (Y) | אַף לֹא אֶחָד | 2 |
LD | Rd, Y + | טען בעקיפין ופוסט-בע"מ. | Rd ← (Y), Y ← Y + 1 | אַף לֹא אֶחָד | 2 |
LD | Rd, - Y | טען בעקיפין וטרום דצמבר. | Y ← Y – 1, Rd ← (Y) | אַף לֹא אֶחָד | 2 |
LDD | Rd, Y + q | טען בעקיפין עם עקירה | Rd ← (Y + q) | אַף לֹא אֶחָד | 2 |
LD | Rd, Z | טען בעקיפין | Rd ← (Z) | אַף לֹא אֶחָד | 2 |
LD | Rd, Z + | טען בעקיפין ופוסט-בע"מ. | Rd ← (Z), Z ← Z+1 | אַף לֹא אֶחָד | 2 |
LD | Rd, -Z | טען בעקיפין וטרום דצמבר. | Z ← Z – 1, Rd ← (Z) | אַף לֹא אֶחָד | 2 |
LDD | Rd, Z + q | טען בעקיפין עם עקירה | Rd ← (Z + q) | אַף לֹא אֶחָד | 2 |
LDS | Rd, k | טען ישירות מ- SRAM | Rd ← (ק) | אַף לֹא אֶחָד | 2 |
ST | X, Rr | חנות עקיפה | (X) ← Rr | אַף לֹא אֶחָד | 2 |
ST | X +, Rr | חנות עקיפה ואחרי Inc. | (X) ← Rr, X ← X + 1 | אַף לֹא אֶחָד | 2 |
ST | - X, Rr | חנות עקיפה וטרם דצמבר. | X ← X – 1, (X) ← Rr | אַף לֹא אֶחָד | 2 |
ST | Y, Rr | חנות עקיפה | (Y) ← Rr | אַף לֹא אֶחָד | 2 |
ST | Y +, Rr | חנות עקיפה ואחרי Inc. | (Y) ← Rr, Y ← Y + 1 | אַף לֹא אֶחָד | 2 |
ST | - Y, Rr | חנות עקיפה וטרם דצמבר. | Y ← Y – 1, (Y) ← Rr | אַף לֹא אֶחָד | 2 |
STD | Y + q, Rr | חנות עקיפה עם עקירה | (Y + q) ← Rr | אַף לֹא אֶחָד | 2 |
ST | ז, רר | חנות עקיפה | (ז) ← Rr | אַף לֹא אֶחָד | 2 |
ST | Z +, Rr | חנות עקיפה ואחרי Inc. | (Z) ← Rr, Z ← Z + 1 | אַף לֹא אֶחָד | 2 |
ST | -Z, Rr | חנות עקיפה וטרם דצמבר. | Z ← Z – 1, (Z) ← Rr | אַף לֹא אֶחָד | 2 |
STD | Z + q, Rr | חנות עקיפה עם עקירה | (Z + q) ← Rr | אַף לֹא אֶחָד | 2 |
STS | ק, רר | אחסן ישירות ב- SRAM | (ק) ← Rr | אַף לֹא אֶחָד | 2 |
LPM | טען זיכרון תוכנית | R0 ← (Z) | אַף לֹא אֶחָד | 3 | |
LPM | Rd, Z | טען זיכרון תוכנית | Rd ← (Z) | אַף לֹא אֶחָד | 3 |
LPM | Rd, Z + | טען זיכרון תוכניות ו- Post-Inc | Rd ← (Z), Z ← Z+1 | אַף לֹא אֶחָד | 3 |
SPM | אחסן זיכרון תוכנית | (z) ← R1:R0 | אַף לֹא אֶחָד | ||
IN | Rd, P. | בנמל | Rd ← P | אַף לֹא אֶחָד | 1 |
הַחוּצָה | P, Rr | מחוץ לנמל | P ← Rr | אַף לֹא אֶחָד | 1 |
לִדחוֹף | Rr | לחץ על הרשמה על מחסנית | STACK ← Rr | אַף לֹא אֶחָד | 2 |
פּוֹפּ | Rd | רשום פופ מ- Stack | Rd ← STACK | אַף לֹא אֶחָד | 2 |
הוראות בקרת MCU | |||||
לא | אין מבצע | אַף לֹא אֶחָד | 1 | ||
לִישׁוֹן | לִישׁוֹן | (ראה תיאור ספציפי לתפקוד שינה) | אַף לֹא אֶחָד | 1 | |
WDR | איפוס כלב שמירה | (ראה תיאור ספציפי עבור WDR / טיימר) | אַף לֹא אֶחָד | 1 | |
לִשְׁבּוֹר | לִשְׁבּוֹר |
מהירות (MHz) (1) | אספקה כרךtagה (V) | טווח טמפרטורה | חֲבִילָה (2) | קוד הזמנה (3) |
10 | 1.8 - 5.5 | תַעֲשִׂיָתִי
(-40 ° C עד + 85 ° C) (4) |
8P3 | ATtiny45V-10PU |
8S2 | ATtiny45V-10SU ATtiny45V-10SUR ATtiny45V-10SH ATtiny45V-10SHR | |||
8X | ATtiny45V-10XU ATtiny45V-10XUR | |||
20M1 | ATtiny45V-10MU ATtiny45V-10MUR | |||
20 | 2.7 - 5.5 | תַעֲשִׂיָתִי
(-40 ° C עד + 85 ° C) (4) |
8P3 | ATtiny45-20PU |
8S2 | ATtiny45-20SU ATtiny45-20SUR
ATtiny45-20SH ATtiny45-20SHR |
|||
8X | ATtiny45-20XU ATtiny45-20XUR | |||
20M1 | ATtiny45-20MU ATtiny45-20MUR |
הערות: 1. עבור מהירות לעומת אספקה כרךtagה, ראה סעיף 21.3 "מהירות" בעמוד 163.
כל החבילות הן ללא Pb, ללא הליד וירוקות לחלוטין והן תואמות את ההנחיה האירופית להגבלת חומרים מסוכנים (RoHS).
מחווני קוד
H: גימור להוביל NiPdAu
U: פח מט
R: קלטת וסליל
ניתן לספק מכשירים אלה גם בצורת רקיק. אנא צרו קשר עם משרד המכירות המקומי של Atmel לקבלת מידע מפורט על הזמנות וכמויות מינימליות.
אררטה
Errata ATtiny25
מכתב התיקון בחלק זה מתייחס לתיקון מכשיר ה- ATtiny25.
Rev D - F
אין שגיאות ידועות.
Rev B - C
קריאת EEPROM עלולה להיכשל בנפח אספקה נמוךtage / תדר שעון נמוך
קריאת EEPROM עלולה להיכשל בנפח אספקה נמוךtage / תדר שעון נמוך
מנסה לקרוא EEPROM בתדרי שעון נמוכים ו/או נפח אספקה נמוךtage עלול לגרום לנתונים לא חוקיים.
פתרון בעיות / פיתרון
אל תשתמש ב-EEPROM כאשר תדר השעון נמוך מ-1MHz ונפח האספקהtage מתחת ל-2V. אם לא ניתן להעלות את תדר ההפעלה מעל 1MHz, אספקת כרךtage צריך להיות יותר מ-2V. באופן דומה, אם אספקה כרךtagלא ניתן להעלות את e מעל 2V אז תדר ההפעלה צריך להיות יותר מ-1MHz.
ידוע שתכונה זו תלויה בטמפרטורה אך היא לא אופיינה. ההנחיות ניתנות לטמפרטורת החדר בלבד.
כב 'א
לא יםampלד.
Errata ATtiny45
מכתב התיקון בחלק זה מתייחס לתיקון מכשיר ה- ATtiny45.
Rev F - G
אין שגיאות ידועות
Rev D - E.
קריאת EEPROM עלולה להיכשל בנפח אספקה נמוךtage / תדר שעון נמוך
קריאת EEPROM עלולה להיכשל בנפח אספקה נמוךtage / תדר שעון נמוך
מנסה לקרוא EEPROM בתדרי שעון נמוכים ו/או נפח אספקה נמוךtage עלול לגרום לנתונים לא חוקיים.
פתרון בעיות / פיתרון
אל תשתמש ב-EEPROM כאשר תדר השעון נמוך מ-1MHz ונפח האספקהtage מתחת ל-2V. אם לא ניתן להעלות את תדר ההפעלה מעל 1MHz, אספקת כרךtage צריך להיות יותר מ-2V. באופן דומה, אם אספקה כרךtagלא ניתן להעלות את e מעל 2V אז תדר ההפעלה צריך להיות יותר מ-1MHz.
ידוע שתכונה זו תלויה בטמפרטורה אך היא לא אופיינה. ההנחיות ניתנות לטמפרטורת החדר בלבד.
Rev B - C
PLL לא ננעל
EEPROM הנקרא מקוד היישום אינו פועל במצב נעילת ביט 3
קריאת EEPROM עלולה להיכשל בנפח אספקה נמוךtage / תדר שעון נמוך
מונה טיימר 1 ייצור פלט PWM ב- OC1B-XOC1B אינו פועל כהלכה
PLL לא ננעל
כאשר בתדרים הנמוכים מ- 6.0 מגה-הרץ, ה- PLL לא יינעל
פתרון בעיות / דרך לעקיפת הבעיה
בעת שימוש ב- PLL, הפעל במהירות 6.0 מגה הרץ ומעלה.
EEPROM הנקרא מקוד היישום אינו פועל במצב נעילת ביט 3
כאשר ביטי נעילת הזיכרון LB2 ו- LB1 מתוכנתים למצב 3, קריאת EEPROM אינה פועלת מקוד היישום.
פתרון בעיות / עבודה מסביב
אל תגדיר את מצב ההגנה על נעילת סיביות 3 כאשר קוד היישום צריך לקרוא מ- EEPROM.
קריאת EEPROM עלולה להיכשל בנפח אספקה נמוךtage / תדר שעון נמוך
מנסה לקרוא EEPROM בתדרי שעון נמוכים ו/או נפח אספקה נמוךtage עלול לגרום לנתונים לא חוקיים.
פתרון בעיות / פיתרון
אל תשתמש ב-EEPROM כאשר תדר השעון נמוך מ-1MHz ונפח האספקהtage מתחת ל-2V. אם לא ניתן להעלות את תדר ההפעלה מעל 1MHz, אספקת כרךtage צריך להיות יותר מ-2V. באופן דומה, אם אספקה כרךtagלא ניתן להעלות את e מעל 2V אז תדר ההפעלה צריך להיות יותר מ-1MHz.
ידוע שתכונה זו תלויה בטמפרטורה אך היא לא אופיינה. ההנחיות ניתנות לטמפרטורת החדר בלבד.
מונה טיימר 1 ייצור פלט PWM ב- OC1B - XOC1B אינו פועל כהלכה
מונה טיימר 1 פלט PWM OC1B-XOC1B אינו פועל כהלכה. רק במקרה בו ביטי הבקרה, COM1B1 ו- COM1B0 נמצאים באותו מצב כמו COM1A1 ו- COM1A0, בהתאמה, הפלט OC1B-XOC1B עובד כהלכה.
פתרון בעיות / עבודה מסביב
הפיתרון היחיד הוא להשתמש באותה הגדרת בקרה על ביטי הבקרה COM1A [1: 0] ו- COM1B [1: 0], ראה טבלה 14-4 בגליון הנתונים. הבעיה תוקנה עבור Tiny45 rev D.
כב 'א
צריכת חשמל נמוכה מדי להפחתת חשמל
DebugWIRE מאבד תקשורת כאשר יחיד נכנס להפרעות
PLL לא ננעל
EEPROM הנקרא מקוד היישום אינו פועל במצב נעילת ביט 3
קריאת EEPROM עלולה להיכשל בנפח אספקה נמוךtage / תדר שעון נמוך
צריכת חשמל נמוכה מדי להפחתת חשמל
שלושה מצבים יובילו לצריכת חשמל נמוכה מדי בהפעלה. אלו הם:
שעון חיצוני נבחר על ידי נתיכים, אך יציאת ה- I / O עדיין מופעלת כפלט.
ה- EEPROM נקרא לפני כניסתו לכיבוי.
VCC הוא 4.5 וולט ומעלה.
כתב ויתור: המידע במסמך זה ניתן בהקשר למוצרי אטמל. לא ניתן רישיון, מפורש או משתמע, בהסגרה או בכל דרך אחרת, לכל זכות קניין רוחני במסמך זה או בקשר למכירת מוצרי אטמל. למעט כפי שנקבע בתנאים ותנאי המכירה של אטמל הממוקמים על אטמל WEBהאתר, ATMEL אינה נושאת באחריות כלשהי ושוללת כל אחריות מפורשת, משתמעת או חוקתית המתייחסת למוצריה, לרבות, אך לא מוגבלת, האחריות המשתמעת של סחירות, התאמה, התאמה, התאמה והתאמה. בשום מקרה אטמל לא תישא באחריות לכל נזק ישיר, עקיף, תוצאתי, עונשי, מיוחד או מקרי (כולל, ללא הגבלה, נזקים בגין אובדן ורווחים, הפרעה עסקית, או אובדן שימוש מחוץ לשימוש או אובדן) מסמך זה, גם אם ל-ATMEL הודיעו על האפשרות של נזקים כאלה.
Atmel אינה מציגה כל מצג או אחריות ביחס לדיוק או שלמות התוכן של מסמך זה ושומרת לעצמה את הזכות לבצע שינויים במפרטים ובתיאורי המוצרים בכל עת ללא הודעה מוקדמת. אטמל אינה מתחייבת לעדכן את המידע הכלול בזאת. אלא אם צוין אחרת במפורש, מוצרי Atmel אינם מתאימים, ולא ישמשו ביישומי רכב. מוצרי Atmel אינם מיועדים, מורשים או מורשים לשימוש כרכיבים ביישומים שנועדו לתמוך או לקיים חיים.