07-06-2009, 20:45
|
מנהל
|
|
חבר מתאריך: 26.07.08
הודעות: 6,473
|
|
ציטוט:
אין בעיה, אתה צריך בסך הכל שני פוינטרים: אחד לכתובת התחלת המידע (מצביע לכתובת המידע האחרון שנשלח + 1), ומצביע נוסף לכתובת המידע האחרון שנכתב + 1 (הכתובת הבאה לכתיבה). בזמן קריאה אתה רץ מהפוינטר הראשון עד השני.
|
אבל אם אני כותב כל X שניות\דקות קבוצה של בתים, אז אני לא יודע מתי אפסיק (זה יכול להמשיך עוד ועוד...)
או שאתה מתכוון שכל קבוצה תיתחם עם פוינטר לתא האחרון של הקבוצה?
יש לי רעיון שאני חושב שיספיק, בבקשה תקן אותי אם אני טועה:
נניח שכל התאים ברכיב הפלאש מאופסים. ('0' לוגי בכל הביטים)
ואני יודע שכל קבוצה שאכתוב, תהיה בעל גודל ידוע.
אז בצורה הזאת אני יודע איך להפריד בין הקבוצות, וגם אני יודע שכאשר אתקל בבית שערכו 0x0, אז זה יהיה סוף המידע.
כדי שלא יהיה מצב שהבית הראשון של קבוצה מסוימת מכיל ערך 0x0, אוודא שהבית הראשון יהיה בוודאות חלק ממידע מסוים שהוא תמיד שונה מ-0.
ציטוט:
אין שום היגיון לממש את הפונקציות הללו ב CPLD או FPGA. מימוש במיקרו הרבה יותר פשוט, מה עוד שאופן הכתיבה ל FLASH הוא מורכב מעט - כדאי שתעבור על דפי הנתונים של FLASH כלשהו כדי לקבל מושג.
|
אני יודע, אבל מאוד חשוב לי החיסכון באנרגיה לבטרייה. עם מיקרו, הבטרייה תהיה חסרת ערך תוך יום...
והבנתי שאפשר לכתוב ל-CPLD קוד בשפת C (שמתורגם לשפת תיכנות הרכיב, בעזרת JTAG)
או קוד בשפת Verilog שכנראה יש לו את העוצמה של C.
ציטוט:
בנוסף - איך אתה מתכוון לממש ממשק USB ללא מיקרו ?
|
יש רכיב שמתרגם serial bit stream אל הערך המתאים ב-USB. אאל"ט זה הופך UART ל-USB. (או RS ל-USB? יצאתי די מבולבל... אקרא שוב)
|