העולם הפיזי הוא אנלוגי: טמפרטורה, אור, קול ומתח משתנים ברציפות. לעומת זאת, בקרים מתוכנתים ומחשבים
מבינים רק מספרים בדידים — אפסים ואחדות. ממיר אנלוגי-לספרתי (ADC) מתרגם מתח רציף למספר בינארי,
וממיר ספרתי-לאנלוגי (DAC) עושה את הפעולה ההפוכה — הופך מספר בינארי בחזרה למתח.
כל מערכת מדידה, בקרה או שמע עוברת דרך שני הממירים האלה.
מספר הסיביות של הממיר קובע לכמה מדרגות מחולק טווח המתח. ממיר בעל n סיביות מייצר 2ⁿ רמות שונות. גודל המדרגה הקטנה ביותר נקרא הסיבית הפחות משמעותית (LSB):
LSB = VREF / 2n
לדוגמה: ממיר של 8 סיביות עם מתח ייחוס של 5V נותן מדרגה של 5V / 256 ≈ 19.5mV.
📐 שגיאת קוונטיזציה
מכיוון שהממיר מעגל כל מתח לרמה הקרובה, נוצרת שגיאה מובנית שאינה ניתנת לביטול. השגיאה המקסימלית היא חצי מדרגה:
eq(max) = ± LSB / 2
ככל שמוסיפים סיביות — השגיאה קטנה פי שניים על כל סיבית נוספת.
⏱ משפט הדגימה (Nyquist)
כדי לשחזר אות נאמנה, תדר הדגימה חייב להיות לפחות כפול מהתדר הגבוה ביותר באות:
fs ≥ 2 · fmax
דגימה איטית מדי גורמת לתופעת כינוס תדרים (Aliasing) — האות המשוחזר נראה כאות אחר בתדר נמוך. אפשר לראות זאת בלשונית הדגימה.
🔢 נוסחת ההמרה
ממיר ספרתי-לאנלוגי ממיר קוד בינארי D למתח יציאה:
VOUT = (D / 2n) · VREF
וממיר אנלוגי-לספרתי מבצע את הפעולה ההפוכה:
D = round( VIN / LSB )
🏗 מבנים נפוצים של ממירים
סולם R-2R (ממיר D/A)
רשת נגדים משני ערכים בלבד — R ו-2R — שמחלקת זרמים ביחס בינארי. כל סיבית תורמת חצי מהמשקל של הסיבית שמעליה. פשוט לייצור ומדויק, ולכן זה המבנה הנפוץ ביותר.
קירובים עוקבים — SAR (ממיר A/D)
שיטת ניחוש חכם: הממיר בודק סיבית-סיבית מהגבוהה לנמוכה, בכל צעד משווה את ניחוש הביניים למתח הכניסה באמצעות משווה. תוך n מחזורי שעון בלבד מתקבל הקוד המלא. מהיר, חסכוני, ונמצא כמעט בכל מיקרו-בקר.
ממיר הבזק — Flash (ממיר A/D)
משתמש ב-2ⁿ−1 משווים במקביל — ההמרה מתבצעת בבת אחת, במחזור שעון יחיד. המהיר ביותר, אבל יקר וזולל הספק, ולכן משמש רק כשצריך מהירות קיצונית (וידאו, אוסצילוסקופים).
📌בבקר ארדואינו (Arduino Uno) יש ממיר אנלוגי-לספרתי של 10 סיביות (1024 רמות, 0–5V), וב-ESP32 יש ממיר של 12 סיביות (4096 רמות). פקודת הקריאה האנלוגית מחזירה בדיוק את הקוד D שראינו בנוסחה.
✏️ דוגמאות פתורות
דוגמה 1 — ממיר D/A במגבר מסכם משוקלל
נתון ממיר של 4 סיביות הבנוי ממגבר מסכם: נגד המשוב 8kΩ, ונגדי הכניסות 8kΩ, 4kΩ, 2kΩ, 1kΩ. כל כניסה מחוברת דרך מפסק למתח מבוא של 1V. שים לב ליחס הנגדים — כל נגד קטן פי שניים מקודמו, ולכן כל סיבית מקבלת משקל כפול. מתח היציאה:
Vout = −(1·D0 + 2·D1 + 4·D2 + 8·D3)
המעגל מתוך דף הלימוד — מגבר מסכם משוקלל של 4 סיביות
שלב 1 — נתון מצב המפסקים: D3=1, D2=0, D1=1, D0=1שלב 2 — הצבה בנוסחה: Vₒᵤₜ = −(1·1 + 2·1 + 4·0 + 8·1)שלב 3 — חישוב: −(1 + 2 + 0 + 8) = −11Vמסקנה — הערך המתקבל שווה לערך העשרוני של המילה הבינארית. הסימן השלילי נובע מהיפוך המופע של המגבר, וניתן לבטלו במגבר הופך נוסף במוצא.
דוגמה 2 — הרכיב DAC08
רכיב משולב של 8 סיביות שממיר מילה בינארית לזרם ביציאה. נתון: מתח ייחוס של 10V, נגד ייחוס של 5kΩ, ונגד עומס של 5kΩ. מילת המבוא היא 10011001 (בבסיס 2), כלומר 153 בבסיס עשרוני.
המעגל מתוך דף הלימוד — הרכיב DAC08 עם נגד ייחוס ונגד עומס
Iref = Vref / Rref
Ires = Iref / 28 = Iref / 256
IO = Ires · Din
VO = IO · RL
שלב 1 — זרם הייחוס: 10V / 5kΩ = 2mAשלב 2 — כושר ההבחנה: 2mA / 256 ≈ 7.8µA (שינוי הזרם הקטן ביותר ביציאה)שלב 3 — הערך העשרוני של מילת המבוא: (10011001)₂ = 153שלב 4 — זרם היציאה: 7.8µA × 153 ≈ 1.195mAשלב 5 — מתח היציאה: 1.195mA × 5kΩ ≈ 5.975V
דוגמה 3 — ממיר A/D של 8 סיביות
נתון ממיר שבו מתח מבוא של 1V נותן במוצא את המילה 00110010 (בבסיס 2), כלומר 50 בבסיס עשרוני. מכאן מחשבים את כושר ההבחנה: 1V / 50 = 0.02V = 20mV.
התרשים מתוך דף הלימוד — ממיר A/D בעל שמונה סיביות
Vres = Vin(max) / (28 − 1) = Vin(max) / 255
Dout = Vin / Vres
Vin = Dout · Vres
שלב 1 — כושר ההבחנה: 1V / 50 = 0.02V = 20mVשלב 2 — עבור מתח מבוא של 200mV: 200mV / 20mV = 10 = (00001010)₂שלב 3 — עבור מתח מבוא של 5.1V: 5.1V / 0.02V = 255 = (11111111)₂ — הערך המרבישלב 4 — בכיוון ההפוך, עבור המילה (10000001)₂ = 129: המתח הנדרש 129 × 0.02V = 2.58V
🔢 סימולטור ממיר ספרתי-לאנלוגי (DAC)
לחץ על הסיביות כדי להדליק ולכבות אותן, או הפעל ספירה אוטומטית וצפה במדרגות ביציאה.
5.0 V
קוד בינארי
000000
ערך עשרוני D
0
LSB
—
מתח יציאה
0.000 V
💡בספירה אוטומטית הקוד עולה מ-0 עד הערך המקסימלי — כך נוצרת יציאת מדרגות שהיא הבסיס למחוללי אותות ספרתיים.
📈 סימולטור ממיר אנלוגי-לספרתי בשיטת קירובים עוקבים (SAR)
קבע מתח כניסה, ואז הפעל המרה שלב-אחר-שלב או המרה אוטומטית. עקוב איך הממיר מנחש סיבית-סיבית.
3.21 V
5 bit
ניחוש נוכחי
-----
VDAC
— V
משווה
—
קוד סופי
—
STEP
BIT
GUESS
V-DAC
Vin ≥ Vdac ?
RESULT
📄 שאלת בגרות — ממיר SAR של 8 סיביות
איור לשאלה — כפי שמופיע במבחן
סעיף א — רזולוציה: הצירוף במבוא ממיר ה-D/A: (00100000)₂ = 32. מתח היציאה המתקבל הוא 625mV, ולכן כושר ההבחנה: Vres = 625mV / 32 ≈ 19.53mVסעיף ב — מתח הייחוס: בממיר של 8 סיביות המתח מתחלק ל-256 רמות, ולכן: VREF = 19.53mV × 256 = 5Vסעיף ג — מתח המבוא המרבי: הקוד הגדול ביותר הוא (11111111)₂ = 255, ולכן: Vi(max) = 19.53mV × 255 ≈ 4.98Vסעיף ד — זמן ההמרה: ממיר קירובים עוקבים בודק סיבית אחת בכל מחזור שעון, כלומר 8 מחזורים. זמן מחזור אחד: TCLK = 1 / 100kHz = 10µs, ולכן זמן ההמרה הכולל: Tconv = 8 × 10µs = 80µs💡 קשר לסימולטור: לחיצה על הכפתור למעלה טוענת את נתוני השאלה — מתח כניסה של 0.625V עם 8 סיביות ומתח ייחוס 5V. עקוב איך הממיר מתכנס בדיוק לקוד 00100000, ואיך מתח היציאה של ממיר ה-D/A מגיע ל-625mV.
🌊 דגימה, קוונטיזציה ושחזור האות
האות הכחול הוא האות האנלוגי המקורי. הנקודות הן הדגימות, והקו הירוק הוא האות הספרתי המשוחזר. הקטן את תדר הדגימה מתחת לפי-שניים מתדר האות — ותראה כינוס תדרים.