3.4. פינים והתקנים היקפיים

פין הוא ההתקן ההיקפי הפשוט ביותר ב-MCU: חוט יחיד המחבר את השבב לעולם החיצוני. כל אינטראקציה עם חומרה ממשית – הנעת LED, קריאת מתג, מדידת מתח, שליחת בתים על גבי קו טורי – בסופו של דבר מנותבת דרך פין אחד או יותר.

3.4.1. מצבי פין

פין מוגדר לאחד ממספר מצבים לפני שהוא עושה משהו שימושי:

  • Pin.IN – קלט. הפין מתבונן במתח המופעל עליו מבחוץ ומדווח עליו כ-0 (נמוך) או 1 (גבוה).

  • Pin.OUT – פלט. הפין מניע את עצמו אל מתח ההזנה (1) או אל האדמה (0), כך שרכיבים חיצוניים רואים את המתח הזה.

  • Pin.OPEN_DRAIN – פלט שיכול רק למשוך את הקו לנמוך. כדי לעלות לגבוה, הפין משחרר (צף) ונגד pull-up חיצוני מרים את הקו. משמש לאפיקים משותפים שבהם התקנים מרובים עשויים להניע את אותו קו.

קלטים יכולים, באופן אופציונלי, להפעיל נגד משיכה פנימי המבטיח רמה מוגדרת כאשר דבר חיצוני אינו מניע את הפין:

הבנאי מקבל את id, mode ו-pull כארגומנטים מיקומיים:

from machine import Pin

led    = Pin("P0", Pin.OUT)
button = Pin("P1", Pin.IN, Pin.PULL_UP)

3.4.2. פונקציות חלופיות

לרוב הפינים יש פונקציה חלופית בנוסף לתפקיד ה-GPIO שלהם. רפידה פיזית יחידה על השבב יכולה להיות:

התקנים היקפיים אחרים (אפיקים טוריים נוספים, טיימרים וכן הלאה) תופסים גם הם פינים מסוימים; מתכנן השבב מחווט כל בלוק חומרה לקבוצה קבועה של רפידות. ה-ADC דוגם רק פינים המנותבים אל הריבוב שלו; UART משדר על הפין היחיד שאליו מחווט אות ה-TX שלו.

הערה

מצלמות OpenMV מתייגות את פיני המחבר החיצוני P0 עד P9 (משתנה מעט בין לוחות). אילו פין נושא איזו פונקציה חלופית הוא ספציפי ללוח; ראו את המדריך המהיר ל-OpenMV Cam לטבלה.

3.4.3. וריאציות בין לוחות

מספר פרטים משתנים בין לוחות וצריך תמיד לבדוק אותם מול המדריך המהיר ולא להניח אותם מלוח אחר:

  • סבילות מתח. לחלק מהמצלמות יש פיני קלט/פלט סבילים ל-5 V (ניתן להפעיל אות 5 V ישירות ללא נזק); אחרות מפעילות את הקלט/פלט שלהן ב-3.3 V או 1.8 V ודורשות מסיט מתח לכל אות מעל לכך. חיבור מקור 5 V לפין לא-סביל עלול לפגוע בשבב.

  • ייחוס ADC. המתח שה-ADC מתייחס אליו כסקאלה מלאה תלוי בהזנת הקלט/פלט של הלוח. read_u16() מחזיר תמיד 0..65535, אך המתח שהערך 65535 מייצג הוא הייחוס של הלוח, יהא אשר יהא.

  • עוצמת הנעה. פין GPIO יכול לספק או לקלוט זרם מוגבל – בדרך כלל עשרות מיליאמפר. די לכך עבור LED קטן דרך נגד; לא די למנוע, לזמזם או לכל עומס השראותי. השתמשו במנהל התקן חיצוני (טרנזיסטור, MOSFET, גשר-H) לכל דבר כבד יותר.

המדריך המהיר ל-OpenMV Cam נותן את המספרים המדויקים לכל לוח.