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

דוגמא לתכנות MTP Arduino: 5 שלבים
דוגמא לתכנות MTP Arduino: 5 שלבים

וִידֵאוֹ: דוגמא לתכנות MTP Arduino: 5 שלבים

וִידֵאוֹ: דוגמא לתכנות MTP Arduino: 5 שלבים
וִידֵאוֹ: MCSA קורס | Domain Installation - התקנת דומיין 2024, יולי
Anonim
דוגמא לתכנות MTP Arduino
דוגמא לתכנות MTP Arduino

במדריך זה אנו מראים כיצד להשתמש במערכון תכנות SLG46824/6 Arduino לתכנות מכשיר Dialog SLG46824/6 GreenPAK ™ לתכנות מרובה (MTP).

רוב מכשירי GreenPAK ניתנים לתכנות חד פעמי (OTP), כלומר ברגע שנכתב בנק הזיכרון הלא נדיף שלהם (NVM), לא ניתן להחליף אותו. ל- GreenPAK עם תכונת MTP, כמו SLG46824 ו- SLG46826, יש סוג אחר של בנק זיכרון NVM שניתן לתכנת יותר מפעם אחת.

כתבנו שרטוט של Arduino המאפשר למשתמש לתכנת MTP GreenPAK עם כמה פקודות צג טורי פשוטות. במדריך זה אנו משתמשים ב- SLG46826 כ- GreenPAK שלנו עם MTP.

אנו מספקים קוד לדוגמא ל- Arduino Uno באמצעות פלטפורמת קוד פתוח המבוססת על C/C ++. על מעצבים להוציא את הטכניקות המשמשות בקוד Arduino לפלטפורמה הספציפית שלהם.

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

להלן תיארנו את השלבים הדרושים כדי להבין כיצד תוכנת שבב GreenPAK. עם זאת, אם אתה רק רוצה לקבל את התוצאה של התכנות, הורד את תוכנת GreenPAK כדי לצפות בקובץ העיצוב GreenPAK שכבר הושלם. חבר את ערכת הפיתוח של GreenPAK למחשב שלך והקש על התוכנית כדי ליצור את ה- IC המותאם אישית.

שלב 1: חיבורי Arduino-GreenPAK

חיבורי Arduino-GreenPAK
חיבורי Arduino-GreenPAK
חיבורי Arduino-GreenPAK
חיבורי Arduino-GreenPAK

כדי לתכנת את ה- NVM של ה- SLG46826 GreenPAK שלנו עם סקיצה Arduino שלנו, תחילה יהיה עלינו לחבר ארבעה סיכות Arduino Uno ל- GreenPAK שלנו. אתה יכול לחבר את הפינים האלה ישירות למתאם GreenPAK Socket או ללוח פריצה עם הלחמה של GreenPAK.

אנא שים לב כי נגדי משיכה חיצוניים I2C אינם מוצגים באיור 1. אנא חבר חיבור כלפי מעלה של 4.7 kΩ הן מ- SCL והן מ- SDA ליציאת 3.3 V של הארדואינו.

שלב 2: ייצוא נתוני GreenPAK NVM מקובץ עיצוב GreenPAK

ייצוא נתוני GreenPAK NVM מקובץ עיצוב של GreenPAK
ייצוא נתוני GreenPAK NVM מקובץ עיצוב של GreenPAK
ייצוא נתוני GreenPAK NVM מקובץ עיצוב של GreenPAK
ייצוא נתוני GreenPAK NVM מקובץ עיצוב של GreenPAK
ייצוא נתוני GreenPAK NVM מקובץ עיצוב של GreenPAK
ייצוא נתוני GreenPAK NVM מקובץ עיצוב של GreenPAK

נרכיב עיצוב פשוט מאוד של GreenPAK כדי להמחיש כיצד לייצא את נתוני NVM. העיצוב שלהלן הוא מחלף רמה פשוט שבו הסיכות הכחולות משמאל קשורות ל- VDD (3.3v), בעוד שהסיכות הצהובות מימין קשורות ל- VDD2 (1.8v).

כדי לייצא את המידע מעיצוב זה, עליך לבחור קובץ → ייצוא → ייצוא NVM, כפי שמוצג באיור 3.

לאחר מכן יהיה עליך לבחור קבצי Intel HEX (*.hex) כסוג הקובץ ולשמור את הקובץ.

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

הדגש והעתק את 256 הבייטים של נתוני תצורה של NVM הנמצאים בתוך קובץ HEX. אורכו של כל שורה שאנו מעתיקים הוא 32 תווים, התואם 16 בתים.

הדבק את המידע בקטע nvmString המודגש של המערכון של Arduino כפי שמוצג באיור 6. אם אתה משתמש במיקרו-בקר שאינו Arduino, תוכל לכתוב פונקציה לנתח את nvmData השמורה בקובץ GreenPAK. GP6. (אם אתה פותח קובץ GreenPAK עם עורך טקסט, תראה שאנו שומרים מידע על פרויקטים בפורמט XML הנגיש בקלות.)

כדי להגדיר את נתוני EEPROM עבור עיצוב GreenPAK שלך, בחר בלוק EEPROM מחלונית הרכיבים, פתח את לוח המאפיינים שלו ולחץ על "הגדר נתונים".

כעת תוכל לערוך כל בית ב EEPROM בנפרד בעזרת ממשק ה- GUI שלנו.

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

עבור כל עיצוב מותאם אישית, חשוב לבדוק את הגדרות ההגנה בכרטיסייה "אבטחה" בהגדרות הפרויקט. כרטיסייה זו מגדירה את סיביות ההגנה עבור אוגרי התצורה של המטריצה, NVM ו- EEPROM. בתצורות מסוימות, העלאת רצף NVM יכולה לנעול את SLG46824/6 לתצורה הנוכחית ולהסיר את פונקציונליות ה- MTP של השבב.

שלב 3: השתמש בסקיצה של Arduino

השתמש בסקיצה של Arduino
השתמש בסקיצה של Arduino

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

● קריאה - קוראת נתוני NVM של המכשיר או נתוני EEPROM באמצעות כתובת העבדים שצוינה

● מחק - מוחק את נתוני NVM של המכשיר או נתוני EEPROM באמצעות כתובת העבדים שצוינה

● כתוב - מוחק ולאחר מכן כותב נתוני NVM של המכשיר או נתוני EEPROM באמצעות כתובת העבד שצוין. פקודה זו כותבת את הנתונים השמורים במערכי nvmString או eepromString.

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

תוצאות הפקודות הללו יודפסו לקונסולת הצג הטורי.

שלב 4: טיפים לתכנות ושיטות עבודה מומלצות

במהלך התמיכה ב- SLG46824/6, תיעדנו כמה טיפים לתכנות שיעזרו להימנע ממלכודות נפוצות הקשורות למחיקה וכתיבה למרחב כתובות NVM. סעיפי המשנה הבאים מתארים נושא זה בפירוט רב יותר.

1. ביצוע דף NVM מדויק של 16 בתים כותב:

בעת כתיבת נתונים ל- NVM של SLG46824/6, יש שלוש טכניקות שיש להימנע מהן:

● דף כותב עם פחות מ -16 בתים

● דף כותב עם יותר מ -16 בתים

● דפי כתיבה שאינם מתחילים ברישום הראשון בדף (IE: 0x10, 0x20 וכו ')

אם נעשה שימוש באחת הטכניקות לעיל, ממשק MTP יתעלם מכתיבת I2C כדי להימנע מטעינת ה- NVM במידע שגוי. אנו ממליצים לבצע קריאת I2C של שטח כתובת NVM לאחר הכתיבה כדי לאמת העברת נתונים נכונה.

2. העברת נתוני NVM לרשומות התצורה של מטריקס

כאשר כתיבת ה- NVM, רשמי תצורת המטריצה אינם נטענים מחדש באופן אוטומטי עם נתוני NVM החדשים שנכתבו. יש להתחיל את ההעברה באופן ידני על ידי רכיבה על אופניים ב- PAK VDD או על ידי יצירת איפוס רך באמצעות I2C. על ידי הגדרת הרשמה בכתובת 0xC8, המכשיר מאפשר מחדש את רצף איפוס ההפעלה (POR) וטען מחדש את נתוני הרישום מה- NVM לרשמים.

3. איפוס כתובת I2C לאחר מחיקת NVM:

כאשר מחיקת ה- NVM, כתובת NVM המכילה את כתובת העבד I2C תוגדר ל- 0000. לאחר המחיקה, השבב ישמור את כתובת העבד הנוכחית שלו בתוך רושמי התצורה עד לאפס המכשיר כמתואר לעיל. לאחר איפוס השבב, יש להגדיר את כתובת העבד I2C בכתובת 0xCA בתוך רשימות התצורה בכל פעם שה- GreenPAK מופעל או מתאפס. זה חייב להיעשות עד שנכתב דף כתובת העבד החדש של I2C ב- NVM.

שלב 5: דיון Errata

דיון Errata
דיון Errata

בעת כתיבה ל"בית מחיקת הדפים "(כתובת: 0xE3), SLG46824/6 מייצר ACK תואם שאינו I2C לאחר החלק" נתונים "בפקודה I2C. התנהגות זו עשויה להתפרש כ- NACK בהתאם ליישום מאסטר I2C.

כדי להתאים להתנהגות זו, שינינו את מתכנת Arduino על ידי הערת הקוד המוצג באיור 11. קטע קוד זה בודק אם I2C ACK בסוף כל פקודה I2C בפונקציית eraseChip (). פונקציה זו משמשת למחיקת דפי NVM ו- EEPROM. מכיוון שחלק קוד זה ממוקם בלולאת For, "החזר -1;" קו גורם ל- MCU לצאת מהפונקציה בטרם עת.

למרות הימצאות NACK, פונקציות מחיקת NVM ו- EEPROM יבוצעו כראוי. להסבר מפורט על התנהגות זו, עיין ב"בעיה 2: התנהגות ACK תואמת I2C לביית מחיקת הדפים NVM ו- EEPROM "במסמך ה- ergata SLG46824/6 (גרסה XC) באתר Dialog.

סיכום

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

מוּמלָץ: