קטגוריות: מעגלי מיקרו-בקר
מספר צפיות: 23111
הערות לכתבה: 0
בקרי מיקרו PIC למתחילים
בשוק המודרני קיימות מספר משפחות וסדרת מיקרו-בקרים מיצרנים שונים, ביניהם ניתן להבחין בין AVR, STM32 ו- PIC. כל אחת מהמשפחות מצאה היקף משלה. במאמר זה אספר למתחילים על בקרי מיקרו PIC, כלומר מה זה ומה שאתה צריך לדעת כדי להתחיל איתם.

מה זה PIC
PIC הוא שמו של סדרת בקרי מיקרו המיוצרים על ידי Microchip Technology Inc (ארה"ב). השם PIC מגיע מבקר הממשק ההיקפי.
בקרי מיקרו PIC הם בעלי ארכיטקטורת RISC. RISC - מערכת הוראות מקוצרת משמשת גם במעבדים למכשירים ניידים. ישנן מספר דוגמאות לשימוש בו: זרוע, Atmel AVR ואחרים.
בשנת 2016 רכשה מיקרו-צ'יפ את אטמל, יצרנית בקרי AVR. לכן, האתר הרשמי מציג בקרי מיקרו של המשפחה ו- PIC ו- AVR.

משפחות
מבין בקרי המיקרו PIC של 8 סיביות, הוא מורכב משלוש משפחות שונות זו מזו בארכיטקטורה (עומק סיביות וקבוצת הוראות).
-
קו בסיס (PIC10F2xx, PIC12F5xx, PIC16F5x, PIC16F5xx);
-
אמצע טווח (PIC10F3xx, PIC12F6xx, PIC12F7xx, PIC16F6xx, PIC16F7xx, PIC16F8xx, PIC16F9xx);
-
אמצע טווח משופר (PIC12F1xxx, PIC16F1xxx);
-
High-end או PIC18 (18Fxxxx, 18FxxJxx ו- 18FxxKxx).

המאפיינים ניתנים בטבלה שלהלן.

בנוסף למיקרו-בקרים של 8 סיביות, Microchip מייצר 16 סיביות:
-
PIC24F;
-
DsPIC30 / 33F לעיבוד אותות.
נציגי משפחת ה- 16 סיביות פועלים במהירות של 16 עד 100 MIPS (מיליוני הוראות בשנייה הושלמו). ראוי לציין ותכונות:
-
מחזור מכונה - 2 מחזורים;
-
רזולוציית ADC - 16 סיביות;
-
תומכים במספר פרוטוקולי תקשורת (UART, IrDA, SPI, I2S ™, I2C, USB, CAN, LIN ו- SENT), PWM ועוד.
יש גם משפחה של בקרי מיקרו-ביט 32 ביט - PIC32MX, התכונות העיקריות:
-
לפעול בתדר של עד 120 מגהרץ;
-
בצע עד 150 MIPS
-
ADC: 10 סיביות, 1 מספ"ס (מהירות הכימות), עד 48 ערוצים.
באיזה PIC להתחיל?
על מתחילים להתחיל לשלוט בבקרי מיקרו PIC מקו 8 סיביות. באופן כללי, היצרן טוען שמאפיין של כל המשפחה הוא הניידות הקלה של תוכניות ממשפחה למשנהו והצמדה של מספר דגמים.
אחד מבקרי המיקרו הפופולריים ביותר בסביבת הרדיו החובבנית הוא PIC16f628A. המאפיינים הטכניים שלה הם כדלקמן:
-
יש גנרטור שעון מובנה. אתה יכול לכוונן לעבודה עם תדר של 4 או 8 מגהרץ;
-
18 סיכות, מתוכן 16 - קלט / פלט, ו -2 - כוח;
-
להפעלה בתדרים של עד 20 מגהרץ, ניתן לחבר מהוד קוורץ, אך במקרה זה לא נותרו 16 אלא 14 רגליים לכניסה / פלט;
-
בסימן יש אות F, שמשמעותה שימוש בזיכרון פלאש בהספק של 2048 מילים;
-
הוראות 14 סיביות, 35 חלקים;
-
2 משווים;
-
4 כניסות אנלוגיות;
-
כניסות PORTB כוללות נגדי משיכה;
-
שני טיימרים של 8 סיביות ואחד 16 סיביות;
-
מחזור מכונה - 4 מחזורים של מהוד קוורץ או מתנד פנימי);
-
224 בתים של זיכרון RAM;
-
128 בתים של EEPROM;
-
USART - יציאה טורית;
-
התייחסות למתח פנימי;
-
מופעל על ידי 3.3 עד 5 V.
הסיבות לפופולריות שלו הן המחיר הנמוך ויכולת השעון מגנרטור פנימי.
ההצמדה של 16f628 מוצגת להלן:

המעגלים הפנימיים החסומים של בקר מיקרו זה מוצגים להלן.

מה עלי לשים לב בתכנית מלכתחילה?
למיקרו-בקר זה יש שתי יציאות PORTA ו- PORTB. כל סיכה, כל אחד מהם יכול לשמש כקלט ופלט, כמו גם לחיבור ציוד היקפי או להפעלת מודולי מיקרו-בקר אחרים.
שקול את החלק הזה של התוכנית בפירוט רב.

לדוגמה, יציאות RB0-RB3 - יכולות לפעול כאנלוגיות. במידת הצורך, מקור שעון מחובר ל RA6, RA7 (מהוד קוורץ) הפלטים של בקר המיקרו עצמם מוגדרים במצב קלט / פלט באמצעות פנקס TRIS.
יש פקודות לסוג זה:
TRISA = 0; // כל הסיכות של יציאה A מוגדרות כיציאות
TRISB = 0xff; // כל הסיכות של יציאה B מוקצות ככניסות
TRISA0 = 1; // לכן מוקצה סיכה נפרדת כקלט (1) או פלט (0)
TRISA5 = 1; // כאן מוקצה הפלט החמישי של יציאה A כקלט
באופן כללי, מצבי ההפעלה, הכללת WDT (טיימר כלב שמירה), בחירת מקור השעון של בקר המיקרו וכן הלאה מוגדרים באמצעות רישומי מטרה מיוחדת - SFR, והזיכרון והנתונים מאוחסנים ב- GFR - במילים פשוטות זהו RAM סטטי.
בגיליון הנתונים הרשמי, בעמודים 18-21 תמצאו 4 בנקים לזיכרון לרישומי SFR ורישומי מטרה כללית. הכרת רישומים חשובה, לכן הדפיסו ולמדו את העמודים המצוינים מהם גיליון נתונים.
לנוחיות הטבלאות הללו מוצגות בצורת תמונות למטה (מספור הרשמים, כמו כל דבר באלקטרוניקה דיגיטלית, מתחיל מ- 0, כך שהמספר הרביעי הוא 3).




איך להתחבר ובאיזו שפה לתכנת?
כדי להפעיל את בקר המיקרו הזה, די להחיל פלוס על Vdd ומינוס על Vss. אם אתה זקוק לתהודה קוורץ, הוא מחובר לפינים 16 ו -15 (OSC1 ו- OSC2) של בקר המיקרו PIC16f628, לבקרים אחרים עם מספר סיכות גדול או קטן יותר - הסתכל בגליון הנתונים. אך יש לציין נקודה זו במהלך תכנות וקושחה.
אם כבר מדברים על ניידות וצירוף מקרים של ה- pinout - ב- 16f84A - הוא דומה, וגם על רבים אחרים.

שבר של מעגל עם מהוד חיצוני המחובר ל pic16f628a:

יש שתי שפות עיקריות לתכנות בקרי מיקרו PIC - הרכבה ו- C, ישנן אחרות, למשל PICBasic וכו '. אתה עדיין יכול להדגיש את שפת התכנות הפשוטה JAL (רק שפה אחרת).
לדוגמה, להלן תוכנית ל"הבהב LED "- מעין" שלום עולם "עבור בקר המיקרו PIC ב- C.

בשורה 1, ספריית המיקרו-בקר PIC מחוברת ואז מחוברת ספריית תוכנית העיכוב.
בפונקציה הראשית (בטלה) הפרמטרים הראשוניים נקבעים בהתחלה, בדיוק כמו שעשינו בפונקציית Void setup () - במאמרים על ארדואינו. ואז, בשורות 11-16, מוכרז לולאה אינסופית בזמן (1), שבמהלכה מבוצעת תוכנית "מהבהב LED".
בדוגמה, מצב הנמל הפוך כל הזמן, כלומר אם זה היה ב" 0 ", הוא יעבור ל" 1" ולהיפך. ב- C עבור PIC יש את הפקודות הבאות לניהול הפקודות:
PORTA = 0; // מתרגם את כל הסיכות של יציאה A לרמה נמוכה (יומן 0)
PORTB = 0xff; // מתרגם את כל הסיכות של יציאה B לרמה גבוהה (יומן 1)
RB5 = 1; // הסיכה החמישית של יציאה B גבוהה
וזה נראה כמו אותה תוכנית, אבל כבר בשפת JAL, תרגמתי לתגובות רוסיות ממפתחי דוגמאות מובנות ב- JALedit (סביבת פיתוח).

יש פיתוי לבחור ב- JAL, וזה אולי נראה לכם קל יותר. כמובן, תוכלו ליישם כל פרויקט עליו, אך מבחינת התועלת עבורכם כמומחה, מדובר בשפה חסרת תועלת. תוכלו להגיע לתוצאות גדולות משמעותית על ידי לימוד התחביר והעקרונות של תכנות ב- C (מרבית השפות הפופולריות כיום דומות ל- C) או באסמבלר - זו שפה ברמה נמוכה שתגרום לכם להבין את עקרון המכשיר ומה קורה בתוכנית בכל זמן נתון.
איך לעבוד
אם אתה אומר כללי לעבוד עם כל מיקרו-בקרים שאתה צריך:
1. עורך טקסטים.
2. המהדר.
3. התוכנית להורדת הקושחה למיקרו-בקר.
ואפילו קראתי ספרי לימוד ישנים, שם הכותב, שעבד תחת DOS, כתב קוד, חיבר והבהב אותו באמצעים שונים. כעת, עבור כל מערכות ההפעלה הפופולריות, קיימות סביבות פיתוח, שתיהן מתמחות מאוד (למשפחה ספציפית של בקרי מיקרו או משפחות מיצרן אחד) והן אוניברסאליות (הן מכילות את כל הכלים הנדרשים, או שהם מחוברים כתוספים).
לדוגמה, בסדרת מאמרים על ארדואינו בדקנו את סביבת ה- Arduino IDE: בה כתבנו קוד ובעזרתו "שפכנו" את הקושחה ל"אבן ". עבור בקרי מיקרו PIC יש תוכניות כמו:
-
MPASM - משמש לפיתוח בשפת הרכבים מבית Microchip;
-
MPLAB הוא גם ה- Microchip IDE עבור בקרי PIC. זה מורכב מבלוקים רבים לבדיקה, בדיקה, עבודה עם קוד והרכבת תוכניות והורדה למיקרו-בקר. יש גם גרסה של MPLAB X IDE - היא כוללת פונקציונליות נהדרת ובנויה על בסיס פלטפורמת NetBeans;
-
MikroC הוא סביבה אוניברסלית (לא רק עבור PIK) לפיתוח. כפי שמשתמע מהשם, הוא "מחודד" לתכנות C, ויש גם תוכניות כמו MikroBasic ו- MikroPascal עבור השפות המתאימות.;
-
JALedit - מתאים לשפת JAL שהזכרנו לעיל;
-
ועוד מספר פחות ידועים.

כיצד להבהב בקר מיקרו?
ישנם מספר מתכנתים למנגני מיקרוסקופ PIC. נחשב רשמית ל- PICkit. 4 הגרסאות שלהם. אבל אתה יכול להבהיר ואוניברסלי, למשל, TL866 (הוא תומך כמעט בכל מה שחובב רדיו מתחיל עשוי להזדקק לו, למרות שהוא זול מאוד).

גם ברשת ישנם מספר מעגלי מתכנתים שונים עבור PICs, שניהם לעבודה דרך יציאת COM:

אז זה דרך USB (למעשה, גם com, רק דרך הממיר ב- IC MAX232).

מסקנה
בקרי מיקרו PIC16 מתאימים לפרויקטים פשוטים, כמו אוטומציה פשוטה, מד מתח, מדחומים ודברים קטנים אחרים. אבל זה לא אומר שאתה לא יכול לעשות פרויקטים מורכבים וגדולים עבור המשפחה הזו, נתתי דוגמא מדוע הם משמשים לרוב. לרעיון כללי אני ממליץ לצפות בכמה סרטונים:
במאמר אחד אין טעם לקחת בחשבון נושאים כיצד לתכנת בקרי מיקרו, לא משנה איזו משפחה. מכיוון שמדובר בכמות גדולה מאוד של מידע.
ראה גם באתר elektrohomepro.com
: