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

Arduino עצמאי 3.3V W / שעון חיצוני של 8 מגה -הרץ מתוכנת מ- Arduino Uno באמצעות ICSP / ISP (עם ניטור סדרתי!): 4 שלבים
Arduino עצמאי 3.3V W / שעון חיצוני של 8 מגה -הרץ מתוכנת מ- Arduino Uno באמצעות ICSP / ISP (עם ניטור סדרתי!): 4 שלבים
Anonim
Arduino עצמאי 3.3V W / שעון חיצוני של 8 מגה -הרץ מתוכנת מ- Arduino Uno באמצעות ICSP / ISP (עם ניטור סדרתי!)
Arduino עצמאי 3.3V W / שעון חיצוני של 8 מגה -הרץ מתוכנת מ- Arduino Uno באמצעות ICSP / ISP (עם ניטור סדרתי!)
Arduino עצמאי 3.3V W / שעון חיצוני של 8 מגה -הרץ מתוכנת מ- Arduino Uno באמצעות ICSP / ISP (עם ניטור סדרתי!)
Arduino עצמאי 3.3V W / שעון חיצוני של 8 מגה -הרץ מתוכנת מ- Arduino Uno באמצעות ICSP / ISP (עם ניטור סדרתי!)

מטרות:

  • לבנות ארדואינו עצמאי שפועל על 3.3V על שעון חיצוני של 8 מגה -הרץ.
  • לתכנת אותו באמצעות ספק שירותי אינטרנט (ידוע גם בשם ICSP, תכנות סידורי במעגל) מ- Arduino Uno (פועל במהירות 5V)

    כדי לערוך את קובץ מטען האתחול ולשרוף את מטען האתחול (באמצעות ספק שירותי האינטרנט)

  • כדי שתוכל לקרוא מידע סדרתי מהארדואינו העצמאי באמצעות כבל FTDI

    כדי להיות מסוגל לקרוא מידע סדרתי מהארדואינו העצמאי ללא כבל FTDI

הַקדָמָה:

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

שאלות נפוצות לפני שנתחיל:

למה אתה צריך לתכנת אותו עם ספק שירותי אינטרנט ולפקח באמצעות FTDI? למה אתה לא יכול פשוט לתכנת אותו באמצעות FTDI?

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

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

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

האם אני לא צריך מחליף רמה לוגית מה- Uno לארדואינו העצמאי?

כן, אתה כן, אבל אני אראה לך איך להכין בעצמך. כמו כבל ספק האינטרנט, במקרה אין לי כזה.

אני רוצה לבטל את זה מכוח חיצוני. איך אני עושה את זה?

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

המדריך

שלב 1: בניית הארדואינו העצמאי

בניית הארדואינו העצמאי
בניית הארדואינו העצמאי
בניית הארדואינו העצמאי
בניית הארדואינו העצמאי

1) בנה את הארדואינו העצמאי מהקישור הזה. החלק היחיד במדריך שאתה צריך הוא "ATMEGA8/168/328 Basics".

  • אתה יכול להפעיל את הארדואינו העצמאי מה 3.3V מתוך ה- Arduino Uno. (אתה יכול לדלג על החלק הראשון של ההדרכה שכותרתו "הוספת מעגל עבור ספק כוח".
  • החלף את שעון 16 מגה -הרץ עם שעון של 8 מגה -הרץ.
  • הוסף 0.1 כובעי uF בין: VCC ו- Gnd (משני הצדדים) VRef ו- Gnd.

    • אין לי אלה כלולים בתמונה אבל יש לי אותם בפרויקטים שלי!
    • אני יודע שזה מתנד 16 מגה -הרץ בתמונה. צילמתי את התמונה לפני שהבנתי את כל מה שעשיתי במדריך!

מקור התמונה של ATMEGA328p pinout כאן.

טיפים נפוצים לפתרון בעיות

  • וודא שהגדרת הגדרות גבוהה באמצעות הנגד 10k מ- VCC לסיכה 1 של ה- ATMEGA. אם הסיכה מקורקעת או צפה היא לא תעבוד.
  • בדוק שוב שהכנסת את החוטים ואת המתנד כהלכה.
  • ודא שאתה משתמש בקבלים 22pF עבור המתנד 8 מגה -הרץ. אחרת זה לא יעבוד.
  • ודא שהמכשיר מופעל.

שלב 2: חיווט ספק האינטרנט

חיווט ספק האינטרנט
חיווט ספק האינטרנט
חיווט ספק האינטרנט
חיווט ספק האינטרנט

2) צור את נתח ספק האינטרנט

אתה תעקוב אחר המדריך הזה כאן עם צעד קטן אך חשוב מאוד.

הסיבה שאתה לא יכול פשוט לעקוב אחר המדריך היא כי חסר לך חלק מכריע: אינך יכול לתכנת מכשיר 3.3V ישירות מחיבורי 5V. (לפחות לא יכולתי: זה לא יעבוד עד שאעשה זאת). עליך להכניס מחוון ברמה לוגית המעביר את אותות 5V מה- UNO ל- Arduino 3.3V.

אם אין לך לוח משמרות ברמה לוגית, אתה יכול להכין אחד באמצעות נגדים. כל מה שמשתנה ברמת ההיגיון באמת (כל עוד אתה זז למטה) הוא מחלק מתח. תזדקק ל -6 נגדים זהים, שום דבר גבוה מדי או נמוך מדי. השתמשתי בנגדים של 220 אוהם, אבל אני בטוח שאפילו נגדים 10k יעבדו.

עבור SCK (סיכה דיגיטלית 13) ו- MOSI (סיכה דיגיטלית 11), השתמש במפריד מתח כדי לחתוך את המתח בשליש. בעיקרו של דבר, יהיה לך Uno SCK ו- MOSI אחד, ואז נגד (220 אוהם), ואז SCK ו- MOSI המחוברים ל- Arduino העצמאי ושני נגדים (בסך הכל 440 אוהם) לקרקע.

לכן, קרא את המדריך המקושר בתחילת פרק זה, אך כלול מחלקי מתח בין SCK ל- MOSI. זכור, SCK, MISO, MOSI ו- RESET הם סיכות 13, 12, 11 ו- 10 ב- Uno אך הם סיכות 19, 18, 17, ו -1 על Arduino העצמאי!

טיפים נפוצים לפתרון בעיות

  • בדוק את החיווט

    • אם אתה מקבל חתימת מכשיר של כל ה -0 כשאתה מנסה לכתוב תוכנית, אז החיווט שלך כבוי כמעט בוודאות, או שהארדואינו העצמאי אינו מקבל חשמל.
    • כמו כן, ודא שיש לך את חוט האיפוס מ -10 ב- Uno ל- 1 ב- Arduino העצמאי
  • בדוק את מחלקי המתח

    ודא שיש לך מחיצות מתח ביחס של 1: 2 (צד גבוה: צד נמוך) לנגדים הן ל- SCK והן ל- MOSI. לְמָשָׁל. נגד 220 בצד +5v ולאחר מכן 2 נגדים של 220 אוהם (סה"כ 440 אוהם) לכיוון הקרקע עם האות לעבר הארדואינו העצמאי באמצע

שלב 3: ערוך את קובץ ה- Bootloader, צרוב את מטען האתחול והעלה את הסקיצה שלך

ערוך את קובץ ה- Bootloader, צרוב את מטען האתחול והעלה את הסקיצה שלך
ערוך את קובץ ה- Bootloader, צרוב את מטען האתחול והעלה את הסקיצה שלך
ערוך את קובץ ה- Bootloader, צרב את מטען האתחול והעלה את הסקיצה שלך
ערוך את קובץ ה- Bootloader, צרב את מטען האתחול והעלה את הסקיצה שלך

3) ערוך את קובץ ה- bootloader (boards.txt) ושרוף את מטען האתחול ל- Arduino העצמאי. העלה את הסקיצה שלך

עריכת קובץ מטען האתחול

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

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

קובץ הלוחות שלי היה במיקום הבא:

C: / Program Files (x86) Arduino / hardware / arduino / avr

עם זאת, ייתכן שיהיה יותר מקובץ boards.txt אחד בתיקיית החומרה שלך מלבד /arudino /. אתה עומד לערוך את קובץ boards.txt ב / arduino / location כי אתה עומד לשנות את הקטע ATMEGA328p (3.3V, 8 MHz).

אתה עלול לאבד את קובץ boards.txt הערוך אם תתקין מחדש או תעדכן את Arduino IDE (על פי הודעה זו). המשמעות היא שאם אתה מעדכן את Arduino IDE, יהיה עליך לשנות הגדרות אלה שוב אם ברצונך ליצור עוד אחד מאותו Arduino עצמאי.

בקובץ boards.txt, גלול מטה או חפש "Pro Mini". הקטע נקרא "pro.name = Arduino Pro או Pro Mini". גלול מטה לסעיף המשנה "pro.menu.cpu.8MHzatmega328 = ATmega328P (3.3V, 8 MHz)".

חפש את השורה שאומרת "pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = _"

שנה את ההגדרות ל- xFE. (pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = 0xFE).

שמור וצא.

שריפת מטען האתחול

לאחר שתעשה זאת, תוכל לעקוב אחר סעיף "הוראות" במדריך ספקי האינטרנט משלבים 1 עד 5.

כמה דברים להבהרה:

  • כאשר אתה מעלה את הסקיצה "Arduino as ISP", עליך לוודא שבחרת את יציאת ה- COM והמעבד הנכונים.

    במקרה זה, זה אומר שבחרת את יציאת ה- COM של Arduino שלך בכלי-> יציאה: COM X (Arduino Uno) והלוח הוא Arduio Uno

  • בחר את המתכנת הנכון: תחת כלים-> מתכנת-> ארדואינו כספקית אינטרנט.

    לא ArduinoISP או ArduinoISP.org

  • לפני שריפת האתחול, שנה את הלוח "Pro או Pro Mini" והמעבד ל "ATMEGA328p (3.3V, 8 MHz)".

    לא תראה את קטע המעבד עד שתבחר את סוג הלוח הנכון

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

מעלה את המערכון

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

כאשר אתה מעלה את הסקיצה שלך, הקפד ללחוץ על כלים -> העלה באמצעות מתכנת או לחץ על Ctrl+Shift+U. תוכל גם להחזיק את Shift וללחוץ על סמל החץ, אך אל תלחץ על סמל החץ מבלי להחזיק Shift.

טיפים נפוצים לפתרון בעיות

  • הפעל פלט מילולי לפתרון בעיות.
  • "סימן המכשיר הוא כל ה -0!" [סביר מאוד שזה יקרה.]

    • עיין בסעיף חיווט ספקי האינטרנט. או שחיברת את הארדואינו העצמאי בצורה לא נכונה או שלא מופעל.
    • ודא שבחרת את יציאת ה- COM ואת הלוח / המעבד הנכונים. כאשר אתה שורף את מטעין האתחול, עליך לוודא שאתה שורף את מטען האתחול של Pro Mini 3.3V 8 MHz או שהנתיכים לא יוגדרו כראוי.
  • "ערכתי את קובץ boards.txt אך אינני רואה את העריכות"

    ודא שערכת את קובץ boards.txt הנכון. נסה לעדכן את Arduino IDE אם העריכות אינן פועלות או הסר תיקיות אחרות בתיקייה / חומרה / תיקייה שלך באופן זמני

  • "אני לא יכול למצוא את מקטע המיני של boards.txt!"

    אתה לא מסתכל בקובץ boards.txt הנכון. בדוק את התיקייה Arduino // hardware/arduino/

שלב 4: תקשורת סדרתית

4) עקוב אחר המכשיר העצמאי באמצעות תקשורת טורית

אתה באמת יכול לעשות זאת באמצעות 2 שיטות, כך שאם אין לך אפילו כבל FTDI / לוח פריצה זה לא סוף העולם. וזכור, המערכון שהעלית לארדואינו העצמאי חייב להכיל הצהרות Serial.print שתוכל לקרוא: אם לא כתבת אותו בתוכנית, לא תראה כלום!

אם אין לך כבל FTDI

לאחר ששרפת את מטען האתחול וכתבת את התוכנית שאתה רוצה, תוכל (בזהירות רבה וזכור לאיזה כיוון הוא חוזר) להסיר את שבב ה- ATMEGA328 DIP מה- Arduino Uno. אני ממליץ להשתמש במשטח שטוח בשביל זה.

אתה יכול לחבר את ה- RX העצמאי של Arduino ל- RX של Uno ו- TX ל- TX. כן, בדרך כלל זה הפוך, אבל אתה יכול לחשוב שה- Uno הוא "העברת" המידע לצג הטורי של ה- IDE. לכן אינך מחבר RX ל TX ו- TX ro RX במקרה זה. כאשר אתה מפעיל את התוכנית שלך, ודא שבחרת את יציאת ה- COM של Arduino Uno ופתחי מונטור סדרתי. תוכל לראות את הפלט הסידורי של הסטנדאון Arduino.

(פתרון זה נזקף לזכות רובין 2 כאן.)

אם יש לך כבל / לוח FTDI

(אני משתמש בלוח ה- FTDI של Sparkfun שהמירתי ל- 3.3V באמצעות כרית ההלחמה מאחור)

כל שעליך לעשות הוא לחבר את ה- GND של לוח הפריצה לקרקע של Arduino העצמאית ולחבר את ה- RX של לוח הפריצה ל- TX ו- TX ל- RX של Arduino. (אם אתה רק ניטור סדרתי ואינך כותב שום דבר בחזרה, תוכל פשוט לחבר את ה- RX של לוח הלוח ל- Arduino TX).

זכור כי בשלב זה יש לך אפשרות להפעיל את הארדואינו העצמאי באמצעות Uno או כבל FTDI. אין לחבר את שני מקורות החשמל בו זמנית! שים לב שתצטרך לשנות את יציאת ה- COM מכיוון שהיא תהיה שונה מיציאת ה- Arduino Uno COM.

טיפים נפוצים לפתרון בעיות

  • "אני לא רואה כלום!"

    • בדוק אם יציאת ה- COM הנכונה מופעלת.
    • בדוק אם יש לך את מנהלי ההתקנים העדכניים ביותר של FTDI.
    • ודא שהאדמה מחוברת.
  • "כל מה שאני רואה הוא פלט זבל במסך הסדרתי!"

    • אתה מקבל משהו שהוא סימן טוב.
    • עם זאת, בדוק את המתח של לוח FTDI.
    • ה- Arduino העצמאי מוציא 3.3V על ה- TX שלו ולוח FTDI לא יכול להרים אותו אם הוא מצפה ל- 5V.
    • בדוק את קצב השידור.
    • ודא שיש לך חיבור לקרקע ורק מקור חשמל אחד מחובר! (כלומר, אל תפעיל את הארדואינו העצמאי מלוח ה- Uno ו- FTDI שלך.

מוּמלָץ: