מקסימום DS2431 1K EEPROM הוא 1-Wire גאדג ‘ט אשר מוסיף אחסון לעבודה ניצול סיכת מיקרו-בקר אחת. אנחנו בעבר interfaced מדחום 1 חוט, אולם EEPROM זה שונה במקצת כי הוא שואב כוח ישירות מן האוטובוס 1 תיל. קבל את גיליון הנתונים (PDF), כמו גם לציית יחד בזמן בדקנו, כמו גם להלחין את זה קל 1 חוט זיכרון.
DS2431 1-WIRE 1K EEPROM (DigiKey # DS2431 + -ND, $ 1.67)
אנו מנצלים את האוטובוסים שלנו פיראט יוניברסל ממשק סדרתי כדי להפגין את EEPROM DS2431, כיסה את החיבורים המתאימים, כמו גם אפשרויות תצורה בהודעה הקודמת 1 תיל. DS2431 צריך רק שני קשרים: הקרקע (סיכה 1), כמו גם 1 חוט / כוח (סיכה 2). סיכה 3 נשאר לא קשור. כמו בפעם האחרונה, השתמשנו 2k למשוך נגד עם אוטובוס 1 תיל.
ראשית, אנו לנצל את הפקודה של הפיראטים של הפיראטים כדי לקבוע התקנים מקושרים 1 חוט.
1-Wire> (240) <-Search ROM פקודה מאקרו 1WIRE ROM פקודה: עיון (0xf0) מצא גאדג 'טים ב: מאקרו 1-Wire כתובת 1.0x2d 0x54 0xd2 0xef 0x00 0x00 0x00 0x2b <-Address * DS2431 1K EEPROM <- סוג 2.0x2d 0xfe 0x8d 0x43 0x01 0x00 0x00 0x52 * DS2431 1K EEPROM 3.0x2d 0x2b 0xed 0xef 0x00 0x00 0x00 0x7c * DS2431 1K EEPROM נמצאו 0x03 התקנים. הראשון 10 גאדג 'ט מזהות מוצעים על ידי מאקרו, ראה (0). 1-Wire>
הפקודה ROM עיון חושפת כי יש 3 eeproms מקושרים לאוטובוס 1 תיל. הפיראטים באוטובוס מאחסן את כתובות 64bit 1 חוט ב Macros אז אנחנו לא צריכים להקליד אותו בכל פעם. אנו נעבוד עם המכשיר הראשון, שנקבע על ידי מאקרו (1).
כתיבה ל- DS2431 לוקח שלושה שלבים:
כתוב נתונים ל- DS2431 ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ‘
אמת את תוכן הרדקן, כמו גם לקבל את קבלת גישה לחיבור למפתח
העתק נתונים משטח שריטה כדי EEPROM לאחסון לטווח ארוך.
פקודה 0x0f composes ל Scratch Pad. כרית שריטה היא חיץ 8Byte שמחזיק נתונים לפני שמירתו לצמיתות באפרום.
1-Wire> (85) (1) 0x0F 0x00 0x00 0 1 2 3 4 5 6 7 <-Command 1Wire אוטובוס איפוס אישור 1WIRE לכתוב את הפקודה ROM: התאמה (0x55) * בצע עם כתובת 64bit 1WIRE כתובת מאקרו 1: 0x2D 0x54 0xd2 0xef 0x00 0x00 0x00 0x2b 1WIRE לכתוב: 0x0F <-Write כדי שריטה כרית 1WIRE לכתוב: 0x00 <-Begin כתובת BYTE 1 1WIRE לכתוב: 0x00 <-Begin כתובת BYTE 2 1WIRE לכתוב: 0x00 <-Data 1WIRE לכתוב: 0x01 1WIRE לכתוב: 0x02 1WIRE לכתוב: 0x03 1WIRE לכתוב: 0x04 1WIRE לכתוב: 0x05 1WIRE לכתוב: 0x06 1WIRE לכתוב: 0x07 1-Wire>
התאמה ROM מאקרו, (85), מבודד את המכשיר הראשון, (1). 0x0F היא הפקודה להלחין את כרית שריטה, נענתה על ידי כתובת בגין, 0 0. לבסוף, אנו שולחים שמונה בתים של נתונים כדי לשמור את כרית שריטה. כרית שריטה היא שמונה בתים ארוכים, כמו גם כל שמונה בתים יועתקו משטח שריטה כדי eeprom בבת אחת.
1-Wire> (85) (1) 0xAA R: 3 R: 8 R: 2 R: 2 <-Command 1Wire אוטובוס איפוס אישור 1WIRE לכתוב את הפקודה ROM: התאמה (0x55) * בצע עם כתובת 64bit 1WIRE כתובת מאקרו 1: 0x2D 0x54 0xd2 0xef 0x00 0x00 0x00 0x2b 1WIRE לכתוב: 0xAA <-Read שריטה כרית 1Wire בתפזורת קרא, 0x03 בתים: <-Access קוד 0x00 0x00 0x07. 1Wire בתפזורת קרא, 0x08 בתים: <- אמת את הנתונים שלנו 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 1Wire בתפזורת קרא, 0x02 בתים: <- הפוך CRC 0x44 0x67. 1Wire בתפזורת לקרוא, 0x02 בתים: <- כל 1s מכאן 0xff 0xff. 1-Wire>
כדי להעתיק נתונים משטח שריטה כדי EEPROM, אנחנו צריכים מאוד לאחזר תחילה של שלושה בייט לקבל גישה קוד משטח שריטה עם הפקודה 0xAA. שלושת הבתים הראשונים מאוד הם גישה רווח לקוד (0x00 0x00 0x07), עמדו על ידי הנתונים הכלולים כרית שריטה.
1-Wire> (85) (1) 0x55 0x00 0x00 0x07
1Wire אוטובוס איפוס אישור
1WIRE לכתוב את הפקודה ROM: התאמה (0x55) * בצע עם כתובת 64bit
1WIRE כתובת מאקרו 1: 0x2D 0x54 0xd2 0xef 0x00 0x00 0x00 0x2b
1WIRE לכתוב: 0x55 <-Copy לפקודה EEPROM
1WIRE כתוב: 0x00 <-Access קוד (3 בתים)
1WIRE לכתוב: 0x00
1WIRE לכתוב: 0x07
1-Wire> !!!! <-Read bits.
1Wire נבדק החוצה קצת: 0
1WIRE נבדק החוצה קצת: 1 <-Bits חלופי, נעשה
1Wire נבדק החוצה קצת: 0
1wire נבדק קצת: 1
1-Wire>
הפקודה 0x55 עם גישה רווח המתאים לקוד תעתיק את כרית שריטה כדי EEPROM הנתונים. קצת קורא (!!!!) לסירוגין בין 0 וכן 1 כאשר העותק משלים.
1-Wire> (85) (1) 0xf0 0x00 0x00 r: 8 r: 8
1Wire אוטובוס איפוס אישור
1WIRE לכתוב את הפקודה ROM: התאמה (0x55) * בצע עם כתובת 64bit
1WIRE כתובת מאקרו 1: 0x2D 0x54 0xd2 0xef 0x00 0x00 0x00 0x2b
1WIRE לכתוב: 0xF0 <-Read זיכרון
1WIRE כתוב: 0x00 <-Start כתובת (2 בתים)
1WIRE לכתוב: 0x00
1WIR קריאה בתפזורת, 0x08 בתים: <-Read חזרה נתונים
0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07
1Wire בתפזורת לקרוא, 0x08 בתים: <-Read מעבר לנתונים שלנו
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
1-Wire>
הפקודה 0xF0 נענתה על ידי שתי כתובת זיכרון בתים (0x00 0x00) מתחיל את הנתונים נבדק את התהליך. The very first eight bytes (r:8) are the values we composed earlier. Reads don’t include the scratch pad as well as don’t have an 8byte limit, so even more reads continue to the end of the memory.
Don’t fail לזכור להתעדכן בכל סוג של הודעות חלקים ייתכן החמיץ.