הרצאה - האתר של שי ידרמן

Transcription

הרצאה - האתר של שי ידרמן
‫מעבדה למיקרו מחשבים‬
‫מרצה‪ :‬ד"ר שלמה אנגלברג‬
‫משרד‪.324A :‬‬
‫מייל‪shlomoe@jct.ac.il :‬‬
‫אתר הקורס‪www.cc.jct.ac.il/~shlomoe :‬‬
‫טלפון‪02-6751158 :‬‬
‫נהלים‪:‬‬
‫‪ .1‬יש ש‪.‬ב‪ .‬שחובה להגיש ב‪ 15-‬ד' הראשונות של המעבדה‪.‬‬
‫‪ .2‬נוכחות חובה‪.‬‬
‫‪ .3‬חובה לעבור את המבחן אחרת הלך כל הקורס‪...‬‬
‫מרכיבי הציון‪:‬‬
‫‪ .1‬שיעורי בית‬
‫‪10%‬‬
‫‪ .2‬דוחות מסכמים‬
‫‪40%‬‬
‫‪ .3‬מיני פרויקט‬
‫‪10%‬‬
‫‪ .4‬איכות ביצוע וסדר ‪10%‬‬
‫‪ .5‬מבחן סופי‬
‫‪30%‬‬
‫מבוא קצר‪:‬‬
‫השבב הראשון שיצא כמיקרו‪-‬מעבד היה לפני ‪ 40‬שנה‪ .‬אנו משתמשים כיום בגרסה יותר משוכללת של מיקרו מעבד מסוג זה‪.‬‬
‫בקורס אצלנו הרכיבים הללו נקראים מיקרו בקרים‪ ,‬כי הם מבקרים את התהליכים שאנו מבצעים בהם‪.‬‬
‫המיקרו בקרים הקלאסיים אמורים לבקר תהליכים יחסית פשוטים והם מחזירים ‪ 0‬או ‪ , 1‬להפעיל או לכבות משהו‪.‬‬
‫המיקרו‪-‬ים שלנו עושים הרבה יותר )‪ - (ADuC841‬הנקרא ‪.8052‬‬
‫מבחינת היצרן‪ ,‬הם מוכרים לנו ממירים ואת השבב נותנים בחינם‪.‬‬
‫היתרון במיקרו‪-‬ים שלנו הוא שניתן להבין אותם כמעט עם הסוף ולכן ניתן למנוע ולהבין סיבות קריסה שונות ושאר תקלות‪.‬‬
‫הקורס וחוברת המעבדה מחולקים לשלושה חלקים‪:‬‬
‫החלק הראשון הוא חומר רקע‪.‬‬
‫החלק השני הוא המעבדות הבסיסיות‪ .‬שם לומדים בצורה מדורגת על הנושאים‪.‬‬
‫החלק השלישי הוא מעבדות יותר מאתגרות‪ .‬מטרתן היא לגרום לנו להצליח "להרגיש בבית" עם השימוש במעבד‪.‬‬
‫‪|1‬‬
‫מעבדה למיקרו מחשבים ‪ -‬סיכום ועריכה מאת שי ידרמן‬
‫מפרט ה‪:8052-‬‬
‫* זכרון פנימי ‪( 256B‬רבע קילו)‪.‬‬
‫* הפונקציות המיוחדות )‪ ,(SPECIAL FUNCTION REGISTER‬תופסות את ‪ 128‬הבתים העליונים של הזכרון הפנימי‪.‬‬
‫* ההתקן מכיל ‪ 3‬טיימרים )‪.(Timer/Counter‬‬
‫* לשבב יש פורטי קלט‪/‬פלט – ניתן לקבוע מה יהיה הערך בכל כניסה‪/‬יציאה‪.‬‬
‫* ‪ - 1 UART‬יציאה אחת "לעולם החיצוני"‪.‬‬
‫* בנוסף ב‪ ADuC841-‬יש גם ממירים ‪ , A/D D/A‬זכרון פנימי של ‪ 2‬קילו‪ 62 ,‬קילו זיכרון פלאש ‪...‬‬
‫נסתכל על המיקרו מעבד בצורה הבאה‪:‬‬
‫זיכרון הנתונים נחלק לפי הסכמה באופן הבא‪:‬‬
‫הכתובות של ה‪ 256-‬בתים ממויינות מ‪ 00H-‬עד ‪.FFH‬‬
‫בכתובות ‪( 00H-1FH‬סה"כ ‪ 32‬כתובות) נמצאים ‪32‬‬
‫רשמים המחולקים ל‪ 4-‬בנקים‪.‬‬
‫בכל בנק נמצאים ‪ 8‬רשמים הקרויים‪.R0-R7 :‬‬
‫בכתובות ‪ 20H-2FH‬נמצאים ‪.BIT ADDRESSABLE‬‬
‫בכתובות של החצי העליון ‪ ,80H-FFH‬שזה יוצא ‪128‬‬
‫בתים‪ ,‬נמצאים ה‪.R.F.S-‬‬
‫כל שאר הכתובות (‪ )30H-7FH‬הם לשימוש כללי‪.‬‬
‫חוץ מ‪ 256-‬הבתים הנ"ל אשר מחולקים לחלקים שצוינו‬
‫הוסיפו המתכננים של ‪ 8052‬עוד ‪ 128‬בתים של זכרון‬
‫מתחת לזכרון של ה‪.S.F.R-‬‬
‫את זה ניתן לראות בסכמה בריבוע שנמצא מאחורי‬
‫החלק של ה‪.S.F.R-‬‬
‫איור סכמטי של המעבד‪ ,‬לקוח מתוך הספר של ד"ר שלמה‬
‫אנגלברג פרק ‪ 2‬נושא ‪ 1‬עמ' ‪14‬‬
‫עד כאן הרצאה ‪ .1‬תאריך‪1.11.11 :‬‬
‫אופן פנייה לזכרון הנתונים‪:‬‬
‫‪ .1‬גישה ישירה )‪ :(Direct addressing‬מפנים את המעבד לכתובת מסויימת‪.‬‬
‫לדוגמא הפקודה ‪ mov 40H,50H‬אומרת להעביר את המידע שנמצא בכתובת ‪ 50H‬לכתובת ‪.40H‬‬
‫‪ .2‬גישה לא ישירה )‪:(Indirect addressing‬‬
‫לדוגמא‪ mov 40H,@R0 :‬העבר את התוכן של מה ש‪ R0-‬מצביע עליו לכתובת של ‪.40H‬‬
‫המצביעים היחידים שקיימים הם ‪ R0‬ו‪.R1-‬‬
‫דוגמא מספרית‪ :‬נניח שבכתובת ‪ 41H‬נמצא הערך ‪ 2‬והמצביע ‪ R0=41H‬אזי הפקודה‪ mov 40H,@R0 :‬תיתן בסוף‬
‫את הערך ‪ 2‬בכתובת ‪.40H‬‬
‫‪|2‬‬
‫מעבדה למיקרו מחשבים ‪ -‬סיכום ועריכה מאת שי ידרמן‬
‫אנו משתמשים בפקודות שהן כמעט שפת האם של המעבד‪.‬‬
‫למעשה אנו שומרים במעבד רק ‪ 1‬ו‪ .0-‬ניתן לתרגם את השפה ל‪ 1-‬ו‪ 0-‬כרצוננו‪ ,‬אולם לא נעסוק בזה בקורס הזה‪.‬‬
‫דוגמא‪ :‬נתבונן בפקודה‪ mov A,Rn :‬ה‪ A-‬הוא לא כתובת או אפילו שם‪ ,‬הוא חלק מפקודה‪.‬‬
‫לעומת זאת ‪ ACC‬מכיל את הכתובת של האקומולאטור‪ .‬הכתובת שלו היא ‪ 11101rrr‬כאשר ‪ rrr‬הוא כתובת של רשם שממנו יש‬
‫להעביר ל‪ ACC-‬את המידע‪ .‬לכן הפקודה ‪ mov ACC,Rn‬משמעה להעביר מאוגר כללי את התוכן לאקומולאטור‪.‬‬
‫לפי מה שראינו עד כה הפקודה ‪ mov 40H,50H‬תופסת ‪ 3‬בתים‪ ,‬אחד לפקודה ושניים לכל רשם‪.‬‬
‫הערה‪:‬‬
‫בקובץ‪8051 Family programmers guide and Instruction set :‬‬
‫יש את כל המעברים בין הפקודות לצורתן הבינארית‪ .‬לינק‪:‬‬
‫‪http://www.classic.nxp.com/acrobat_download2/various/80C51_FAM_PRO‬‬
‫‪G_GUIDE_1.pdf‬‬
‫אופן הפנייה לזיכרון תוכנה‪:‬‬
‫הפקודה ‪ movc A,@A+DPTR‬היא להעביר משהו קבוע לאקומולאטור לכתובת של ‪ A‬ועוד המקום שמצביע אליו‬
‫‪ DPTR‬שהוא ה‪.Data pointer -‬‬
‫פקודה נוספת היא ‪ movc A,@A+PC‬אשר תפקידה זהה‪ .‬ההבדל הוא שכעת יש לנו ‪.ProgramCounter‬‬
‫לא נשתמש בדרך זו בד"כ‪.‬‬
‫אופן הפנייה לזיכרון חיצוני‪:‬‬
‫זיכרון שניתן לחבר באופן חיצוני ולהשתמש בו‪ .‬הפקודה לשימוש בזיכרון החיצוני היא ‪movx‬‬
‫כאשר ‪.X=External‬‬
‫אופן פנייה לביט בודד ‪:BIT ADDRESSIABLE‬‬
‫הפקודות הן‪ STEB :‬להפוך ביט ל‪ 1-‬ו‪ CLRB -‬להפוך ביט ל‪.0-‬‬
‫פקודה נוספת היא לבדוק האם ביט מסוים שווה ל‪ 1-‬ואם כן אז לקפוץ לכתובת אחרת‪.JB bit,___ :‬‬
‫פקודת קפיצה עבור מצב שבו ביט שווה ל‪ 0-‬היא‪.JNB bit,___ :‬‬
‫אופן פעולות הקשורות לאריתמטיקה‪:‬‬
‫נשתמש בעיקר בחיבור וחיסור (כפל כבר רחוק מאיתנו‪.)..‬‬
‫פקודה לחיבור היא‪ ADD A,40H :‬מחברים את התוכן שנמצא בכתובת ‪ 40H‬עם התוכן שנמצא בתוך ‪ A‬ושמים את‬
‫התוצאה בתוך ‪ .A‬במקרים שבהם הסכום זולג )‪ (Carry‬יש צורך בביט נוסף‪ .‬לשם כך יש לנו בתוך ה‪ SFR-‬את ה‪PSW-‬‬
‫שהוא ביט דגל הנדלק במצב של גלישה‪ .‬הפקודה ‪ ADD‬תשנה את הביט הזה במקרה שבו הסכום זולג‪ .‬מעתה והלאה‬
‫הביט ישאר דלוק עד שנכבה אותו עם ‪ .CRL C‬הפקודה ‪ ADDC A,41H‬מבצעת כמעט אותו הדבר‪ .‬היא מחברת את‬
‫התוכן של ‪ 41H‬עם התוכן שנמצא ב‪ A-‬אבל בעת החיבור הביט של ‪ PSW‬דלוק‪ ,‬ז"א אנו נמצאים בשלב מספרים גדול‬
‫יותר‪ .‬המשמעות של ‪ C‬היא ‪.Carry‬‬
‫יש לנו פקודות לוגיות כגון‪ - ANL 40H, #0F0H :‬שזה ‪ .And logical‬כאן מקבלים וגם עם ‪.11110000‬‬
‫‪ – ORL‬שזה ‪.Or logical‬‬
‫יש לנו פקודה ‪ RR‬שמזיזה את הביטים אחד ימינה כגון‪ :‬לפני – ‪ 11011101‬אחרי‪.10111011 -‬‬
‫בדומה יש פקודה שמזיזה שמאלה והיא ‪ .RL‬אם נעזר ב‪ RRC -‬או ‪ RLC‬אז ההתייחסות תהיה גם ל‪.Carry-‬‬
‫עפ"י תקן‪ ,‬כאשר רושמים מספר בהקס דצימלי המתחיל באות )‪ (A-F‬יש להוסיף ‪ 0‬לפניו כגון‪.0F0 :‬‬
‫‪|3‬‬
‫מעבדה למיקרו מחשבים ‪ -‬סיכום ועריכה מאת שי ידרמן‬
‫אפן פעולות ‪:BITWISE OPERATIONS‬‬
‫בפקודות אלו אנו משנים ביט‪-‬ביט למשך כל הבית‪.‬‬
‫הפקודה ‪ CPL‬למשל‪ ,‬משלימה את הביטים )‪.(compliment‬‬
‫אופן פעולות של בקרת הזרימה‪: Flow Control :‬‬
‫איך מבצעים לולאה בתוך תוכנה‪:‬‬
‫נעזר בפקודות‪:‬‬
‫הסופר הוא התוכן של ‪ 40H‬שמאותחל בערך ‪ 10‬ויורד עד ל‪.0-‬‬
‫אפשרות נוספת היא ע"י פקודת‪SUB :‬‬
‫ובה הוא קופץ ללולאה ‪.SUB‬‬
‫הפקודה האחרונה ברצף הזה היא‪LOC :‬‬
‫בפקודה זו הוא קופץ ולא חוזר‪.‬‬
‫‪CALL‬‬
‫‪Mov 40H , #10‬‬
‫‪.‬‬
‫‪.‬‬
‫‪.‬‬
‫‪.‬‬
‫‪DJNZ 40H , LOOP‬‬
‫‪LOOP:‬‬
‫‪JMP‬‬
‫עד כאן הרצאה ‪ .2‬תאריך‪3.11.11 :‬‬
‫פסיקות – ‪:Interrupts‬‬
‫למעבד יש ליבה וכל מיני ‪.peripherals‬‬
‫נניח שרוצים לבדוק מצב של פין מסוים המחובר לכפתור והמעבד צריך לדעת מתי לוחצים עליו‪.‬‬
‫ניתן לבקש מהמעבד לבדוק כל הזמן האם לוחצים על הפין אך זה בזבזני‪.‬‬
‫ה‪ peripherals-‬מאפשרים להסב את תשומת הלב של המעבד רק כאשר לוחצים על המספק‪.‬‬
‫ז"א הם משמשים כעזר לליבה ומפנים אותה לטפל בפין רק כאשר לוחצים עליו‪.‬‬
‫כל התהליך הזה מתבצע באמצעות פסיקות שבהן ה‪ peripherals-‬מפנים מידע לליבה ולאחר מכן הליבה חוזרת לתהליך המרכזי‪.‬‬
‫ה‪ peripherals-‬במשך כל התכנית עושים מה שמוטל עליהם וכאשר הם מסיימים את התהליך שלהם הוא פונים לליבה‬
‫וזה מתבצע באמצעות פסיקות בעת כתיבת התכנית‪.‬‬
‫איך מתכנת דואג לדברים האלה?‬
‫המעבד בנוי כך שבמקום האפס בזיכרון התוכנה נמצאת הפקודה הראשונה של התכנית (המקום‪.)0000H :‬‬
‫המעבד קופץ אליו ישירות בתחילת התכנית‪.‬‬
‫מבחינת החומרה נניח ויש פסיקה במקום ‪ 0003H‬שתופסת את המקום שלה ורק לאחר מכן מופיע ה‪.MAIN-‬‬
‫הפקודה הראשונה שלנו תהיה ‪ JMP MAIN‬והחומרה תבדוק האם הפין המסוים דלוק או כבוי‪ ,‬במידה והוא דלוק‬
‫החומרה תדע לבד (ללא צרך בשימוש בפקודת ‪ )CALL‬להתחיל בפסיקה הנמצאת בכתובת ‪ 0003H‬ורק לאחר מכן היא‬
‫תעבר חזרה לתכנית הראשית )‪ .(MAIN‬יש להקפיד לכתוב בסוף הפסיקה ‪ RETI‬שאומר למעבד כי הסתיים הטיפול‬
‫בפסיקה ויש לחזור לתכנית הראשית‪ .‬ההבדל בין ‪ RET‬ל‪ RETI-‬היא ש‪ RETI -‬חוזר ל‪ MAIN-‬וגם זוכר כי הסתיים‬
‫הטיפול בפסיקה בעוד ש‪ RET-‬רק חוזר לתכנית הראשית אבל במידה ויש מספר פסיקות המעבד יכול לטעות ולחשוב‬
‫שהוא ממשיך לטפל בפסיקה הזה עתה הסתיימה‪.‬‬
‫בניגוד למה שקורה בשיעורים‪ ,‬לפסיקה מותר להפריע רק כאשר המעבד נותן רשות‪.‬‬
‫כאשר רוצים שהמעבד יטפל בפסיקות נכתוב‪ SETB EA :‬כאשר ‪ EA‬הוא ‪.Interrupt enable bit‬‬
‫לכל ‪ peripherals‬יש ביט ‪ enable‬אחר ולכן יש לציין את שם הביט עצמו כגון ‪( EX0‬יש עוד ביטים שנלמד עליהם בהמשך)‪.‬‬
‫‪|4‬‬
‫מעבדה למיקרו מחשבים ‪ -‬סיכום ועריכה מאת שי ידרמן‬
‫מבנה התוכנה באופן כללי‪:‬‬
‫את התכנית פותחים בהערות‪.‬‬
‫לאחר מכן פקודת ‪ JMP MAIN‬הנמצאת בכתובת ‪.0000H‬‬
‫לאחר מכן נתונים טכניים כלליים‪.INT. VFCT. TABLE :‬‬
‫ואז מתחילה התכנית הראשית‪ MAIN: SETB EA :‬ובה נפתח בפקודה הנ"ל כמה פעמים שצריך כדי לאפשר את כל‬
‫ההפרעות שאמורות להתרחש‪.‬‬
‫היות והמעבד מבצע את התכנית בלולאה‪ ,‬נגרום לא להפסיק ע"י הפקודה ‪ JMP $‬אשר מחזירה את המעבד לפקודה עצמה לעד‪.‬‬
‫מבחינת המבנה הפנימי‪ ,‬יש לנו נגד שמחובר למקור ‪ DC‬של ‪ 5‬וולטים‪.‬‬
‫בקצה הנגד נמצא הפין ‪ P3.2‬ולאחר מספק המחובר לאדמה‪ .‬ברירת המחדל היא ‪ 1‬שזה מספק פתוח‪.‬‬
‫הפקודה ‪ STEB P3.2‬פותחת את המתג (‪ )0‬ונותנת למעבד לבדוק האם זורם זרם או לא‪.‬‬
‫כעת כאשר נלחץ המספק עובר זרם והמעבד מקבל זאת‪ .‬הפקודה ‪ CLR P3.2‬מנקה את הביט‪.‬‬
‫כאשר נלחץ המספק המעבד מפסיק את התכנית שלו ומבצע את הפסיקה‪.‬‬
‫אם נלחץ מספר נוסף עם פסיקה דומה הוא לא יבצע זאת‪.‬‬
‫עד כאן הרצאה ‪ .3‬תאריך‪8.11.11 :‬‬
‫‪:Timer/counters‬‬
‫הטיימרים האלה הם מדדי זמן חיצוניים‪.‬‬
‫יש לנו ‪ Timer 0‬ו‪ Timer 1 -‬ב‪ 8051-‬וטיימר נוסף ‪ Timer 2‬ב‪ .8052-‬ב‪ ADuC-‬יש עוד טיימר נוסף‪.Timer 3 :‬‬
‫התפקיד של טיימר ‪ 3‬הוא שהוא מחובר ליחידת תקשורת ‪ UART‬ומודד זמנים עבורה‪.‬‬
‫לטיימרים שלנו יש מספר מצבים ושולטים בהם ע"י מספר ביטי‪-‬בקרה‪.‬‬
‫המצבים הקשורים לטיימרים הם‪ TMOD :‬ו‪ .TCON-‬יש לנו שני מודים‪ 1 :‬ו‪.2-‬‬
‫‪ TMOD2‬הוא ‪ .Autoreload mode‬אפשר לחבר את המונה הזה ישירות לשעון הפנימי ואז הוא יתקדם ספרה אחת על‬
‫פעימת שעון או שאפשר לחבר אותו לפין חיצוני‪ .‬חשוב לזכור כי המונים סופרים תמיד כלפי מעלה וכאשר הם גולשים הם‬
‫יוצרים פסיקה‪ .‬נניח מונה של ‪ 8‬ביט – הוא יכול לספור עד ‪ 255‬ואז גולש ויוצר פסיקה‪.‬‬
‫חשוב לדעת כיצד לאתחל את המונה בהתאם לזמן שבו אנו צריכים פסיקה‪.‬‬
‫נניח שאנו רוצים פסיקה כל ‪ 10  s‬ניקח את מספר הפעימות לשנייה של השעון הפנימי ונכפיל‪11, 059, 200  0.00001  110.592 :‬‬
‫היות והמונה סופר למעלה צריך לבצע‪ . 2 5 6  1 1 0 .5 9 2  1 4 5 . * * :‬נאתחל לו את הערך ‪ 145‬ונקבל את הזמן הדרוש‪.‬‬
‫מצב ‪:TMOD‬‬
‫נתבונן באוגר עצמו‪ 4 . 7 6 5 4 3 2 1 0 :‬הביטים הנמוכים מוקדשים ל‪ Timer 0 -‬ו‪ 4-‬הביטים העליונים ל‪.Timer 1-‬‬
‫הביטים ‪ 3‬ו‪ 7-‬תמיד אפס בקורס הזה‪.‬‬
‫הביטים ‪ 2‬ו‪ 6-‬הם ‪ 0‬לשעון (מתחבר לשעון הפנימי של המעבד וסופר מספר פעימות בו) או ‪ 1‬למונה (הוא מתחבר לפין‬
‫חיצוני וסופר את מספר הירידות שלו מ‪ 1-‬לוגי ל‪ 0-‬לוגי)‪.‬‬
‫הביטים ‪ 4‬ו‪ 5-‬בטיימר ‪ 1‬והביטים ‪ 0‬ו‪ 1-‬בטיימר ‪ 0‬הם‪ 01 :‬או ‪ 10‬למצב ‪ 1‬או מצב ‪.2‬‬
‫מבחינת תִכנות נכון‪ ,‬כאשר רוצים לשנות נתונים על טיימר ‪ 1‬לא נוגעים בביטים של טיימר ‪ 0‬ולהיפך‪.‬‬
‫לשם כך נעזר בפקודות לוגיות במקום ‪.MOV‬‬
‫הפקודה ‪ TCON‬נחלקת ל‪ TR0-‬ו‪ TR1 -‬כאשר הם מייצגים בהתאמה ‪ – 1‬פועל‪ – 0 ,‬מכובה‪.‬‬
‫לכל טיימר יש עוד שני אוגרים שהם‪ TH1 :‬ו‪ TL1 -‬לטיימר ‪ 1‬וכנ"ל עם ‪ 0‬לטיימר ‪.)L=Low , H=High( 0‬‬
‫הדבר מאפשר ליצור אוגר של ‪ 16‬ביט‪ .‬כעת ניתן לספור עד ‪. 2 16‬‬
‫המשתמש בתחילת הפסיקה חייב להזין את האוגרים הללו מחדש‪ MOV TLO,#... :‬ו‪.MOV TH0,#... -‬‬
‫עדיף להתחיל מלהזין את ‪ TL0‬כי הוא מכיל את הבתים הנמוכים וכך נפגע הכי פחות בעבודה שלו‪.‬‬
‫‪|5‬‬
‫מעבדה למיקרו מחשבים ‪ -‬סיכום ועריכה מאת שי ידרמן‬
‫במצב ‪ MOD2‬האוגר ‪ TL0‬הוא המונה ו‪ TH0-‬הוא המספר המתאחל‪ .‬המעבד יודע להזין אותו מחדש לאחר כל פסיקה‬
‫באופן אוטומטי‪ .‬בנוסף לא צריך לטפל באוגרים הללו בתחילת הפסיקה – המעבד עושה זאת (מאחורי הקלעים)‪.‬‬
‫חשוב לטפל ולאתחל את הפסיקות רק אחרי הטיפול ב‪ peripherals-‬למען הניקוד הטוב‪.‬‬
‫עד כאן הרצאה ‪ .4‬תאריך‪15.11.11 :‬‬
‫קווי תקשורת למיקרו בקרים – ה‪:UART-‬‬
‫הרעיון הוא שלמעבד תהיה אפשרות לתקשר עם העולם החיצוני‪.‬‬
‫נלמד עם ה‪ .UART-‬שזה‪.Universal Asynchronies Receiver Transmitter :‬‬
‫ההתקן הוא אסינכרוני‪ ,‬ז"א אין לו שעון משותף‪.‬‬
‫התקן ‪ RS232‬למשל הוא תקן אמיתי אבל לא תקן תקשורת‪.‬‬
‫למשדר ולמקלט שני דברים שצריכים להיות מתואמים – התדר ומספר הביטים שמשדרים‪.‬‬
‫זה עובד באופן הבא‪:‬‬
‫המשדר נמצא בתחילה בממתח של ‪ , 5v‬לאחר מכאן הוא שולח ביט שאומר למקלט "אני מתחיל לשדר" והוא נקרא‬
‫‪ START BIT‬במצב זה הממתח יורד ל‪ . 0 v -‬לאחר מכן משדרים ‪ 8‬ביטים בממתחים שונים ולבסוף חוזרים לממתח של‬
‫‪ 5v‬שנקרא ‪ .STOP BIT‬המקלט מקבל תחילה ירידת מתח ואז הוא מתחיל לספור ביט ביט‪.‬‬
‫(היות ויש להם את אותו התדר אז הם יודעים כמה זמן לוקח לכל ביט לעבור)‪.‬‬
‫איך עובד ה‪:UART-‬‬
‫יש לנו ממתח של ‪ , 5v‬נכנסים ל‪ 0 v -‬לתקופה של ביט אחד ‪ .  T ‬לאחר מכן יש לנו ‪ 8‬ביטים ז"א‪ 8T :‬ואז ביט סיום של ‪ 5v‬ל‪. T -‬‬
‫כדי למנוע מצב שבו המקלט יקלוט סתם רעשים כתוצאה מירידה אקראית של מתח‪ ,‬יש לו מנגנון שבודק לאחר חצי רוחב ביט‬
‫(חצי מחזור) האם הירידה עדיין קיימת‪( .‬את ‪ T‬אנו קובעים ובכך מתגברים על האפשרות שהפרעות ישפיעו על השידור)‪.‬‬
‫באותו האופן המקלט בודק בכל ביט מהביטים המשודרים את ערך הממתח לאחר חצי מחזור כדי לאשש את הממתח שהוא מקבל‪.‬‬
‫לאחר כל התהליך המקלט מוכן לקבל שידור של בית נוסף וכך הלאה לכל אורך שידור שיהיה‪.‬‬
‫זה עוזר לנו להתגבר על בעיות של חוסר התאמה בין גבישים באופן הבא‪:‬‬
‫נניח שרצינו תדר של‬
‫‪F‬‬
‫ובפועל קיבלנו תדר‪ F 1    :‬כאשר‪:‬‬
‫‪‬‬
‫קטן‪ .‬אזי המחזור יהיה‪:‬‬
‫‪1 ‬‬
‫‪F‬‬
‫‪1‬‬
‫‪1‬‬
‫‪‬‬
‫‪‬‬
‫‪F 1 ‬‬
‫‪‬‬
‫‪1‬‬
‫‪F 1   ‬‬
‫הדבר ישפיע על נקודת הבדיקה שהמקלט יוצר בתוך כל מחזור של הביט‪.‬‬
‫בעיקרון מותרות סטיות של עד ‪ 5%‬כי כך נקודת הבדיקה ִת ָמצֵא בתוך התחום של כל ביט‪.‬‬
‫ישנם מעבדים שמודדים בפרקים של ‪ 10‬ביטים או ‪ 100‬ביטים ובהם אחוז הסטייה הרבה יותר קטן כי כל סטייה קטנה תגרום‬
‫למצב שבו הבדיקות של המקלט בשלב מסוים יפספסו את המחזור של הביט שהן בודקות‪ .‬לא נעסוק בזאת בקורס זה‪.‬‬
‫עד כאן הרצאה ‪ .6‬תאריך‪29.11.11 :‬‬
‫‪|6‬‬
‫מעבדה למיקרו מחשבים ‪ -‬סיכום ועריכה מאת שי ידרמן‬
‫‪.T ‬‬
‫נדבר על ‪:Timer 3‬‬
‫הטיימר הזה שייך למשפחת המיקרו מעבדים שאנו עובדים איתם‪.‬‬
‫הדבר היחיד שהוא יכול לעשות זה להיות הקוצב של ה‪.UART-‬‬
‫יחד עם זאת הוא מאוד מאוד גמיש ונותן לנו לשחק עם ה‪ UART-‬בצורה מאוד יפה‪.‬‬
‫כדי להתעסק עם טיימר ‪ 3‬יש לעשות חישובים תמידים באמצעות אקסל או מטלב‪.‬‬
‫החלק המרכזי של המעבד הוא שידור מחרוזות‪:‬‬
‫נפתח בשמירת המחזורת הרצויה ב‪ CSEG-‬שמכיל מקום של ‪ ,62K‬למשל החל מכתובת‪.CSEG AT 0300H :‬‬
‫נכתוב את המחזורת‪ ,‬למשל‪( STRING: DB 'This is a string' :‬כאשר המשמעות ‪ DB‬היא הקצאה‪+‬שמירה)‪.‬‬
‫נסיים מחזורת בקוד‪.DB 13,10,0 :‬‬
‫המשמעות היא‪ - 13 :‬לשים את הסמן בתחילת השורה‪ - 10 ,‬לרדת שורה ו‪ 0-‬הוא תנאי עצירה )‪.(NULL‬‬
‫כדי להוציא את המחזורת נכתוב‪:‬‬
‫בתוך שגרת הפסיקה נבדוק‪.JBC TI,TRANS_INT :‬‬
‫הפקודה אומרת לבדוק ביט מסוים ואם הוא דלוק אז גם מכבים אותו‪.‬‬
‫נכתוב את שגרת הפסיקה עצמה‪:‬‬
‫הפקודה ‪ JZ‬בודקת האם האקומולטור הוא אפס‪.‬‬
‫כל עוד האקומולאטור לא מכיל את הערך ‪ 0‬שמוזן בסוף המחרוזת‪ ,‬נמשיך לשדר‪.‬‬
‫כדי להתחיל את כל השידור מספיק לעשות‪.SETB TI :‬‬
‫מכן המעבד יקפוץ מיד לפסיקה ולשגרת השידור‪.‬‬
‫‪MAIN:‬‬
‫‪MOVC A,@A+DPTR‬‬
‫‪MOV DPTR,#SRTING‬‬
‫‪TRANS_INT:‬‬
‫‪PUSH ACC‬‬
‫‪CLR A‬‬
‫‪MOVC A,@A+DPTR‬‬
‫‪JZ‬‬
‫‪END_STR‬‬
‫‪MOV SBUF,A‬‬
‫‪INC DPTR‬‬
‫‪POP ACC‬‬
‫‪RETI‬‬
‫עד כאן הרצאה ‪ .7‬תאריך‪6.12.11 :‬‬
‫פורטי קלט‪-‬פלט‪:I/O-Ports :‬‬
‫אלו הן היציאות ‪ P3‬ו‪ P2-‬של המעבד‪ .‬כאשר המתג פתוח מקבלים ‪ 1‬לוגי וכאשר הוא סגור מקבלים ‪ 0‬לוגי‪.‬‬
‫נזכור כי ‪ 1‬לוגי הוא ‪ 5‬וולטים‪ .‬בין המתח ליציאה יש נגד מסוים שנדבר עליו מיד‪.‬‬
‫השימוש בפורטים לקלט‪:‬‬
‫הפקודה הראשונה היא ‪ .SETB PM.N‬כאשר‪.M=2,3 :‬‬
‫לאחר מכן אפשר להשתמש בפקודות ‪ JB‬ו‪ JNB-‬בכדי‬
‫לבדוק את המתח בנק' הבדיקה הפנימית‪.‬‬
‫איך מאלצים מתח על פין קלט‪-‬פלט‪:‬‬
‫הפקודה הראשונה היא ‪.SETB PM.N‬‬
‫תמיד יהיה על הפין מתח של ‪ 5‬וולט אם לא נעשה כלום‪.‬‬
‫כדי שמשתמש יכניס מתח אפס יש לחבר את הפין לאדמה באמצעות לחצן‪.‬‬
‫לחיצה על הלחצן (מבחוץ) תשנה את המתח ותגרום למעבד לבדוק זאת‪.‬‬
‫הפתרון הזה הוא לא היחיד אבל הכי הגיוני כדי שהמעבד יבדוק שינוי בפין‪.‬‬
‫הפקודה ‪ CLR P3.2‬אסורה בעליל משתי סיבות‪:‬‬
‫מעבדה למיקרו מחשבים ‪ -‬סיכום ועריכה מאת שי ידרמן‬
‫‪|7‬‬
‫אם הפין מחובר ביציאה למתח אדמה או ‪ 5‬וולט אז הפקודה תחבר את החלק הפנימי של הפין (בתוך המעבד) לאדמה תמיד‬
‫ולחיצה על הלחצן תכניס מתח מאולץ לתוך המעבד ויכולה להזיק לו‪.‬‬
‫במידה והפין מחובר ללחצן או לאדמה אז לחיצה עליו לא תעשה כלום והתכנית לא תרוץ‪ .‬כך או כך הפקודה אסורה כאשר‬
‫רוצים להשתמש בלחצן במהלך התכנית‪.‬‬
‫‪:Port 0‬‬
‫בפורט הזה אין לנו נגד כלל וגם לא מקור מתח‪ .‬יש לפורט זה מטרות אחרות‪.‬‬
‫אנו נשתמש בפורט זה ע"י חיבור חיצוני של נגד ומקור מתח (בד"כ ‪ 3.3‬וולט)‪.‬‬
‫נק'‬
‫בדיקה‬
‫פנימית‬
‫‪P0.N‬‬
‫‪0‬‬
‫‪1‬‬
‫אנו יודעים ש‪ JB-‬ו‪ JNB-‬על פין מסוים בודקים את המתח עליו (הפנימי)‪.‬‬
‫הדבר הזה נכון לחלק מהפקודות בלבד‪.‬‬
‫הפקודה ‪ , JBC‬שמנקה בסוף את הביט‪ ,‬בודקת את מצב המתג הפנימי וסוגרת אותו אח"כ‪.‬‬
‫זאת בניגוד לפקודות הקודמות שרק בודקות את מצב המתח החיצוני‪.‬‬
‫המסקנה היא שהפקודות ‪ SETB P3.2‬ואחריה‪ JBC P3.2 :‬תאפשר קפיצה בניגוד ל‪ JB-‬שיקפוץ רק אם לחצו על הפין‪.‬‬
‫עד כאן הרצאה ‪ .8‬תאריך‪13.12.11 :‬‬
‫‪:Digital to Analog and Analog to Digital‬‬
‫נדבר על ממירים שמעבירים אות מאנלוגי לדיגיטלי והפוך‪.‬‬
‫ממיר דיגיטלי לאנלוגי כותבים‪ D/A :‬או‪ .DAC :‬ממיר אנלוגי לדיגיטלי כותבים‪ A/D :‬או‪.ADC :‬‬
‫החומר שממנו ניקח הוא‪ Digital Signal Processing An Experimental Introduction :‬חלק ‪.2‬‬
‫ניתן להוריד את החלק הרצוי מתוך האתר של המרצה‪ .‬הסיסמא לחלק השני היא‪. ibudotot2 :‬‬
‫אנו רוצים להמיר מספר בינארי למתח‪.‬‬
‫במעבדה שלנו נדאג לגל ריבועי באורך של ‪ 256‬מחזורי שעון עם גובה של ‪. 5v‬‬
‫האות שיצא מ‪ P3.4-‬הוא המתח הדרוש‪ .‬השיטה נקראת‪.Pulse Width modulation :‬‬
‫‪5v‬‬
‫נקבל אות ריבועי מחזורי‪ ,‬מחובר ליציאה ‪ LPF‬ונשאר עם הממוצע של האות‪.‬‬
‫היות והאות ניתן לפירוק לפי פורייה‪ ,‬האיבר החופשי הוא הממוצע ושאר ההרמוניות יחסמו ע"י ה‪.LFP-‬‬
‫אם רוחב הפולס הוא ‪ H‬נקבל‪:‬‬
‫‪ 5v‬‬
‫‪H‬‬
‫‪256‬‬
‫‪H‬‬
‫‪0v‬‬
‫‪2 5 6 cks‬‬
‫‪ . b0 ‬כעת יש לנו אפשרות לתרגם ערך בינארי למתח כלשהו‪.‬‬
‫הערך ‪ H‬יושב בזיכרון ה‪ ADuC-‬וניתן להוציא מתח הפרופורציונאלי ל‪.H-‬‬
‫המסנן‪ :‬ברור שאם התדרים מאוד גבוהים ניתן ליצור את המסנן עם נגד וקבל‪.‬‬
‫היות ואין הרבה זמן במעבדה נשתמש במסנן הטבעי והמהיר ביותר – העין שלנו! (באמת – זאת לא בדיחה)‪.‬‬
‫אנו נראה את הממוצע של האות כאשר נסתכל על הלד דולק‪.‬‬
‫במעבדה שלנו נבנה תכנית שבה לוחצים למשל ‪ 0 4 0‬והמעבד ידע להמיר זאת ל‪ 40D-‬ולהשתמש בטיימר כדי להוציא‬
‫את הגל הרצוי‪( .‬המשמעות היא שהגל יהיה בגובה של ‪ 5v‬במשך ‪ 40‬מחזורי שעון)‪.‬‬
‫נשתמש ב‪ Autoreload mode -‬עבור הטיימרים‪.‬‬
‫הרחבה ‪ -‬התקני קלט‪/‬פלט‪:‬‬
‫ראינו את התיאור הנ"ל בשבוע שעבר‪.‬‬
‫בעמוד הבא ישנו תיאור יותר מדויק את אופן הפעולה של ההתקן‪:‬‬
‫‪|8‬‬
‫מעבדה למיקרו מחשבים ‪ -‬סיכום ועריכה מאת שי ידרמן‬
‫כאשר מכניסים ‪ 5v‬המתח באמצע הוא אפס והטרנזיסטור אינו מוליך ומופיע בחוץ מתח של ‪. 5v‬‬
‫אם יש מתח של אפס בכניסה אז המתח בניהם הוא ‪ 5v‬והטרנזיסטור מוליך ולכן המתח ביציאה הוא אפס‪.‬‬
‫‪VDD‬‬
‫ערך הנגד שנוי במחלוקת‪:‬‬
‫עבור מתחים נמוכים‪ ,‬וכאשר נקצר את היציאה לאדמה‪,‬‬
‫נרצה התנגדות גדולה כדי שיזרום כמה שפחות זרם מבוזבז‪.‬‬
‫לעומת זאת כאשר נרצה הרבה זרם אנו בבעיה‪ .‬לכן יש לנו דרישות מנוגדות‪.‬‬
‫האמנם אין לנו נגד שמשתנה בהתאם לצורך אבל יש מערכות כאלו‪.‬‬
‫‪VDD‬‬
‫‪PM . N‬‬
‫נסכם ונאמר כי יש לנו שתי דרישות סותרות עבור הנגד‪:‬‬
‫‪ .1‬אם מחברים קיבול לפורט ורוצים שהוא ייטען מהר בפקודה ‪ SETB‬אז נרצה נגד קטן (קבוע זמן קטן)‪.‬‬
‫‪ .2‬אם מקצרים את הכניסה (מכניסים אפס למעבד) זורם זרם מבוזבז לאדמה ולכן נרצה נגד גדול‪.‬‬
‫להלן תיאור המערכת שמבצעת את הנדרש‪:‬‬
‫‪VDD‬‬
‫‪VDD‬‬
‫‪Q3‬‬
‫מבחינת גדלי ההתקנים (היחס ‪:) WL‬‬
‫ההתקן ‪ Q1‬הוא גדול מאוד‪.‬‬
‫ההתקן ‪ Q2‬הוא קטן מאוד‪.‬‬
‫ההתקן ‪ Q3‬הוא בינוני‪.‬‬
‫‪Q2‬‬
‫‪‬‬
‫‪VDD‬‬
‫משהה של ‪2‬‬
‫מחזורי שעון‪.‬‬
‫‪Q1‬‬
‫‪PM . N‬‬
‫‪‬‬
‫‪Q‬‬
‫הטרנזיסטור ‪ Q1‬תמיד בקיטעון חוץ מ‪ 2-‬מחזורי שעון שבהם האות משתנה מ‪ 0-‬ל‪( 1-‬וזה אומר ש‪ Q -‬הולך מ‪ 1-‬ל‪.)0-‬‬
‫בשלב זה הטרנזיסטור הגדול הזה מוליך ועוזר להטעין עומס קיבולי מהר יחסית‪.‬‬
‫ה‪ NOT-‬האחרון מונע מצב שבו נקצר את היציאה כי אז ‪ Q3‬יהיה בקיטעון ולא יזרום זרם זליגה שיכול להרוס את המעבד‬
‫כפי שראינו בשבוע שעבר‪ .‬הטרנזיסטור ‪ – Q2‬תפקידו למנוע ירידה של מתח בעקבות רעשים ולכן הוא קטן כי השימוש‬
‫בו נדיר יותר יחסית‪.‬‬
‫במצב שבו אנו מקצרים את המוצא יוצא מהתרשים הלוגי ש‪ Q1-‬ו‪ Q3-‬יהיו בקיטעון ולא יזרימו זרם‪ .‬רק ‪ Q2‬יזרים זרם קטן מאוד‪.‬‬
‫כך לא יהיה בזבוז גדול מדי‪ .‬כאשר ‪ PM.N‬אינו לחוץ מקבלים כי ‪ Q2‬פעיל ומושך את המתח עליו ל‪ V D D -‬חזרה‪.‬‬
‫עד כאן הרצאה ‪ .9‬תאריך‪20.12.11 :‬‬
‫סוגים שונים של ממירי דיגיטל לאנלוג – ‪:Resistor Chain DAC‬‬
‫להלן תיאור המבנה הכללי‪:‬‬
‫עבור ‪ N‬ביטים יש צורך ב‪ 2 -‬נגדים זהים‪.‬‬
‫‪N‬‬
‫‪V‬‬
‫‪R‬‬
‫‪REF‬‬
‫המתח לפי מחלק מתח עולה בשיעורים של‪. 2 N R V R E F  2 N :‬‬
‫כעת ניתן להתאים בין‪ n :‬לממתח כלשהו‪:‬‬
‫‪V REF‬‬
‫‪N‬‬
‫‪2‬‬
‫‪V REF  n ‬‬
‫‪nR‬‬
‫‪N‬‬
‫‪2 R‬‬
‫‪.‬‬
‫כאשר‪ . 0  n  2 N  1 :‬ב‪ ADuC -‬המתח הבנוי הוא‪. V REF  2.5 v :‬‬
‫יש מצביע שבהכנסה של מספר ‪ n‬מודד את המתח בין הנגד במקום ‪ 2 n‬והאדמה‪.‬‬
‫ב‪ ADuC-‬ה‪ N -‬המובנה הוא ‪ .12‬יש דרך להפוך אותו ל‪ 16-‬ולאפשר לו להעביר‬
‫מידע בגודל של בית אחד ע"י חילוק ב‪ 2-‬של המדידות‪.‬‬
‫ניתן להגדיר גם ‪ V R E F  5 v‬אך נעדיף שלא כי אז נאבד דיוק היות והמתח הוא לא בדיוק ‪ 5‬וולט‪.‬‬
‫כעת מחברים נגד ‪ R LO A D‬מהפין החוצה וכלפי האדמה‪ .‬במצב זה נקלקל את המתח היחסי שרצינו להוציא‪.‬‬
‫כדי להתגבר על זה נעזר בחוצץ כמתואר בעמוד הבא‪.‬‬
‫‪|9‬‬
‫מעבדה למיקרו מחשבים ‪ -‬סיכום ועריכה מאת שי ידרמן‬
‫‪V o u t ,in t‬‬
‫‪Vout‬‬
‫השימוש במגבר שרת שומר על המתחים הפנימיים של המעבד‪.‬‬
‫במצב זה המתח בחוץ נשמר וזהה למתח הפנימי של המעבד‬
‫כפי שאנו רוצים כאשר נחבר עומס כלשהו‪.(int=internal) .‬‬
‫‪‬‬
‫עד כאן הרצאה ‪ .10‬תאריך‪27.12.11 :‬‬
‫המרצה רצה ליצור ניסוי שבו אנו יכולים לראות את אופן התִפקוד של כל אחד משלושת הטרנזיסטורים בנפרד‪.‬‬
‫כדי לבצע זאת ניתן לקצר בין הפינים‪ p3.1 , p0.0 :‬כאשר ל‪ p3.1-‬מחובר נגד ול‪ p0.0-‬לא מחובר כלום‪.‬‬
‫כאשר נרשום ‪ CPL P3.1‬לאחר שעשינו ‪ SETB‬לשני הפינים נקבל גל ריבועי במוצא‪.‬‬
‫שניהם‬
‫גם כאשר נשאיר את ‪ P3.1‬פתוח בלבד עדיין נקבל בפקודה ‪ CPL P0.0‬את הגל הריבועי‪.‬‬
‫ברוויה‬
‫ההבדל בין שתי האפשרויות הוא הזמן שלוקח למתח לחזור חזרה ל‪. V D D -‬‬
‫רוויה ‪M‬‬
‫באפשרות הראשונה נקבל עלייה עד למצב יציב של ‪ 2 0 n s‬ובאפשרות השנייה מקבלים ‪. 3  s‬‬
‫‪3 s‬‬
‫כך נוכל לראות את התִפקוד של הטרנזיסטור הגדול‪.‬‬
‫באופן העלייה של האפשרות השנייה ניתן לראות עלייה ליניארית המתאימה לרוויה של הטרנזיסטור הקטן ולאחר מכן‬
‫עלייה חדה יותר הנובעת מהמצב הפעיל של שני הטרנזיסטורים הקטן והבינוני‪.‬‬
‫‪1‬‬
‫המשך ‪:DAC‬‬
‫‪0 /V R E F‬‬
‫‪b0‬‬
‫נכיר סוג חדש של ממיר – ‪.Simple DAC‬‬
‫המוצא כתלות בכניסות הוא‪:‬‬
‫‪4 b 2  2 b1  b 0‬‬
‫‪7‬‬
‫‪.V0 ‬‬
‫ז"א יש לנו מילה בינארית ‪ b 2 b1b0‬והמשמעות היא בכלליות‪:‬‬
‫‪0 /V R E F‬‬
‫‪V REF‬‬
‫‪7‬‬
‫‪b2‬‬
‫‪b1‬‬
‫‪4R‬‬
‫" ‪" b 2 b1b 0‬‬
‫‪0 /V R E F‬‬
‫‪2R‬‬
‫‪R‬‬
‫‪Vout‬‬
‫‪.V0 ‬‬
‫הערכים הלוגיים הם‪ 0, V R E F :‬בתור‪ 0,1 :‬לוגים‪.‬‬
‫‪b2‬‬
‫כיצד ניגשים למערכת?‬
‫נעבוד עם המערכת לפי סופרפוזיציה‪:‬‬
‫א‪ .‬נתחיל מ‪: b2  0 , b1  b0  0 -‬‬
‫נקבל‪:‬‬
‫לכן‪:‬‬
‫‪R‬‬
‫‪4‬‬
‫‪7‬‬
‫‪b2‬‬
‫‪4‬‬
‫‪7‬‬
‫‪b2‬‬
‫‪R‬‬
‫‪R‬‬
‫‪Vout‬‬
‫‪ R   2 R  4 R  ‬בחישוב הנגדים‪.‬‬
‫‪2R‬‬
‫‪‬‬
‫‪Vout‬‬
‫‪4R‬‬
‫‪.V0 ‬‬
‫ב‪+‬ג‪ .‬באותו האופן נקבל גם כי‪:‬‬
‫‪b1‬‬
‫‪2‬‬
‫‪7‬‬
‫‪ V 0 ‬ו‪b 0 -‬‬
‫‪1‬‬
‫‪7‬‬
‫‪.V0 ‬‬
‫נחבר לפינים‪ b0  P 3.0 , b1  P 3.1 , b2  P 3.2 :‬ונוכל להזין מילה בת ‪ 3‬ביטים‪.‬‬
‫קיימת בעיה שלא מוציאים זרם מהמערכת ולכן הוא יכול לחזור אחורה ולגרום בעיות‪ .‬לכן נעדיף להשתמש בחוצץ מתח‬
‫ביציאה ‪. V 0‬‬
‫‪| 10‬‬
‫מעבדה למיקרו מחשבים ‪ -‬סיכום ועריכה מאת שי ידרמן‬
‫‪R‬‬
‫‪4‬‬
‫‪3‬‬
‫סוג רביעי של ממיר‪:Binary Weighted DAC :‬‬
‫‪R‬‬
‫לפי כללי הזהב יש הארקה בכניסה למגבר ולכן הזרמים יהיו‪:‬‬
‫‪‬‬
‫‪ V REF‬‬
‫‪R‬‬
‫‪b‬‬
‫‪0‬‬
‫‪N 1‬‬
‫‪ ..... ‬‬
‫‪ b N 1‬‬
‫‪Vout‬‬
‫‪.I  ‬‬
‫‪2R‬‬
‫‪bN  2‬‬
‫‪‬‬
‫‪N 1‬‬
‫‪ R‬‬
‫‪2‬‬
‫‪R‬‬
‫‪b N 1‬‬
‫‪R‬‬
‫‪‬‬
‫‪2‬‬
‫‪b0‬‬
‫‪b‬‬
‫‪b‬‬
‫המתח ביציאה הוא‪. V 0   IR   R  N 1  .....  N 01  V R E F   2 1 N  2 N 1 b N 1  2 N 1 b N  2  ...  b0  V R E F :‬‬
‫‪2‬‬
‫‪R‬‬
‫‪ R‬‬
‫שוב קיבלנו בדיוק מילה בת ‪ N‬ביטים‪.‬‬
‫עד כאן הרצאה ‪ .11‬תאריך‪3.1.12 :‬‬
‫ממיר‪:R-2R DAC :‬‬
‫מתח היציאה הוא‪:‬‬
‫‪4 b 4  2 b1  b 0‬‬
‫‪8‬‬
‫‪b2‬‬
‫‪. Vout ‬‬
‫נקבל‪:‬‬
‫‪2‬‬
‫‪2R‬‬
‫‪.V out ‬‬
‫נקבל בסוף‪:‬‬
‫‪8‬‬
‫‪b2‬‬
‫‪2R‬‬
‫‪2R‬‬
‫‪R‬‬
‫‪R‬‬
‫‪R‬‬
‫‪Vout‬‬
‫‪Vout‬‬
‫‪R‬‬
‫‪2R  2R‬‬
‫‪2R‬‬
‫‪. V out ‬‬
‫‪b0‬‬
‫‪th even in‬‬
‫‪R REF‬‬
‫‪b0‬‬
‫‪2‬‬
‫‪b0 / 2‬‬
‫‪R REF‬‬
‫באופן זהה נקבל כי‪:‬‬
‫לכן בסה"כ‪:‬‬
‫‪b1‬‬
‫‪2R‬‬
‫‪.V out ‬‬
‫‪4‬‬
‫‪4 b 4  2 b1  b 0‬‬
‫‪8‬‬
‫‪‬‬
‫‪b0‬‬
‫‪I SC ‬‬
‫‪2R‬‬
‫‪2R‬‬
‫‪2R‬‬
‫‪I SC ‬‬
‫‪Vout‬‬
‫‪R‬‬
‫‪. Vout ‬‬
‫‪| 11‬‬
‫‪R‬‬
‫‪R‬‬
‫‪Vout‬‬
‫‪2R‬‬
‫‪R‬‬
‫‪b0‬‬
‫‪4‬‬
‫מעבדה למיקרו מחשבים ‪ -‬סיכום ועריכה מאת שי ידרמן‬
‫‪2R‬‬
‫‪2R‬‬
‫‪2R‬‬
‫‪2R‬‬
‫‪Vout‬‬
‫‪R‬‬
‫‪R‬‬
‫‪b0‬‬
‫‪b0‬‬
‫‪R‬‬
‫‪2R‬‬
‫‪b2‬‬
‫נקבל את המעגל המתואר‪.‬‬
‫מומלץ לפתור ע"י משפט תבנין‪.‬‬
‫‪2R‬‬
‫‪Vout‬‬
‫באופן דומה כאשר‪b0  0, b 2  b1  0 :‬‬
‫‪b0‬‬
‫‪2R‬‬
‫‪R‬‬
‫כדי להבין את אופן פעולת הממיר נעזר בסופרפוזיציה‪.‬‬
‫נתחיל מ‪: b2  0, b0  b1  0 -‬‬
‫‪b2‬‬
‫‪b1‬‬
‫‪b0‬‬
‫‪2R‬‬
‫‪2R‬‬
‫‪R‬‬
‫‪b0 / 2‬‬
‫נעבור לממירים ‪:A/D‬‬
‫‪:Successive Approximation A/D‬‬
‫הבקר מזין מתח דיגיטלי שהולך וגדל‪ ,‬המתח נכנס ל‪ DAC-‬והולך למשווה‪.‬‬
‫המשווה מקבל את האות האנלוגי (הכניסה לצורך העניין) ומוציא ‪ 1‬כאשר המתח שהתקבל מהבקר עובר את המתח של‬
‫האות האנלוגי‪ .‬הערך ‪ 1‬הנ"ל הולך חזרה לבקר ומורה לו להוציא את ערך המתח הנ"ל (שבו הוא עבר את ‪.) V in‬‬
‫השיטה הנ"ל לא חכמה במיוחד כי עבור אות של ‪ 16‬ביטים למשל נצטרך ‪ 16000‬השוואות‪.‬‬
‫מוצא‬
‫‪V in‬‬
‫כדי להתגבר על הקושי נעזר בשיטת החצייה‬
‫(כן – מתברר שנומרית עזר למשהו‪.)..‬‬
‫‪‬‬
‫" ‪" C‬‬
‫‪DAC‬‬
‫נעשה זאת באופן הבא‪:‬‬
‫יחידת הבקרה תזין ערך מתח‪ ,‬למשל‪ 100 :‬השקול ל‪. 4 v -‬‬
‫נניח כי ביציאה יש ‪ . 4 .6 v‬הבקרה בשלב זה מקבל ‪ 0‬מהמשווה‬
‫המעיד כי הערך הקיים גדול מהמוזן‪ ,‬לכן נבדוק את ‪ 110‬השקול ל‪ . 6 v -‬נקבל מהמשווה ‪ 1‬המעיד כי עברנו את המתח בכניסה‪.‬‬
‫לכן נרד ל‪ 101-‬השקול ל‪ 5 v -‬אשר עדיין גדול מ‪ 4 .6 v -‬המקורי אבל היות והוא קרוב יותר הבקר ידע להוציא אותו‪.‬‬
‫(התחלנו מערך אמצעי‪ ,‬במקרה שלנו אנו נעים מ‪ 000-‬עד ל‪ 111-‬עבור ‪ 3‬ביטים ולכן הוא‪.)100 :‬‬
‫עד כאן הרצאה ‪ .12‬תאריך‪10.1.12 :‬‬
‫יש לנו בעיה רצינית בהמרה של אות אנלוגי לדיגיטלי עקב השינוי של האות בזמן‪.‬‬
‫המערכת שנועדה להתמודד עם זה נקראת ‪ – Sample&Hold‬שמה מעיד על תפקידה‪..‬‬
‫יש אות אנלוגי שנכנס למערכת והמוצא הוא מדרגות שנשמרות לפרק זמן מספיק ארוך כדי לאפשר למעבד לעבוד עם המתחים‪.‬‬
‫להלן מתוארת הסכמה של המערכת‪:‬‬
‫אנו נעזרים ב‪ MOSFET-‬כדי לטעון את הקבל‪:‬‬
‫כאשר נשתמש ב‪ NMOS-‬תהיה בעיה – לא יהיה ניתן לטעון את הקבל‬
‫עד לערך הרצוי מכיוון שערך המירבי הוא‪. V out  V D D  V t :‬‬
‫‪V in‬‬
‫‪Vout‬‬
‫‪‬‬
‫‪‬‬
‫‪RL‬‬
‫לכן נשתמש ב‪ PMOS-‬כי בו ‪ V t  0‬ולכן המתח המירבי שנופל על הקבל הוא‪:‬‬
‫כעת יש לנו בעיה אחרת והיא הפריקה של הקבל‪ .‬לא ניתן לפרוק את הקבל כי‬
‫בהכנסת ‪ 0 v‬עדיין יש מתח על הקבל (והוא ‪ ) V t‬ז"א‬
‫הטרנזיסטור עדיין יכול להימצא בהולכה כלשהי‪.‬‬
‫לשם כך נעזרים ב‪ NMOS-‬נוסף במקביל אליו‪:‬‬
‫‪V out  V D D  V t‬‬
‫אשר יכול להיות גדול מ‪. V D D -‬‬
‫‪V in  V D D‬‬
‫‪‬‬
‫‪‬‬
‫‪Vout‬‬
‫ממירים בעלי שיפוע ‪ 1‬ושני שיפועים – ‪:Single&Dual Slope A/D‬‬
‫מתוארת המערכת הבאה (‪:)Single Slope‬‬
‫בתחילה המעבד נותן הוראה למתח ‪.0‬‬
‫לאחר פרק זמן מסוים המתח עולה ל‪. V R E F -‬‬
‫המתח הזה נופל כולו על הנגד כי המגבר מוארק ווירטואלית‪.‬‬
‫לכן הזרם בנגד הוא‪:‬‬
‫‪V REF‬‬
‫‪R‬‬
‫‪R‬‬
‫‪‬‬
‫‪.‬‬
‫הזרם הולך לקבל ולכן הוא נטען והביטוי המשקף את הטעינה של המתח הוא‪:‬‬
‫‪| 12‬‬
‫‪V in‬‬
‫‪S& H‬‬
‫מעבדה למיקרו מחשבים ‪ -‬סיכום ועריכה מאת שי ידרמן‬
‫‪C‬‬
‫‪t‬‬
‫‪V REF‬‬
‫‪RC‬‬
‫‪‬‬
‫‪‬‬
‫‪V REF / 0 v‬‬
‫‪‬‬
‫(אנו מתייחסים ל‪ V R E F -‬כשלילי ולכן הביטוי הוא ליניארי חיובי)‪.‬‬
‫עליית המתח מגיעה למשווה הסופי אשר מוציא ‪ 1‬כאשר המתח משתווה למתח‬
‫‪ . V in‬מהירות המעבד קובעת את דיוק המדידות‪.‬‬
‫השיטה הזאת סובלת מהבעיה הבאה‪:‬‬
‫הקבוע‪T s  n :‬‬
‫המאפיינים של הקבל והנגד יכולים להשתנות עם הזמן ולכן גם‬
‫‪V REF‬‬
‫‪RC‬‬
‫‪V in  ‬‬
‫‪C‬‬
‫כדי להתגבר על זה בנו את ה‪:Dual-Slope -‬‬
‫המערכת מכניסה בהתחלה את ‪ V in‬לזמן מסוים‪,‬‬
‫הקבל מקבל זרם בקצב מסוים‪:‬‬
‫‪V in‬‬
‫‪I ‬‬
‫‪.‬‬
‫‪V in‬‬
‫‪R‬‬
‫‪‬‬
‫והמתח במוצא הוא‪:‬‬
‫‪t‬‬
‫‪R‬‬
‫‪V in‬‬
‫‪‬‬
‫‪.‬‬
‫‪‬‬
‫‪V R E F / V in‬‬
‫‪RC‬‬
‫‪V in‬‬
‫במצב זה המתח על הקבל יורד ליניארית עם שיפוע‪:‬‬
‫‪.‬‬
‫‪RC‬‬
‫לאחר ‪ nT S‬אשר מובנה במערכת‪ ,‬מחליפים את המתח ל‪-‬‬
‫המשווה בודק מתי המתח על הקבל מתאפס‪.‬‬
‫ז"א‪:‬‬
‫‪V REF‬‬
‫‪m‬‬
‫‪n‬‬
‫‪m T S  0  V in  ‬‬
‫‪V REF‬‬
‫‪RC‬‬
‫‪nT S ‬‬
‫‪V in‬‬
‫‪V REF‬‬
‫אשר הפוך‬
‫מ‪V in -‬‬
‫בסימן‪ ,‬אז המתח על הקבל עולה ליניארית‪.‬‬
‫‪ ‬ואין לנו תלות בנגד והקבל כלל‪.‬‬
‫‪S‬‬
‫‪RC‬‬
‫‪VREF‬‬
‫‪RC‬‬
‫‪mT‬‬
‫‪S‬‬
‫‪nT‬‬
‫‪V in‬‬
‫‪‬‬
‫‪‬‬
‫‪RC‬‬
‫עד כאן הרצאה ‪ .13‬תאריך‪17.1.12 :‬‬
‫‪V REF‬‬
‫ממיר ‪ A/D‬מסוג ‪:Flash‬‬
‫‪a2N 2‬‬
‫היתרון שלו הוא מהירות והחיסרון מתבטא בדיוק‪.‬‬
‫‪N‬‬
‫‪V REF‬‬
‫‪‬‬
‫אופן פעולת הממיר‪:‬‬
‫יש לנו שרשרת של ‪ 2‬נגדים‪ .‬מכניסים מתח מסוים ויש להשוות בין המתח הזה‬
‫ומתחי הייחוס‪ .‬לפי עיקרון זה יש לנו ‪ 2 N‬משווים דיגיטלים‪ .‬אותנו מעניין לדעת‬
‫את נקודת המעבר בין ה‪ 1-‬ל‪ .0-‬השיטה לא יעילה מכיוון שעבור ‪ 8‬ביטים יש‬
‫להיעזר ב‪ 256-‬משווים‪ .‬לכן שמים מעגל צירופי המחבר את כל המשווים ומוציא‬
‫מתח בדיוק הרצוי‪ .‬לרצף ה‪ 1/0-‬של המעגל הצירופי קוראים‪.Thermonitor code :‬‬
‫‪N‬‬
‫מעגל‬
‫‪‬‬
‫‪2  `1‬‬
‫‪N‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪V REF‬‬
‫‪b0‬‬
‫‪0 1‬‬
‫‪0 1‬‬
‫‪X 0‬‬
‫‪X 1‬‬
‫‪X X‬‬
‫‪| 13‬‬
‫‪b1‬‬
‫‪V in‬‬
‫‪. b1b0‬‬
‫‪a 2 a1 \ a 0‬‬
‫‪0 1‬‬
‫‪00 0 0‬‬
‫‪01 X 1‬‬
‫‪10 X 1‬‬
‫‪11 X X‬‬
‫מעבדה למיקרו מחשבים ‪ -‬סיכום ועריכה מאת שי ידרמן‬
‫‪a2‬‬
‫‪b1‬‬
‫‪b0‬‬
‫‪1‬‬
‫‪N‬‬
‫‪2‬‬
‫‪R‬‬
‫דוגמא‪:‬‬
‫עבור ‪ N  2‬נקבל את האיור הבא‪:‬‬
‫אנו רוצים לדעת את המוצא שהוא בן ‪ 2‬סיביות‪:‬‬
‫לשם כך נעזר במפת קרנו‪:‬‬
‫‪2‬‬
‫‪‬‬
‫‪a0‬‬
‫צירופי‬
‫‪R‬‬
‫מעגל‬
‫‪‬‬
‫‪V REF‬‬
‫‪11‬‬
‫‪3‬‬
‫‪REF‬‬
‫‪V‬‬
‫‪R‬‬
‫‪4‬‬
‫‪10‬‬
‫‪a1‬‬
‫‪‬‬
‫צירופי‬
‫‪1‬‬
‫‪REF‬‬
‫‪V‬‬
‫‪2‬‬
‫‪01‬‬
‫‪a0‬‬
‫‪‬‬
‫‪VREF‬‬
‫‪R‬‬
‫‪1‬‬
‫‪R‬‬
‫‪4‬‬
‫‪00‬‬
‫‪R‬‬
‫עבור מתח בתחום ‪ 00‬מקבלים‪ a 2 a1 a 0  000 :‬ואנו רוצים להוציא‪ - b1b0  00 :‬סימנו זאת בטבלה‪.‬‬
‫עבור מתח בתחום ‪ 01‬מקבלים‪ a 2 a1 a 0  001 :‬ואנו רוצים להוציא‪ - b1b0  01 :‬סימנו זאת בטבלה‪.‬‬
‫עבור מתח בתחום ‪ 10‬מקבלים‪ a 2 a1 a 0  011 :‬ואנו רוצים להוציא‪ - b1b0  10 :‬סימנו זאת בטבלה‪.‬‬
‫עבור מתח בתחום ‪ 11‬מקבלים‪ a 2 a1 a 0  111 :‬ואנו רוצים להוציא‪ - b1b0  1 1 :‬סימנו זאת בטבלה‪.‬‬
‫שאר הצירופים הם צירופים אדישים‪.‬‬
‫כאשר ניקח דומיינים עיקריים נקבל‪ . b0  a 2  a 0 a1' :‬רואים כי אם ‪ a 2‬דלוק אז הספרה התחתונה צריכה להיות ‪.1‬‬
‫הפונקציה השנייה היא‪ . b1  a1 :‬גם זה מעיד כי הביט העליון דלוק כאשר אנו נמצאים בחצי המערכת ולמעלה‪.‬‬
‫לכן נקבל את המעגל הצירופי הבא‪:‬‬
‫‪V REF‬‬
‫‪V in‬‬
‫‪a2‬‬
‫‪11‬‬
‫‪R‬‬
‫‪3‬‬
‫‪‬‬
‫‪REF‬‬
‫‪b1‬‬
‫‪V‬‬
‫‪4‬‬
‫‪10‬‬
‫‪a1‬‬
‫‪1‬‬
‫‪‬‬
‫‪b0‬‬
‫‪R‬‬
‫‪REF‬‬
‫‪V‬‬
‫‪2‬‬
‫‪01‬‬
‫‪a0‬‬
‫‪‬‬
‫‪VREF‬‬
‫‪R‬‬
‫‪1‬‬
‫‪4‬‬
‫‪R‬‬
‫‪00‬‬
‫‪:Pipelined A/D‬‬
‫בונים ממיר ‪ A/D‬מממירים קטנים שכל אחד מהם ‪ A/D‬בעצמו‪.‬‬
‫לוקחים את היחידה המתוארת ומשרשרים אותה לעצמה מספר פעמים‪.‬‬
‫הממיר ‪ A/D‬הוא בן מספר סיביות קטן (אחת או שתיים)‪.‬‬
‫בסכימה אנו רואים את ההפרש בין הערך המדוד והערך היוצא מהממיר ‪.D/A‬‬
‫ההגבר ‪ K‬יהיה ‪ 2, 4, 8.....‬בהתאם למשמעות הסיבית‪.‬‬
‫‪K‬‬
‫‪‬‬
‫‪‬‬
‫‪D / A‬‬
‫‪A/D‬‬
‫‪V in‬‬
‫‪S& H‬‬
‫דוגמא‪:‬‬
‫כאשר‬
‫‪N  2‬‬
‫נקבל את הסרטוט הבא‪:‬‬
‫‪A/D‬‬
‫‪S& H‬‬
‫‪K‬‬
‫‪‬‬
‫‪‬‬
‫‪D / A‬‬
‫‪A/D‬‬
‫‪S& H‬‬
‫‪V in‬‬
‫היחידה האחרונה צריכה רק את שתי הקופסאות הראשונות‪.‬‬
‫נניח‪ V R E F  4 v :‬ונחלק אותו ל‪ 4-‬חלקים עבור ‪ 2‬ביטים כמו מקודם‪ .‬נפעיל את היחידה ל‪ 4-‬שעונים‪:‬‬
‫יש לנו ‪ 2‬דרגות‪ N  2 :‬ולכן ההגבר צריך להיות פי ‪ 2 N  2 2  4‬כדי להעביר את השארית לדרגה הבאה‪.‬‬
‫‪3‬‬
‫נניח שהכל מאופס בתחילה‪ ,‬בזמן אפס אנו רואים בכניסה את ‪. 1 .8v‬‬
‫‪2‬‬
‫‪1‬‬
‫‪3 .3 v‬‬
‫‪2 .1v‬‬
‫‪1 .8 v‬‬
‫‪11‬‬
‫‪10‬‬
‫‪01‬‬
‫‪3v‬‬
‫‪2v‬‬
‫‪1v‬‬
‫‪0 .3 v‬‬
‫‪0 .1v‬‬
‫‪0 .8 v‬‬
‫‪1 .2 v‬‬
‫‪0 .4 v‬‬
‫‪3 .2 v‬‬
‫‪0 .4 v‬‬
‫‪3 .2 v‬‬
‫‪0v‬‬
‫‪00‬‬
‫‪11‬‬
‫‪00‬‬
‫‪ 1.8 v , 2.1v , 3.3 v , 0.6 v‬‬
‫נקבל את המספרים הבאים בכל קופסה‪:‬‬
‫בשורה הראשונה כתבנו את המחזורים‪ ,‬ז"א בכל כניסה של מתח כיצד מגיבה כל קופסא‪.‬‬
‫ננתח את אופן הפעולה‪:‬‬
‫הדוגם מקבל ערך התחלתי של ‪ . 1 .8v‬הוא מעביר אותו לממיר ‪ A/D‬אשר ממיר ל‪ 01-‬היות ואנו נמצאים‬
‫בתחום זה בחלוקת המתח ‪ V R E F  4 v‬ל‪ .4-‬הממיר ‪ D/A‬מעביר את הערך המתאים ל‪ 01-‬שהוא ‪. 1v‬‬
‫המסכם מחזיר הפרש בין המתח הנמדד והמתח היוצא מהממירים (הוא ‪ ) 0 .8 v‬ומעביר למגבר‪.‬‬
‫‪| 14‬‬
‫מעבדה למיקרו מחשבים ‪ -‬סיכום ועריכה מאת שי ידרמן‬
‫‪. V in‬‬
‫המגבר מכפיל פי ‪ 4‬ושולח לדרגה הבאה את הערך ‪ . 3 .2 v‬כעת בדוגם של הדרגה הבאה נמצא עדיין‬
‫נמצא הערך הבינארי ‪ .00‬עד כאן פירוט המחזור הראשון‪.‬‬
‫במחזור השני נכנס המתח ‪ 2 .1v‬ועובר את כל התהליך בצורה דומה‪ .‬כאשר מגיעים למגבר (מתח של ‪ ) 0 .4 v‬המתח‬
‫שנמצא בדוגם של הדרגה השנייה הוא ‪ 3 .2 v‬אשר מועבר לממיר ומחזיר את הערך הבינארי ‪.11‬‬
‫רק עכשיו אנו יכולים לדעת את הערך הבינארי המתאים למתח הראשון שהכנסנו‪ 1 .8v :‬וזאת באופן הבא‪:‬‬
‫ניקח את הסיביות של הממיר ‪ A/D‬מכל דרגה ונחבר לפי סדר חשיבות יורד‪ ,‬דהיינו‪. 0 1 1 1 :‬‬
‫‪N‬‬
‫זה הוא הערך המתאים שמחזירה המערכת ל‪ . 1 .8v -‬כשנרצה לדעת את ערכו המקורי נחלק את הערך הבינארי ב‪2 -‬‬
‫‪0v‬‬
‫ונכפיל ב‪ . V R E F -‬נקבל‪:‬‬
‫‪4  1 .7 5 v‬‬
‫‪7‬‬
‫‪16‬‬
‫‪V REF ‬‬
‫‪7‬‬
‫ובממיר שאחריו‬
‫‪.‬‬
‫‪16‬‬
‫בעמודה הבאה מתואר מחזור נוסף (שלישי) אשר בו ניתן לראות כי עבר המידע הבינארי מהשלב הקודם‪.‬‬
‫לכן ניתן לחשב את הערך הבינארי של המתח השני והוא ‪ .1000‬קל לראות כי ערכו הוא ‪. 2 v‬‬
‫באופן כללי‪ ,‬המערכת נקראת ‪ Pipeline‬מכיוון שיש לחכות ‪ N‬מחזורים לאחר שהמערכת נותנת את הערך הבינארי של‬
‫המתח הראשון ומשם והלאה בכל שלב היא מחזירה ערך של המדידה הבאה‪.‬‬
‫עד כאן הרצאה ‪ .14‬תאריך‪24.1.12 :‬‬
‫ממירים מסוג‪:    :‬‬
‫‪N s‬‬
‫יש לנו אות אנלוגי או דיגיטלי נכנס ויוצא השני‪.‬‬
‫הרכיב המרכזי הוא אינטגרטור‪.‬‬
‫בנוסף יש לנו גם רעש‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪Vout‬‬
‫‪D‬‬
‫‪‬‬
‫‪‬‬
‫‪k /s‬‬
‫‪‬‬
‫‪ V out  ‬‬
‫‪‬‬
‫נמצא את פונקצית התמסורת של הממיר‪:‬‬
‫‪ V in‬‬
‫‪k‬‬
‫‪s‬‬
‫‪‬‬
‫‪A‬‬
‫‪D‬‬
‫‪A‬‬
‫‪‬‬
‫‪V in‬‬
‫‪ V out  s    N  s  ‬או‪:‬‬
‫‪V in‬‬
‫‪k‬‬
‫‪sk‬‬
‫‪N s ‬‬
‫‪s‬‬
‫‪sk‬‬
‫‪. V out ‬‬
‫מקבלים כאן מצב שבו ככל שההגבר של האינטגרטור יותר גדול כך אנו מקבלים סינון טוב יותר‪.‬‬
‫יחד עם זאת ניתן לראות כי אפשר ליצור סינון ללא תלות דווקא במגבר אלא בתדר השידור‪:‬‬
‫פונקציות התמסורת של המוצא ושל הרעש הן‪:‬‬
‫כאשר‪   k :‬נקבל‪ 1 :‬‬
‫‪k‬‬
‫‪ j  ‬‬
‫‪j  k‬‬
‫‪s‬‬
‫‪sk‬‬
‫‪, TN  out  s  ‬‬
‫‪ Tin  out‬ו‪ 0 -‬‬
‫‪j‬‬
‫‪j  k‬‬
‫‪k‬‬
‫‪sk‬‬
‫‪. Tin  o u t  s  ‬‬
‫‪. T N  out  j  ‬‬
‫רואים כי המערכת יחסית "מושלמת" עבור תדרים נמוכים‪.‬‬
‫לכן נעדיף לעבוד איתם ונשים ‪ LPF‬במוצא‪.‬‬
‫ממיר ‪:    A/D‬‬
‫‪t‬‬
‫נכנס עם אות האינטגרטור‪ e  y  d y :‬‬
‫‪0‬‬
‫‪1‬‬
‫‪Ts‬‬
‫‪.‬‬
‫‪dig .‬‬
‫‪1 b‬‬
‫‪LPF‬‬
‫‪A/D‬‬
‫לאחר מכן הוא עובר בדוגם וחוזר כרעש למערכת‪.‬‬
‫בסוף יש לנו מסנן ‪ LPF‬ומקבלים את האות‪.‬‬
‫המסנן ‪ A/D‬מעביר מידע על הסימן בלבד‪ 1 ,‬עבור חיובי ו‪ 0-‬עבור שלילי‪.‬‬
‫המסנן ‪ D/A‬מעביר ‪ A‬עבור אות חיובי ו‪ -A-‬עבור אות שלילי‪.‬‬
‫‪e  kT s ‬‬
‫‪‬‬
‫‪e  kT s ‬‬
‫‪S& H‬‬
‫‪1 b‬‬
‫‪D/A‬‬
‫‪1‬‬
‫‪1 b‬‬
‫‪A/D‬‬
‫‪A‬‬
‫‪A‬‬
‫‪| 15‬‬
‫מעבדה למיקרו מחשבים ‪ -‬סיכום ועריכה מאת שי ידרמן‬
‫‪‬‬
‫‪‬‬
‫‪V in‬‬
‫‪1 b‬‬
‫‪D/A‬‬
‫דוגמא‪:‬‬
‫נתון אות קבוע עם הנתונים‪.   0 , A  5 v , V in  2 v :‬‬
‫בטבלה הבאה ניתן לראות את המתחים בכל שלב בזמנים שלפני הדגימה ואחרי הדגימה‪.‬‬
‫‪‬‬
‫‪D / A in t‬‬
‫‪‬‬
‫‪A / D in t‬‬
‫‪‬‬
‫‪in t‬‬
‫‪‬‬
‫‪‬‬
‫‪e in t‬‬
‫‪‬‬
‫‪in t‬‬
‫‪ 5v‬‬
‫‪5v‬‬
‫‪5v‬‬
‫‪ 5v‬‬
‫‪0v‬‬
‫‪1v‬‬
‫‪1v‬‬
‫‪0v‬‬
‫‪ 3v‬‬
‫‪4v‬‬
‫‪1v‬‬
‫‪2v‬‬
‫‪ 3v‬‬
‫‪7v‬‬
‫‪ 3v‬‬
‫‪ 3v‬‬
‫‪2v‬‬
‫‪2v‬‬
‫‪2v‬‬
‫‪2v‬‬
‫‪5v‬‬
‫‪5v‬‬
‫‪ 5v‬‬
‫‪5v‬‬
‫‪5v‬‬
‫‪1v‬‬
‫‪1v‬‬
‫‪0v‬‬
‫‪1v‬‬
‫‪1v‬‬
‫‪5v‬‬
‫‪2v‬‬
‫‪ 1v‬‬
‫‪6v‬‬
‫‪3v‬‬
‫‪7v‬‬
‫‪ 3v‬‬
‫‪ 3v‬‬
‫‪7v‬‬
‫‪ 3v‬‬
‫‪2v‬‬
‫‪2v‬‬
‫‪2v‬‬
‫‪2v‬‬
‫‪2v‬‬
‫‪5v‬‬
‫‪1v‬‬
‫‪0v‬‬
‫‪ 3v‬‬
‫‪2v‬‬
‫ניתן לראות כי ממוצע המוצא הוא בדיוק‬
‫‪ 2v‬‬
‫‪5  3  5  7‬‬
‫‪10‬‬
‫‪V in‬‬
‫‪. V out ‬‬
‫עשינו הרבה שורות כי יש להגיע שוב לשלב שבו האינטגרטור מתאפס‪ .‬רק אז ניתן לקבל את המידע על אות המוצא‪.‬‬
‫מבנה המבחן‪:‬‬
‫ שאלה אחת היא על תיכנות ‪ -‬יש לתכנן תוכנה קצרה ‪ 50 -‬נק'‪.‬‬‫ שאלה שנייה היא על פורטי קלט‪/‬פלט – יש לדעת מרמת הטרנזיסטורים ועד בכלל‪...‬‬‫‪ -‬כנראה ששאלה שלישית תהיה על ממירים‪.‬‬
‫עד כאן הרצאה ‪ .15‬תאריך‪31.1.12 :‬‬
‫הדרן עלך ממירי ‪ A/D‬וסליקא לה קורס מעבדה במיקרו מעבדים‬
‫חזק חזק ונתחזק‬
‫‪| 16‬‬
‫מעבדה למיקרו מחשבים ‪ -‬סיכום ועריכה מאת שי ידרמן‬

Similar documents