דיודה תרמית על השבב במעבדים של Analog Devices

דיודה טרמיתמיטש מונט, Analog Devices

ככל שמהירות המעבדים עולה, עולה גם פיזור החום, שגורם לטמפרטורת עבודה גבוהה. נושא ניהול החום חשוב עבור מעבדים הפועלים במהירויות גבוהות, כדי להבטיח את פעולתם האמינה ואורך חייהם. מעבדי SHARC מסוג ADSP–214xx משלבים דיודה תרמית על השבב שיכולה לשמש לניטור טמפרטורת השבב ולאפשר נקיטת אמצעים מתאימים כשהיא עולה מעל ערך סף.
שימו לב: הדיודה התרמית על השבב שבה אנו דנים במאמר זה מתייחסת למעבדי ADSP–214xxx בלבד. (במעבדי ADSP–2147x הדיודה התרמית קיימת רק במארז 100–LQFP_EP). בתיק המוצרים הנוכחי של Analog Devices אין מעבדים נוספים שבהם משולבת דיודה תרמית על השבב.
מאמר זה מתאר כיצד אפשר לחבר בממשק את הדיודה התרמית לחיישן טמפרטורה ספרתי. קוד לדוגמה של ממשק הדיודה התרמית מסופק גם בקובץ .zip שמצורף למעגלי ההערכה של מעבדי ADSP–214xx.

דיודה תרמית
במעבדי SHARC
הדיודה התרמית במעבדי ADSP–214xx היא טרנזיסטור PNP דו–קוטבי (BJT) עם קולט (collector) מוארק. הפין THD_P מחובר לפולט (emitter) והפין THD_M מחובר לבסיס של הטרנזיסטור. חיבורים אלו אמורים להתחבר לפינים D– ו– D+ של החיישן.

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

משוואה 1. השינוי במתח VBE כאשר הדיודה מופעלת בשני זרמים שונים.
כאשר:
*K הוא קבוע בולצמן (1.38 x 10–23)
*q הוא מטען האלקטרון (1.6 x 10–19 קולון)
*T היא הטמפרטורה המוחלטת במעלות קלווין
*N הוא היחס בין שני הזרמים
דוגמאות לחיישנים אלו כוללות את ההתקן ON Semiconductor ואת ההתקן LM86 של National Semiconductor.
בנוסף למדידת הטמפרטורה מרחוק, יש בחלק מחיישני הטמפרטורה הספרתיים אפשרות למדוד טמפרטורה מקומית. לחיישן יש קבוצת אוגרים שאפשר לגשת אליהם דרך חיבור טורי (למשל SMBus). אוגרים אלו יכולים לשמש את ההתקן למדידת הטמפרטורה העצמית שלו, (למשל כדי לקבוע את הקונפיגורציה של פרמטרים שונים בחיישן כמו קצב ההמרה).
לחיישן טמפרטורה ספרתי יש גם אותות מוצא המציינים תנאי טמפרטורת יתר או טמפרטורת חסר, כדי שאפשר יהיה לנקוט בפעולה המתאימה. הפעולה יכולה להיות הפעלת מאוורר או הקטנת מהירות היע”מ (CPU), או אף כיבוי המעבד במצב חמור.
לדוגמה, לחיישן ADM103 יש שני אותות מוצא (/THERM ו–/ALERT). האות /THERM הוא אות התרעה שלא ניתן למיסוך ומשמש בדרך כלל לציין שהטמפרטורה חרגה מגבול קריטי ויש צורך לכבות את המערכת. /ALERT משמש כאות התרעה, כדי לנקוט בפעולה שתקטין את הטמפרטורה ותמנע את הצורך בכיבוי המערכת. לשני האותות יש אוגרים משל עצמם המיועדים להגדרת גבול הטמפרטורה העליון. בדרך כלל, הגבול של /THERM גבוה מהגבול של /ALERT. נוסף להתרעת טמפרטורת יתר, האות /ALERT יכול לשמש גם כציון לטמפרטורת חסר או למצב תקלה (מעגל מקוצר או מנותק של חיישן מרוחק).
מצד שני, במערכות מסוימות, /THERM יכול לשמש גם לצורך נקיטה בפעולות שונות מכיבוי המערכת (לדוגמה הפעלה או כיבוי מאוורר או הקטנת מהירות אות השעון של המעבד אחרי חריגה מסף טמפרטורה מסוים). כך אפשר לנצל את ההיסטרזיס הניתן לתכנות שמונע מאות /THERM לחזור למצבו, מיד כשהטמפרטורה יורדת מתחת לסף העליון. במערכות כאלה, אפשר להגדיר את הגבול של /ALERT יותר גבוה מהגבול של /THERM כדי לציין שאין אפשרות לשלוט בעליית הטמפרטורה, גם לאחר הפעלת המאוורר או הקטנת מהירות אות השעון של המעבד ושנדרשת פעולה יותר רצינית (כגון כיבוי המערכת).

יצירת ממשק של חיישני טמפרטורה ספרתיים עם מעבדי SHARC
קיימות שתי דרכים ליצירת ממשק בין חיישני טמפרטורה ספרתיים ומעבדי ADSP–214xx, בתלות בקיומו של בקר מארח במערכת.

מערכת עם בקר מארח
במערכות מסוימות קיים בקר ייעודי שמטפל בתקשורת מול החיישן ובנקיטת פעולות שונות אחרות, כגון כיבוי המערכת או הפעלה וכיבוי מאוורר. במקרה כזה, על החיישן להיות מחובר לפינים THD_P ו–THD_M של הדיודה התרמית שבמעבד ADSP–214xx. איור 1 מציג תרשים בלוקים של מערכת כזו. לחיישן יש שני פינים (D– ו–D+) אשר מחוברים לדיודה תרמית מרוחקת, שני פיני SMBus (SDATA ו–SCLK) לתקשורת עם הבקרה המארח ושתי יציאות (/THERM ו–/ALERT) להתרעות טמפרטורה. לכל ארבעת הפינים (SDATA, SCLK, /THERM ו–/ALERT) נדרשים נגדי Pullup חיצוניים (בדרך כלל 10 קילו–אוהם) את היציאה /THERM אפשר לחבר למעגל בקרת מאוורר ואת /ALERT – לכניסת פסיקה (interrupt) בבקר המארח. /ALERT יכול לשמש בבקר המארח כהתרעה נוספת של טמפרטורת יתר (עם סף שונה מזה של /THERM). כמו כן אפשר להשתמש בו לגילוי טמפרטורת חסר, קצר או נתק.

מערכת ללא בקר מארח
במערכות ללא בקר מארח נפרד, מעבד ADSP–214xx יוצר תקשורת עם החיישן, כדי למדוד את הטמפרטורה שלו עצמו ולהגיב להתרעות. איור 2 מציג את תרשים הבלוקים של מערכת כזו. אפשר לחבר את הפינים SDATA ו–SCLK מהחיישן לממשק שני חוטים (TWI) של המעבד ADSP–214xx. הפין /ALERT יכול להתחבר לכל פין פסיקה חיצוני כמו /IRQ0/1/2 או לפין DAI/DPI (המוגדרים ליצור פסיקה). את האות /THERM אפשר לחבר ישירות למעגל בקרת מאוורר. בדומה למערכת עם בקר מארח, /ALERT יכול לשמש במעבד ADSP–214xx כהתרעה נוספת לטמפרטורת יתר (עם גבולות שונים משל /THERM) וכן אפשר להשתמש בו לגילוי טמפרטורת חסר, קצר או נתק.

ADM1032 שבמערכות ההערכה EZ–KIT Lite של ADSP–214xx
מעגלי EZ–KIT למעבדים ADSP–21469 ו–ADSP–21489 הם דוגמאות מבנה אפשריות ללא בקר מארח, שבהם מעבד SHARC הנמדד עצמו יוצר קשר עם החיישן דרך ממשק I2C. מעגלי ההערכה ממחישים את כל החיבורים הנחוצים בין החיישן ADM1032 למעבד ADSP–214xx. כפי שמוצג בתרשים המעגל, VDD_THD מחובר ל–VDDEXT שהוא 3.3 וולט. D– ו– D+ של החיישן ADM1032 מחוברים ל–THD_P ול–THD_M וחיבורי SCLK ו–SDATA של ADM1-32 מחוברים ל–DPI_PB07 ול–DPI_PB08. אפשר לחבר אותם ל–TWI_DATA ול–TWI_CLK באמצעות SW3). כמו כן, /THERM מחובר לנורית LED שמציינת מצב של טמפרטורת יתר.
שים לב: מערך זה אינו ישים למעגל EZ–KIT של ADSP–21479 מאחר שבמעגל זה מותקן מארז CSP_BGA עם 196 כדוריות והדיודה התרמית קיימת רק במארז LQFP_EP עם 100 חיבורים. עם זאת קוד הדוגמה למעבד ADSP–21479 מצוי אף הוא בקובץ .ZIP המתאים. קוד זה נבדק במעגל BUB פנימי המשמש לבדיקות ולניפוי שגיאות בסיליקון.

גורמים המשפיעים על הדיוק של מדידת הטמפרטורה
קיימים כמה גורמים שיש להתחשב בהם כשמשתמשים בחיישן טמפרטורה ספרתי למדידת טמפרטורת השבב של מעבד ADSP–214xx עם דיודה תרמית. שני גורמים חשובים הם שינויים בפרמטרי הדיודה ומערך הרכיבים במעגל. את שגיאת המדידה הנגרמת על ידי השינויים בפרמטרי הדיודה אפשר לחשב ולתכנת לתוך אוגר הקיזוז של חיישן הטמפרטורה הספרתי. אפשר להקטין למינימום את השגיאות הנובעות ממערך הרכיבים על ידי מעקב אחר קווי ההנחיה המומלצים לתכנון המעגל ומצוינים בדף נתוני החיישן.

פרמטרי הדיודה
גורם האידיאליות
אפשר לראות ממשוואה 1 שמדידת הטמפרטורה בחיישן יחסית ישר לגורם האידיאליות של הדיודה המרוחקת. גורם האידיאליות יכול להיות שונה בדיודות שונות והוא מוגדר בדרך כלל בדף הנתונים של המעבד. חיישן טמפרטורה ספרתי מקוזז לגורם אי–אידיאליות מסוים (לדוגמה, החיישן ADM1032 מקוזז לגורם אידיאליות של 1.008). אם גורם האידיאליות של הדיודה שבמדידה שונה מ–1.008, ייתכן שתהיה שגיאה במדידת הטמפרטורה מרחוק. אפשר להשתמש במשוואה 2 כדי לחשב את השגיאה הנוצרת בטמפרטורה T מעלות צלזיוס.

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

משוואה 3. דוגמה לשגיאה במדידת טמפרטורה מרחוק.
כדי לפצות על שגיאה זו יש לרשום באוגר הקיזוז את הערך +2.45 מעלות צלזיוס.

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

משוואה 4. שגיאת ההתנגדות הטורית
לדוגמה, עבור ADM1032, I2 = 230 מיקרו–אמפר ו–I1 = 13 מיקרו–אמפר ובהנחה שגורם אי–האידיאליות = 1.001:

משוואה 5. דוגמה לשגיאת התנגדות טורית
בהנחה ש–RS = 5 אוהם, שגיאת הטמפרטורה היא 4.375 מעלות צלזיוס. מאחר שהטמפרטורה הנמדד גבוהה מהטמפרטורה בפועל, יש לכתוב באוגר הקיזוז –4.375 מעלות.

קוד לדוגמה של מעגל EZ ל–ADSP–214xx
דוגמה פשוטה מדגימה כיצד ליצור תקשורת עם חיישן ADM1032 באמצעות קריאה וכתיבה באוגרים שלו וכיצד להשתמש באותות /THERM ו–/ALERT. בתחילה הקוד מאתחל כמה גבולות טמפרטורה ואת אוגר הקיזוז לערכים שאפשר להגדיר בקובץ Thermal_Diode_ADM1032.h. לאחר מכן הוא מציג באופן מחזורי את הטמפרטורה מרחוק הנמדדת ומוצא הודעה מתאימה אם יש חריגה מאחד הגבולות.

תגובות סגורות