במדריך זה נלמד כיצד ניתן להתחיל לעבוד עם מיקרו-בקרים של חברת MICROCHIP. נבנה נגדיר ונכתוב את כל מה שצריך על מנת לכתוב תוכנה שבסופו של דבר תגרום ללד להבהב באמצעות מיקרו-בקר. את התוכנה נצרוב ונבדוק שהיא אכן פועלת על הבקר עצמו.
המדריך ילווה אותכם צעד אחר צעד בכל מה שיש לעשות. כל התוכנות שנשתמש בהן הן חינמיות לחלוטין (לא DEMO) ישנם מספר רכיבי חומרה שצריך קנות/לבנות (חומרה אי אפשר להוריד מהאינטרנט...) אתם מוזמנים לנסות להשיג את כולם בעצמכם. אם ברצונכם לרכוש קיט מלא של כל הרכיבים המופיעים במדריך כולל המטריצה/צורב פנה אלינו רשימת דברים שיש להשיג לפני שנתחיל: - מיקרומעבד ממשפחת PIC16 של חברת MICROCHIP . ניתן לקנות אחד בכמה עשרות שקלים בחנויות אלקטרוניקה.
אני אשתמש במדריך זה בPIC16f684 מכיוון שהוא קטן, פשוט יחסית ונוח לעבוד איתו. - מטריצת פיתוח.
- מחשב עליו מותקנת מערכת הפעלה windows xp ושיש לו יציאה סיריאלית. (במידה ואין במחשבכם יציאה סיריאלית, תוכלו לקנות מתאם USB לסיריאלי)
- כבל סיריאלי מאריך (נקבה לזכר)
- מספר רכיבים פשוטים (רשימה בהמשך)
- צורב JDM למיקרו-בקרים (הוראות לבניית הצורב יבואו בהמשך)
שוב, ניתן לקנות כאן באתר את כל רכיבי החומרה הנדרשים. שמנו דגש על כך שכל התוכנות בהן נשתמש הן חינמיות לכן מעבר לחומרה המדוברת אין צורך בהוצאות נוספות. אז לפני שנתחיל, קצת רקע על איך מתבצע תהליך הפיתוח: תחילה נכתוב את התוכנית שלנו בסביבת הפיתוח. לאחר מכן, נבצע הידור (קומפילציה) של הקוד שלנו. אם לא שגינו, נקבל קובץ מסוג HEX הינו קובץ המכיל את התוכנית שלנו ומתאים לצריבה רכיבי חומרה כגון מיקרו-בקרים. כדי להעביר את התוכנית שלנו מקובץ זה לזכרון הפנימי של המיקרובקר נצטרך לבנות צורב - מעגל חשמלי המסוגל לקבל את התוכנה לנו מהמחשב ולצרוב אותה על גבי המיקרובקר. את הצורב נחבר למיקרו-בקר על המטריצה וכך נוכל לצרוב אליו ישירות. אז בואו נתחיל: יש לעבוד ע"פ השלבים הבאים. אם משהו לא מובן תמיד ניתן להעזר בפורומים. יש להוריד את סביבת הפיתוח 8 MICROCHIP MPLAB מהאתר של חברת MICROCHIP ולהתקין אותה. בסביבה זו נכתוב את הקוד שלנו. במהלך ההתקנה תישאלו אם אתם רוצים להתקין כלי חיצוני של חברת HI-TECH בשם PICC . התקינו אותו. זוהי ספרייה שבאמצעותה נוכל לתכנת בשפת C במקום באסמבלר. על מנת לצרוב את התוכנית שלנו למיקרובקר, צריך לבנות צורב. קיימים מגוון גדול של תכנונים לצורבים. אני ממליץ על הצורב הבא. ניתן למצוא באתר הדרכה פורטת לבניית הצורב אך הכי פשוט ומהיר זה להזמין אחד מוכן. על מנת להשתמש בצורב אנו צריכים תוכנת צריבה. תוכנה טובה התומכת במספר רב של מיקרו-בקרים נקראת WinPIC800 וניתנת להורדה מהקישור הבא. הורידו והתקינו אותה. כעת כל מה שנותר לנו לעשות הוא לבנות על מטריצה מעגל פשוט שיחבר את המיקרומעבד לצורב ועוד כמה כפתורים ונורות LED. יש לבנות את המעגל לפי השרטוט הבא:

הסבר קצר על המעגל: SW1 - כדי שנוכל להדליק ולכבות את המעגל שלנו בצורה נוחה, נוסיף את מפסק זה. D1 - דיודת הגנה, תמנע תקלות במעגל במקרה שיחובר מקור מתח בעל קוטביות הפוכה, או מקצרים במערכת. כמעט כל דיודה של 1A טובה (ניתן להשתמש למשל גם ב 1N4001 הנפוצה) U1 - מכיוון שהטרנספורמטור אינו מקור מתח מדוייק, נשתמש במייצב, LM7805 או כל מימיר DC-DC אחר הממיר ל 5V . C1,C2 -קבלים אלה נועדו למנוע קפיצות מתח למעגל שלנו. מכיוון שספק המתח שלנו, במיוחד אם הוא טרנספורמטור פשוט גורם לקפיצות מתח, כלומר לא מספק תמיד רמת מתח מדוייקת. לכן הקבל C1 בכניסה למייצב בא לפצות על שינויים אלה. D2 - זהו לד לבקרה על מקור המתח - דולק כאשר יש מתח וכבוי אחרת. SW2 - זהו לחיץ עבור פעולת RESET למיקרומעבד ע"י המשתמש
דוגמא לבנייה של מעגל על המטריצה:
(המעגל בתמונה אינו זהה בדיוק לשרטוט, לכן בנה ע"פ השרטוט הסכמטי למעלה) 


לפני שנמשיך בדקו היטב שחיברתם את הכל ע"פ השרטוט.
המעגל שלנו צריך מקור מתח. רצוי להשתמש בספק מתח איכותי, אך מי שאין לו כזה בבית ולא מעוניין לרכוש אחד כזה בשלב זה יכול להסתפק בטרנספורמטור בעל מספר מצבים לרמות מתח ביציאה, ושיכול לספק לפחות 500mA. רצוי לקנות אחד שיש לו פיוז על אחד המוליכים כך שאם בטעות תקצרו אותו, רק הפיוז ישרף ולא הטרנספורמטור עצמו. דוגמא לטרנספורמטור פשוט: 
כוונו את הטרנספורמטור על 9V וחברו למעגל והדליקו אותו. הלד הירוק צריך להדלק. חברו כבל סיריאלי מאריך ליציאת COM1 במחשב שלכם (היציאה מהמחשב היא זכר, לכן יש לחבר את הפלג של הנקבה למחשב) את הצד השני של הכבל חברו לצורב. חברו את הצורב למטריצה באמצעות הריתמה המתאימה (שימו לב לכיוונים). אם בניתם וחיברתם את הכל בצורה נכונה, זה אמור להראות כך: 
עכשיו ניגש לכתוב את התוכנית הראשונה שלנו. - הפעילו את תוכנת MPLAB
- צרו פרוייקט חדש תחת Project->New Project
- בחרו במיקרו-בקר שלכם מתוך הרשימה (במקרה שלנו 16F684).
- כעת יש לבחור באיזה קומפיילר נשתמש. אם ההתקנה בוצעה כראוי תוכלו לבחור HI-TECH Universal toolSuite ואז ב HI-TECH Compiler ראה תמונה:
 - לחצו על Next ובמסך הבא תנו שם לפרוייקט שלכם וצרו לו ספרייה.
- לחצו שוב על Next פעמיים וזהו, סיימנו ליצור פרוייקט חדש.
- כעת ניצור קובץ בו נכתוב את הקוד שלנו ונצרפו לפרוייקט. לחצו על File->New וצרו קובץ חדש.
- הקלידו את הקוד הבא בחלון החדש:
הסבר קצר על הקוד: #include פקודה זו נותנת הוראה לקומפיילר להכליל ספריות המכילות נתונים לגבי המיקרו-מעבד בו אנו משתמשים
void main(void) { זוהי הגדרה של התוכנית הראשית. המילה השמורה VOID מציינת שהתוכנית לא מקבלת ערכים חיצוניים ולא מחזירה ערכים. unsigned int i; יצירת משתנה שישמש אותנו בתור מונה בשביל ההשהיה TRISC=0x00; TRISC הינו רגיסטר בגודל 8 ביט המציין לגבי כל רגל השייכת לפורט C אם היא כניסה או יציאה. כניסות מגדירים ב 1 לוגי ויציאות כ 0 לוגי. אנו נגדיר את כל רגלי הפורט כיציאות ולכן נציב 0x00 בבסיס הקסדצימלי, כלומר 0 לכל הרגיסטר שיגדיר את כל הרגליים של פורט C בתור יציאות. while(1){
על מנת שההבהוב ימשך ללא הפסקה ניצור לולאה שתמשיך תמיד - לכן אין לה תנאי סיום. for(i=0; i<0xFFFF; i++) תפקידה של לולאה זו היא לייצר השהייה בן ההבהובים (זוהי לא דרך אופטימילית לייצור השהייה, ויש לה חסרונות רבים אך מספיק טובה בשבילנו כעת) לולאה זו מאפסת את הערך של I ואז בכל מחזור מעלה אותו באחד עד שיגיע לערך FFFF בבסיס הקסדצימלי, שזה בערך 65 אלף מחזורי לולאה. לא אביא כאן את החישוב המדוייק של זמן ההשהייה, אך עם שעון בקצב של 8MHZ זה יתן לנו השייה מספקת בשביל להבחין בהבהוב. PORTC=0xFF; הרגיסטר PORTC מכיל על ערכי הכניסות/יציאות של פורט C. מכיוון שאיתחלנו את הפורט להיות יציאות אז פקודה זו תשים 1 לוגי בכל היציאות של הפורט, כלומר בפועל המיקרו בקר יעלה את ערך הרגליים של פורט זה ל VCC או 5V במקרה שלנו, מה שיגרום ללד לדלוק. השורה הבאה היא שוב השהייה, כדי שנוכל לבחין בלד דולק. והשורה האחרונה היא הצבה של 0 בכל רגלי הפורט - דבר שיגרום לאדמה ביציאות המיקרו-בקר ולכיבוי הלד. הלולאה האינסופית תגרום לתהליך הדלקה->השהייה->כיבוי->השהייה לחזור שוב ושוב וכך להבהוב.
- לחצו על File->Save ושמרו את הקובץ בשם src1.c
- לחצו על View->Project ותראו את חלונית עץ הספריות של הפרויקט שיצרנו.
- לחצו על הספריה Source File עם הלחצן הימני של העכבר ואז על Add Files.
 - כעת הפרוייקט מוכן ונותר להריץ את הקוד. בדקו שוב שהקוד תקין ולחצו על
"build all" (הריבוע השחור עם הנקודה האדומה בתפריט) זוהי פקודה לקימפול ובניית הפרוייקט. לאחר הלחיצה תוכלו לראות כיצד הקוד עובר הידור ומודיע על כך בהצלחה. - כעת נוצר קובץ מסוג HEX בספרייה של הפרויקט שלכם. את הקובץ הזה נצרוב למיקרו-בקר.
- הפעילו את התוכנה winpic800
- תחילה נאתחל את התוכנית לפעולה בפעם הראשונה:
- לחצו על settings->hardware ובחרו ב JDM Programmer ואת יציאת ה COM במחשב שלכם לה חיברתם את הכבל המחובר לצורב:
 - כעת לחצו על settings->software ובחרו את ההגדרות ע"פ התמונה
 - בתפריט בפינה הימנית העליונה בחרו PIC16F ובתפריט מתחתיו את הרכיב בו אתם משתמשים.
- כעת נבדוק את התוכנה מצליחה לזהות את הצורב שבנינו. נתקו את הצורב מהמעגל שעל המטריצה.
ולחצו על כפתור Hardware test. הכפתור מוקף במעגל אדום בתמונה הבאה:
 - אם קיבלתם הודעה כמו בתמונה, סימן שהצורב שלכם מחובר היטב ותקין. אחרת בדקו אם הצורב שלכם מחובר ליציאת ה COM מחשב אותו הגדרתם בתוכנה ושהצורב נבנה בצורה נכונה.
- חברו את הצורב שוב למטריצה. הדליקו את המעגל (הלד הירוק על המטריצה צריך להדלק)
- כעת נבדוק אם התוכנה מזהה את המיקרו-בקר שלנו. חצו בתוכנה על לחצן Detect מוקף בעיגול אדום בתמונה הבאה.

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

בתפריט זה ניתן לבחור מספר הגדרות לגבי אופי הריצה של התוכנית שלנו. סמנו את INTOSCIO (אפשרות זו בוחרת בשעון הפנימי של המיקרו-בקר בתור שעון המערכת) הסירו את הסימון מ WDTE. - כעת הכל מוכן לצריבת הקוד למיקרו-בקר. לחצו על כפתור הצריבה המוקף בעיגול אדום בתמונה הבאה:

התוכנה תיצרב על המיקרו-בקר ותופיע הודעה כמו בתמונה ואם הכל תקין הלד האדום שעל המטריצה יחל להבהב! נתקלתם בבעיות? פרסמו אותן בפורום אלקטרוניקה. רוצים ללמוד כיצד להמשיך הלאה? על כך במדריכים הבאים. |