מיקרו-בקר ATmega328P חלק א’

בקר ATmega328P

בסדרה זו נתחיל לחקור לעומק את הבקר שיושב בליבו של הארדואינו אונו –  בקר ATmega328P של  ATMEL.

שימו לב לפוסט הזה שנמצא בבלוג הבייט הלבן ויש בו עוד הסבר מצויין.

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

כפי שכבר הזכרנו בפוסטים קודמים, כרטיס הפיתוח של ארדואינו נועד להערכה של הבקר שיושב עליו. אם תסתכלו על לוח הארדואינו תראו שחוץ מהבקר אין עליו יותר מדי רכיבים. הרכיבים העיקריים שיושבים עליו חוץ מהבקר הם ממיר סיריאלי לתקשורת עם המחשב, מייצב מתח שמוריד ל-5V , מתנד גביש(Crystal Oscillator) בעל תדר של 16Mhz ועוד כמה כפתורים קבלים ונגדים.

אחרי שסיימנו כמה פרויקטים עם ארדואינו מתחילה לעלות השאלה – מה יקרה אם נשלוף את הבקר מלוח הפיתוח של ארדואינו ונחבר את הרכיבים של הפרויקט ישירות אליו?

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

כמה דגשים

קודם כל צריך לעבור על כמה דגשים.

כדי שהבקר יפעל נהיה חייבים לחבר אליו מתנד גביש 16Mhz או 20Mhz. רצוי לחבר אל הגביש גם שני קבלים 22pF כדי שהוא יפעל בצורה חלקה ותזמון נכון.

טווח מתח הכניסה של הבקר הוא 1.8V-5.5V . כשהוא ללא הארדואינו אין שום דבר שמוריד את המתח ל- 5V אז אם נספק לו 9V …. נצטרך כנראה לקבור אותו ולקנות חדש. מה שעושים בדרך כלל זה לחבר בין הבקר למקור הכח מייצב מתח שמוריד ל- 5V. זה לא סוף התסבוכת – מסתבר שגם מתח נמוך יותר מ- 5V עלול לעשות בעיות. קודם כל בגלל שהמתנד הוא של 16MHz אנחנו צריכים לספק מתח הגבוה מ- 4.5V. אם משתמשים בשעון פנימי בעל תדר נמוך יותר אז אפשר לספק פחות מתח. ועוד דבר – המתח שנספק לבקר הוא יהיה מתח הלוגיקה של של רגלי הפלט/קלט אז לא כל רכיב שנחבר יוכל לעבוד כמצופה.

בקיצור אחרי כל החפירה הזו מה שאני בא לומר הוא שבתור התחלה צריך לתת לבקר בדיוק 5 וולט 🙂 . אפשר להשתמש ב- 5V של הארדואינו.

תכנות הבקר

ג'נואינו אונו עם בקר ATmega328P

קודם כל נתכנת את הבקר כרגיל כשהוא יושב על ארדואינו – רגל 13 תהבהב נורת לד ורגל 8 תדליק ותכבה ממסר:

void setup() {
  pinMode(13, OUTPUT);
  pinMode(8, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH);
  digitalWrite(8, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  digitalWrite(8, LOW);
  delay(1000);
}

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

חיבור הבקר על מטריצה

קודם כל נסתכל על מיפוי הרגליים של בקר ATmega328P

ATMEGA328P מיפוי כניסות

לבקר יש 28 רגליים שלכל אחת מהן מספר תפקידים שונים. מספור הרגליים של כל בקר או מעגל משולב מתחיל משמאל למעלה ורץ נגד כיוון השעון.

שימו לב לחצי העיגול שנמצא למעלה בבקר – כך תוכלו לזהות את הכיוון שבו הוא אמור לשבת.  בתמונה למעלה הסימון הסגול מראה לנו מהם הרגליים של הארדואינו ובמקרא זהו IDE.

atmega328-fritzing

הרגליים שנחבר אליהם את הנורה והממסר הם 8 ו- 13 בארדואינו, ובבקר הם נקראים 14 ו 19.

נחבר מתנד בין הרגליים 9 ו- 10 שנקראות בבקר OSC1/OSC2 (אין חשיבות לקוטביות) וכמובן ניתן לבקר מתח 5V ל- VCC ו- GND.

atmega328 נורת לד

atmega328 ממסר

 

 

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

 

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *