A↔D

מעבדת ממירים A/D ו-D/A

ADC · DAC · SAR · SAMPLING · QUANTIZATION

✦ בנוי על ידי פהד גאנם ✦
מה זה ממיר, ולמה צריך אותו?

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

💡 שרשרת טיפוסית: חיישן ← מגבר ← ממיר אנלוגי-לספרתי ← מעבד ← ממיר ספרתי-לאנלוגי ← מפעיל (רמקול, מנוע).

🔑 רזולוציה (Resolution)

מספר הסיביות של הממיר קובע לכמה מדרגות מחולק טווח המתח. ממיר בעל 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)
fig
המעגל מתוך דף הלימוד — מגבר מסכם משוקלל של 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 בבסיס עשרוני.

fig
המעגל מתוך דף הלימוד — הרכיב 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.

fig
התרשים מתוך דף הלימוד — ממיר 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
משווה
קוד סופי
STEPBITGUESSV-DACVin ≥ Vdac ?RESULT
📄 שאלת בגרות — ממיר SAR של 8 סיביות
question
איור לשאלה — כפי שמופיע במבחן
סעיף א — רזולוציה: הצירוף במבוא ממיר ה-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.
🌊 דגימה, קוונטיזציה ושחזור האות

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

3.0 Hz
30 Hz
4 bit
דרישת נייקוויסט
מספר רמות
16
שגיאה מקסימלית
🧮 תרגיל מורכב — בסגנון שאלות הבגרות
📝 בנק תרגילים — ממירים
0 / 0
🏠