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

שימוש במבער EXtreme לתכנות מיקרו -בקר AVR: 8 שלבים
שימוש במבער EXtreme לתכנות מיקרו -בקר AVR: 8 שלבים

וִידֵאוֹ: שימוש במבער EXtreme לתכנות מיקרו -בקר AVR: 8 שלבים

וִידֵאוֹ: שימוש במבער EXtreme לתכנות מיקרו -בקר AVR: 8 שלבים
וִידֵאוֹ: טכניקת Acrylic Pouring עם איזי פלו (פלואטרול) + שימוש במבער 2024, נוֹבֶמבֶּר
Anonim
שימוש במבער EXtreme לתכנות מיקרו -בקר AVR
שימוש במבער EXtreme לתכנות מיקרו -בקר AVR

כל אחוות משתמשי ה- AVR שלך בחוץ, ואלו שרק נכנסים לזרם, חלקכם התחילו עם בקרי מיקרו PIC וחלקם התחילו עם מכשירי ATMEL, זה כתוב בשבילכם!

אז קנית USBASP מכיוון שהוא זול ויעיל להבהב את ה- ROM במכשיר ה- Atmega שלך, או אולי בטווח ATTINY. ניתן להשיג את אלה במחיר של פחות מ -5 $, כשיבוטים סיניים של קוד פתוח USB-ASP! AVRdude היא התוכנה לתכנת אותם.

אתה ללא ספק יודע כיצד ליצור קובץ Hex באמצעות Atmel Studio (אני עדיין משתמש ב- AVR Studio v4.19 במקום ב- v7 העדכני כי הוא מהיר יותר ומהיר יותר במחשב הנייד המעבד הליבה היחיד שלי)/ התקנת Netbook ו- WINAVR אם אתה קורא את זה כל מה שנכתב ב- DotNet פועל לאט! והגרסאות המאוחרות יותר נועדו לגרום למחשב הנייד שלכם לפעול כמו צב! אתה יכול להשתמש ב- Studio v4.19 הגרסה הגדולה ביותר של Studio מ- ATMEL לבקרי מיקרו AVR, לעבור לגרסה 7 כשאתה באמת צריך את זה לשבבים המאוחרים יותר, ולהפוך את הזמן שלך במחשב הנייד ליעיל יותר, עובד במקום לחכות! זה מה שאני ממליץ.

שורת פקודה טיפוסית של AVR אחי לתכנת Atmega עם קובץ Hex, פועלת כך:

כתוב לפלאש: פלאש AVRdude -s -c avrisp -p t44 -P usb -U "w: D: / ARDUINO / pwmeg1.hex: a"

כאן pwmeg1.hex הוא קובץ ה- hex של אינטל שצריך "להישרף" או "להבהב" ב"מרכז המטרה MCU "ב- Lingo המיקרו -בקר

זה חתיכת פה לזכור! תוכל לכתוב קובץ אצווה ולהריץ אותו בשורת הפקודה בחלונות, ולתת לו את השם write_flash.bat. באופן דומה לקריאת הנתיכים, עוד שורת שפה לזכור! זה נהיה מייגע.

להבזק קריאה + eeprom: AVRdude -s -c avrisp -p t44 -P usb -U "פלאש: r: D: / ARDUINO / pwmeg1.hex: i" -U "eeprom: r:: i"

הפתרון הוא להשתמש באחד מכלי ה- GUI הקדמיים הידידותיים למשתמש ל- AVRdude כמו Bitburner, מתכנת Khazama, שהם כמעט דומים בזכותם. צורב eXtreme. השתמשתי בכלי החופשי לשימוש: eXtreme Burner הרבה, רב תכליתי, אמין, ומדריך זה עוסק בכך. זה לא יכול רק להבהב את קובץ ה- Hex / התוכנית שלך ל- MPU, באמצעות פקודות שהונפקו ל- AVRdude ברקע, זה יכול גם לעזור לך להגדיר את ה- FUSES שהוא נושא מסובך שלעתים קרובות מבלבל בין מתחילים לתכנות AVR. להלן קישור להדרכה מצוינת בנושא FUSES שתוכל לעבור או להתחדש בה. מילה של זהירות: ATMEL משתמשת במצב '1' של ביט FUSE כדי לציין את מצב 'ברירת המחדל' שלו (מצב לא מוגדר או לא מתוכנת) ו- '0' לציון מצבו המתוכנת או המוגדר או מופעל! זה בדיוק ההפך ממה שאתה עושה עם סיביות FUSE במיקרו -בקר PIC. היזהר כשאתה משנה את סיבי הפתיל של השעון כמו ביצוע שינוי שעון ה- RC הפנימי לגביש חיצוני מכיוון שזה ייצור בעיות בחיבור לשבב ללא הגדרת קריסטל חיצונית. כמו כן, היזהר כאשר אתה משנה מצב של פיסות נתיכים קריטיים כמו SPIEN ו- RESET DISABLE (תמיד יש להגדיר אותן ל- SPIEN = 0 ו- RESET DISABLE = 1 אם ברצונך להמשיך לתקשר עם ה- MCU עם ה- USB-ASP שלך במצב ISP / SPI. ! אם תבטל את זה תצטרך מתכנת מתח גבוה כדי "לבטל" את ה- AVR שלך.

אם אתה תוהה "מה לעזאזל נתיכים" ו"מה הם עושים "? קרא את המאמר המעולה הזה:

נושא קשור נוסף הוא כיצד להגדיר את מהירות השעון של ה- AVR MPU שלך המסוגל למהירויות בין 1Mhz עד 16 או 20Mhz. ישנה גם אופציית קריסטל בעלת עוצמה מיוחדת בעלת עוצמה נמוכה של 31.25kHz שאם תוכנן כראוי יכול לגרום ל- AVR שלך להפעיל סוללות AA למשך 3 חודשים!

ניתן להגדיר את שני אלה, סיביות נתיך השעון (הן התדירות והן סוג השעון הפנימי/גביש חיצוני, וסיביות נתיכים אחרים) באמצעות הכרטיסייה FUSES ב- eXtreme Burner. ראשית נראה לך לקרוא את ה- ROM ולאחר מכן כיצד להבהב את קובץ ה- hex באמצעות eXtreme Burner. כמובן שתוכל להשתמש גם באתרי הפתיל המקוונים של AVR, אך ניתן להשתמש באפשרות שאני מסביר גם כאשר אתה במצב לא מקוון, בכל מקום.

שלב 1: הגדרות שיש לבצע:

הגדרות שיש לבצע
הגדרות שיש לבצע
הגדרות שיש לבצע
הגדרות שיש לבצע
הגדרות שיש לבצע
הגדרות שיש לבצע
הגדרות שיש לבצע
הגדרות שיש לבצע

התמונות מציגות את ההגדרות שיש לבצע לפני תחילת העבודה. (פעם אחת בלבד). תחת פריט תפריט המשנה 'הגדרות חומרה', אנו בוחרים 375Hz מכיוון שרוב ה- MCU ממפעל ATMEL מוגדר להגדרות ברירת מחדל של שעון מעבד 1 מגה-הרץ במתנד RC פנימי. מהירות ספק האינטרנט היא רבע של F_cpu. זה נותן לנו את המהירות הקרובה ביותר של 375 קילוהרץ, גם אתה יכול ללכת למהירות נמוכה יותר, זה לא ישנה הרבה. אתה יכול לנסות להתחבר ולהשאיר את זה כברירת מחדל, ולהוציא 'קרא הכל', אם זה נכשל אז תוכל לבוא לכאן ולשנות את המהירות ולהפוך אותו לנמוך יותר.

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

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

שלב 2: הגדרת סוג המכשיר שלך

הגדרת סוג המכשיר שלך
הגדרת סוג המכשיר שלך
הגדרת סוג המכשיר שלך
הגדרת סוג המכשיר שלך
הגדרת סוג המכשיר שלך
הגדרת סוג המכשיר שלך

ראו את צילום המסך, תמונה 1, הגדרנו "ATTINY44A". זהו מיקרו -בקר בן 14 פינים ללא UART. השתמשתי בזה לאחרונה, גרסת ה- SSU. אם התקנת את גרסת המלאי של צורב אקסטרים לא תראה את Attiny44A ברשימה הנפתחת של בחירת המכשירים, תראה Attiny44 אשר לכל מטרה אנו יכולים להשתמש בהם כדי לתכנת את Attiny44A גם כדי להציג כל מכשיר שאינו מופיע ברשימה הנפתחת הזו., קרא את ההוראות האחרות שלי "Hacking eXtreme Burner".

השתמשתי ב- Atmega88PA-AU גם עם eXtreme Burner אך במדריך זה אנו מזכירים את "Attiny44A" בכל מקום. עכשיו איך אתה מכין גרסת לוח של שבב ה- SMD המרובע 7 מ"מ ובודק אותו עם התוכניות שלך? (עיין בתמונות המציינות את גודל השבב). לשם כך, עיין במדריך הנוסף שלי שבו אני מדגים כיצד להכין מודולי פלאגין מותאמים ללוח באמצעות Attiny44A-SSU ו- ATmega88PA-AU

לאחר שתלמד את הטכניקה הזו תוכל לבדוק כל שבב שאתה סקרן להתעסק איתו, בין אם הוא חבילת SMD או DIL. לדוגמה, אפילו השתמשתי בשבב SMD המגיע בחבילה מרובעת של פינים בגודל 32 פינים של 0.8 מ מ (Atmega88A) באופן דומה!

. או שאתה יכול פשוט להשתמש בגרסת DIL 28pin של Attiny44A למדריך ההוראות הזה או כל AVR שבו אתה משתמש כרגע כדי לנסות את eXtreme Burner לתכנות AVR.

שלב 3: הוצאת READ ALL או READ FLASH

הוצא קריאת הכל או קריאת פלאש
הוצא קריאת הכל או קריאת פלאש
הוצא קריאת הכל או קריאת פלאש
הוצא קריאת הכל או קריאת פלאש

חבר את ה- USBasp שלך ליציאת ה- USB של המחשב הנייד שלך, אני מניח שכבר טענת את מנהלי ההתקן הנכונים שהגיעו עם המתכנת שלך ושזהה כראוי. הוא אמור להופיע תחת 'התקנים ומדפסות' בתפריט ההתחלה של Windows אם היה, ברגע שהוא מחובר ליציאת ה- USB! חבר את שבב המטרה שלך על הלוח שלו עם ה- USBasp שלך (סיכות רלוונטיות של SDI // ISP באמצעות כבל 6 פינים או 10 פינים, כלומר הפינים: MOSI, RESET, MISO, SCK, Vcc, Ground).

הוצא קריאת הכל מהתפריט של Xtreme Burner. ראו תמונות והודעות שקיבלנו. בתחילה המסך שלך הראה 'FF' עבור ROM בכרטיסייה הראשונה של המבער, לאחר קריאת הכל הוא יציג את תכולת ה- ROM בפועל על השבב. אם היית משתמש בשבב טרי במפעל או שבב מחוק היית רואה FF בתוכן לאחר "קרא הכל". שבב לא מתוכנת יציג 'FF' בזיכרון שלו, כך גם EEPROM (כרטיסייה שנייה במתכנת), הכרטיסייה האחרונה מציגה את ה- FUSES.

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

שלב 4: כתוב ל- Flash (קובץ הקס שלך הבהב ל- ROM על השבב)

כתוב ל- Flash (קובץ ה- Hex שלך הבהב ל- ROM על השבב)
כתוב ל- Flash (קובץ ה- Hex שלך הבהב ל- ROM על השבב)
כתוב ל- Flash (קובץ ה- Hex שלך הבהב ל- ROM על השבב)
כתוב ל- Flash (קובץ ה- Hex שלך הבהב ל- ROM על השבב)
כתוב ל- Flash (קובץ ה- Hex שלך הבהב ל- ROM על השבב)
כתוב ל- Flash (קובץ ה- Hex שלך הבהב ל- ROM על השבב)

בחר קובץ באמצעות תיבת הדו -שיח עיון שנפתחת כאשר אתה לוחץ על הסמל הראשון בשורת התפריטים למעלה. בחרנו קובץ אחד כפי שאתה רואה בתמונה. לאחר שתבחר את קובץ ה- hex (בפורמט intel hex) שורת התפריטים שהראה "אין קובץ נטען" השתנה לשם הקובץ שהעלית.

כעת הוציא Flash Flash מתפריט התוכנה. ההודעות יראו לך מה קורה. לראות את התמונות.

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

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

שלב 5: נתיכים: כיצד להגדיר אותם ב- Burner EXTREME

נתיכים: כיצד להגדיר אותם ב- Burner Extreme
נתיכים: כיצד להגדיר אותם ב- Burner Extreme

כאשר הנפקת קריאה כל הנתיכים נקראו מהשבב. זו התמונה הראשונה שמוצגת fuses.jpg.

עכשיו אולי אתה צריך לשנות אותם למשהו אחר. הנתיכים מורכבים מארבע קופסאות בכרטיסייה האחרונה במסך צורב eXtreme שלך. כלומר BYTE FUSE LOW, BYTE FUSE BYTE, BYTE FUSE BYTE, LOCK FUSE BYTE ו- CALIBRATION BYTE. בסדר זה הם מוצגים.

אתה יכול פשוט להשתמש במחשבון נתיכים ONLINE ולמלא אותם כמו זה ב

eleccelerator.com/fusecalc/fusecalc.php?

או שתוכל להשתמש במבער eXtreme כדי לעשות זאת עבורך. לא מקוון את עצמו בכל עת: בחר מהרשימה הנפתחת שמופיעה כאשר אתה לוחץ על כפתור DETAILS שנמצא מתחת לכל סוג של בית נתיך. פשוט לחץ לחיצה כפולה על כל שורה במסך DETAILS וצפה בו משתנה מ- SET ל- CLEARED והחלף את מצבו בלחיצת העכבר על כל שורה. בית הפיוז בתיבה למעלה זה ישתנה בהתאם.

אם אתה תוהה "מה לעזאזל נתיכים" ו"מה הם עושים "? קרא את המאמר המצוין הזה:

www.instructables.com/id/Avr-fuse-basics-Running-an-avr-with-an-external-cl/

שלב 6: הגדרת נתיכים באמצעות מחשבון נתיכים EXTREM Burner

הגדרת נתיכים באמצעות מחשבון נתיכים EXTREM Burner
הגדרת נתיכים באמצעות מחשבון נתיכים EXTREM Burner
הגדרת נתיכים באמצעות מחשבון נתיכים EXTREM Burner
הגדרת נתיכים באמצעות מחשבון נתיכים EXTREM Burner
הגדרת נתיכים באמצעות מחשבון נתיכים EXTREM Burner
הגדרת נתיכים באמצעות מחשבון נתיכים EXTREM Burner

אתה יכול לראות את מסך הפרטים שמופיע עבור כל אחד מבתי הנתיכים (LOW, HIGH, EXTENDED, LOCK ו- Calibration). יש להשאיר את בית הכיול ללא שינוי מכיוון שהוא מציג את נתוני נתוני הכיול ב- AVR שחלים על מתנד RC הפנימי. בייט LOCK הוא בדרך כלל FF בלבד, (לא נדון בתמונות למעלה) מכיוון שלא היית נועל את Flash או EEPROM בזמן הלמידה. היית משנה רק את הבייטים הנמוכים, הגבוהים והמורחבים. הזהר !

אם תשנה את bit SPIEN ל- 1 (מצב לא מתוכנת הוא 1 בבקרי מיקרו AVR) לא תוכל לתקשר עם השבב שלך באמצעות USBASP או כל מתכנת! מצב ברירת המחדל מוצג במסך גם עבור כל ביט נתיך. זה מתריע לך כי ברירת המחדל של SPIEN היא תמיד 0 (מצב מתוכנת) כדי לאפשר לך להשתמש במצב SPI לתכנות ספקי אינטרנט. Bit-wire או DW bit נשאר תמיד 1 (לא מתוכנת) כאשר SPIEN מוגדר ל- 0. זהו גם מצב ברירת המחדל שלו. כמו כן, בביטים של פיוזים מורחבים 'הפעלת תכנות עצמי' צריך להיות '1' (לא מתוכנת) אם אתה משתמש ב- USB-ASP שלך כדי לתכנת את שבב המטרה שלך (לא משתמש ב- ROM מטען אתחול כמו ב- ARDUINO).

ניתן לשנות את סיביות השעון (3 במספר) לבחירת RC פנימי או קריסטל חיצוני. בדרך כלל אני משאיר אותו ל- RC פנימי המאפשר לך לקבל 2 סיכות נוספות שמשחררות את הגביש החיצוני כמשמשות כסיכות PORT לפרויקטים של ה- AVR שלך. בדרך כלל יש צורך בקריסטל חיצוני כאשר אתה זקוק לתזמון דיוק גבוה בפרויקט שלך. ללומדים מספיק RC פנימי.

בדרך כלל ברגע שתסתפקו בשילוב נתיכים כלשהו לא הייתם משנים אותו. זה יהיה חד פעמי. אתה מהבהב רק ב- ROM או לפעמים גם ב- EEPROM. להבהב קובץ ה- EEPROM הנפרד של EEPROM נוצר על ידי אולפן WINAVR / ATMEL שלך אם בכלל התוכנית שלך משתמשת ב- EEPROM לאחסון נתונים. אחרת ה- EEPROM נשאר ללא שימוש, מלא בנתוני 'FF' המראים 'מצב NO DATA' של EEPROM.

שלב 7: ערך סופי של ביט נתיכים

ערך סופי של ביט נתיכים
ערך סופי של ביט נתיכים

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

היית מבחין שבתחילת ההוראה הזו כשעשינו READ FUSES, המסך מציג את אותם ערכי FUSE שאנו רואים כאן! זה בגלל שאלו הנתיכים שבהם אני משתמש לעתים קרובות ולעתים רחוקות אני משנה אותם ברגע שהגדרתי אותם ב- MCU שלי, אלא אם כן אני משנה את התדר מ -1 מגה -הרץ ל -4 מגה -הרץ לפרויקטים מסוימים. ניתן להגדיר את ה- AVR למקסימום 20Mhz (כמה שבבים עד 16Mhz בלבד). התדירות שהגדרת ל- F_cpu תלויה גם במתח שאיתו אתה מספק את השבב! למשל אם השבב שלך פועל מ 1.8V של Vcc עד 5.5V של Vcc (עיין בדף הנתונים) לא היית מצפה להפעיל את השבב שלך ב 20 מגה -הרץ אם תספק לו 1.8V בלבד! אתה מצפה ממנה ליותר מדי! טבלה בגיליון הנתונים מספרת לך באיזה מתח המתח עולה באיזה נתון. ככל שתדירות פעולת השבבים שלך גבוהה יותר, כך החום וצורכת ההספק שלו גבוהים יותר. תחשוב על התדר כמו פעימות הלב של חיה. יונק עם קצב שמיעה גבוה יהיה צריבת אנרגיה גבוהה יותר לדקה בהשוואה ללווייתן או פיל עם דופק נמוך בהרבה! אבל אז זה יכול לעשות הרבה יותר בזמן קצר יותר. MCU הוא בדיוק כזה.

שלב 8: סיים

עכשיו השלמת את כל השלבים במבער eXtreme, קראת את ROM של שבב, פתח קובץ HEX והצמדת אותו לשבב ואמת שהפלאש תקין, למדת גם כיצד להגדיר את הנתיכים ולהבהב אותם לשבב..

אם יש לך שאלות, אשמח לענות או לשנות את ההדרכה כדי שיהיה ברור יותר.

עבור כמה שבבים אתה עשוי לגלות שהערך שלו חסר ברשימה הנפתחת של בחירת שבבים בתפריט. או שאתה עלול להתמודד עם שגיאות כתיבה ולאמת שגיאות. במקרים כאלה אנא קרא את הוראות ה"האקינג eXtreme Burner "הנוספות שלי כדי לפתור את הבעיה.

תכנות שמח.

מוּמלָץ: