ארדואינו R4 תוצרת בית

הדור החדש של ארדואינו Uno (שנקרא R4 ושהצגתי אותו כאן) נותן לנו גישה למיקרו-בקר 32-ביט חזק ומשוכלל. הנה כל מה שצריך לדעת כדי לשלב את היכולות של השבב הזה ואת הנוחות של ארדואינו עם הגמישות של PCB משלנו.

מיקרו-בקר כמו של ארדואינו R4 Minima, על לוח שלי
מיקרו-בקר כמו של ארדואינו R4 Minima, על לוח שלי

בפוסט הקודם שכתבתי על ה-Uno R4 הזכרתי שה-Bootloader שלו זמין ברשת, וזה מאפשר לנו, בתיאוריה, לתכנן לוחות משלנו שיזוהו במחשב ויתנהגו כמו לוחות ארדואינו. הרעיון הזה עבד יופי עם מיקרו-בקר ATmega328P של הדור הקודם: יכולנו להכין מעגל עם המידות ועם הרכיבים שמתאימים לנו, ועדיין לתכנת אותו באמצעות סביבת הפיתוח המוכרת – ובמיוחד עם הספריות הקיימות! – של ארדואינו. יש בערך מיליון מדריכים ברשת שמסבירים איך לצרוב Bootloader ל-328P ואילו רכיבים היקפיים צריך שיהיו במעגל, אבל למיטב ידיעתי עוד לא קיים מדריך כזה עבור המיקרו-בקר R7FA4M1AB3CFM שב-R4. אז הנה.

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

החומרה הדרושה

בגדול, מבחינת חומרה, חוץ מהמיקרו-בקר עצמו כמובן, אנחנו צריכים שלושה דברים: צורב מתאים (על זה נדבר מייד), קונקטור שדרכו נוכל לצרוב את ה-Bootloader, וקונקטור USB שאיתו נוכל להתחבר אחר כך למחשב ולהעלות קוד רגיל.

את החיווט והרכיבים ההיקפיים עבור הקונקטורים והמיקרו-בקר מצאתי בסכמה הרשמית של ה-R4 Minima, ופחות או יותר העתקתי אותם כמות שהם למעגל שלי. שם השתמשו בקונקטור USB C, וגם אני כי כבר היה לי, אבל זיכרו שזה לא חייב להיות C ובטח שלא USB 3, כי המיקרו-בקר עצמו תומך רק ב-2.0. ביחרו מה שנוח לכם. הוספתי גם לד על פין 37 (שם "פנימי" P111), כמו הלד המובנה של ארדואינו, כדי שקוד "בלינק" יעבוד ישר מהקופסה.

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

ועכשיו נדבר על הצורב. אולי יש פתרונות "מייקריים" זולים, שעוד לא ראיתי; אני בחרתי לעבוד עם תוכנת צריבה רשמית, והיא מגבילה אותנו לשתי אפשרויות: צורב של Renesas (דגם E2 היקר מאוד, או E2 Lite שעולה קרוב ל-300 ש"ח לפני משלוח), או J-Link כלשהו. בעליאקספרס מוכרים חיקויי J-Link, אין לי מושג אם הם יעבדו או לא. לי יש J-Link EDU שעדיין מתאים למשימה, אף על פי שהוא מוגדר כמיושן (Obsolete).

ל-J-Link EDU יש קונקטור סטנדרטי עם 20 פינים. את המיפוי שלהם אפשר לראות בדף הזה, למטה (תחת הכותרת ARM Standard JTAG Connector). מתוכם יש חמישה שאנחנו צריכים בשביל לצרוב את ה-Bootloader: מתח (חיובי ואדמה, פינים 1 ו-4 בהתאמה), איפוס (פין 3), ושני קווי התקשורת SWDIO ו-SWDCLK (פינים 7 ו-9). כך זה נראה בשטח – שימו לב שכל החוטים מתחברים לאותה שורה, פרט לחוט השחור (אדמה) שנמצא מאחורי הלבן, בשורה שרחוקה מהמצלמה:

החיווט הדרוש מ-J-Link לצריבת ה-Bootloader בממשק SWD
החיווט הדרוש מ-J-Link לצריבת ה-Bootloader בממשק SWD (לחצו לתמונה גדולה)

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

התוכנה

הנה שוב הקישור ל-Bootloader לארדואינו R4 Minima . נוריד אותו, ונפתח את תוכנת הצריבה Renesas Flash Programmer. במבט ראשון נדמה שהיא לא תקינה – כל מה שבלשונית Operation בכלל לא מגיב:

צילום מסך של תוכנת הצריבה כשהיא רק עולה
צילום מסך של תוכנת הצריבה כשהיא רק עולה (לחצו לתמונה גדולה)

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

תוכנת הצריבה אחרי צריבה מוצלחת של ה-Bootloader
תוכנת הצריבה אחרי צריבה מוצלחת של ה-Bootloader (לחצו לתמונה גדולה)

הלוח שלי היה מחובר כל אותו זמן ל-USB, וכמובן שעד אותו שלב הוא לא זוהה על ידי המחשב. מיד לאחר הצריבה, סביבת הפיתוח של ארדאינו זיהתה את החיבור החדש. משום מה הוא עדיין לא נקרא COM – השם הזה הופיע רק מאוחר יותר, אחרי ניתוק וחיבור-מחדש של הלוח.

זיהוי של הלוח בסביבת הפיתוח של ארדואינו מיד אחרי צריבת ה-Bootloader
זיהוי של הלוח בסביבת הפיתוח של ארדואינו מיד אחרי צריבת ה-Bootloader (לחצו לתמונה גדולה)

אחרי בחירת הלוח "Arduino UNO R4 Minima" בסביבת הפיתוח, קוד ה"בלינק" הסטנדרטי עלה בלי שום בעיה ללוח, כאילו היה מדובר בלוח ארדואינו קנוי למהדרין.

קוד בלינק רגיל של ארדואינו נצרב ועובד על הלוח שלי
קוד בלינק רגיל של ארדואינו נצרב ועובד על הלוח שלי (לחצו לתמונה גדולה)

אגב, בית הסוללה שרואים בתמונה מיועד לפיצ'ר מסוים של המיקרו-בקר, שארצה לבדוק בהמשך. בכל אופן, עכשיו כשהעסק עובד, אפשר להתקדם לדברים המעניינים באמת – לשלב לוחות בהתאמה אישית עם הנוחות, הספריות והיכולות של ארדואינו, וגם לנצל פיצ'רים נוספים של המיקרו-בקר עצמו בעזרת הפינים שאינם נגישים לנו בלוח ה-Uno. על כך – בעתיד…

להרשמה
הודע לי על
0 תגובות
מהכי חדשה
מהכי ישנה לפי הצבעות
Inline Feedbacks
הראה את כל התגובות