כללים | הודעות אחרונות | נושא RSS | חיפוש | הרשמה | התחבר

פרויקט CY7C64613 להחליף את ICD2


Goto לדף הקודם 1, 2, 3, 4 ... 59, 60, 61 הבא
קפוץ לדף:

Post new topic Reply to topic EDAboard.com אינדקס פורומים -> Microcontrollers -> פרויקט CY7C64613 להחליף את ICD2
גרסה ערבית בולגרית גירסה גירסה קטלנית גרסה צ 'כית הגירסה הדנית הגרסה הגרמנית הגירסה היוונית הגירסה האנגלית גרסה ספרדית פינית גירסה הגירסה הצרפתית גרסה הודו קרואטית גירסה גרסה אינדונזית הגירסה האיטלקית מהדורה עברית גרסה יפנית הגירסה הקוריאנית ליטאית גירסה לטביה גירסה הולנדית גרסה גירסה נורווגית גרסה פולנית גרסה פורטוגזית גרסה רומנית הגירסה הרוסית סלובקית גירסה סלובנית גירסה סרבית גירסה שוודית גירסה לטגלוג גירסה אוקראינית גירסה ויאטנמית גירסה גירסה סינית
מחבר הודעה
Kripton2035



הצטרפות: 19 יולי 2001
הודעות: 482
עזר: 15
מיקום: כדור הארץ


Post 03 לאפריל 2006 8:28 Re: פרויקט CY7C64613 להחליף את ICD2

predrage כתב:
החברים שלי לא הצלחתי תכנות ICD2_4550_BOOT_0180.BIN לתוך 4550. I'v
ניסיתי לפתוח קובץ bin עם winpic 800 התוכנה אך הוא נכשל. אני tryed לפתוח אותו עם האפשרות "כל הקבצים" ב "סוגי קבצים" בגלל שאין תמיכה ישירה bin הקבצים. ICprog יש התומכים (לפתוח קבצי bin) אבל לא יכול תוכנית 4550. למעשה אין 4550 רשימת ההתקנים. מה עלי לעשות כעת? כל הצעה? אני רק Beginner אבל יש לי רצון טוב לעזור.
מצטער על טעות שלי אנגלית.


לשנות את שם. המיחזור ל. hex ו winpic תפתח את זה!
לפעמים הרבה הקבצים. המיחזור במציאות הם אינטל. hex!
כדי להיות בטוח, פתח את הקובץ עם פנקס הרשימות, אם הוא כולל את השורות המתחילות ב ":" אז כדי לשנות את השם. hex ולפתוח אותו עם winpic .. אם זה זבל, אז bin2hex יש להשתמש כדי לפתוח אותו.
לראש הדף
narccizzo



הצטרפות: 20 ינואר 2006
הודעות: 173
עזר: 4
מיקום: PATZCUARO, MICHOACAN, מקסיקו


Post 03 לאפריל 2006 9:42 Re: פרויקט CY7C64613 להחליף את ICD2

אלו הם שני קבצים bin להמרה hex, ביצעתי את פתיחת קבצי bin עם
IC-prog התוכנה ואז לשמור את הקבצים בפורמט hex, אם תסתכל על קבצים אלה ניתן לראות קריא המחרוזת "Microchip Tecnology ICD2 התקן USB USB icd2" 0x0ee7 את הכתובת של הקובץ boot.hex ואותו מחרוזת ב 0x0b8e עבור
os.hex הקובץ, אני dont יש disassembler לבחון ביתר פירוט את הקבצים אבל משהו אומר לי שיש שני קבצים אלה הם כל מה שאנחנו צריכים.

BR
Narccizzo


מצטער, אבל אתה צריך התחבר כדי להציג את הקובץ המצורף

לראש הדף
Jay.slovak



הצטרפות: 23 מרץ 2006
הודעות: 11


Post 03 אפריל 2006 11:17 Re: פרויקט CY7C64613 להחליף את ICD2

narccizzo כתב:
אלו הם שני קבצים bin להמרה hex, ביצעתי את פתיחת קבצי bin עם
IC-prog התוכנה ואז לשמור את הקבצים בפורמט hex, אם תסתכל על קבצים אלה ניתן לראות קריא המחרוזת "Microchip Tecnology ICD2 התקן USB USB icd2" 0x0ee7 את הכתובת של הקובץ boot.hex ואותו מחרוזת ב 0x0b8e עבור
os.hex הקובץ, אני dont יש disassembler לבחון ביתר פירוט את הקבצים אבל משהו אומר לי שיש שני קבצים אלה הם כל מה שאנחנו צריכים.

BR
Narccizzo


האם אתה בטוח שאתה צריך להמיר את הקבצים בצורה נכונה? אם אני מייבא אותם לתוך MPLAB, הקוד אינו הגיוני, כל שהיא עושה הוא פשוט עובר את תוכנית זיכרון פעיל NOPs. שום דבר מועיל שקורה בשני אתחול מערכת ההפעלה ואת HEXs. גם תצורת BITS שונים בשני קבצים!
לראש הדף
Zedman



הצטרפות: 13 אוקטובר 2003
הודעות: 294
עזר: 2


Post 03 אפריל 2006 11:19 פרויקט CY7C64613 להחליף את ICD2

אלברט,

הנהג של הליבה (S) לצפות, את הרצון להתחבר על ברוש אחר vid / pid כאשר firt מחובר, ואחרי זה מטעין SYS הורדות של Fw זה מחדש אחרת vid / pid אחר כך SYS מדבר אליו. אנחנו צריכים ליישם רק את השנייה.
Iam @ עבודה ולכן אני לא יכול לעשות שום דבר קשה לצפות כאן חושב גלגול עיניים ...
לראש הדף
silvio



הצטרפות: 31 דצמבר 2001
הודעות: 800
עזר: 90


Post 03 אפריל 2006 11:31 Re: פרויקט CY7C64613 להחליף את ICD2
תגיות: mplab פרוטוקול icd2 ברוש disassembler disassembler תאשור

היי Zedman,

it's a must to understand what's under cover. סיי בדבר hex קובץ זה לא רק עניין של טוב disassembler ברוש אשר מכיר את הצ 'יפ, אבל קריאה של 436 עמודים EZ-USB FX TechRefManual זהו חייב להבין מה במסווה.
ואני לא מאמין לך זמן לזה. עם זאת, אם אתה לא מכיר 8051 opcodes, ניתוח של הקוד ייקח קצת זמן. (אני יודע שאתה familar עם אלו PIC)
with appropiate values from CY7C64613 registers 0x7800-0x7FFF but you'll definitely end up turning the pages of TechRefManual looking for definitions. אני יכול להחליף כל מופע של MOV DPTR, # LXXXX עם הערכים המתאימים מ CY7C64613 נרשם 0x7800-0x7FFF אבל בהחלט יהיה לך בסופו של דבר, הופך את הדפים של TechRefManual מחפש הגדרות.
חוץ מזה, כי זה יהיה קצת קשה כיצד להקצות BITS שמות אשר נקבעו או לנקות בתוכנית כל עוד הם לא ממופה ב-SFR שטח (אשר נגמר ב 0 או 8).
with MOV DPTR, #EP0CS but it's difficult to say SETB HSNAK due to the above reasons. זה קל להחליף MOV DPTR, # L7FB4 עם MOV DPTR, # EP0CS אבל קשה להגיד SETB HSNAK בשל הסיבות לעיל.

and EP0STAL L which are affected in the bellow code at 0x03E2. בואו לקחת את הדוגמה BITS HSNAK ו L EP0STAL אשר מושפעות על bellow קוד 0x03E2 בבית.
קוד:

L03E2: LCALL L0FBE
JNC L03EE
MOV DPTR, # L7FB4
MOVX A, @ DPTR
ORL A, # 01h; איזה SETB EP0STALL
MOVX @ DPTR, A
L03EE: MOV DPTR, # L7FB4
MOVX A, @ DPTR
ORL A, # 02h; איזה SETB HSNAK
MOVX @ DPTR, A
Ret

L0FBE: SETB C
Ret


קח לדוגמה (CP_1.asm) את שורות הקוד החל לקזז 0x0100 (א subroutine קרא 0x05FA מ), את שורת הקוד הראשונה השתמשו immediatelly bellow וקטור להפריע שולחן
בשעה 0x7FE9 זיכרון RAM אתה יכול למצוא 2 בתים של 8 בתים USB הגדרת נתוני מנות (ראה עמ '215 table9-1), כלומר bRequest השדה (ראה טבלה 9-2).


קוד:

L0100: MOV DPTR, # L7FE9
MOVX A, @ DPTR
JNZ L0109
LJMP L029B; אם bRequest = GetStatus קפיצה 0x029B
L0109: Dec ת
JNZ L010F
LJMP L0317; אם bRequest = נקה התכונה, קפיצה 0x0317
L010F: להוסיף, 0FEh #
JNZ L0116
LJMP L038E; אם bRequest = בחר התכונה, קפיצה 0x038E
L0116: להוסיף, 0FBh #
JNZ L011D
LJMP L0295; אם bRequest = קבל את תצורת קפיצה 0x0295
L011D: Dec ת
JNZ L0123
LJMP L028F; אם bRequest = בחר את תצורת קפיצה 0x028F
L0123: Dec ת
JNZ L0129
LJMP L0283; אם bRequest = קבל בממשק קפיצה 0x0283
L0129: Dec ת
JNZ L012F
LJMP L0289; אם bRequest = בחר ממשק קפיצה 0x0289
L012F: להוסיף, # 05h
JZ L0136
LJMP L03E2; bRequest = אם אף אחד למעלה, ולאחר מכן בחר את BITS HSNAK
; ו EP0STALL של שליטה EP0CS & מעמד הרישום
; אז ret בשעה 0x05FD
;
L0136: LCALL L0F7A; אם bRequest = קבל מתאר, שבו LCALL 0x0F7A
JC L013E; לסחוב סיביות מוגדר כברירת מחדל, כך קפיצה 0x013E
LJMP L03EE; אם בשעה 0x0F7A לשאת יהיה 0 כברירת מחדל, בחר ביט HSNAK
; של EP0CS שליטה & מצב הרישום ret בשעה 0x05FD
;
L013E: MOV DPTR, # L7FEB; כאן כי היה bRequest קבל מתאר
MOVX A, @ DPTR; אפוא, לבדוק את WValueH בתחום ההתקנה USB מנות
הוסף, 0FEh #
JZ L015F; wValueH אם היה 0x02 קפיצה 0x015F
דצמ 'א
JZ L0190; wValueH אם היה 0x03 קפיצה 0x0190
הוסף, # 02h
JZ L0150; wValueH אם היה 0x01 קפיצה 0x0150
LJMP L0279; wValueh אם הוא שונה מאחד 0x01 או 0x02 או 0x03 מכן בחר
; BITS HSNAK ו EP0STALL של EP0CS ולרשום את ret בשעה 0x05FD
;
L0150: MOV A, 0Ch; כאן כי wValueH היה 0x01, כדי לטעון SUDPTR Global USB הרשמה
MOV DPTR, # L7FD4; עם ערך 0x0C0D, ולאחר מכן בחר HSNAK סיביות של EP0CS ו ret בשעה 0x05FD
MOVX @ DPTR, A
MOV A, 0Dh
MOV DPTR, # L7FD5
MOVX @ DPTR, A
LJMP L03EE
L015F: MOV DPTR, # L7FEA; נראה עכשיו wValueL בתחום ההתקנה USB מנות
;
;
;
;
; ועוד ...................


port2: Microchip MPLAB ICD2 Fw client Lookup או שולחן בבית מושוה 0x0622 אשר תואמים את Kripton2035 port2: Microchip MPLAB ICD2 Fw לקוח


קוד:

טבלה 5-9. ברירת המחדל של התקן USB מתאר

זיכרון RAM OFFSET ערך שדה תיאור

0622 0x12 0 bLength זה מתאר אורך = 18 בתים
0623 0x01 מתאר סוג 1 bDescriptorType = ההתקנים
0624 0x00 2 bcdUSB (L) מפרט USB גירסה 1.10 (L)
0625 0x01 3 bcdUSB (ח) מפרט USB גירסה 1.10 (ח)
0626 0xFF Class 4 bDeviceClass ההתקנים (FF הוא ספק ספציפי)
0627 0xFF 5 ההתקנים bDeviceSubClass תת מחלקה (FF הוא ספק ספציפי)
0628 0xFF 6 bDeviceProtocol פרוטוקול ההתקנים (FF הוא ספק ספציפי)
0629 0x40 7 bMaxPacketSize0 Packet גודל מקסימלי עבור EP0 = 64 בתים
062A 0xD8 8 idVendor (L) מזהה ספק (L) Microchip טכנולוגיה = 04D8H
062B 0x04 9 idVendor (ח) ספק, מזהה (ח)
062C 0x01 10 idProduct (L) מזהה המוצר (L) ICD2 = 8001H
062D 0x80 11 idProduct (ח) מזהה המוצר (ח)
062E 0x03 12 bcdDevice (L) שחרר מספר ההתקנים (BCD, L)
062F 0x00 13 bcdDevice (ח) שחרר מספר ההתקנים (BCD, ח)
0630 0x00 14 iManufacturer יצרן אינדקס מחרוזת = אין
0631 0x00 15 iProduct מוצר אינדקס מחרוזת = אין
0632 0x00 16 iSerialNumber מספר סידורי אינדקס מחרוזת = אין
0633 0x01 17 bNumConfigurations מספר תצורות של ממשק זה = 1

טבלה 5-10. תצורת ברירת המחדל USB מתאר

זיכרון RAM OFFSET ערך שדה תיאור

0634 0x09 0 bLength אורך זה מתאר = 9 בתים
0635 0x02 מתאר סוג 1 bDescriptorType = תצורת
0636 0x74 2 wTotalLength (L) סה"כ אורך (L) כולל ממשק ו Endpoint המתארים = 116
0637 0x00 3 wTotalLength (ח) סה"כ אורך (ח)
0638 0x01 4 bNumInterfaces מספר ממשקים בתצורה כזאת
0639 0x01 5 bConfigurationValue המשמשים את תצורת ערך Set_Configuration בקשה לבחירת תצורה זו
063A 0x00 6 iConfiguration מדד מחרוזת המתארת תצורה זו ללא =
063B 0x80 7 תכונות bmAttributes - Bus-Powered, לא Wakeup
063C 0x4B 8 MaxPower מקסימום כוח - 150 MA

טבלה 5-11. ברירת המחדל של ממשק USB 0, 0 חלופי הגדרת מתאר

זיכרון RAM OFFSET ערך שדה תיאור

063D 0x09 0 bLength אורך מתאר את ממשק
063E 0x04 מתאר סוג 1 bDescriptorType = ממשק
063F 0x00 2 אפס bInterfaceNumber מבוסס מדד ממשק זה = 0
0640 0x00 3 bAlternateSetting חלופי קביעת ערך = 0
0641 0x0E 4 bNumEndpoints מספר נקודות קצה זה ממשק (לא ספירה EPO) = 14
0642 0xFF 5 bInterfaceClass ממשק מחלקה = ספק מסוים
0643 0xFF 6 bInterfaceSubClass ממשק Sub-class = ספק מסוים
0644 0xFF 7 פרוטוקול = ממשק bInterfaceProtocol ספק מסוים
0645 0x00 8 iInterface אינדקס כדי מחרוזת מתאר עבור ממשק זה ללא =

טבלה 5-14. ברירת המחדל של ממשק 0, 1 הגדרה חלופית, גורפת Endpoint המתארים

זיכרון RAM OFFSET ערך שדה תיאור

0646 0x07 0 bLength אורך Endpoint זה מתאר
0647 0x05 1 bDescriptor סוג מתאר סוג = Endpoint
0648 0x01 2 bEndpointAddress Endpoint כיוון (1 נמצא) וכתובת = OUT1
0649 0x02 3 bmAttributes XFR סוג גורפת =
064A 0x40 4 wMaxPacketSize (L) מקסימלית Packet size = 64 Bytes
064B 0x00 5 wMaxPacketSize (ח) Packet גודל מקסימלי - גבוהה
064C 0x01 6 bInterval הסקרים interval ב Milliseconds

064D 0x07 0 bLength אורך Endpoint זה מתאר
064E 0x05 סוג 1 bDescriptor מתאר סוג = Endpoint
064F 0x02 2 bEndpointAddress Endpoint כיוון (1 נמצא) וכתובת = OUT2
0650 0x02 3 bmAttributes XFR סוג גורפת =
0651 0x40 4 wMaxPacketSize (L) מקסימלית Packet size = 64 Bytes
0652 0x00 5 wMaxPacketSize (ח) Packet גודל מקסימלי - גבוהה
0653 0x01 6 bInterval הסקרים interval ב Milliseconds

0654 0x07 0 bLength אורך Endpoint זה מתאר
0655 0x05 1 bDescriptor סוג מתאר סוג = Endpoint
0656 0x03 2 bEndpointAddress Endpoint כיוון (1 נמצא) וכתובת = OUT3
0657 0x02 3 bmAttributes XFR סוג גורפת =
0658 0x40 4 wMaxPacketSize (L) מקסימלית Packet size = 64 Bytes
0659 0x00 5 wMaxPacketSize (ח) Packet גודל מקסימלי - גבוהה
065A 0x01 6 bInterval הסקרים interval ב Milliseconds

065B 0x07 0 bLength אורך Endpoint זה מתאר
065C 0x05 1 bDescriptor סוג מתאר סוג = Endpoint
065D 0x04 2 bEndpointAddress Endpoint כיוון (1 נמצא) וכתובת = OUT4
065E 0x02 3 bmAttributes XFR סוג גורפת =
065F 0x40 4 wMaxPacketSize (L) מקסימלית Packet size = 64 Bytes
0660 0x00 5 wMaxPacketSize (ח) Packet גודל מקסימלי - גבוהה
0661 0x01 6 bInterval הסקרים interval ב Milliseconds

0662 0x07 0 bLength אורך Endpoint זה מתאר
0663 0x05 1 bDescriptor סוג מתאר סוג = Endpoint
0664 0x05 2 bEndpointAddress Endpoint כיוון (1 נמצא) וכתובת = OUT5
0665 0x02 3 bmAttributes XFR סוג גורפת =
0666 0x40 4 wMaxPacketSize (L) מקסימלית Packet size = 64 Bytes
0667 0x00 5 wMaxPacketSize (ח) Packet גודל מקסימלי - גבוהה
0668 0x01 6 bInterval הסקרים interval ב Milliseconds

0669 0x07 0 bLength אורך Endpoint זה מתאר
066A 0x05 1 bDescriptor סוג מתאר סוג = Endpoint
066B 0x06 2 bEndpointAddress Endpoint כיוון (1 נמצא) וכתובת = OUT6
066C 0x02 3 bmAttributes XFR סוג גורפת =
066D 0x40 4 wMaxPacketSize (L) מקסימלית Packet size = 64 Bytes
066E 0x00 5 wMaxPacketSize (ח) Packet גודל מקסימלי - גבוהה
066F 0x01 6 bInterval הסקרים interval ב Milliseconds

0670 0x07 0 bLength אורך Endpoint זה מתאר
0671 0x05 1 bDescriptor סוג מתאר סוג = Endpoint
0672 0x07 2 bEndpointAddress Endpoint כיוון (1 נמצא) וכתובת = OUT7
0673 0x02 3 bmAttributes XFR סוג גורפת =
0674 0x40 4 wMaxPacketSize (L) מקסימלית Packet size = 64 Bytes
0675 0x00 5 wMaxPacketSize (ח) Packet גודל מקסימלי - גבוהה
0676 0x01 6 bInterval הסקרים interval ב Milliseconds

זיכרון RAM OFFSET ערך שדה תיאור

0677 0x07 0 bLength אורך Endpoint זה מתאר
0678 0x05 1 bDescriptor סוג מתאר סוג = Endpoint
0679 0x81 2 bEndpointAddress Endpoint כיוון (1 נמצא) וכתובת = IN1
067A 0x02 3 bmAttributes XFR סוג גורפת =
067B 0x40 4 wMaxPacketSize (L) מקסימלית Packet size = 64 Bytes
067C 0x00 5 wMaxPacketSize (ח) Packet גודל מקסימלי - גבוהה
067D 0x01 6 bInterval הסקרים interval ב Milliseconds

067E 0x07 0 bLength אורך Endpoint זה מתאר
067F 0x05 סוג 1 bDescriptor מתאר סוג = Endpoint
0680 0x82 2 bEndpointAddress Endpoint כיוון (1 נמצא) וכתובת = in2
0681 0x02 3 bmAttributes XFR סוג גורפת =
0682 0x40 4 wMaxPacketSize (L) מקסימלית Packet size = 64 Bytes
0683 0x00 5 wMaxPacketSize (ח) Packet גודל מקסימלי - גבוהה
0684 0x01 6 bInterval הסקרים interval ב Milliseconds

0685 0x07 0 bLength אורך Endpoint זה מתאר
0686 0x05 1 bDescriptor סוג מתאר סוג = Endpoint
0687 0x83 2 bEndpointAddress Endpoint כיוון (1 נמצא) וכתובת = IN3
0688 0x02 3 bmAttributes XFR סוג גורפת =
0689 0x40 4 wMaxPacketSize (L) מקסימלית Packet size = 64 Bytes
068A 0x00 5 wMaxPacketSize (ח) Packet גודל מקסימלי - גבוהה
068B 0x01 6 bInterval הסקרים interval ב Milliseconds

068C 0x07 0 bLength אורך Endpoint זה מתאר
068D 0x05 1 bDescriptor סוג מתאר סוג = Endpoint
068E 0x84 2 bEndpointAddress Endpoint כיוון (1 נמצא) וכתובת = IN4
068F 0x02 3 bmAttributes XFR סוג גורפת =
0690 0x40 4 wMaxPacketSize (L) מקסימלית Packet size = 64 Bytes
0691 0x00 5 wMaxPacketSize (ח) Packet גודל מקסימלי - גבוהה
0692 0x01 6 bInterval הסקרים interval ב Milliseconds

0693 0x07 0 bLength אורך Endpoint זה מתאר
0694 0x05 1 bDescriptor סוג מתאר סוג = Endpoint
0695 0x85 2 bEndpointAddress Endpoint כיוון (1 נמצא) וכתובת = IN5
0696 0x02 3 bmAttributes XFR סוג גורפת =
0697 0x40 4 wMaxPacketSize (L) מקסימלית Packet size = 64 Bytes
0698 0x00 5 wMaxPacketSize (ח) Packet גודל מקסימלי - גבוהה
0699 0x01 6 bInterval הסקרים interval ב Milliseconds

069A 0x07 0 bLength אורך Endpoint זה מתאר
069B 0x05 סוג 1 bDescriptor מתאר סוג = Endpoint
069C 0x86 2 bEndpointAddress Endpoint כיוון (1 נמצא) וכתובת = IN6
069D 0x02 3 bmAttributes XFR סוג גורפת =
069E 0x40 4 wMaxPacketSize (L) מקסימלית Packet size = 64 Bytes
069F 0x00 5 wMaxPacketSize (ח) Packet גודל מקסימלי - גבוהה
06A0 0x01 6 bInterval הסקרים interval ב Milliseconds

06A1 0x07 0 bLength אורך Endpoint זה מתאר
06A2 0x05 סוג 1 bDescriptor מתאר סוג = Endpoint
06A3 0x87 2 bEndpointAddress Endpoint כיוון (1 נמצא) וכתובת = IN7
06A4 0x02 3 bmAttributes XFR סוג גורפת =
06A5 0x40 4 wMaxPacketSize (L) מקסימלית Packet size = 64 Bytes
06A6 0x00 5 wMaxPacketSize (ח) Packet גודל מקסימלי - גבוהה
06A7 0x01 6 bInterval הסקרים interval ב Milliseconds

אשר לאחר מכן, ואחריו צורה של Unicode אפס הסתיים מחרוזת
"Microchip טכנולוגיה ICD2 התקן USB"



עם זאת, אם אתה נתקע עם 4550 המיחזור, אני יכול לנסות לעזור על ידי הוספת הערות של סיי asm הקובץ.
לראש הדף
Zedman



הצטרפות: 13 אוקטובר 2003
הודעות: 294
עזר: 2


Post 03 אפריל 2006 17:10 Re: פרויקט CY7C64613 להחליף את ICD2
תגיות: icd2.dll

היי Silvio,

Thanks for the infos, מזמן הייתי צריך לנתח את הקובץ bin בא מן eprom שבב. אני אפילו לא לא את המעבד ולא את סוג הקפה. אבל הייתי חייבת למצוא כיצד היא מתמודדת עם כרטיס הזיכרון, וזה הנתונים.
אני נניח 8051 זהו סוג של שבב וניסה הרבה disassemblers, ושהסתיימו עם 80C542 (צביעות אני זוכר איזה מהם זה היה בדיוק) הבנתי את זה של יציאת מספרי הקוד וכיצד להתמודד עם יציאה בודדת מספרי זיהוי אישיים.
אבל זה לקח 2 שבועות, יום ולילה עבודה אדיש בשבילי, הרבה קריאה / ניפוי / למידה.
לכן רציתי של assembler מה מסוגל לעשות את הדברים הזכיר לי במקום ... מאוד שמח
שוב תודה Silvio.

-----------------------------

Iam מתחיל להאמין לך הכל, על פי bin הקבצים. עשיתי מחקר ב-DLL ICD2 ומצאתי כי היא קוראת GETUSBDESCRIPTOR ו בודק את המספרים מתאר, אם היא מתאימה גרסה חדשה יותר מ ICD2 חתמתי שלי מתאר של 4550 מאשר של send4550image לקרוא!
כמו כן יש המתארים את קבצי bin זהה את Kripton טעינה אחת.
דבר אחד אני לא מבין למה הוא עשה את זה הם םיקפוסמה האתחול התמונה?
ולמה ICD2.dll מנסה להוריד קובץ זה? אם אני מגיעה הביתה, אני מנסה להגדיר יהיה שלי המתארים להתאים את אחד מצאתי את bin ו ינסה MPLAB על זה.

אני חושב שאנחנו מקבלים קרוב! מגניב

נוסף אחרי 46 דקות:

והנה הוא פלא דבר ראשון btyes של האתחול המיחזור: MCHP (MiCrocHiP?)
אני כבר חיפשו את זה, אם זה מאוחר יותר (לאחר הטעינה) מחליף אלה אמיתית עם נקודת כניסה GOTO או סנט, אך לא את ICD2.dll.

נוסף אחרי 3 שעות 34 דקות:

תסתכל על זה:

עשיתי את מה שאמרתי לפני כן, פשוט בחר את מספר הגרסה של אותו צופה ו חדש יותר MPLAB ינסה לשלוח את מערכת ההפעלה! (כמובן שלי Fw אינו האתחול)

קוד:

MPLAB ICD 2 מוכן
החיבור אל MPLAB ICD 2
ICD0289: לא ניתן לחזור לתוכנית ICD2 USB הקושחה של מערכת ההפעלה.
ICD0021: אין אפשרות להתחבר עם MPLAB ICD 2
MPLAB ICD 2 מוכן


איכשהו את האתחול אמור לעבוד, אני מתכוון לנסות לעשות משהו בלילה.
לראש הדף
narccizzo



הצטרפות: 20 ינואר 2006
הודעות: 173
עזר: 4
מיקום: PATZCUARO, MICHOACAN, מקסיקו


Post 03 אפריל 2006 18:43 פרויקט CY7C64613 להחליף את ICD2

היי JaySlovak
לא, Im לא בטוח, אני רק פתחתי את bin ולשמור אותה בפורמט hex. עצוב
לראש הדף
Jay.slovak



הצטרפות: 23 מרץ 2006
הודעות: 11


Post 03 אפריל 2006 20:45 Re: פרויקט CY7C64613 להחליף את ICD2

narccizzo כתב:
היי JaySlovak
לא, Im לא בטוח, אני רק פתחתי את bin ולשמור אותה בפורמט hex. עצוב


כן, זה מוזר כמו מחרוזת ניתן לקריאה, רק את הקוד לא עושה כלום עצוב
לראש הדף
Zedman



הצטרפות: 13 אוקטובר 2003
הודעות: 294
עזר: 2


Post 03 אפריל 2006 22:25 Re: פרויקט CY7C64613 להחליף את ICD2
תגיות: icd2.dll

חדשות טובות אחרי 2 שעות של ניפוי באגים

ICD2.dll האם להשתמש בשתי bin הקבצים. מערכת ההפעלה הקובץ שהורד רוצה להיות רק עם מוצר חדש ICD2s מספר סידורי.
אבל כאשר אתה משנה את הגירסה מזהה את שם הקובץ של OS.bin ל * מ _FFFF.bin היא מתחילה לבדוק את גירסת bootloader נראה:

קוד:

החיבור אל MPLAB ICD 2
ICDWarn0062: USB אתחול של הקושחה של ICD2 פעילה ומספקת תקשורת עם ICD2. זה קושחה הוא מחוץ תאריך ואמורות להתעדכן. זה לא יכול להיות מעודכנים בעת הפעילות. עם זאת, אתה יכול להמשיך לפעול עם אתחול קושחה הנוכחי, אם תבחר לעשות כן. האם ברצונך להמשיך?


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

קוד:

ICD0288: לא ניתן לחזור לתוכנית ICD2 USB אתחול קושחה.
ICD0021: אין אפשרות להתחבר עם MPLAB ICD 2
MPLAB ICD 2 מוכן


אוקיי חבר 'ה, לחשוב לחשוב לחשוב כיצד אנו יכולים להשתמש בו כדי לקבל bin עבודה bootloader לתוך 4550!

נוסף לאחר 2 דקות:

אני גם מלוקט לדוגמה bootloader עם הנכון VID / PID אבל יש את אותן תוצאות כמו שלי 4550.

נוסף אחרי 16 דקות:

זה יכול להיות, שאנחנו לא יכולים לקבל את הראשוני הראשוני הראשוני:) חלק bootloader שבו נטען לראשונה bootloader אשר טוען את מערכת ההפעלה ...

נוסף לאחר 5 דקות:

זהו הזמן בו צריכה מצבור rkodaira שלו 4550 עבור 0 ברמה bootloader. (עם תקווה גדולה כי הוא לא מוגן ...)

Rkodaira אנחנו צריכים אותך חיוך
לראש הדף
albert22



הצטרפות: 20 יולי 2004
הודעות: 95
עזר: 3


Post 03 אפריל 2006 22:46 Re: פרויקט CY7C64613 להחליף את ICD2

הייתי מנתח את תדפיס שיש לי עם לי את BL010101. ולמצוא כמה דברים.
נראה לקבל פקודות 5 מגיע גם מן PSP או USART.
0x55 הפעלת קוד החל מ 0x0010.
0x56 טען hex (זה נראה יותר subcommands)
0x5a שולחת את הנתונים 0x01 0x01 0x03 (גירסה של BL????)
שני פקודות רק להפעיל את שגיאה ו תפוס Leds ו נתקע על inffinite לולאה.

להלן בשגרות קשורות למה התקשרתי "hex לטעון" הפקודה:

אחר שגרת BL שולחת את המחרוזת הבאה 0x5b, "0810C9", 0x5d
אחר שולחת תשובות embeded לתוך המחרוזת הבאה 0x5b, "0A000", U, 0x31, U, 0x5d. (כאשר U נראה 0x31, 0x34, 0x36 ו 0x37).

Didn't אני צריך הרבה זמן כדי להמשיך את הניתוח. אני לא ראיתי את הפיקוח USB כי כבר פורסם כי Im בבית Cyber. אבל אני חושב זה צריך להיות ארוז נתונים לתוך USB תקשורת
לראש הדף
Zedman



הצטרפות: 13 אוקטובר 2003
הודעות: 294
עזר: 2


Post 03 אפריל 2006 23:30 פרויקט CY7C64613 להחליף את ICD2

אלברט,

בדקתי את הסידורי תקשורת לעומת USB, USB משתמשת עוטף אפיק טורי דבר.
נראה כי היא עושה שימוש EP1 על השליטה היציאה (זה OUT ב) ו EP2 כמו נתוני הנמל, רק (icd-> PC).
לראש הדף
albert22



הצטרפות: 20 יולי 2004
הודעות: 95
עזר: 3


Post 05 לאפריל 2006 6:39 Re: פרויקט CY7C64613 להחליף את ICD2

הנה שלי advances עם BL
לא היו כאלה subcommands. טען hex הפקודה פשוט לוקח את הרשומות hex ו כותב את הנתונים של תוכנית זיכרון 2 בתים בכל פעם. הוא בודק עבור שגיאות שונות כולל טווח של כתובת. AP. כדי למנוע דריכה לתוך BL התוכנית. זו מאשרת כי BL הוא תושב allways לעבר 877.
ב [0A000 ", U, 0x31, u]. (את 2 U הוא הראשון U 1) לא סביר על מנת להראות כי הוא דוח שגיאות. שגיאות כוללים: פורמט רע, בדיקת, רע בטווח כתובות ו EEPROM לכתוב שגיאת .
את שגרת ממתין 16 תווים מתחיל עם 0x3c ('<') ואת הסוף עם 0x3e ('>'). זה 16 תווים בכותרת מכילים את הכתובת, ואת אורכו של בדיקת הנתונים להיות כתוב ASCII.
אם הכותרת נכונה AP. את BL עם תשובות "[0810C9]"
הנתונים cames לאחר 0x7b
פורמט זה נראה שונה מזה של אינטל hex פורמט.

Zedman.
יכול להיות שאתה מוכר משהו כמו זה של RS232
מחר אני בבית שלי להיות Wil הביתה יכולים להתקין HDD כדי לבדוק את יומני ולראות אם אני יכול להיות כל עזרה.
לראש הדף
Zedman



הצטרפות: 13 אוקטובר 2003
הודעות: 294
עזר: 2


Post 05 אפריל 2006 12:17 Re: פרויקט CY7C64613 להחליף את ICD2
תגיות: mplab פרוטוקול icd2 icd2.dll icd2w2k.sys mplbcomm.dll

אני תקועה עם זה USB דבר. ואני עצוב.

אני לא ממש יודע מה לעשות הלאה. בזבזתי הרבה זמן על ניפוי icd2.dll.

הבעיה היא: אני לא יכול לשלוח אף אחד בסיביות לראש MPLAB.

אני יהיה להסביר מה שמצאתי עד עכשיו, אף אחד לא באמת מעוניין (רק רוצה לתפוס את הדבר סיימו). (למעט: אלברט, Kripton, rkodaira, silvio ואת החבר 'ה זה משנה)

אז, MPLAB מתקשר עם ICD2 כך:

[MPLAB -> ICD2.dll -> MPLBCOMM.dll -> icd2w2k.sys ->] --- [ICD2 התקן]

אם תבחר חיבור USB מסוג זה ישאל את התקן מתאר את ICD2 ו בודק את גרסת מוצר מילה, אם הוא מאשר 0x0003 זהו ברוש המבוסס ICD2, 0x0010 אם הוא מאשר את זה של 4550 בהתבסס על אחד. אם נמצא 0x0010 מאשר מה שאני אומר את זה כבר פורסם לפני שמערכת ההפעלה של ICD2 יש לשדרג. זה מעניין, כי אם גירסה (0100) את הקובץ של OS.bin ישונה ל FFFF מאשר מדלגת על שלב זה בודק את גירסת bootloader. כאן הייתי צריך תיקון ICD2.dll כדי לנסות לקבל את זה כדי לבדוק את הגירסה של הקובץ BL.bin מדי, זה hardcoded שגם היא מוגדרת FFFF זה הרגל מנסה לשדרג, לכן אני טלוא זה (hardcoded בחר FFFF להוריד) אז עכשיו מה אני אומר גם לפני mentoined: bl את הגרסה הישנה, אך היא גם לא ניתן לשדרג את זה בזמן של פעילות.

אוקיי. עשיתי קטן מ prog לדוגמה bootloader, עם נכונות המתארים ולנסות לתקשר עם MPLAB כדי decrypt הפרוטוקול ועל מנת לחקות את BL החדש ב 4550 ICD2.
ICD2 כי Kripton משתמש, (הגירסה ברוש) קובע 7 OUT / IN נקודות קצה, אך לדברי יומני היא משתמשת רק עבור EP1 / OUT ו EP2 עבור פנימה. (PC-OUT פירושו> מכשיר)
נראה אותו שולח את פקודות ספציפיות USB ונתונים באמצעות EP1 החוצה, והגב על EP1 ב, ושולח את readed בתים מן ICD2 נפרד של 877 דרך endpoint EP2 למערכת

כאשר MPLAB מנסה לשלוח ה OS.bin Fw כדי לשדרג את מערכת ההפעלה, זה שולח getUSBdescriptor לקרוא את ליבה הנהג, ושולח את א 0x12 בתים ארוך הפקודה באמצעות הפקודה DeviceIOControl. אני debugged, זה מגיע ל 4550 בהצלחה.
מ MPLAB בעיות של GetStatus השיחה, וזה נראה מן השיחה הפרמטרים שהוא מצפה 0x08 בייטים של נתונים חזרה.
אני להגדיר אזור חיץ עם 8 בתים, ולהגדיר את הבעלות על się. אבל זה אף פעם לא שולחת כי 8 בתים בחזרה (הוא לא יופיע USBMon). פשוט מחכים.
יכולות להיות הרבה דברים.
אולי אני עושה לא בסדר עם סט ההתקנה של 4550, אבל ניסיתי את זה עם עוד progs וזה עובד, יכול לשלוח בתים בחזרה.
אני מכיר את המארח חייב לשלוח פקודה וכן לתת את המכשיר לשלוח את מה שהיא רוצה.
אבל כאשר אני debugged MBLBCOMM, ראיתי כי DeviceIOControl הפקודה נכשלה!
אני tought כי אולי קצת מודיעין נבנתה לתוך. SYS קובץ והיא טיפות של מנות בגלל שזה לא בסדר התוכן, אבל אני חושב שזה צריך להיות משימה ברמה גבוהה יותר.
כשאני אני יהיה להגיע הביתה לבדוק את הערך של GetLastError.


יש מישהו יודע איך אני יכול לראות אם היה שם באופן מנות שנשלחו החוצה, או איך אני יכול להמשיך?
לראש הדף
Kripton2035



הצטרפות: 19 יולי 2001
הודעות: 482
עזר: 15
מיקום: כדור הארץ


Post 05 אפריל 2006 16:59 פרויקט CY7C64613 להחליף את ICD2

יכול להיות שאתה צריך לחבר את 877 ל PSP היציאה של 4550 כדי לראות מה עובר, וכן את תוכנית 877 עם bootloader לנו? ייתכן בתים אתה מחכה לבוא מתוך כך EP2 ו 877?

אתה רוצה שאני שלח קובץ אחר יומן מדויק של המצב? דרך אגב, זה בטוח שאתה צריך rokaida התחבר עם 4550 icd2 ..

נ.ב.: אני לא מעוניין כי פרוייקט .. חיוך אני רק סקרן! אני כבר יש USB icd2! חיוך
לראש הדף
Zedman



הצטרפות: 13 אוקטובר 2003
הודעות: 294
עזר: 2


Post 05 אפריל 2006 20:08 פרויקט CY7C64613 להחליף את ICD2

תודה Kripton,

אני נודיע לך כאשר אני צריך יותר מקום מוזנח חיוך , זה קצת יותר מורכב מאשר רק עובר דרך בתים עד 877 והגב, יש לה פרוטוקול חלוק עליו.
מה שאמרת היה מועיל מאוד, אבל rkodeira הרגל שלו sacrify מותג חדש ICD2 ... חיוך אם הוא היה, מאשר עם מצבור של אותו תהליך העדכון של מערכת ההפעלה יהיה להגדיר את פרוטוקול טוב ...
לראש הדף
Kripton2035



הצטרפות: 19 יולי 2001
הודעות: 482
עזר: 15
מיקום: כדור הארץ


Post 05 אפריל 2006 22:09 פרויקט CY7C64613 להחליף את ICD2

dont טוב אני חושב שהוא צריך sacrify שלו icd2!! רק כמה dumps עם usbmon כמו שעשיתי .. אני מקווה icd2 שלי עדיין עובד!
לראש הדף
albert22



הצטרפות: 20 יולי 2004
הודעות: 95
עזר: 3


Post 05 אפריל 2006 22:16 Re: פרויקט CY7C64613 להחליף את ICD2
תגיות: icd2 לטעון hex פקודה

אני לא יכול להתקין HHD לפקח לראות את יומני, כי יש לי רק w98 בבית.
האם אתה יכול לייצא חורבה של מערכת ההפעלה, כדי להוריד קובץ. Txt, בשבילי?
-------
איך סיי מחזירה את 877?
יש איתות (PIN 43) על בסיס ש 1 מי הוא אספן MCLR. אבל זה הולך עם מחבר שנקרא PROG. עכשיו אני מבין כי זה האות צריך לעבור את 877 גם כן.
היינו צריכים לדעת אילו USB הפקודה מחזירה את 877. יכול להיות שזה באחד בקרת נקודות קצה?
Dont אני יודע מה היא פונקציה של מחבר זה PROG. אבל תוספת נקודות קצה עשויים להיות קשורים אליו.
----------
אחת של מערכת ההפעלה נטענת על ICD2 נראה: ICD01020405.hex ניסיתי disassemby אותו אבל אני לא יכול לקבל את disassembler hex להחליף את כתובות עם שמו של רשומים. זה ייקח יותר זמן כדי להבין איך זה עובד.
עובדה מעניינת היא כי הקוד מתחיל בשעה 0x0010. זכור כי BL שיחות עם כתובת זו להפעיל את הפקודה.

גירסת ה BL דווח mplab היא 01.01.01.00 זה הולך טוב מאוד עם BL פקודה אשר תשובות 01,01,01,03
---------
אין DPot (MCP41xxxx) ב ליזרב ICD. איך הם בחר Vpp?
רוב clones יש קבוע Vpp. האם פירוש הדבר כי ברזילאית ICD היא רק עלות נמוכה clone ולא החדש ICD2? אני חושב שזה dont הלך microchip עבור קבוע vpp. אם יש שיטה אחרת של שליטה על vpp, מלבד זה היה צריך DPot קושחה שינויים ICD של מערכת ההפעלה. מערכת ההפעלה הישנה לא עובד חדש אחד. זה עלול להיות הגורם כי ה-DLL הוא לבדוק את הגירסה.
לראש הדף
Zedman



הצטרפות: 13 אוקטובר 2003
הודעות: 294
עזר: 2


Post 05 אפריל 2006 22:32 פרויקט CY7C64613 להחליף את ICD2
תגיות: mplab פרוטוקול icd2 icd2w2k.sys icd2w2k להוריד 4550 bootloader לכתוב icd2w2k.sys להוריד להוריד icd2w2k

אני לא חושב שאנחנו צריכים להתמודד עם כל דבר בכל הנוגע במעגל או פרוטוקול או החיבור בין 877 ו 4550 עדיין. אני חושב כל מה שאנחנו צריכים זה כתוב על 4550 bins שסופק עם MPLAB.
אנחנו צריכים לכתוב bootloader תואמת את icd2w2k.sys כדי לקבל את OS.bin שהורדת, ואחרי זה נוכל scracth שלנו ישאר 877 איך הוא מחובר.

נוסף לאחר 5 דקות:

בשנת ICD2br משתמשת בסוג אחר של הצ 'יפ אשר יוצר את Vpp. Rkodaira mentoined, לבדוק את הודעות לפני.
לראש הדף
silvio



הצטרפות: 31 דצמבר 2001
הודעות: 800
עזר: 90


Post 06 לאפריל 2006 2:36 Re: פרויקט CY7C64613 להחליף את ICD2
tags: icd2w2k.sys icd2w2k download 4550 bootloader write icd2w2k.sys download download icd2w2k

Zedman wrote:

We should write a bootloader compatible with the icd2w2k.sys to get the OS.bin downloaded.


Yes, this is the main reason for which I said that dissasembling CY fw it's useless as long as we have the OS and BL bin file provided by Microchip. To start coding from scratch for 4550 and simulate the CY fw would be time consuming and worthless.
That's I appreciate zedman's efforts.

However sometimes I can't help myself to ask this stupid question : If the BL cannot be upgraded while it's active, what was Microchip's ICD2 designers approach for upgrade ? In parallel programmer before soldering 4550 ? Or through ICSP with a clean bin image downloaded after boot block erased ?
If rkodaira will find that CPB and EBTRB bits are cleared Crying or Very sad , then how can OS.bin be loaded in 4550 ? I start asking like you : why did they supplied the boot image ?
Or, as Jay.slovak said "the string is readable, just the code does nothing" because it's encrypted and makes sense only for original boot code.
So, the only solution is to simulate the 4550's bootloader and get the mirror bin image of OS ?
Back to top
albert22



Joined: 20 Jul 2004
Posts: 95
Helped: 3


Post 06 Apr 2006 4:36 Re: Project to replace CY7C64613 in the ICD2
tags: mplab protocol icd2

Quote:
In ICD2br uses another kind of chip which generates the Vpp. Rkodaira mentoined, check the posts before.

I didnt mean the MIC2175, which is a switching regulator as the MC34063. I was aiming at the DPOT and specifically to its I2C interfase because it requires the support of the firmware in the 877 to set the correct Vpp voltage. As I said before if the new ICD2 relies in other component to change the Vdd, all the firmware needs to change.

May be Rkodaira could check ithe circuit associated with pin 3 (FB) of the MIC2172 to see if vpp can be controlled or it is fixed.

Let me make my statement a little clear. If the Brazilian ICD has no control of Vpp it is highly probable that it is just a clone. In that case there is no warranty that the real new ICD2 is based on a 4550 and a 877. It could be just a 4450 alone for example (why not) in that case the following statement would not be true.
Quote:
I think ALL we need is written in the 4550 bins supplied with MPLAB.

As we dont know for sure the arquitecture of the new ICD we need to emulate the CY. However chances are that the 4550BINs will still be usefull to solve the USB protocol. I tried to disassemble it today but found nothing coherent yet.

To the question:
Quote:
why did they supplied the boot image ?

They supplied the BL010101.hex which needs to be programmed at the factory for the ICD to work.[/quote]
Back to top
Zedman



Joined: 13 Oct 2003
Posts: 294
Helped: 2


Post 06 Apr 2006 11:48 Re: Project to replace CY7C64613 in the ICD2
tags: icd2 load hex command

Silvio,

the BL cannot be upgraded thing was a little trick. Actually MPLAB is set to check the BL's version against 0xFFFF, and if 0xFFFF (it's only a word) is lower than it will try to upgrade the bootloader. So it wont ever get here, because larger number than 0xFFFF cannot be set on a word. So I patched it to skip this test and try to do it, but anyway it's a BUILT IN function in MPLAB! It CAN update the boot image too. I just patched the version check out.
But think: it's not accidentaly set to 0xFFFF, they may not want to use this function yet.
According to the OS.bin file, if the product version is 0x0010 than it's downloaded all the time. Maybe 0x0010 is the BL's version only, and set to lower when OS will run in it! The OS.bin's version is also checked against 0xFFFF. If it's equals to 0xFFFF it's starts the checking for the BOOT.bin file as I mentoined above.

I'll check how it handles the active check when it complains about "it cannot be upgraded while active".

Another strange thing is if the original bootloader handles the decryption of the OS.bin image, than it will be a nice thing to clone... Anyway there is no processing on the .bin files in the software as I saw.

the DeviceIOControl command returns 0x57: The parameter is incorrect. (ERROR_INVALID_PARAMETER)

If we get the OS.bin downloaded than we can read it back with another icd2 and see how it works.

Albert,

they wont change the 877 firmware. They have a lot of hexs supplied with MPLAB should work with both versions. They may do minor changes, but thats all.
Sorry I misunderstood that DPOT thing.
The question "Why they supplied the boot image?" I asked was for the 4550_boot.bin file.
Back to top
rkodaira



Joined: 08 Jun 2004
Posts: 332
Helped: 54
Location: Sao Paulo - Brasil


Post 06 Apr 2006 14:19 Re: Project to replace CY7C64613 in the ICD2

Hi guys !

Bad news. I could not install the USB monitor in my PC with Windows98SE, because it doesn´t accept to be installed. I think it (if installed) wouldn´t make any damage to my ICD2, but i could not test it.

About the Vpp control, I think that there is only the high voltage generator for Vpp and there is another way to control this voltage. I don´t know if the DG411 has this role, and there is a power mosfet also in the circuit.

I don´t think my clone is the new ICD2 from Microchip. I suppose the local manufacturer only made a clone using more available parts and making some changes in the firmware to adequate the new parts. Sorry I cannot make any attempt to read the 18F4550 contents.

Added after 15 minutes:

One more thing:

I tried to build the PICKIT2 programmer (onlu the basic part: the PIC, crystal and some connections) some weeks ago. It has the schematic and "all" the software available for download in the Microchip pages. I bought some 18F2550 and programmed with the firmware provided. I installed the programmer software and connected the hardware to the USB port. The PC recognized it once but the software did not. I think that there is something missing in the package, that blocks the programmer to communicate with the software. Could be the same case be happening with the hex files provided for the ICD2 ? Or in other words: Microchip does´t provide the complete code for the ICD2.
Back to top
albert22



Joined: 20 Jul 2004
Posts: 95
Helped: 3


Post 06 Apr 2006 18:26 Re: Project to replace CY7C64613 in the ICD2

Please
Can somebody export to .txt the USB log files captured by HDD monitor?
I cannot install this soft at my home. Otherwise Ill have to wait until next week to read them on my PC at work. I am now studying the protocol between the CY and the 877 OS.
If they are too big. A connect log, and a program log would be nice.
Thanks
Back to top
Kripton2035



Joined: 19 Jul 2001
Posts: 482
Helped: 15
Location: Earth


Post 06 Apr 2006 19:31 Re: Project to replace CY7C64613 in the ICD2

rkodaira wrote:
Hi guys !
Bad news. I could not install the USB monitor in my PC with Windows98SE, because it doesn´t accept to be installed. I think it (if installed) wouldn´t make any damage to my ICD2, but i could not test it.


may be you can try this one : they say it works under w98...
http://www.perisoft.net/bushound/

zedman needs a log of a real 4550... my cypress clone doesnt give all he needs...
Back to top
Zedman



Joined: 13 Oct 2003
Posts: 294
Helped: 2


Post 06 Apr 2006 20:14 Project to replace CY7C64613 in the ICD2

It can be exported from USBMon to HTML format, but I have only serial ICD2.
Back to top
Brem



Joined: 06 Apr 2006
Posts: 36


Post 06 Apr 2006 20:22 Re: Project to replace CY7C64613 in the ICD2
tags: mplab protocol icd2 icd2 load hex command

Hi group,

Zedman drew my attention to this thread. I find it very interesting.

Last winter my hobby project was to build an ICD clone on a 2455/2550. I used the CDC firmware for RS232 emulation to connect to MPLAB. I disassambled the 877 firmware and made it more readable with a VB program. As far as I can tell the protocol CY<->877 and the protocol RS232<->877 are the same. There are no USB specific things in the 877 firmware.

I'll try to explain what I learned of the protocol.

MPLAB starts a connection by sending a 'Z'. ICD should reply with some kind of version nr in binary: 0x01,0x01,0x03.

Now MPLAB sends a
'V' if it wants to connect to the bootloader, ICD should reply with a 'v'
'U' if it wants to connect to the OS, ICD should reply 'u'

Next is the version of the ICD hardware, this has to be compatible with the old ICD1, so its different from all other commands: MPLAB send '$7F00\r', ICD replies '02' for ICD2

From here on all commands are send in packets in the form: '<', packet len, command, [params], checksum, '>'
all items are sent in hex, packet length is including the <>. An example: '<0801C9>', len=8, cmd=1 (GETFIRMWAREVERSION), no params, checksum=0xC9

Reply's to commands are in the same form, except packed in []. Reply to the above example would be: '[0E0102630102]', len=14, cmd=1 (GETFIRMWAREVERSION), param 2.99.1, checksum=0x02.

Large chunks of data are sent in {} packets : {data [,data..], checksum}. For example the write program command:
MPLAB: <184300005DC000000120FF>, len 24, cmd=0x43 (WRITEPROGRAM), program size= 0x05DC, start address=0x0120, checksum = 0xFF
ICD: [0843CF], len 8, cmd 0x43, checksum 0xCF
MPLAB: {FF3FFF3F.....3C} , data data data.., checksum-0x3C
ICD: [0843CF], ack cmd 0x43 again



I used the information from this thread to connect my existing program with the real ICD USB Driver. I got so far that I receive the GETFIRMWAREVERSION command, but my response seems not to be understood. It sends the same command again and then hangs (?) .
Back to top
albert22



Joined: 20 Jul 2004
Posts: 95
Helped: 3


Post 06 Apr 2006 23:17 Re: Project to replace CY7C64613 in the ICD2

Quote:
It can be exported from USBMon to HTML format, but I have only serial ICD2.

Zedman may be you can open the log files that had been posted here and export them to html. No need to have the USB ICD2.

Brem,
Great. I was just at the routines that handle connection with the ICD once the OS is loaded. Thanks.
Back to top
Zedman



Joined: 13 Oct 2003
Posts: 294
Helped: 2


Post 06 Apr 2006 23:29 Re: Project to replace CY7C64613 in the ICD2
tags: mplbcomm.dll

Hey Brem!

nice to see you here!
Thanks for the infos on the protocol.

Quote:

I used the information from this thread to connect my existing program with the real ICD USB Driver. I got so far that I receive the GETFIRMWAREVERSION command, but my response seems not to be understood. It sends the same command again and then hangs (?) .



would you please explain this a bit more? What's that mean you response is not understood? You got an usb packet starting with 0x01, replied it succesfully and just the content was wrong?

Please explain this, because as you can see from the thread Iam stuck with the replying. Crying or Very sad

-------------------

Iam now trying an alternate way to **** with the replying thing, I wrote a small program in Delphi to test if the reply works, getting the same results yet but it's faster than switching the programmer in mplab while using it too.

here is the proc (values got from disassembled/debugged MPLBCOMM.dll):
Code:

procedure TForm1.Button1Click(Sender: TObject);
var hnd: cardinal;
InBuffer: array[0..3] of byte;
OutBuffer: array[0..17] of byte;
bytesReturned: cardinal;
a: integer;
begin
hnd:=CreateFile('\\.\i3kmc-0', $C0000000, 2, 0, 3, 0, 0);

if hnd <> INVALID_HANDLE_VALUE then
begin
// get usb descriptor
for a:=0 to 3 do InBuffer[a]:=0; for a:=0 to 17 do OutBuffer[a]:=0; bytesReturned:=0;
if (DeviceIoControl(hnd, $0A4122404, @InBuffer, 4, @OutBuffer, $12, bytesReturned, nil)) then
begin
Memo1.Lines.Add('1 OK');
end;

// write command
for a:=0 to 3 do InBuffer[a]:=0; for a:=0 to 17 do OutBuffer[a]:=0; bytesReturned:=0;
OutBuffer[0]:=3;
if (DeviceIoControl(hnd, $0A4122451, @InBuffer, 4, @OutBuffer, $12, bytesReturned, nil)) then
begin
Memo1.Lines.Add('2 OK');
end;

// get status
for a:=0 to 3 do InBuffer[a]:=0; for a:=0 to 17 do OutBuffer[a]:=0; bytesReturned:=0;
InBuffer[0]:=7;
if (DeviceIoControl(hnd, $0A412244E, @InBuffer, 4, @OutBuffer, 0, bytesReturned, nil)) then
begin
Memo1.Lines.Add('3 OK');
end;
Memo1.Lines.Add('- done.');
end;
end;



the 3rd DeviceIOControl returns failed.

I can't even remeber how my wife look like... Neutral
Back to top
Brem



Joined: 06 Apr 2006
Posts: 36


Post 07 Apr 2006 0:31 Re: Project to replace CY7C64613 in the ICD2

Hi Zedman,

Besides some recognizable data like the 'Z', the 'U' and <0801C9>, I receive packets I don't understand. They are all 18 bytes long, 1st char is 0x00,0x01 or 0x02, 2nd char seems to be some kind of seq.nr, 3rd byte a length.

First packet received is:
HOST->DEV: 02 C1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
I reply with 8 x 0
DEV->HOST: 00 00 00 00 00 00 00 00 00
Second packet received is:
HOST->DEV: 01 C2 01 00 00 00 00 00 00 00 C9 00 00 00 00 00 00 00
Here the first byte 0x01 seems to mean "data incoming", 3rd bytes undicates length. I dont send reply on this packet.
Next rcvd is a singe 'Z', I reply with the hardware version
HOST->DEV: 5A
DEV->HOST: 01 01 03
Next again a packet starting with 0x02, same reply
HOST->DEV: 02 C1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
DEV->HOST: 00 00 00 00 00 00 00 00 00
then a "data incoming" packet folowed by a 'U', connect to OS
HOST-DEV: 01 C2 01 00 00 00 00 00 00 00 C9 00 00 00 00 00 00 00
HOST-DEV: 55
Now MPLAB seems to want 8 bytes so I send a 'u' with 7 zeros
DEV->HOST: 75 00 00 00 00 00 00 00

Now comes the tricky part. A packet starting with 0x02 means MPLAB wants data on EP2.
HOST-DEV: 02 C3 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
DEV-HOST (on EP2!!): 75
DEV-HOST (on EP1): 00 00 00 00 00 00 00 00

And here I get stuck at the moment. MPLAB sends a <0801C9> but my response is ignored. I think from here on the ICD should send all data over EP2.
Back to top
Zedman



Joined: 13 Oct 2003
Posts: 294
Helped: 2


Post 07 Apr 2006 10:51 Project to replace CY7C64613 in the ICD2

Brem,

Iam a lamer. PLEASE TELL ME how do you reply?
How the hell does it work for you?
What am I missing?
If I set up the shared ram with 0s set the Cnt to 8 and set UOWN bit to SIE, MPLAB wont send me ANY more data, and UOWN never get cleared!!
But from this I see u managed it to work!!!

HELP ME PLEASE!

Code:

HOST->DEV: 02 C1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
I reply with 8 x 0
DEV->HOST: 00 00 00 00 00 00 00 00 00
Back to top
Post new topic Reply to topic EDAboard.com Forum Index -> Microcontrollers -> Project to replace CY7C64613 in the ICD2
Page 3 of 61 All times are GMT 2 Hours
Goto page Previous 1 , 2 , 3 , 4 ... 59 , 60 , 61 Next
Jump to page:


Abuse || Administrator || Moderators || Support us || sitemap
topic RSS