אינציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל תכנות שבבי זיכרון FLASH. אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל / מיקרו-בקרים שבבי זיכרון לקריאה-בלבד הניתנים לתכנות מחדש עם מחיקה חשמלית של נתונים, שנעשו באמצעות טכנולוגיית FLASH, תפסו עמדה חזקה בטכנולוגיית האלקטרוניקה והמחשבים, והחליפו סוגים אחרים של התקני אחסון לא נדיפים. היתרון העיקרי שלהם הוא היכולת לתכנת מחדש "במערכת" מבלי לבטל את הלחמת השבב מהמעגל המודפס או להסירו מהפאנל. המספר הגדול המותר של מחזורי תכנות מחדש מאפשר לבנות על מיקרו-מעגלים כאלה "דיסקי FLASH" בעלי קיבולת של עשרות מגה-בייט, הנבדלים מכונני דיסקים מגנטיים קשיחים או תקליטונים רגילים בהיעדר מוחלט של חלקים נעים. הודות לכך, הם עמידים ומסוגלים לעבוד בתנאים של רטט חזק, למשל, על מכוניות וחפצים נעים אחרים. המאמר שפורסם מוקדש לנושאים של תכנות שבבי זיכרון FLASH. מה שמבדיל שבבי זיכרון FLASH מסוגים אחרים של ROMs הוא הנוכחות של "מתכנת" מובנה - מכונת מחיקה וכתיבה (AC3) - ישירות על השבב. זה מבטל את הצורך להפעיל מתח מוגבר על מסופי המיקרו-מעגלים במהלך תהליך התכנות וליצור רצפים מסוימים של פולסים. AC3 עושה את כל זה באופן עצמאי וללא תשומת לב של המשתמש, שיכול רק להשתמש בפקודה המתאימה כדי לציין את כתובת התא והקוד שצריך לכתוב בו, ולהמתין לסיום הפעולה. במקרים רבים, ניתן להשהות פעולה ממושכת (כגון מחיקת גוש נתונים), לקרוא את המידע הדרוש מאזור זיכרון אחר, ולאחר מכן להמשיך. כיום, חברות רבות (המפורסמות ביותר הן אינטל. AMD. Atmel. Winbond) מייצרות מבחר גדול של שבבי זיכרון FLASH בקיבולת של עד 4MB. הממשק החיצוני שלהם יכול להיות מקביל או טורי. מיקרו-מעגלים עם ממשק טורי מיועדים בעיקר לאחסון כמויות קטנות של נתונים במכשירים קטנים או מיוחדים, למשל, לאחסון הגדרות קבועות עבור מקלט רדיו או תוכנית ההפעלה של מכשיר חשמלי ביתי. בשלב הבא נדבר על מיקרו-מעגלי FLASH "מקבילים", שמבחינת העיצוב הפיזי והלוגי של הממשק עם המעבד אינם שונים מ-ROMs רגילים, אלא שבדומה ל-RAM, יש להם כניסת כתיבה מאושרת. במעגלים מיקרו כאלה מאוחסנים קודי ה-BIOS של מחשבים מודרניים. ארגון הנתונים יכול להיות שמונה או 16 סיביות. לעתים קרובות ניתן לבחור אותו על ידי חיבור מסוף שסופק במיוחד לחוט משותף או מקור מתח. בנוסף לאפיקי הכתובת והנתונים, שלושה אותות בקרה מסופקים למעגלי המיקרו: בחירת גבישים (CE), הפעלת יציאה (OE) והפעלת כתיבה (WE). זה האחרון הוא רק אם יש לתכנת את המיקרו-מעגל. משך מחזור הקריאה המינימלי הוא 70...150 ns. בשבבי ה-FLASH הראשונים, מערך תאי הזיכרון היה בלוק בודד, וניתן היה למחוק נתונים לחלוטין מהמערך כולו. במיקרו-מעגלים מודרניים רבים, הזיכרון מחולק לבלוקים, ומחיקת הנתונים באחד מהם אינה משפיעה על הנתונים המאוחסנים באחרים. גדלי הבלוק משתנים מאוד - מ-128 בתים ל-128 KB או יותר. עם זאת, בעת קריאת נתונים, כל הזיכרון של המיקרו-מעגל נחשב כמערך יחיד. שזה מחולק פיזית לבלוקים לא משנה. בדרך כלל הבלוקים זהים ויש להם זכויות שוות, אבל הם יכולים גם להיות שונים. לדוגמה, לשבבים מסדרת Intel 28Fxxx יש מה שנקרא אתחול בלוק בקיבולת של 16 קילו-בייט ושני בלוקים פרמטרים של 8 קילו-בייט כל אחד. לאחר מכן מגיע בלוק של 96 KB, ושאר הזיכרון מורכב מבלוקים של 128 KB. המאפיינים של בלוקים אלה שונים במקצת. למטעין האתחול יש הגנת כתיבה ומחיקה של החומרה. הוא מופעל על ידי החלת הרמה הלוגית המתאימה על פין שסופק במיוחד של המיקרו-מעגל. בלוקים של פרמטרים נועדו לאחסן נתונים המשתנים לעתים קרובות ויכולים לעמוד במספר רב יותר של מחזורי מחיקה/כתיבה מאחרים. כל אחד מהמעגלים המיקרוניים בסדרה הנבדקת מיוצר בשתי גרסאות, הנבדלות במיקום הבלוקים במרחב הכתובות. במעגלים מיקרו עם אינדקס B (תחתון), הם ממוקמים, החל מכתובת אפס, בסדר המצוין לעיל. במוצרים עם אינדקס T (למעלה), הסדר הפוך (אתחול - באזור כתובות גבוהות). שבבי זיכרון FLASH המיוצרים כיום מיועדים למתחי אספקה נומינליים מ-2.7 עד 5 וולט. מתח מוגבר (12 וולט) אינו נדרש עבורם כלל או נחוץ רק במצבים מיוחדים מסוימים. במצב פסיבי ("לא נבחר"), מיקרו-מעגלים כאלה צורכים זרם של לא יותר מ-1 mA ממקור הכוח (ברוב המקרים, עשרות מונים פחות). לפעמים מסופק מצב כיבוי מלא מיוחד (מצב שינה), שבו הצריכה זניחה. נכון, אי אפשר לקרוא נתונים ממיקרו-מעגל "ישן", אלא "להעיר" אותו. לפעמים זה לוקח כמה עשרות מיקרו שניות. צריכת הזרם במצב אקטיבי היא עשרות מיליאמפר, ואם תעבירו מיקרו-מעגל ש-AC3 שלו מבצע פעולה ארוכת טווח (לדוגמה, מחיקת נתונים) למצב פסיבי, הזרם לא יקטן עד להשלמתו. תשומת לב רבה מוקדשת להגנה על נתונים המאוחסנים בזיכרון FLASH מפני שינויים מקריים, במיוחד בהשפעת רעשים וחולפים בעת הפעלה וכיבוי של המתח. ברוב המקרים, ישנם שלושה סוגים של הגנת חומרה. הראשון הוא זה. שהמיקרו-מעגל לא מגיב לפולסים במעגל WE עם משך של פחות מ-15...20, השני הוא שכאשר הרמה הלוגית בכניסת OE נמוכה, שום מניפולציה של האותות בכניסות אחרות לא יכולה לגרום להקלטה , השלישי הוא זה. שכאשר מתח האספקה יורד מתחת לרמה מסוימת, AC3 כבוי. עבור סוגים שונים של מיקרו-מעגלים, סף הכיבוי הוא בטווח של 1.5...3.8V. לעיתים ניתן לאסור לחלוטין שינוי ומחיקה של מערך הנתונים כולו או חלקיו. כדי להטיל או להסיר איסור כזה נדרשים בדרך כלל אמצעים "יוצאי דופן" (לדוגמה, הפעלת מתח מוגבר למסופים מסוימים). הגנת תוכנה מסופקת גם. כדי לשנות את התוכן של תא, זיכרון FLASH אינו מספיק, כמו ב-RAM רגיל. לכתוב קוד אחד בכתובת אחת. נדרשת פקודה המורכבת ממספר קודים שנכתבו לכתובות ספציפיות. כל שבב FLASH מסוגל לתקשר עם סוגו למכשיר בו הוא מותקן, מה שמאפשר לבחור אוטומטית את האלגוריתמים הרצויים להקלטת ומחיקת הנתונים. פקודות מתאימות מסופקות כדי להפעיל ולהשבית באופן תכנותי את מצב קריאת המזהה. לאחר הפעלתו, המזהה של היצרן נקרא בכתובת OH, והמכשיר בכתובת 1H (מזהים של חלק מהמעגלים ניתנים בטבלה). באותו מצב, אך בכתובות שונות, במקרים מסוימים ניתן לקבל מידע נוסף, למשל, על מצב הגנת הכתיבה בחומרה. אתה יכול לעבור למצב קריאת מזהה ללא פקודה על ידי הפעלת מתח של +9 V לכניסת הכתובת A12. הסטייה המותרת של ערכו שונה עבור סוגים שונים של מיקרו-מעגלים. במקרים מסוימים זה לא יותר מ-±5%. באחרים, די בכך שהמתח יעלה רק על ערך מסוים, למשל 10 V. המזהים נקראים בכתובות שלעיל, מגדירים אותם מבלי לקחת בחשבון את ספרת A9. שיטה זו משמשת בדרך כלל במתכנתים אוניברסליים. AC3 של רוב שבבי הזיכרון FLASH מקבלים פקודות שהונפקו בהתאם למה שנקרא תקן JEDEC, אם כי יש יוצאים מן הכלל. לפעמים, כאשר משדרגים מעגלים מיקרו, מערכת הפיקוד שלהם מתווספת בשילובי קוד סטנדרטיים, תוך שמירה על הפקודות הישנות (זה הכרחי כדי שהגבישים המשודרגים יוכלו לעבוד במכשירים שפורסמו בעבר). אינטל משתמשת במערכת פיקוד משלה. לפני שנסתכל בפירוט על הפקודות, בואו נספר לכם קצת על חיבור שבבי FLASH. מיקרו-מעגלים מאותו סוג מיוצרים בדרך כלל במספר סוגים של אריזות, שונות במיקום, בגובה ובמספר הפינים. לעתים קרובות, ניתנות אפשרויות "מראה" המאפשרות לך להתקין מיקרו-מעגלים בכל צד של הלוח מבלי לשנות את הטופולוגיה של המוליכים המודפסים. מספרי הפינים בתרשימים שלהלן הם סטנדרטיים עבור שבבי זיכרון של 512 KB בחבילות PLCC ו-PDIP הנפוצות ביותר עם 32 פינים. ה-"pinout" של מיקרו-מעגלים קטנים יותר דומה, אך הפינים של הביטים המשמעותיים ביותר אינם מחוברים (לדוגמה, ל-Am29F010 יש את הסיביות ה-30 וה-1 פנויות). מעגל דומה לזה שמוצג באיור. 1 משמשים אם יש צורך למחוק ולכתוב נתונים מבלי להסיר את השבב ממערכת המיקרו-מעבד. ההנחה היא שאפיק הנתונים של המערכת הוא שמונה סיביות, הכתובות הן 16 סיביות. ל-ROM מוקצים 32 KB של שטח כתובת, את שאר זה ניתן לתפוס על ידי RAM. מכיוון שקיבולת הזיכרון של Am29F040 היא 512 KB, מסופק אוגר דפי זיכרון FLASH השולט בסיביות בסדר גבוה של הכתובת. כדי לקרוא ולכתוב נתונים, אתה יכול להשתמש בהליכים הפשוטים הבאים (כתובים בפסקל): אם צריך לתכנת שבב FLASH מחוץ למכשיר בו הוא יעבוד, ניתן לחבר אותו למחשב אישי. הדרך הקלה ביותר לעשות זאת היא להתקין כרטיס קלט/פלט מקביל נוסף במחשב. לוחות כאלה, למשל, PCL-731 מבית Advantech, DIO-48 מבית IOP DAS או PET-48DIO מ-ADLink, זמינים מסחרית. ככלל, יש להם 48 כניסות/יציאות ופועלים בדומה לשני מעגלים 8255 (KR5806B55A) במצב O עם אותן יציאות מידע ובקרה, גם אם במציאות הם לא מכילים מעגלים כאלה. במידת הצורך, ניתן ליצור לוח קלט/פלט מקביל באופן עצמאי, באמצעות המאמר של N. Vasilyev "PC Interface Expander" (רדיו, 1994, מס' 6, עמ' 20, 21). לקריאה או לתכנות, שבב ה-FLASH מחובר ליציאות של שני שבבים 8255 לפי התרשים המוצג באיור. 2. יציאת ה-RA של הראשון שבהם משמש לקלט/פלט נתונים, סיביות בודדות של יציאת ה-PC שלה משמשות ליציאת אותות בקרה CE, OE ו-WE. יציאות PA, PB ו-PC של השני יוצרות את אפיק הכתובות של 24 סיביות של שבב FLASH. אם רוחב סיביות נמוך יותר של אוטובוס זה מספיק, המספר המתאים של סיביות מסדר גבוה של יציאת המחשב אינו מחובר. יציאות לוח קלט/פלט וקבועי עזר חייבים להיות מתוארים בתוכנית באופן הבא: והנהלים שתוארו לעיל לגישה לזיכרון FLASH מוחלפים בדברים הבאים: м עכשיו - בעצם על תכנות שבבי FLASH. לפי תקן JEDEC, כל פקודה מתחילה בכתיבת קוד OAAN בכתובת 5555H. לאחר מכן, רשום את הקוד 55H בכתובת 2AAAN ולבסוף, את הקוד של הפעולה המתבצעת בכתובת 5555N. כשמדברים, למשל, על הפקודה 40H, נתכוון בדיוק לרצף כזה עם המספר 40H כקוד הפעולה. לאחר הפעלת המתח, כל שבב FLASH נכנס אוטומטית למצב זה ואין צורך להתקין אותו בפקודה מיוחדת. עם זאת, נדרש, למשל, לחזור ממצב קריאת מזהים. זה נקרא לפעמים פקודת האיפוס או ההתקנה הראשונית. כדי להכניס כמה מיקרו-מעגלים למצב קריאה של מערך, מספיק מחזור אחד של כתיבת קוד 0F0H בכל כתובת. מחזור הכתיבה בעקבות הפקודה 0A0H מכיל את הכתובת של התא הניתן לתכנות ואת הקוד שנכתב אליו. ברוב המקרים, כתיבה לכל תא דורשת פקודה נפרדת. זכור שכמו EEPROMs רגילים, בסיביות של תא שניתן לתכנות אתה יכול להחליף רק לוגיים באפסים. כדי לבצע את הפעולה ההפוכה, בדרך כלל יש צורך קודם כל למחוק את התוכן של בלוק זיכרון שלם ולחזור על התכנות של כל התאים שלו. שימו לב ש-AC3 של שבבי FLASH רבים אינו מזהה שגיאות כאלה ומדווח על פעולה מוצלחת. כדי להבטיח תכנות נכון, יש צורך בקריאת בדיקה של הנתונים המוקלטים. במיקרו-מעגלים של Winbond עם בלוקים בגודל של 128 בתים, תכנות כל תא מוקדם אוטומטית על ידי מחיקת כל הנתונים בבלוק המכיל אותו. לכן, תחילה עליך להעתיק את הבלוק ל-RAM, לבצע את השינויים הדרושים להעתקה ולתכנת שוב את כל 128 הבתים. לאחר קבלת פקודת OAON, הכתובת והבתים הראשון הניתנים לתכנות, AC3 מכניס אותו למאגר הפנימי של הבלוק וממתין 200 μs מבלי להתחיל בתכנות. אם במהלך זמן זה מתקבלת פקודת OAON נוספת ובייט נוסף, היא גם תיכנס למאגר, ו-AC3 ימתין עוד 300 מיקרומטרים לשלב הבא. זה נמשך עד אז. עד שכל 128 הבתים של הבלוק התקבלו או שההפסקה חורגת מהערך המותר (300 מיקרוסופט). לאחר מכן, AC3 מוחק את הבלוק ומתחיל בתכנות בפועל. סדר כתיבת הנתונים למאגר עבור תאים שונים בבלוק אינו משנה, אך אותם תאים שעבורם לא התקבלו נתונים יכילו קודים 0FFH לאחר התכנות. ישנן שתי דרכים לכתוב נתוני תכנות לשבב כזה. הראשון שבהם (הרגיל עבור אחרים) נקרא תוכנה מוגנת. יש להקדים לכל בייט שנכתב פקודת OAON. עם זאת, ניתן להשבית את ההגנה על ידי הוצאת פקודות עוקבות 80H ו-20H. לאחר מכן, בית שנכתב לכל כתובת נכנס למאגר הפנימי של המיקרו-מעגל, ומצב זה נשמר גם לאחר כיבוי והדלקה. הם משאירים את זה בפקודת האו"ם. כדי לכתוב נתונים למיקרו-מעגל Intel FLASH, ניתנות שתי אפשרויות פקודה מקבילות. קודם כל, אחד מהקודים 40H או 10H נרשם בכל כתובת. ולאחר מכן - הקוד הניתן לתכנות בכתובת הרצויה. הפקודה "מחק את כל הזיכרון". שבב AC3 FLASH מתחיל את הפעולה החשובה הזו על ידי קבלת רצף של שתי פקודות - 80H ו-10H. שבבי אינטל מקבלים פקודה דומה על ידי כתיבת קודים 20H ו-0D0H לכתובות שרירותיות מחיקת כל תוכן הזיכרון נמשכת מעשרות אלפיות שניות למספר שניות. חלק מהמיקרו-מעגלים מספקים את היכולת להשהות תהליך זה על ידי כתיבת קוד OVON לכל כתובת. לאחר כתיבת (גם בכל כתובת) קוד 30H (עבור שבבי אינטל - ODOH), המחיקה תימשך. פקודת "מחק חסימה".. כדי למחוק את התוכן של בלוק זיכרון, יש להוציא שתי פקודות. הראשון שבהם הוא 80Н, השני שונה בכך שקוד הפעולה שלו 90Н חייב להיכתב לא בכתובת 5555Н, אלא בכתובת של כל אחד מהתאים של הבלוק שנמחק. הפקודה "קרא מזהים".. כדי לעבור למצב זה, השתמש בפקודה 90H, אך לפעמים נדרש רצף של שתי פקודות - 80H ו-60H. במיקרו-מעגלים של אינטל, מספיק לכתוב את קוד 90H בכל כתובת. צא ממצב זה באמצעות הפקודה "קרא מערך נתונים" שנדונה לעיל. איך אני יכול לבדוק את השלמת פקודות תכנות ומחיקה ארוכות? הדרך הקלה ביותר היא להשתמש בנתוני הייחוס של המיקרו-מעגל ולספק את יצירת התוכנה של העיכובים המתאימים. אבל זמן הביצוע בפועל של פעולות מסוימות לעתים קרובות שונה באופן משמעותי מערכי הייחוס, אפילו עבור תאים ובלוקים שונים של אותו מיקרו-מעגל, גדל ככל שהאחרונים "מזדקנים". קריאת פנקס הסטטוס של AC3 מאפשרת לך לגלות מתי בדיוק מסתיימת פעולה. שבב ה-FLASH מוציא את תוכן האוגר הזה לאפיק הנתונים כל הזמן ש-AC3 עסוק בביצוע הליך המחיקה או התכנות. ישנם שני סימנים לכך שהתהליך לא הושלם. הראשון הוא שהערך של סיביות D7 של אוגר המצב הפוך ביחס לערך שנכתב לאותו סיביות של תא הזיכרון (במהלך המחיקה, הוא שווה ל-0). עם השלמת הפעולה, הוא יתאים לזה המוקלט. הסימן השני הוא "הבהוב" של סיביות D6 (ערכו משתנה עם כל קריאה של האוגר עד להשלמת הפעולה). ככלל, שני הסימנים נצפים, אבל יש יוצאים מן הכלל. לדוגמה, במיקרו-מעגלים של אינטל אין ביט "מהבהב", והביט D7 הוא 0 במהלך התכנות, ללא קשר לקוד שנכתב. סוף הפעולה במקרה זה מסומן על ידי D7=1. במיקרו-מעגלים עם הקלטת בלוק (לדוגמה, מ-Winbond), הערך של סיביות D7 הפוך לאותו סיביות כמו הקוד האחרון שנכתב במאגר הבלוק - בדרך כלל, עם השלמת התכנות או המחיקה, שבב FLASH חוזר אוטומטית למצב קריאת מערך הנתונים, אך שבבי אינטל דורשים פקודה מתאימה לכך. אם השבב פגום, ייתכן שהפעולה הארוכה לא תושלם לעולם, מה שיגרום למחשב התכנות לקפוא. כדי להימנע מכך, יש צורך לבדוק את משך פעולות המחיקה והתכנות, ואם חריגה מערך סביר, לספק פלט "חירום" עם הודעת תקלה. לפעמים, במיוחד כשעובדים עם מיקרו-מעגלים שעברו קרוב למספר המרבי של מחזורי מחיקה/תכנות, הגיוני לחזור על פעולה לא מוצלחת מספר פעמים. אחד הניסיונות עשוי להצליח. לסיכום, כמה מילים על כלי עזר המאפשרים לעדכן את ה-BIOS של המחשב המאוחסן בזיכרון FLASH. הם מפותחים עבור כל סוג של לוחות מערכת (לוח אם) ולוקחים בחשבון את התכונות של חיבור שבבי FLASH לאוטובוסי מערכת. לכן, ניסיונות להשתמש בכלי שירות שמיועד לסוג אחד של לוח כדי לעדכן את ה-BIOS של אחר מובילים לעתים קרובות לכשל מוחלט של המחשב. השירות מושק כתוכנת יישום רגילה, המציינת כפרמטר את שם הקובץ המכיל קודים עבור גרסת ה-BIOS החדשה. הוא קורא את הקובץ הזה, יוצר מערך של נתונים ב-RAM שאמור להיכתב לזיכרון FLASH. לאחר מכן הוא קובע את סוג השבב ובוחר את ההליכים המתאימים לעבוד איתו. לאחר מכן, נתונים ישנים מתחילים להימחק ונכתבים נתונים חדשים, ובמהלך זמן זה התוכנית אינה יכולה להשתמש בפונקציות של BIOS, כולל הצגת מידע על המסך או סקר המקלדת. אם זה עדיין נחוץ, תת-השגרות הדרושות כלולות בכלי השירות עצמו. לאחר השלמת התכנות ומאומת כנכון, המחשב בדרך כלל מופעל מחדש ומתחיל חיים חדשים עם ה-BIOS המעודכן. מחבר: A. Dolgiy, מוסקבה ראה מאמרים אחרים סעיף מיקרו-בקרים. תקרא ותכתוב שימושי הערות על מאמר זה. חדשות אחרונות של מדע וטכנולוגיה, אלקטרוניקה חדשה: התמצקות של חומרים בתפזורת
30.04.2024 ממריץ מוח מושתל
30.04.2024 תפיסת הזמן תלויה במה מסתכלים
29.04.2024
עוד חדשות מעניינות: ▪ לא לחץ הוא מסוכן, אלא התגובה אליו ▪ צג גיימינג 21 אינץ' Iiyama ProLite GE2488HS-B1 ▪ רדיואקטיביות בפירמידות המצריות ▪ סוללה קומפקטית Urbn Nano 20000 mAh עדכון חדשות של מדע וטכנולוגיה, אלקטרוניקה חדשה
חומרים מעניינים של הספרייה הטכנית החופשית: ▪ חלק של האתר מגברי כוח. מבחר מאמרים ▪ מאמר מרחק בגודל עצום. ביטוי עממי ▪ מאמר מהי קורונה סולארית? תשובה מפורטת ▪ מאמר מקבל סחורות. תיאור משרה ▪ מאמר אוורור מקום העבודה. אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל ▪ מאמר מיקסר אודיו למצלמת וידיאו. אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל כל השפות של דף זה בית | הספרייה | מאמרים | <font><font>מפת אתר</font></font> | ביקורות על האתר www.diagram.com.ua |