קטגוריות: מעגלי מיקרו-בקר
מספר צפיות: 23111
הערות לכתבה: 0

בקרי מיקרו PIC למתחילים

 

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

בקרי מיקרו PIC למתחילים

מה זה PIC

PIC הוא שמו של סדרת בקרי מיקרו המיוצרים על ידי Microchip Technology Inc (ארה"ב). השם PIC מגיע מבקר הממשק ההיקפי.

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

בשנת 2016 רכשה מיקרו-צ'יפ את אטמל, יצרנית בקרי AVR. לכן, האתר הרשמי מציג בקרי מיקרו של המשפחה ו- PIC ו- AVR.

בקר מיקרו PIC16F1xxx

משפחות

מבין בקרי המיקרו PIC של 8 סיביות, הוא מורכב משלוש משפחות שונות זו מזו בארכיטקטורה (עומק סיביות וקבוצת הוראות).

  • קו בסיס (PIC10F2xx, PIC12F5xx, PIC16F5x, PIC16F5xx);

  • אמצע טווח (PIC10F3xx, PIC12F6xx, PIC12F7xx, PIC16F6xx, PIC16F7xx, PIC16F8xx, PIC16F9xx);

  • אמצע טווח משופר (PIC12F1xxx, PIC16F1xxx);

  • High-end או PIC18 (18Fxxxx, 18FxxJxx ו- 18FxxKxx).

השוואה בין משפחות מיקרו-בקרים

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

תכונות מיקרו-בקר PIC

בנוסף למיקרו-בקרים של 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 מוצגת להלן:

Pinout בשעה 16f628

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

מבנה מיקרו-בקרה 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:

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

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

לדוגמה, להלן תוכנית ל"הבהב LED "- מעין" שלום עולם "עבור בקר המיקרו PIC ב- C.

דוגמה לתוכנית מיקרו-בקר 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

יש פיתוי לבחור ב- 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 שהזכרנו לעיל;

  • ועוד מספר פחות ידועים.

MPLAB IDE

כיצד להבהב בקר מיקרו?

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

מתכנתים ל PIC Micronotrollers

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

מעגל מתכנת

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

מעגל מתכנת

מסקנה

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

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

ראה גם באתר elektrohomepro.com:

  • סוגים וסידור מבקרי מיקרו AVR
  • תכנות מיקרו-בקר למתחילים
  • מהם בקרי מיקרו - מטרה, מכשיר, תוכנה
  • בקרי מיקרו ניתנים לתכנות ב- JavaScript: איזה מהם לבחור, מאפיינים ...
  • שיטות לקריאה וניהול של יציאות קלט / פלט של Arduino

  •