תוכן עניינים:

AVR/Arduino מהבהב עם פטל פטל: 3 שלבים (עם תמונות)
AVR/Arduino מהבהב עם פטל פטל: 3 שלבים (עם תמונות)

וִידֵאוֹ: AVR/Arduino מהבהב עם פטל פטל: 3 שלבים (עם תמונות)

וִידֵאוֹ: AVR/Arduino מהבהב עם פטל פטל: 3 שלבים (עם תמונות)
וִידֵאוֹ: Объяснение прошивки Marlin 2.0.x 2024, יולי
Anonim
AVR/Arduino מהבהב עם פטל פטל
AVR/Arduino מהבהב עם פטל פטל

מתכנת בתוך המערכת (ISP) הוא מכשיר שניתן להשתמש בו לתכנת מיקרו-בקרים רבים, למשל ה- ATMega328p שהוא המוח של Arduino Uno. אתה יכול לקנות משהו כמו USBtinyISP, או שאתה יכול אפילו להשתמש ב- Arduino. מדריך זה יראה לך כיצד להשתמש ב- Raspberry Pi כספק אינטרנט.

תוכנית avrdude, שהיא מה שמשתמש ב- Arduino IDE מתחת למכסה המנוע להבזק שבבים, יכולה לשמש עם מתכנתים רבים. אחת האפשרויות שלה היא להשתמש בסיכות SPI ביציאת ההרחבה של הפי. אני אסביר כיצד לבצע את החיבורים המתאימים, להרכיב מעגל פשוט על פרפבורד כך שלא תצטרך לבצע את החיווט בכל פעם שתרצה להבהב שבב וכיצד להתקין ולהשתמש ב- avrdude. אני גם אראה לך כיצד ניתן להרכיב תוכניות באמצעות ה- Arduino IDE לשבב AVR כגון ATmega או ATtiny בשיטה זו.

דברים נחוצים:

  • Raspberry Pi עם ההתקנה האחרונה של Raspbian
  • שקע כותרת זכר 40 פינים (או 26 פינים אם יש לך פי ישן יותר)
  • כבל IDE לחיבור ל- Pi שלך
  • מהוד קריסטל 16 מגהרץ
  • קבלים 22 pF (2)
  • LED (1) לציון מצב המתכנת
  • שקעי IC 8, 14 ו/או 28 פינים, תלוי באיזו צורה של שבבים אתה רוצה להבהב
  • קצת לוח, חוטים, הלחמה

שלב 1: בניית קובץ מצורף לסנדלר

מצורף סנדלר בניין
מצורף סנדלר בניין
מצורף סנדלר בניין
מצורף סנדלר בניין
מצורף סנדלר בניין
מצורף סנדלר בניין

ממשק היקפי סידורי (SPI), המכונה גם ארבעה חוטים סידוריים, הוא דרך לתקשר בין מכשיר מאסטר יחיד לבין מכשיר עבדים אחד או יותר. נשתמש בזה להבזק שבבים, כאשר ה- Pi הוא המאסטר והשבב כעבד. תוכל לבצע את החיבורים הבאים בין ה- Pi לשבב שלך (עיין בסיכומים למעלה לעיל יציאות AVR ופי הרחבה שונות של Pi כדי לדעת אילו סיכות הן):

  • חבר את סיכות ה- MOSI (master-out-slave-in) יחד
  • חבר את סיכות SCLK (שעון משותף) יחד
  • חבר את סיכות MISO (master-in-slave-out) יחד עם נגד של 220 אוהם, כדי להגן על ה- Pi מפני מתחים גבוהים באופן בלתי צפוי מהשבב
  • חבר את GPIO 25 ב- Pi ישירות לסיכת RESET בשבב. הפי מושך את הפין הזה נמוך בעת התכנות, ולכן אנו משתמשים בנגד 10K כדי לשמור אותו גבוה כאשר אינו מתכנת, ונורית עם נגן הגנה של 1K הפועלת למתח חיובי כדי לתת לנו משוב חזותי נחמד כאשר הוא מתכנת.

אנו מחברים סיכות קרקע והספק (3.3V) בין ה- Pi לשבבים שברצוננו לתכנת. במידה ואתם עדיין לא יודעים, סיכות ה- Raspberry Pi אינן סובלניות 5V - הן ייפגעו אם יופיעו עליהן יותר מ -3.3V. אם השבבים המתוכנתים זקוקים להספק של 5V מסיבה כלשהי, נוכל להשתמש בשבב מחלף ברמה כדי להגן על סיכות הפי, אך לא נתקלתי בבעיות בשימוש ב -3.3V - אז אני ממליץ להפעיל אותו בטוח ולחסוך ברכיבים.

לבסוף, אנו מחברים מתנד קריסטל בגודל 16 מגה -הרץ על פני סיכות ה- XTAL בשבב, אותו אנו מתחברים גם לקרקע באמצעות כמה קבלים של 22pF. ניתן להגדיר שבבי AVR לפעול בתדרים שונים, וניתן גם להגדירם להשתמש במקור פנימי או חיצוני כדי לקבוע את התדר הזה. אם השבב שלך מוגדר להשתמש בגביש חיצוני כמקור התדר שלו, לא תוכל לתכנת מחדש בלעדיו. אחרת זה לא משנה אם זה שם.

אתה יכול להשתמש במעגל המעגלי בתמונה האחרונה כמדריך להרכבת המצורף הסנדלר שלך על פרבורד. אתה יכול לקבל כמה וכמה צורות שונות של שקעי IC כרצונך, פשוט חבר את הפינים המתאימים במקביל ל- Pi ולגביש. N. B. אם אתה משתמש בתמונת האב -טיפוס שלי כמדריך, שים לב שהוספתי כמה סיכות ושקעים נוספים בכותרת כדי שאוכל לגשת לסיכות ב- Pi מסיבות לא קשורות.

שלב 2: התקנה ושימוש ב- Avrdude

התקנה ושימוש ב- Avrdude
התקנה ושימוש ב- Avrdude
התקנה ושימוש ב- Avrdude
התקנה ושימוש ב- Avrdude
התקנה ושימוש ב- Avrdude
התקנה ושימוש ב- Avrdude
התקנה ושימוש ב- Avrdude
התקנה ושימוש ב- Avrdude

כדי להתקין avrdude ב- Pi שלך, פשוט הקלד

sudo apt-get install avrdude

לאחר מכן יהיה עליך להפעיל את ממשק SPI, אם הוא עדיין לא הופעל. יש דרך שורת פקודה לעשות זאת, אך הרבה יותר קל להשתמש בכלי התצורה של Raspberry Pi. סוּג

sudo raspi-config

ועבור לאפשרויות ממשק כדי להפעיל את SPI.

על מנת להבהב את השבב שלך, חבר את כבל הסרט מהפי שלך למחבר במעגל ה- perfboard והכנס את השבב לשקע ה- IC המתאים (ודא שהוא פונה לכיוון הנכון).

בעת מהבהב תוכנית, עליך גם להקפיד על הגדרת הנתיכים בשבב כהלכה. אלה הם באמת חלקים בשבב שאתה מגדיר כדי להגיד לו באיזו מהירות שעון יש לרוץ, האם למחוק את ה- EEPROM בעת כתיבת השבב וכו '. תוכל לקרוא את מפרט ה- AVR המלא כדי להבין כיצד להגדיר כל ביט, אבל הרבה יותר קל להשתמש במחשבון הנתיכים המסופק באתר engbedded.com/fusecalc. בחר את שם החלק AVR שבו אתה משתמש ובחר באפשרויות הרצויות באזור "בחירת תכונה". בדרך כלל אני רק מוודא שהגדרות השעון נכונות ומשאיר את שאר הדברים כברירת מחדל. כמעט תמיד תרצה להשאיר את "תכנות סידורי מופעל" בדוק ו"איפוס מושבת "לא מסומן - אחרת לא תוכל לתכנת את השבב מחדש. כאשר יש לך את ההגדרות הנכונות, תוכל לגלול למטה באזור "הגדרות נוכחיות" ולהעתיק את ארגומנטים AVRDUDE כפי שמוצג בתמונה.

כדי להגדיר את הנתיכים, הזן את הפקודה

sudo avrdude -c linuxspi -P /dev/spidev0.0 -p

כאשר שם החלק מתאים לשבב שבו אתה משתמש. תוכל למצוא את רשימת שמות החלקים על ידי הזנת סוג sudo ardude -c linuxspi -p? כדי להבהב את התוכנית שלך, ודא שהיא נמצאת בספרייה הנוכחית שלך והיכנס

sudo avrdude -c linuxspi -P /dev/spidev0.0 -p -U flash: w:: i

לאחר שתי הפקודות, הנורית תדלק בזמן שינוי השבב.

שלב 3: הכנת תוכניות Arduino ל- AVRs

הכנת תוכניות Arduino ל- AVRs
הכנת תוכניות Arduino ל- AVRs
הכנת תוכניות Arduino ל- AVRs
הכנת תוכניות Arduino ל- AVRs
הכנת תוכניות Arduino ל- AVRs
הכנת תוכניות Arduino ל- AVRs

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

ראשית, יהיה עליך להוסיף מידע אודות שבבי ה- AVR שתבהב כך ש- IDE יידע כיצד לאסוף עבורם. ג'יימס סלימן הרכיב מאוד מועיל כמה קבצי התקנה הזמינים ב- github. כדי להשתמש בהם, פתח את תפריט "העדפות" ב- Arduino IDE ולחץ על התיבה שליד השדה "כתובות אתרים נוספות של מנהל לוחות". העתק והדבק את כתובות האתרים הבאות בתיבת הדו -שיח שמופיעה:

לאחר מכן, עבור לתפריט "כלים" ומצא את האפשרות "מנהל לוחות …" בתפריט המשנה "לוח". גלול למטה לתחתית הרשימה בתיבת הדו -שיח מנהל לוחות והתקן את לוחות ה- DIY ATmega ו- DIY ATtiny.

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

בהנחה שהכל ילך כשורה, כעת עליך להביא את התוכנית המורכבת לפיי שלך. ה- IDE מסתיר אותם במיקום זמני, מכיוון שהוא נועד להעלות תוכניות בעצמו. ב- Windows, הוא נמצא ב- AppData/Local/Temp בספריית המשתמשים שלך, בתיקייה שמתחילה ב- 'arduino_build'. חפש את קובץ.hex - זו התוכנית שלך! שלח אותו ל- Pi שלך באמצעות FTP או עם כרטיס USB, ואתה בעניין.

פעולה זו דורשת שיהיה לך מחשב Windows או Mac כדי לאסוף את התוכניות שלך, אותן תשלח לאחר מכן אל ה- Pi. זה יהיה ממש חלקלק אם תוכל לעשות זאת ב- Pi עצמו, אך למרבה הצער הגרסה הרשמית של ה- Arduino IDE הזמינה במאגר ה- Raspbian היא די ישנה ואין לה את מנהל הדירקטוריון. בלי זה, הוספת ההגדרות המתאימות לחיבור עבור AVR חשופים היא קצת יותר מסובכת. יש שם הדרכות לעריכת גרסה עדכנית יותר של Arduino ב- Pi שלך - אם זה מה שאתה רוצה לעשות, לך חפש אותן! אני גם מרגיש שאפשר יהיה לגרום ל- IDE להשתמש במתכנת linuxspi כדי להבהב שבב מתוך ה- IDE עצמו (כלומר באמצעות כפתור "הורדה"), אבל זה מעבר לרמת הסבלנות והרמה שלי - אם אתה יודע על דרך אחרת, פרסם זאת בתגובות! לבסוף, תוכל לכתוב תוכניות ישירות ב- AVR-C ולרכב אותן ב- Pi עם avr-gcc, ולהעניק לך פלטפורמת פיתוח AVR מלאה ב- Raspberry Pi. עשיתי קצת מזה, ואם אתה רוצה ללכת בדרך הזו, אני מצדיע לך. תתחיל להבהב!

מוּמלָץ: