| Autor | Správa |
|---|
Kripton2035
Založený: 19. júla 2001 Príspevky: 498 Pomohol: 17 Poloha: Earth
| 03 apríla 2006 8:28 Re: Project nahradiť CY7C64613 v ICD2 | | | Štítky: |
|
| | predrago Napísal: | Moji priatelia aj nepodarilo programovania ICD2_4550_BOOT_0180.BIN do 4550. I'v snažil otvoriť bin súbor s winpic 800 softvér, ale to sa nepodarilo. I tryed ju otvorte voľbou "all files" in "typy súborov", pretože neexistuje žiadna priama podpora bin súbory. ICprog si, že pomoc (otvoriť bin súbory), ale nemôže program 4550. V skutočnosti neexistuje 4550 prístroj v zozname. Čo mám robiť? Akýkoľvek návrhy? Som len začiatočník, ale mám dobrú vôľu pomôcť. Omlouvám se za moje špatná anglický. |
premenovať. BIN sa. HEX a winpic bude otvorená! niekedy veľa súborov. BIN v skutočnosti sú Intel. Hex! si byť istí, otvorte súbor s notepad, obsahuje-li riadky začínajúce ":" premenujte na. Hex a otvorte ho winpic .. ak je to smeti, potom musí byť použitý bin2hex ju otvorte. |
|
| Späť na začiatok | |
 |
narccizzo
Založený: 20. januára 2006 Príspevky: 173 Pomohol: 4 Poloha: PATZCUARO, Michoacán, Mexiko
| 03 apríla 2006 9:42 Re: Project nahradiť CY7C64613 v ICD2 | | | Štítky: |
|
| Jedná sa o dva súbory bin prevedený do hex, som otvoril bin súbory s príponou IC-prog softvér pak i zachrániť súbory v hexadecimálním formáte, keď sa pozrieme na tieto súbory môžete vidieť čitateľný reťazec "Microchip Tecnology ICD2 USB Device icd2 usb" v 0x0ee7 adresa pre súbor boot.hex a istý reťazec v 0x0b8e pre os.hex súboru, i dont mať disassembler preskúmať podrobnejšie tohto súboru, ale niečo mi hovorí, že tieto dva súbory sú všetky, ktoré potrebujeme.
BR Narccizzo
|
|
| Späť na začiatok | |
 |
Jay.slovak
Založený: 23. marec 2006 Príspevky: 11
| 03 apríla 2006 11:17 Re: Project nahradiť CY7C64613 v ICD2 | | | Štítky: |
|
| | narccizzo Napísal: | Jedná sa o dva súbory bin prevedený do hex, som otvoril bin súbory s príponou IC-prog softvér pak i zachrániť súbory v hexadecimálním formáte, keď sa pozrieme na tieto súbory môžete vidieť čitateľný reťazec "Microchip Tecnology ICD2 USB Device icd2 usb" v 0x0ee7 adresa pre súbor boot.hex a istý reťazec v 0x0b8e pre os.hex súboru, i dont mať disassembler preskúmať podrobnejšie tohto súboru, ale niečo mi hovorí, že tieto dva súbory sú všetky, ktoré potrebujeme.
BR Narccizzo |
Ste si istí, že ste sa prepočítajú na súbory správne? Kdybych import do MPLAB, kód nemá zmysel, všetci to je práve prechádzajú Program pamäte a robí NOPs. Nič užitočné sa deje v oboch Zavádzacia a OS HEXs. Dokonca aj konfiguračné bity sú rozdielne v oboch súboroch! |
|
| Späť na začiatok | |
 |
Zedman
Založený: 13 október 2003 Príspevky: 294 Pomohol: 2
| 03 apríla 2006 11:19 Projekt nahradiť CY7C64613 v ICD2 | | | Štítky: |
|
| albert,
jadra vodiča (ov) očakávajú, že bude cypřišovým pripojiť aj na iné vid / pid keď FIRT spojené, a po nabíjecí sys BitTorrent je to FW bude opäť ako ďalšie vid / pid tak ostatné sys rozhovory na to. Musíme vykonať iba druhú. Iam @ práci tak nemôžem robiť nič tu očakávajú tvrdé přemýšlela ' ... |
|
| Späť na začiatok | |
 |
Silvio
Založený: 31. decembra 2001 Príspevky: 800 Pomohol: 90
| 03 apríla 2006 11:31 Re: Project nahradiť CY7C64613 v ICD2 | | | Štítky: |
|
| Ahoj Zedman,
it's a must to understand what's under cover. Pokiaľ ide o CY hex súbor nie je to len otázka dobrej disassembler, ktorý pozná cypřišovým čip, ale čítanie 436 strán EZ-USB FX TechRefManual to je potrebné pochopiť, čo je pod ochranným krytom. A já nevěřím, že ste čas. Napriek tomu, ak nie ste oboznámení s 8051 opcodes, parsování kódu bude nejaký čas trvať. (Ja viem, že ste familar s tými PIC) with appropiate values from CY7C64613 registers 0x7800-0x7FFF but you'll definitely end up turning the pages of TechRefManual looking for definitions. Môžem nahradiť všetky výskytu MOV DPTR, # LXXXX s zodpovedajúce hodnoty z CY7C64613 registre 0x7800-0x7FFF ale budete určite skončí otáčaním stránok TechRefManual hľadáte definície. Okrem toho, že by niektorí, ako zložité priradiť bitov mená, ktoré sú stanovené jasné alebo v programe, ak nie sú namapujete Sfr priestoru (ktoré končí v 0 alebo 8). with MOV DPTR, #EP0CS but it's difficult to say SETB HSNAK due to the above reasons. Je to ľahké nahradiť MOV DPTR, # L7FB4 s MOV DPTR, # EP0CS, ale je to ťažké povedať osev HSNAK v dôsledku vyššie uvedených dôvodov.
and EP0STAL L which are affected in the bellow code at 0x03E2. Dajme si príklad bitov HSNAK a EP0STAL L, ktoré sú postihnuté v nižšie kód na 0x03E2. | Kód: | L03E2: LCALL L0FBE JNC L03EE MOV DPTR, # L7FB4 MOVX A, @ DPTR ORL A, # 01h; nejaký osev EP0STALL MOVX @ DPTR, A L03EE: MOV DPTR, # L7FB4 MOVX A, @ DPTR ORL A, # 02h; nejaký osev HSNAK MOVX @ DPTR, A RET
L0FBE: osev C RET
|
Vezmite napríklad (CP_1.asm) kód riadky začínajúce kompenzovať 0x0100 (a podprogram volaný z 0x05FA), prvý riadok kódu používa hned pod vektor prerušenia tabuľky Na RAM 0x7FE9 nájdete 2. bajt je 8 bytov USB SETUP paketové dáta (pozri str 215 table9-1), čo znamená, bRequest oblasti (pozri tabuľku 9-2).
| Kód: | L0100: MOV DPTR, # L7FE9 MOVX A, @ DPTR JNZ L0109 LJMP L029B, ak bRequest = GetStatus Prejsť na 0x029B L0109: DEC A JNZ L010F LJMP L0317, ak bRequest = Clear Feature, skok na 0x0317 L010F: ADD A, # 0FEh JNZ L0116 LJMP L038E, ak bRequest = Nastaviť Feature, skok do 0x038E L0116: ADD A, # 0FBh JNZ L011D LJMP L0295, ak bRequest = Získať konfigurácia, skok na 0x0295 L011D: DEC A JNZ L0123 LJMP L028F, ak bRequest = Nastavenie konfigurácie, skok do 0x028F L0123: DEC A JNZ L0129 LJMP L0283, ak bRequest = Získať Interface, skok na 0x0283 L0129: DEC A JNZ L012F LJMP L0289, ak bRequest = Nastavenie rozhrania, skok na 0x0289 L012F: ADD A, # 05h JZ L0136 LJMP L03E2, ak bRequest = žiaden z uvedených, potom set bitov HSNAK a EP0STALL z EP0CS kontrolné & status registra a ; Potom RET na 0x05FD ; L0136: LCALL L0F7A, ak bRequest = Získať Descriptor, LCALL 0x0F7A kde JC L013E; nosiť bit je nastavený ako predvolené, takže skok na 0x013E LJMP L03EE, keď na 0x0F7A carry by 0 v predvolenom nastavení nastavený bit HSNAK , O kontrole EP0CS & status zaregistrovať a RET v 0x05FD ; L013E: MOV DPTR, # L7FEB, pretože bRequest bol Získajte Descriptor MOVX A, @ DPTR, a tak, pozrite sa na WValueH odbore USB SETUP paketu ADD A, # 0FEh JZ L015F, ak wValueH bol 0x02 skok na 0x015F DEC A JZ L0190, ak wValueH bol 0x03 skok na 0x0190 ADD A, # 02h JZ L0150, ak wValueH bol 0x01 skok na 0x0150 LJMP L0279, ak je odlišná wValueh buď 0x01 alebo 0x02 alebo 0x03 nastavte ; Bitov HSNAK a EP0STALL zo EP0CS registra a RET v 0x05FD ; L0150: MOV A, 0Ch, pretože wValueH bol 0x01, takže zaťaženie SUDPTR USB globálny register MOV DPTR, # L7FD4; s hodnotou 0x0C0D, potom nastaviť bit HSNAK z EP0CS a RET v 0x05FD MOVX @ DPTR, A MOV A, 0Dh MOV DPTR, # L7FD5 MOVX @ DPTR, A LJMP L03EE L015F: MOV DPTR, # L7FEA, pozrite sa teraz na wValueL odbore USB SETUP paketu ; ; ; ; a tak ďalej ...................
|
port2: Microchip MPLAB ICD2 Fw client Alebo tento lookup tabuľky na kompenzovať 0x0622, ktoré zodpovedajú Kripton2035 Port2: Microchip MPLAB ICD2 Fw klienta
| Kód: | Tabuľka 5-9. Štandardný USB zariadenia Descriptor
RAM Hodnota Ofsetové opis polí
0622 0x12 0 bLength Dĺžka tohto Descriptor = 18 bytes 0623 0x01 1 bDescriptorType = Descriptor Typ zariadenia 0624 0x00 2 bcdUSB (L) USB špecifikácie verzie 1.10 (L) 0625 0x01 3 bcdUSB (H) USB špecifikácie verzie 1.10 (H) 0626 0xFF 4 bDeviceClass Zariadenia triedy (FF je Vendor-specific) 0627 0xFF 5 bDeviceSubClass Zariadenia sub-Class (FF je Vendor-specific) 0628 0xFF 6 bDeviceProtocol Zariadenia protokol (FF je Vendor-specific) 0629 0x40 7 bMaxPacketSize0 maximálna veľkosť paketu pre EP0 = 64 bytes 062A 0xD8 8 idVendor (L) Vendor ID (L) Microchip Technology = 04D8H 062B 0x04 9 idVendor (H) Vendor ID (H) 062C 0x01 10 idProduct (L) Product ID (L) ICD2 = 8001H 062D 0x80 11 idProduct (H) Product ID (H) 062E 0x03 12 bcdDevice (L) Zariadenia Vydanie číslo (BCD, L) 062F 0x00 13 bcdDevice (H) Zariadenia Vydanie číslo (BCD, H) 0630 0x00 14 iManufacturer Výrobca Register String = Žiadne 0631 0x00 15 iProduct Product Index String = Žiadne 0632 0x00 16 iSerialNumber Sériové číslo Register String = Žiadne 0633 0x01 17 bNumConfigurations Počet Konfigurácia v tejto Interface = 1
Tabuľka 5-10. USB Štandardná konfigurácia Descriptor
RAM Hodnota Ofsetové opis polí
0634 0x09 0 bLength Dĺžka tohto Descriptor = 9 bajtov 0635 0x02 1 bDescriptorType Descriptor Typ = Configuration 0636 0x74 2 wTotalLength (L) Celková dĺžka (L) Vrátane rozhranie koncových bodov Deskriptory = 116 0637 0x00 3 wTotalLength (H) Celková dĺžka (H) 0638 0x01 4 bNumInterfaces Počet rozhrania v tejto konfigurácii 0639 0x01 5 bConfigurationValue konfigurácia hodnota Used by Set_Configuration Žiadosť o zvolení tejto konfigurácie 063A 0x00 6 iConfiguration Index Textová popis tejto konfigurácie = Žiadne 063B 0x80 7 bmAttributes atribúty - Autobus-Powered, č budenie 063C 0x4b 8 MaxPower Maximálny výkon - 150 mA
Tabuľka 5-11. Štandardné USB rozhrania 0, Alternatívne Nastavenie 0 Descriptor
RAM Hodnota Ofsetové opis polí
063D 0x09 0 bLength Dĺžka rozhrania Descriptor 063E 0x04 1 bDescriptorType Descriptor Type = Interface 063F 0x00 2 bInterfaceNumber Zero-založené Obsah tohto rozhrania = 0 0640 0x00 3 bAlternateSetting Alternate nastavená hodnota = 0 0641 0x0E 4 bNumEndpoints Počet parametre v tomto rozhranie (nepočítajúc EPO) = 14 0642 0xFF 5 bInterfaceClass rozhrania triedy = Vendor Konkrétne 0643 0xFF 6 bInterfaceSubClass Interface sub-class = Vendor Konkrétne 0644 0xFF 7 bInterfaceProtocol rozhranie protokolu = Vendor Konkrétne 0645 0x00 8 iInterface Register pre sláčikové Descriptor tejto Interface = Žiadne
Tabuľka 5-14. Predvolená Interface 0, Alternatívne Nastavenie 1, Objemové koncových bodov Deskriptory
RAM Hodnota Ofsetové opis polí
0646 0x07 0 bLength Dĺžka tohto koncového bodu Descriptor 0647 0x05 1 bDescriptor Typ Descriptor Type = koncových bodov 0648 0x01 2 bEndpointAddress koncových bodov Réžia (1 je v) a adresa = OUT1 0649 0x02 3 bmAttributes XFR Type = BULK 064A 0x40 4 wMaxPacketSize (L) Maximálna veľkosť paketu = 64 Bytes 064B 0x00 5 wMaxPacketSize (H) Maximálna veľkosť paketu - Vysoká 064C 0x01 6 bInterval Polling Interval v milisekundách
064D 0x07 0 bLength Dĺžka tohto koncového bodu Descriptor 064E 0x05 1 bDescriptor Typ Descriptor Type = koncových bodov 064F 0x02 2 bEndpointAddress koncových bodov Réžia (1 je v) a adresa = out2 0650 0x02 3 bmAttributes XFR Type = BULK 0651 0x40 4 wMaxPacketSize (L) Maximálna veľkosť paketu = 64 Bytes 0652 0x00 5 wMaxPacketSize (H) Maximálna veľkosť paketu - Vysoká 0653 0x01 6 bInterval Polling Interval v milisekundách
0654 0x07 0 bLength Dĺžka tohto koncového bodu Descriptor 0655 0x05 1 bDescriptor Typ Descriptor Type = koncových bodov 0656 0x03 2 bEndpointAddress koncových bodov Réžia (1 je v) a adresa = OUT3 0657 0x02 3 bmAttributes XFR Type = BULK 0658 0x40 4 wMaxPacketSize (L) Maximálna veľkosť paketu = 64 Bytes 0659 0x00 5 wMaxPacketSize (H) Maximálna veľkosť paketu - Vysoká 065A 0x01 6 bInterval Polling Interval v milisekundách
065B 0x07 0 bLength Dĺžka tohto koncového bodu Descriptor 065C 0x05 1 bDescriptor Typ Descriptor Type = koncových bodov 065D 0x04 2 bEndpointAddress koncových bodov Réžia (1 je v) a adresa = OUT4 065E 0x02 3 bmAttributes XFR Type = BULK 065F 0x40 4 wMaxPacketSize (L) Maximálna veľkosť paketu = 64 Bytes 0660 0x00 5 wMaxPacketSize (H) Maximálna veľkosť paketu - Vysoká 0661 0x01 6 bInterval Polling Interval v milisekundách
0662 0x07 0 bLength Dĺžka tohto koncového bodu Descriptor 0663 0x05 1 bDescriptor Typ Descriptor Type = koncových bodov 0664 0x05 2 bEndpointAddress koncových bodov Réžia (1 je v) a adresa = OUT5 0665 0x02 3 bmAttributes XFR Type = BULK 0666 0x40 4 wMaxPacketSize (L) Maximálna veľkosť paketu = 64 Bytes 0667 0x00 5 wMaxPacketSize (H) Maximálna veľkosť paketu - Vysoká 0668 0x01 6 bInterval Polling Interval v milisekundách
0669 0x07 0 bLength Dĺžka tohto koncového bodu Descriptor 066A 0x05 1 bDescriptor Typ Descriptor Type = koncových bodov 066B 0x06 2 bEndpointAddress koncových bodov Réžia (1 je v) a adresa = OUT6 066C 0x02 3 bmAttributes XFR Type = BULK 066D 0x40 4 wMaxPacketSize (L) Maximálna veľkosť paketu = 64 Bytes 066E 0x00 5 wMaxPacketSize (H) Maximálna veľkosť paketu - Vysoká 066F 0x01 6 bInterval Polling Interval v milisekundách
0670 0x07 0 bLength Dĺžka tohto koncového bodu Descriptor 0671 0x05 1 bDescriptor Typ Descriptor Type = koncových bodov 0672 0x07 2 bEndpointAddress koncových bodov Réžia (1 je v) a adresa = OUT7 0673 0x02 3 bmAttributes XFR Type = BULK 0674 0x40 4 wMaxPacketSize (L) Maximálna veľkosť paketu = 64 Bytes 0675 0x00 5 wMaxPacketSize (H) Maximálna veľkosť paketu - Vysoká 0676 0x01 6 bInterval Polling Interval v milisekundách
RAM Hodnota Ofsetové opis polí
0677 0x07 0 bLength Dĺžka tohto koncového bodu Descriptor 0678 0x05 1 bDescriptor Typ Descriptor Type = koncových bodov 0679 0x81 2 bEndpointAddress koncových bodov Réžia (1 je v) a adresa = in1 067A 0x02 3 bmAttributes XFR Type = BULK 067B 0x40 4 wMaxPacketSize (L) Maximálna veľkosť paketu = 64 Bytes 067C 0x00 5 wMaxPacketSize (H) Maximálna veľkosť paketu - Vysoká 067D 0x01 6 bInterval Polling Interval v milisekundách
067E 0x07 0 bLength Dĺžka tohto koncového bodu Descriptor 067F 0x05 1 bDescriptor Typ Descriptor Type = koncových bodov 0680 0x82 2 bEndpointAddress koncových bodov Réžia (1 je v) a adresa = in2 0681 0x02 3 bmAttributes XFR Type = BULK 0682 0x40 4 wMaxPacketSize (L) Maximálna veľkosť paketu = 64 Bytes 0683 0x00 5 wMaxPacketSize (H) Maximálna veľkosť paketu - Vysoká 0684 0x01 6 bInterval Polling Interval v milisekundách
0685 0x07 0 bLength Dĺžka tohto koncového bodu Descriptor 0686 0x05 1 bDescriptor Typ Descriptor Type = koncových bodov 0687 0x83 2 bEndpointAddress koncových bodov Réžia (1 je v) a adresa = IN3 0688 0x02 3 bmAttributes XFR Type = BULK 0689 0x40 4 wMaxPacketSize (L) Maximálna veľkosť paketu = 64 Bytes 068A 0x00 5 wMaxPacketSize (H) Maximálna veľkosť paketu - Vysoká 068B 0x01 6 bInterval Polling Interval v milisekundách
068C 0x07 0 bLength Dĺžka tohto koncového bodu Descriptor 068D 0x05 1 bDescriptor Typ Descriptor Type = koncových bodov 068E 0x84 2 bEndpointAddress koncových bodov Réžia (1 je v) a adresa = IN4 068F 0x02 3 bmAttributes XFR Type = BULK 0690 0x40 4 wMaxPacketSize (L) Maximálna veľkosť paketu = 64 Bytes 0691 0x00 5 wMaxPacketSize (H) Maximálna veľkosť paketu - Vysoká 0692 0x01 6 bInterval Polling Interval v milisekundách
0693 0x07 0 bLength Dĺžka tohto koncového bodu Descriptor 0694 0x05 1 bDescriptor Typ Descriptor Type = koncových bodov 0695 0x85 2 bEndpointAddress koncových bodov Réžia (1 je v) a adresa = IN5 0696 0x02 3 bmAttributes XFR Type = BULK 0697 0x40 4 wMaxPacketSize (L) Maximálna veľkosť paketu = 64 Bytes 0698 0x00 5 wMaxPacketSize (H) Maximálna veľkosť paketu - Vysoká 0699 0x01 6 bInterval Polling Interval v milisekundách
069A 0x07 0 bLength Dĺžka tohto koncového bodu Descriptor 069B 0x05 1 bDescriptor Typ Descriptor Type = koncových bodov 069C 0x86 2 bEndpointAddress koncových bodov Réžia (1 je v) a adresa = IN6 069D 0x02 3 bmAttributes XFR Type = BULK 069E 0x40 4 wMaxPacketSize (L) Maximálna veľkosť paketu = 64 Bytes 069F 0x00 5 wMaxPacketSize (H) Maximálna veľkosť paketu - Vysoká 06A0 0x01 6 bInterval Polling Interval v milisekundách
06A1 0x07 0 bLength Dĺžka tohto koncového bodu Descriptor 06A2 0x05 1 bDescriptor Typ Descriptor Type = koncových bodov 06A3 0x87 2 bEndpointAddress koncových bodov Réžia (1 je v) a adresa = IN7 06A4 0x02 3 bmAttributes XFR Type = BULK 06A5 0x40 4 wMaxPacketSize (L) Maximálna veľkosť paketu = 64 Bytes 06A6 0x00 5 wMaxPacketSize (H) Maximálna veľkosť paketu - Vysoká 06A7 0x01 6 bInterval Polling Interval v milisekundách
ktorá sa potom nasleduje unicode podobe nulovej končiace reťazec "Microchip Technology ICD2 USB Device"
|
Ak však narazíte s 4550 bin, môžem skúsiť pomôcť pridaním komentáre v CY asm súboru. |
|
| Späť na začiatok | |
 |
Zedman
Založený: 13 október 2003 Príspevky: 294 Pomohol: 2
| 03 apríla 2006 17:10 Re: Project nahradiť CY7C64613 v ICD2 | | | Štítky: |
|
| Ahoj Silvia,
vďaka za informácie, už dávno som musel spracovať jeden bin súbor pochádzajúci z EPROM čipu. Já ani ne typ procesora ani na okruhu. Ale musel som nájsť, ako sa obchoduje s pamäťovou kartou a je to data. I predpokladať, že sa jedná o 8051 druhov čipov a snažil hodně disassemblers, a skončil s 80C542 (i cant pamätať, ktorý z nich to bolo presne) som si to od čísla portov a ako kód zaoberá jednotlivými prístavu kolíky. Ale to trvalo 2 týždne dennej i nočnej práci pre mňa veľa čítania / ladenie / učenia. To je dôvod, prečo som chcel jeden assembler, čo je schopný robiť to, čo vám bolo uvedené miesto ma ...  Vďaka opäť Silvio.
-----------------------------
Iam začínajú veriť vám všetkým, podľa bin súbory. I urobil výskum ICD2 dll a zistil, že hovory GETUSBDESCRIPTOR a kontroly čísiel v deskriptorov, a ak sa zhoduje novšiu verziu ICD2, ako som sa v mojej 4550 to deskriptor, ako sa robí send4550image volať! A aj tam sú deskriptory v bin súbory zhodné s jednej Krípton nahrali. Jedna vec mi nerozumie tomu, že je dôvod, prečo sa im dodala zavádzací obraz? A prečo ICD2.dll sa pokúsi stiahnuť tento obrázok? Ak sa dostanem domov, budem snažiť Moja deskriptorov, aby zodpovedali jednej som našiel v bin a pokúsi MPLAB na ňu.
Myslím, že sa blíži! 
Pridané po 46 minútach:
A tam je magická vec, v prvej btyes z boot bin: MCHP (mikročip?) Som hľadal, ak je to neskôr (po výkone) nahrádza týmito s opravdovou vstupný bod Choď alebo st, ale v ICD2.dll nie je.
Pridané po 3 hodiny 34 minút:
Podívej se na tohle:
Urobil som, čo som povedal predtým, len nastaviť číslo verzie na novšiu očakáva a MPLAB snažia poslať OS! (Samozrejme, môj FW nie je zavaděč)
| Kód: | MPLAB ICD 2 Připraveno Pripojenie k MPLAB ICD 2 ICD0289: Nemožno re-program ICD2 USB OS firmware. ICD0021: Nedá sa pripojiť s MPLAB ICD 2 MPLAB ICD 2 Připraveno
|
Nějak sa Zavádzač by mal fungovať, budem snažiť urobiť niečo v noci. |
|
| Späť na začiatok | |
 |
narccizzo
Založený: 20. januára 2006 Príspevky: 173 Pomohol: 4 Poloha: PATZCUARO, Michoacán, Mexiko
| 03 apríla 2006 18:43 Projekt nahradiť CY7C64613 v ICD2 | | | Štítky: |
|
| Ahoj JaySlovak Nie, určite nie Im som len otvorila bin a uložte ho v hexadecimálním formáte. |
|
| Späť na začiatok | |
 |
Jay.slovak
Založený: 23. marec 2006 Príspevky: 11
| 03 apríla 2006 20:45 Re: Project nahradiť CY7C64613 v ICD2 | | | Štítky: |
|
| | narccizzo Napísal: | Ahoj JaySlovak Nie, určite nie Im som len otvorila bin a uložte ho v hexadecimálním formáte.  |
Jo, je to divný ako reťazec je čitateľné, len kód nerobí nič |
|
| Späť na začiatok | |
 |
Zedman
Založený: 13 október 2003 Príspevky: 294 Pomohol: 2
| 03 apríla 2006 22:25 Re: Project nahradiť CY7C64613 v ICD2 | | | Štítky: |
|
| Dobrá správa po 2 hodinách ladenie,
ICD2.dll sa použiť obe bin súbory. OS súbor chce byť stiahnutý len do ICD2s nové sériové číslo produktu. Ale keď budete meniť verziu id v súbore z OS.bin do * _FFFF.bin, ako sa začne kontrolovať zavadece verzia vyzerať:
| Kód: | Pripojenie k MPLAB ICD 2 ICDWarn0062: USB Zavádzacia firmware z ICD2 je aktívny a poskytuje komunikáciu s ICD2. Tento firmware je vonku-na-den a mala by byť aktualizované. To nemôže byť aktualizovaný súčasne aktívny. Môžete však naďalej fungovať s aktuálnym boot firmware, ak sa rozhodnete urobiť. Chcete pokračovať?
|
Kdybych stlačte ÁNO tu ako sa pokúsi o pripojenie k ICD2 sama a zamrzne (mám len 4550 zatiaľ nainštalovaný). Kdybych tlače NO, ako sa zdá, že sa pokúsi o aktualizácii, ale musíme tu zavaděč takhle, tak táto správa sa objaví:
| Kód: | ICD0288: Nemožno re-program ICD2 USB Zavádzacia firmware. ICD0021: Nedá sa pripojiť s MPLAB ICD 2 MPLAB ICD 2 Připraveno
|
Dobre chlapi, myslíte, myslíte, myslíte, ako môžeme použiť, že bin získať pracovné zavádzača do 4550!
Pridané po 2 minútach:
Tiež zostavujúcich vzorky zavadece sa správnym VID / PID, ale mám tie isté výsledky ako s mojou 4550.
Pridané po 16 minútach:
Je možné, že sa nemôže dostať pôvodný pôvodný pôvodný:) časť zavadece, ktorý nahral prvý zavádzač, ktorý načíta os ...
Pridané po 5 minútach:
To je doba, kedy rkodaira by vyčítat jeho 4550 na úrovni 0 zavadece. (s veľkú nádej, že nie je chránený ...)
Rkodaira Potrebujeme ťa |
|
| Späť na začiatok | |
 |
albert22
Založený: 20 júl 2004 Príspevky: 95 Pomohol: 3
| 03 apríla 2006 22:46 Re: Project nahradiť CY7C64613 v ICD2 | | | Štítky: |
|
| Bol som analyzuje výtlačok, že som sa so mnou o BL010101. a nájsť pár vecí. Zdá sa, prijať 5 príkazy prichádzajúce z PSP alebo USART. 0x55 spustiť kód začínajúcou na 0x0010. 0x56 Načítať Hex (tohle si zrejme viac subcommands) 0x5a dáta posiela 0x01 0x01 0x03 (Verzia z BL??) Dva ďalšie príkazy zase len na chyby a Busy LED a visí v inffinite slučky.
Nasledujúce postupy sa vzťahujú na to, čo som nazval "nahrať hex" príkaz:
V iné bežné v BL odoąle nasledujúci reťazec 0x5b, "0810C9", 0x5d Ostatné posiela odpovede embeded do nasledujúci reťazec 0x5b, "0A000", U, 0x31, U, 0x5d. (U, kde sa zdá byť 0x31, 0x34, 0x36 a 0x37).
I didnt mať veľa času, aby pokračovali v analýze. Já ani viděl USB monitorovania, ktoré boli zverejnené, pretože Im na počítačové. Ale myslím, že tieto dáta by malo byť zabalené do USB komunikácie |
|
| Späť na začiatok | |
 |
Zedman
Založený: 13 október 2003 Príspevky: 294 Pomohol: 2
| 03 apríla 2006 23:30 Projekt nahradiť CY7C64613 v ICD2 | | | Štítky: |
|
| albert,
Overil som si sériovej comm versus USB, USB používa obalovač koryto sériovej vec. Zdá sa, že používa pre kontrolu EP1 port (je to OUT a IN) a EP2 ako data port, len v (ICD-> PC). |
|
| Späť na začiatok | |
 |
albert22
Založený: 20 júl 2004 Príspevky: 95 Pomohol: 3
| 05. apríl 2006 6:39 Re: Project nahradiť CY7C64613 v ICD2 | | | Štítky: |
|
| Tu sú moje preddavky s BL Neboli zistené žiadne také subcommands. Záťaž Hex velenie práve zastáva Hex záznamy a zapisuje dáta do pamäti programu 2 byty naraz. Kontroluje rôzne chyby vrátane radu adresu. Ap. aby sa zabránilo stupňujú do BL program. To potvrdzuje, že BL je allways bydliskom na 877. V [0A000 ", U, 0x31, U]. (2. U je prvé U 1), je pravdepodobné, že by bolo vidieť, pretože je to správa o chybe. Chyby patria: zlý formát, kontrolné, zlé adresy a EEPROM zapisovať chyby . Rutinné čaká na 16 znakov, začína sa 0x3c ('<') a končí s 0x3e ('>'). 16 znakov tohto hlavičke obsahovať adresu, dĺžku a kontrolné údaje, ktoré majú byť v písomnej forme v ASCII. Ak záhlavie je správna Ap. v BL odpovede s "[0810C9]" Údaje Camesa po 0x7b Tento formát sa zdá byť odlišný od Intel hex formáte.
Zedman. Možno ste niečo takého v RS232 Tomorrow I wil byť môj domov a mohli nainštalovať hdd skontrolovať logy a uvidíme, či môžem byť akejkoľvek pomoci. |
|
| Späť na začiatok | |
 |
Zedman
Založený: 13 október 2003 Príspevky: 294 Pomohol: 2
| 05. apríl 2006 12:17 Re: Project nahradiť CY7C64613 v ICD2 | | | Štítky: |
|
| Som prilepené s USB vec. A ja som smutná.
Nemám naozaj vedieť, čo robiť ďalej. Strávil som veľa času na ladenie icd2.dll.
Problém je: Nedarí sa mi poslať ani jeden byte späť do MPLAB.
Já vám vysvetlím, čo som našiel až teraz, aj keď nikto naozaj zaujíma (len chcete chytiť hotových vecí). (S výnimkou: Albert, Krípton, rkodaira, Silvio a ľudí v tejto vlákno)
Takže MPLAB komunikuje s ICD2 týmto spôsobom:
[MPLAB -> ICD2.dll -> MPLBCOMM.dll -> icd2w2k.sys ->] --- [ICD2 zariadenia]
Ak ste zvolili typ pripojenia USB to požiada prístroj deskriptor z ICD2 a kontrol pre verziu produktu slovo, ak je to 0x0003, ako je to Cypress ICD2 založená, ak je to 0x0010, ako je to 4550 založená jedna. Ak sa zistí, 0x0010, ako je napísané, čo som bol vyslaný pred týmto OS v ICD2 musí byť modernizované. Je zaujímavé, že v prípade, že verzia (0100) v súbore z OS.bin je upravený tak, aby FFFF, ako je tento krok vynecháva a kontroly zavadece verziu. Tu som mal na opravu ICD2.dll na to skúste skontrolovať, či sa súbor BL.bin verziu taky, je to, že aj hardcoded je to nastavené na FFFF je zvyknutý snažiť upgrade, to je dôvod, prečo som to patched (set hardcoded FFFF do nižšej), takže teraz hovorí, co jsem taky mentoined pred: o bl verzia je príliš starý, ale nemôže byť aktualizovaný, pričom je to účinné.
Dobre. Urobil som malý programy zo vzorky zavadec, sa správnym deskriptorov a snaží sa komunikovať s MPLAB, aby dekódovanie protokolu a emulovat BL v novom 4550 ICD2. ICD2 že Krípton využíva (cypřišovým verziu) obsahuje 7 / a parametre, ale v súlade s protokolmi, ktoré používa iba pre EP1 IN / OUT a EP2 pre IN. (OUT znamená, PC-> Device) Zdá sa, že ju pošle usb špecifických príkazov a dát cez EP1, a späť na EP1, a posiela bytes readed z ICD2 je cez 877 samostatných koncový bod EP2 palcov
Keď MPLAB snažia poslať tého OS.bin na upgrade FW os vydá getUSBdescriptor volania jadra ovládač, a posiela obsahoval 0x12 bajtov dlhý príkaz pomocou DeviceIoControl príkaz. I odladění, že dorazí úspešne do 4550. MPLAB ako vydá GetStatus hovor, a zdá sa, ze hovor parametrov že očakáva 0x08 bajtov dát späť. Nastaviť môj pufra s 8 byty a nastaviť vlastníctva na SIE. Ale to, že nikdy odoąle 8 byte späť (nie je v USBMon). Len čaká. Existuje mnoho vecí. Možno som to st zlého nastavenia 4550, ale som ju s inou progs a to funguje, môžete poslať späť bytov. Viem, že sa hosť musí posielať a vo velenia nechať prístroj zaslať čo chce. Ale keď som odladění MBLBCOMM, videl som, že DeviceIoControl velenie zlyhalo! I tought že možno niektoré spravodajské bola postavená v. Sys súboru a kvapky paketu, pretože je to zlý obsah, ale myslím, že by mala byť vyššia úroveň úlohu. Keď som si doma budem kontrolovať GetLastError hodnoty.
Každý, kto nemá ponětí, ako môžem zistiť, či bol v paketu rozposlali, alebo ako sa môžem uplatniť? |
|
| Späť na začiatok | |
 |
Kripton2035
Založený: 19. júla 2001 Príspevky: 498 Pomohol: 17 Poloha: Earth
| 05. apríl 2006 16:59 Projekt nahradiť CY7C64613 v ICD2 | | | Štítky: |
|
| je možné, mali by ste pripojiť 877 k PSP port je 4550 vidieť to, čo prichádza cez 877 a program sa s zavadece sme? môže byť bytes ste čaká pochádzajú z EP2 a tak 877?
chcete mi poslať ďalšie log súbor presný stav? na ceste je to určite budete potrebovať rokaida prihláste sa svojimi 4550 icd2 ..
PS: Ja nemám záujem v tomto projekte .. Som len zvedavý! Už mám usb icd2! |
|
| Späť na začiatok | |
 |
Zedman
Založený: 13 október 2003 Príspevky: 294 Pomohol: 2
| 05. apríl 2006 20:08 Projekt nahradiť CY7C64613 v ICD2 | | | Štítky: |
|
| Vďaka Krípton,
Já vám oznámime, keď potrebujete viac výpisu , Je to trochu zložitejšie, ako len prechádza bytov do 877 a späť, má protokol obal na ňu. Čo ste říkal bolo veľmi užitočné, ale rkodeira zvyknutý sacrify svoje zbrusu nové ICD2 ... Ak by, ako s výpisom ze je to zmenené OS procesu by definovať protokol dobre ... |
|
| Späť na začiatok | |
 |
Kripton2035
Založený: 19. júla 2001 Príspevky: 498 Pomohol: 17 Poloha: Earth
| 05. apríl 2006 22:09 Projekt nahradiť CY7C64613 v ICD2 | | | Štítky: |
|
| | I dont think i on potrebuje sacrify svoje icd2! iba niektoré skládky sa usbmon, ako ja .. dúfajme, že môj icd2 sa stále pracuje! |
|
| Späť na začiatok | |
 |
albert22
Založený: 20 júl 2004 Príspevky: 95 Pomohol: 3
| 05. apríl 2006 22:16 Re: Project nahradiť CY7C64613 v ICD2 | | | Štítky: |
|
| Nemôžem nainštalovať HHD monitora vidieť kláty, pretože som len w98 doma. Môžeš export s výpisom z OS ke stažení. Txt, pre mňa? ------- Ako sa CY vynuluje 877? Je signálu (pin 43) so základňou Q1, ktorého kolektor je MCLR. Ale tohle je na konektor nazýva PROG. Aj teraz si uvedomujeme, že tento signál by mal ísť do 877 taky. Mali by sme vedieť, ktoré potrebujú USB príkaz vynuluje 877. Môže byť, že je na jednom z kontrolných body? I dont vedieť, aká je funkcia tohto PROG konektor. ale extra body môžu byť v súvislosti s jeho. ---------- Jedným z OS nahrá do ICD2 sa zdá byť: ICD01020405.hex som sa snažil disassemby, ale nemôžem sa dostať do disassembler nahradiť Hex adries s názvom registrov. To bude mať viac času na to, ako to funguje. Zaujímavým faktom je, že kód sa začína na 0x0010. Nezabudnite, že BL volania tejto adrese sa spustiť príkaz.
V BL verziu hlási mplab je 01.01.01.00 To je docela dobre s BL príkaz, ktorý odpovie 01,01,01,03 --------- Neexistuje žiadny DPot (MCP41xxxx) v brazílskych ICD. Ako nastaviť VPP? Väčšina z klony majú pevnú VPP. Má to znamená, že brazílska ICD je len nízke náklady a nie je klon ICD2 nové? I dont think injekčných že šel za fixnú VPP. Ak existuje iný spôsob ovládania VPP, iné ako by bolo potreba DPot firmware zmeny v ICD OS. Starý OS nebude fungovať na nový. To môže byť príčinou, že táto knižnica je skontrolovať verziu. |
|
| Späť na začiatok | |
 |
Zedman
Založený: 13 október 2003 Príspevky: 294 Pomohol: 2
| 05. apríl 2006 22:32 Projekt nahradiť CY7C64613 v ICD2 | | | Štítky: |
|
| Nemyslím, že by sme mali riešiť niečo ohľadom okruhu alebo protokolu alebo spojenie medzi 877 a 4550 doteraz. Myslím, že všetko, čo potrebujete, je napísané v 4550 koša dodávané s MPLAB. Mali by sme napísať zavadece kompatibilná s icd2w2k.sys dostať OS.bin prevzali, a potom môžeme scracth našej hlavy ako 877 je pripojený.
Pridané po 5 minútach:
V ICD2br používa iný typ čipu, ktorý generuje VPP. Rkodaira mentoined, pozrite sa na miesta predtým. |
|
| Späť na začiatok | |
 |
Silvio
Založený: 31. decembra 2001 Príspevky: 800 Pomohol: 90
| 06 apríla 2006 2:36 Re: Project nahradiť CY7C64613 v ICD2 | | | Štítky: |
|
| | Zedman Napísal: | Mali by sme napísať zavadece kompatibilná s icd2w2k.sys dostať OS.bin stiahnuť.
|
Áno, to je hlavný dôvod, prečo som povedal, že dissasembling CY FW je to k ničomu, ak máme OS a BL bin súbor poskytnutých Microchip. Ak chcete začať od piky kódovanie pre 4550 a simulovať CY FW by bolo časovo náročné a bezcenné. To oceňuji zedman úsilie.
Avšak niekedy nemůžu pomoct sám požiadať tento hlúpy dotaz: Ak BL nemôže byť aktualizovaný, pričom je to aktívne, čo sa to Microchip ICD2 návrhári prístup k inovácii? V paralelný programátor pred spájkovaním 4550? Alebo prostredníctvom ICSP s čistým bin obraz prevzali po boot blok vymazať? Ak sa zistí, že rkodaira CPB a EBTRB bity sú vynulované , Pak OS.bin ako môže byť naložený do 4550? I start žiadajú, ako ste vy: prečo sú dodávané zavádzacieho obrazu? Alebo, ako povedal Jay.slovak "reťazec je čitateľné, len kód nerobí nič", pretože je to zašifrovanej a má zmysel iba pre pôvodné zavádzaciu kód. Takže jediným riešením je simulovať 4550 zavadece a dostať sa do zrkadla bin obraz OS? |
|
| Späť na začiatok | |
 |
albert22
Založený: 20 júl 2004 Príspevky: 95 Pomohol: 3
| 06 apríla 2006 4:36 Re: Project nahradiť CY7C64613 v ICD2 | | | Štítky: |
|
| | Citácia: | V ICD2br používa iný typ čipu, ktorý generuje VPP. Rkodaira mentoined, pozrite sa na miesta predtým.
| I didnt znamená MIC2175, čo je spínacie regulátor ako MC34063. Bol som so zameraním na DPOT a konkrétne na jeho I2C interfase pretože si vyžaduje podporu firmware v 877 nastaviť správny VPP napätie. Ako som už povedal predtým, než-li nové ICD2 spolieha na iné zložky zmeniť VDD, všetky firmware potrebuje zmenu.
Môže byť Rkodaira mohol skontrolovať ithe obvodu spojené s pin 3 (FB) pre MIC2172 VPP s cieľom zistiť, či môžu byť kontrolované, alebo ich opraviť.
Dovoľte mi, aby moje vyhlásenie trochu jasné. Ak brazílskeho ICD nemá kontrolu VPP je veľmi pravdepodobné, že je to len klon. V tomto prípade neexistuje žiadna záruka, že skutočné nové ICD2 je založená na 4550 a 877. It could be just a 4450 alone for example (why not) in that case the following statement would not be true. | Citácia: | | 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: | Citácia: | | 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] |
|
| Späť na začiatok | |
 |
Zedman
Založený: 13 október 2003 Príspevky: 294 Pomohol: 2
| 06 Apr 2006 11:48 Re: Project to replace CY7C64613 in the ICD2 | | | tags: |
|
| 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. |
|
| Späť na začiatok | |
 |
rkodaira
Založený: 08. jún 2004 Príspevky: 332 Pomohol: 54 Miesto: Sao Paulo - Brasil
| 06 Apr 2006 14:19 Re: Project to replace CY7C64613 in the ICD2 | | | tags: |
|
| 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. |
|
| Späť na začiatok | |
 |
albert22
Založený: 20 júl 2004 Príspevky: 95 Pomohol: 3
| 06 Apr 2006 18:26 Re: Project to replace CY7C64613 in the ICD2 | | | tags: |
|
| Prosím 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. Vďaka |
|
| Späť na začiatok | |
 |
Kripton2035
Joined: 19 Jul 2001 Posts: 498 Pomohol: 17 Location: Earth
| 06 Apr 2006 19:31 Re: Project to replace CY7C64613 in the ICD2 | | | tags: |
|
| | 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... |
|
| Späť na začiatok | |
 |
Zedman
Založený: 13 október 2003 Príspevky: 294 Pomohol: 2
| 06 Apr 2006 20:14 Project to replace CY7C64613 in the ICD2 | | | tags: |
|
| | It can be exported from USBMon to HTML format, but I have only serial ICD2. |
|
| Späť na začiatok | |
 |
Brem
Joined: 06 Apr 2006 Príspevky: 36
| 06 Apr 2006 20:22 Re: Project to replace CY7C64613 in the ICD2 | | | tags: |
|
| 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 (?) . |
|
| Späť na začiatok | |
 |
albert22
Založený: 20 júl 2004 Príspevky: 95 Pomohol: 3
| 06 Apr 2006 23:17 Re: Project to replace CY7C64613 in the ICD2 | | | tags: |
|
| | Citácia: | | 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, Veľký. I was just at the routines that handle connection with the ICD once the OS is loaded. Vďaka. |
|
| Späť na začiatok | |
 |
Zedman
Založený: 13 október 2003 Príspevky: 294 Pomohol: 2
| 06 Apr 2006 23:29 Re: Project to replace CY7C64613 in the ICD2 | | | tags: |
|
| Hey Brem!
nice to see you here! Thanks for the infos on the protocol.
| Citácia: | 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. 
-------------------
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): | Kód: | procedure TForm1.Button1Click(Sender: TObject); var hnd: cardinal; InBuffer: array[0..3] of byte; OutBuffer: array[0..17] of byte; bytesReturned: cardinal; a: integer; začať hnd:=CreateFile('\\.\i3kmc-0', $C0000000, 2, 0, 3, 0, 0);
if hnd <> INVALID_HANDLE_VALUE then začať // 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 začať Memo1.Lines.Add('1 OK'); koniec;
// 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 začať Memo1.Lines.Add('2 OK'); koniec;
// 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 začať Memo1.Lines.Add('3 OK'); koniec; Memo1.Lines.Add('- done.'); koniec; koniec;
|
the 3rd DeviceIOControl returns failed.
I can't even remeber how my wife look like... |
|
| Späť na začiatok | |
 |
Brem
Joined: 06 Apr 2006 Príspevky: 36
| 07 Apr 2006 0:31 Re: Project to replace CY7C64613 in the ICD2 | | | tags: |
|
| 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. |
|
| Späť na začiatok | |
 |
Zedman
Založený: 13 október 2003 Príspevky: 294 Pomohol: 2
| 07 Apr 2006 10:51 Project to replace CY7C64613 in the ICD2 | | | tags: |
|
| 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!
| Kód: | 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
|
|
|
| Späť na začiatok | |
 |