Pravidla | Poslední příspěvky | RSS téma | Hledat | Registrace | Přihlášení

Projekt nahradit CY7C64613 v ICD2


Jdi na stránku Předchozí 1, 2, 3, 4 ... 59, 60, 61 Další
Přejít na stránku:

Post new topic Reply to topic EDAboard.com Obsah fóra -> Microcontrollers -> Project nahradit CY7C64613 v ICD2
Arabské znění Bulharská verze Katalánština verze Česká verze Dánské znění Německá verze Řecké znění Anglická verze Španělské znění Finské znění Francouzská verze Hindština verze Chorvatština verze Indonéská verze Italská verze Hebrejské znění Japonská verze Korejská verze Litevské znění Lotyšské znění Nizozemské znění Norská verze Polská verze Portugalská verze Rumunská verze Ruská verze Slovenská verze Slovinské znění Srbská verze Švédské znění Tagalog version Ukrajinská verze Vietnamština verze Čínština verzi
Autor Zpráva
Kripton2035



Založen: 19. července 2001
Příspěvky: 482
Pomohl: 15
Poloha: Earth


Post 03 dubna 2006 8:28 Re: Project nahradit CY7C64613 v ICD2

predrage napsal:
Moji přátelé i nepodařilo programování ICD2_4550_BOOT_0180.BIN do 4550. I'v
snažil otevřít bin soubor s winpic 800 software, ale to se nepodařilo. I tryed ji otevřete volbou "all files" in "typy souborů", protože neexistuje žádná přímá podpora bin soubory. ICprog si, že podpora (otevřít bin soubory), ale nemůže program 4550. Ve skutečnosti neexistuje 4550 přístroj v seznamu. Co mám dělat? Jakýkoliv návrhy? Jsem jen začátečník, ale mám dobrou vůli pomoci.
Omlouvám se za moje špatná angličtina.


přejmenovat. BIN se. HEX a winpic bude otevřena!
někdy hodně souborů. BIN ve skutečnosti jsou Intel. hex!
si být jisti, otevřete soubor s notepad, obsahuje-li řádky začínající ":" přejmenujte na. hex a otevřete jej winpic .. pokud je to smetí, pak musí být použit bin2hex ji otevřete.
Zpět na začátek
narccizzo



Založen: 20. ledna 2006
Příspěvky: 173
Pomohl: 4
Poloha: PATZCUARO, Michoacán, Mexiko


Post 03 dubna 2006 9:42 Re: Project nahradit CY7C64613 v ICD2

Jedná se o dva soubory bin převeden do hex, jsem otevřel bin soubory s příponou
IC-prog software pak i zachránit soubory v hexadecimálním formátu, když se podíváme na tyto soubory můžete vidět čitelný řetězec "Microchip Tecnology ICD2 USB Device icd2 usb" v 0x0ee7 adresa pro soubor boot.hex a stejný řetězec v 0x0b8e pro
os.hex souboru, i dont mít disassembler prozkoumat podrobněji tohoto souboru, ale něco mi říká, že tyto dva soubory jsou všechny, které potřebujeme.

BR
Narccizzo


Omlouváme se, ale musíte přihlásit a prohlížet tuto přílohu

Zpět na začátek
Jay.slovak



Založen: 23. březen 2006
Příspěvky: 11


Post 03 dubna 2006 11:17 Re: Project nahradit CY7C64613 v ICD2

narccizzo napsal:
Jedná se o dva soubory bin převeden do hex, jsem otevřel bin soubory s příponou
IC-prog software pak i zachránit soubory v hexadecimálním formátu, když se podíváme na tyto soubory můžete vidět čitelný řetězec "Microchip Tecnology ICD2 USB Device icd2 usb" v 0x0ee7 adresa pro soubor boot.hex a stejný řetězec v 0x0b8e pro
os.hex souboru, i dont mít disassembler prozkoumat podrobněji tohoto souboru, ale něco mi říká, že tyto dva soubory jsou všechny, které potřebujeme.

BR
Narccizzo


Jste si jisti, že jste se přepočítávají na soubory správně? Kdybych import do MPLAB, kód nemá smysl, všichni to je právě procházejí Program paměti a dělá NOPs. Nic užitečné se děje v obou Zavádecí a OS HEXs. Dokonce i konfigurační bity jsou rozdílné v obou souborech!
Zpět na začátek
Zedman



Založen: 13 říjen 2003
Příspěvky: 294
Pomohl: 2


Post 03 dubna 2006 11:19 Projekt nahradit CY7C64613 v ICD2

albert,

jádra řidiče (ů) očekávají, že bude cypřišovým připojit i na jiné vid / pid kdy Fiřt spojeny, a po nabíjec sys BitTorrent je to FW bude opět jako další vid / pid tak ostatní sys rozhovory na to. Musíme provést pouze druhou.
Iam @ práci tak nemůžu dělat nic zde očekávají tvrdé přemýšlela ' Kolejová Eyes ...
Zpět na začátek
silvio



Založen: 31. prosince 2001
Příspěvky: 800
Pomohl: 90


Post 03 dubna 2006 11:31 Re: Project nahradit CY7C64613 v ICD2
Štítky: mplab protokol icd2 cypřiš disassembler disassembler cypřišovým

Ahoj Zedman,

it's a must to understand what's under cover. Pokud jde o CY hex soubor není to jen otázka dobré disassembler, který zná cypřišovým čip, ale čtení 436 stran EZ-USB FX TechRefManual to je třeba pochopit, co je pod ochranným krytem.
A já nevěřím, že jste čas. Přesto, pokud nejste obeznámeni s 8051 opcodes, parsování kódu bude nějakou dobu trvat. (Já vím, že jste 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ůžu nahradit všechny výskytu MOV DPTR, # LXXXX s odpovídající hodnoty z CY7C64613 registry 0x7800-0x7FFF ale budete určitě skončí otáčením stránek TechRefManual hledáte definice.
Kromě toho, že by někteří, jak obtížné přiřadit bitů jména, která jsou stanovena jasná nebo v programu, pokud nejsou namapují SFR prostoru (které končí v 0 nebo 8).
with MOV DPTR, #EP0CS but it's difficult to say SETB HSNAK due to the above reasons. Je to snadné nahradit MOV DPTR, # L7FB4 s MOV DPTR, # EP0CS, ale je to těžké říct SETB HSNAK v důsledku výše uvedených důvodů.

and EP0STAL L which are affected in the bellow code at 0x03E2. Dejme si příklad bitů HSNAK a EP0STAL L, které jsou postiženy v níže kód na 0x03E2.
Kód:

L03E2: LCALL L0FBE
JNC L03EE
MOV DPTR, # L7FB4
MOVX A, @ DPTR
ORL A, # 01h; nějaký SETB EP0STALL
MOVX @ DPTR, A
L03EE: MOV DPTR, # L7FB4
MOVX A, @ DPTR
ORL A, # 02h; nějaký SETB HSNAK
MOVX @ DPTR, A
RET

L0FBE: SETB C
RET


Vezměte například (CP_1.asm) kód řádky začínající kompenzovat 0x0100 (a podprogram volán z 0x05FA), první řádek kódu používá hned pod vektor přerušení tabulky
Na RAM 0x7FE9 naleznete 2. bajt je 8 bytů USB SETUP paketová data (viz str. 215 table9-1), což znamená, bRequest oblasti (viz tabulka 9-2).


Kód:

L0100: MOV DPTR, # L7FE9
MOVX A, @ DPTR
JNZ L0109
LJMP L029B, pokud bRequest = GetStatus Přejít na 0x029B
L0109: DEC A
JNZ L010F
LJMP L0317, pokud bRequest = Clear Feature, skok na 0x0317
L010F: ADD A, # 0FEh
JNZ L0116
LJMP L038E, pokud bRequest = Nastavit Feature, skok do 0x038E
L0116: ADD A, # 0FBh
JNZ L011D
LJMP L0295, pokud bRequest = Získat konfigurace, skok na 0x0295
L011D: DEC A
JNZ L0123
LJMP L028F, pokud bRequest = Nastavení konfigurace, skok do 0x028F
L0123: DEC A
JNZ L0129
LJMP L0283, pokud bRequest = Získat Interface, skok na 0x0283
L0129: DEC A
JNZ L012F
LJMP L0289, pokud bRequest = Nastavení rozhraní, skok na 0x0289
L012F: ADD A, # 05h
JZ L0136
LJMP L03E2, pokud bRequest = žádný z výše uvedených, pak set bitů HSNAK
a EP0STALL z EP0CS kontrolní & status rejstříku a
; pak RET na 0x05FD
;
L0136: LCALL L0F7A, pokud bRequest = Získat Descriptor, LCALL 0x0F7A kde
JC L013E; nosit bit je nastaven jako výchozí, takže skok na 0x013E
LJMP L03EE, když na 0x0F7A carry by 0 ve výchozím nastavení nastaven bit HSNAK
, o kontrole EP0CS & status zaregistrovat a RET v 0x05FD
;
L013E: MOV DPTR, # L7FEB, protože bRequest byl Získejte Descriptor
MOVX A, @ DPTR, a tak, podívejte se na WValueH oboru USB SETUP paketu
ADD A, # 0FEh
JZ L015F, pokud wValueH byl 0x02 skok na 0x015F
DEC A
JZ L0190, pokud wValueH byl 0x03 skok na 0x0190
ADD A, # 02h
JZ L0150, pokud wValueH byl 0x01 skok na 0x0150
LJMP L0279, pokud je odlišná wValueh buď 0x01 nebo 0x02 nebo 0x03 nastavte
; bitů HSNAK a EP0STALL ze EP0CS rejstříku a RET v 0x05FD
;
L0150: MOV A, 0Ch, protože wValueH byl 0x01, takže zatížení SUDPTR USB globální registr
MOV DPTR, # L7FD4; s hodnotou 0x0C0D, potom nastavit 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, podívejte se nyní na wValueL oboru USB SETUP paketu
;
;
;
;
a tak dále ...................


port2: Microchip MPLAB ICD2 Fw client Nebo tento lookup tabulky na kompenzovat 0x0622, které odpovídají Kripton2035 Port2: Microchip MPLAB ICD2 Fw klienta


Kód:

Tabulka 5-9. Standardní USB zařízení Descriptor

RAM Hodnota Ofsetový popis polí

0622 0x12 0 bLength Délka tohoto Descriptor = 18 bytes
0623 0x01 1 bDescriptorType = Descriptor Typ zařízení
0624 0x00 2 bcdUSB (L) USB specifikace verze 1.10 (L)
0625 0x01 3 bcdUSB (H) USB specifikace verze 1.10 (H)
0626 0xFF 4 bDeviceClass Zařízení třídy (FF je Vendor-specific)
0627 0xFF 5 bDeviceSubClass Zařízení sub-Class (FF je Vendor-specific)
0628 0xFF 6 bDeviceProtocol Zařízení protokol (FF je Vendor-specific)
0629 0x40 7 bMaxPacketSize0 maximální velikost paketu pro EP0 = 64 bytes
062A 0xD8 8 idVendor (L) Vendor ID (L) Microchip Technologie = 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) Zařízení Vydání číslo (BCD, L)
062F 0x00 13 bcdDevice (H) Zařízení Vydání číslo (BCD, H)
0630 0x00 14 iManufacturer Výrobce Rejstřík String = Žádné
0631 0x00 15 iProduct Product Index String = Žádné
0632 0x00 16 iSerialNumber Sériové číslo Rejstřík String = Žádné
0633 0x01 17 bNumConfigurations Počet Konfigurace v této Interface = 1

Tabulka 5-10. USB Standardní konfigurace Descriptor

RAM Hodnota Ofsetový popis polí

0634 0x09 0 bLength Délka tohoto Descriptor = 9 bajtů
0635 0x02 1 bDescriptorType Descriptor Typ = Configuration
0636 0x74 2 wTotalLength (L) Celková délka (L) Včetně rozhraní koncových bodů Deskriptory = 116
0637 0x00 3 wTotalLength (H) Celková délka (H)
0638 0x01 4 bNumInterfaces Počet rozhraní v této konfiguraci
0639 0x01 5 bConfigurationValue konfigurace hodnota Used by Set_Configuration Žádost o zvolení této konfigurace
063A 0x00 6 iConfiguration Index Řetězcová popis této konfigurace = Žádné
063B 0x80 7 bmAttributes atributy - Autobus-Powered, č. buzení
063C 0x4b 8 MaxPower Maximální výkon - 150 mA

Tabulka 5-11. Standardní USB rozhraní 0, Alternativní Nastavení 0 Descriptor

RAM Hodnota Ofsetový popis polí

063D 0x09 0 bLength Délka rozhraní Descriptor
063E 0x04 1 bDescriptorType Descriptor Type = Interface
063F 0x00 2 bInterfaceNumber Zero-založené Obsah tohoto rozhraní = 0
0640 0x00 3 bAlternateSetting Alternate nastavená hodnota = 0
0641 0x0E 4 bNumEndpoints Počet parametry v tomto rozhraní (nepočítaje EPO) = 14
0642 0xFF 5 bInterfaceClass rozhraní třídy = Vendor Konkrétní
0643 0xFF 6 bInterfaceSubClass Interface sub-class = Vendor Konkrétní
0644 0xFF 7 bInterfaceProtocol rozhraní protokolu = Vendor Konkrétní
0645 0x00 8 iInterface Rejstřík pro smyčcové Descriptor této Interface = Žádné

Tabulka 5-14. Výchozí Interface 0, Alternativní Nastavení 1, Objemová koncových bodů Deskriptory

RAM Hodnota Ofsetový popis polí

0646 0x07 0 bLength Délka tohoto koncového bodu Descriptor
0647 0x05 1 bDescriptor Typ Descriptor Type = koncových bodů
0648 0x01 2 bEndpointAddress koncových bodů Režie (1 je v) a adresa = OUT1
0649 0x02 3 bmAttributes XFR Type = BULK
064A 0x40 4 wMaxPacketSize (L) Maximální velikost paketu = 64 Bytes
064B 0x00 5 wMaxPacketSize (H) Maximální velikost paketu - Vysoká
064C 0x01 6 bInterval Polling Interval v milisekundách

064D 0x07 0 bLength Délka tohoto koncového bodu Descriptor
064E 0x05 1 bDescriptor Typ Descriptor Type = koncových bodů
064F 0x02 2 bEndpointAddress koncových bodů Režie (1 je v) a adresa = Out2
0650 0x02 3 bmAttributes XFR Type = BULK
0651 0x40 4 wMaxPacketSize (L) Maximální velikost paketu = 64 Bytes
0652 0x00 5 wMaxPacketSize (H) Maximální velikost paketu - Vysoká
0653 0x01 6 bInterval Polling Interval v milisekundách

0654 0x07 0 bLength Délka tohoto koncového bodu Descriptor
0655 0x05 1 bDescriptor Typ Descriptor Type = koncových bodů
0656 0x03 2 bEndpointAddress koncových bodů Režie (1 je v) a adresa = OUT3
0657 0x02 3 bmAttributes XFR Type = BULK
0658 0x40 4 wMaxPacketSize (L) Maximální velikost paketu = 64 Bytes
0659 0x00 5 wMaxPacketSize (H) Maximální velikost paketu - Vysoká
065A 0x01 6 bInterval Polling Interval v milisekundách

065B 0x07 0 bLength Délka tohoto koncového bodu Descriptor
065C 0x05 1 bDescriptor Typ Descriptor Type = koncových bodů
065D 0x04 2 bEndpointAddress koncových bodů Režie (1 je v) a adresa = OUT4
065E 0x02 3 bmAttributes XFR Type = BULK
065F 0x40 4 wMaxPacketSize (L) Maximální velikost paketu = 64 Bytes
0660 0x00 5 wMaxPacketSize (H) Maximální velikost paketu - Vysoká
0661 0x01 6 bInterval Polling Interval v milisekundách

0662 0x07 0 bLength Délka tohoto koncového bodu Descriptor
0663 0x05 1 bDescriptor Typ Descriptor Type = koncových bodů
0664 0x05 2 bEndpointAddress koncových bodů Režie (1 je v) a adresa = OUT5
0665 0x02 3 bmAttributes XFR Type = BULK
0666 0x40 4 wMaxPacketSize (L) Maximální velikost paketu = 64 Bytes
0667 0x00 5 wMaxPacketSize (H) Maximální velikost paketu - Vysoká
0668 0x01 6 bInterval Polling Interval v milisekundách

0669 0x07 0 bLength Délka tohoto koncového bodu Descriptor
066A 0x05 1 bDescriptor Typ Descriptor Type = koncových bodů
066B 0x06 2 bEndpointAddress koncových bodů Režie (1 je v) a adresa = OUT6
066C 0x02 3 bmAttributes XFR Type = BULK
066D 0x40 4 wMaxPacketSize (L) Maximální velikost paketu = 64 Bytes
066E 0x00 5 wMaxPacketSize (H) Maximální velikost paketu - Vysoká
066F 0x01 6 bInterval Polling Interval v milisekundách

0670 0x07 0 bLength Délka tohoto koncového bodu Descriptor
0671 0x05 1 bDescriptor Typ Descriptor Type = koncových bodů
0672 0x07 2 bEndpointAddress koncových bodů Režie (1 je v) a adresa = OUT7
0673 0x02 3 bmAttributes XFR Type = BULK
0674 0x40 4 wMaxPacketSize (L) Maximální velikost paketu = 64 Bytes
0675 0x00 5 wMaxPacketSize (H) Maximální velikost paketu - Vysoká
0676 0x01 6 bInterval Polling Interval v milisekundách

RAM Hodnota Ofsetový popis polí

0677 0x07 0 bLength Délka tohoto koncového bodu Descriptor
0678 0x05 1 bDescriptor Typ Descriptor Type = koncových bodů
0679 0x81 2 bEndpointAddress koncových bodů Režie (1 je v) a adresa = In1
067A 0x02 3 bmAttributes XFR Type = BULK
067B 0x40 4 wMaxPacketSize (L) Maximální velikost paketu = 64 Bytes
067C 0x00 5 wMaxPacketSize (H) Maximální velikost paketu - Vysoká
067D 0x01 6 bInterval Polling Interval v milisekundách

067E 0x07 0 bLength Délka tohoto koncového bodu Descriptor
067F 0x05 1 bDescriptor Typ Descriptor Type = koncových bodů
0680 0x82 2 bEndpointAddress koncových bodů Režie (1 je v) a adresa = In2
0681 0x02 3 bmAttributes XFR Type = BULK
0682 0x40 4 wMaxPacketSize (L) Maximální velikost paketu = 64 Bytes
0683 0x00 5 wMaxPacketSize (H) Maximální velikost paketu - Vysoká
0684 0x01 6 bInterval Polling Interval v milisekundách

0685 0x07 0 bLength Délka tohoto koncového bodu Descriptor
0686 0x05 1 bDescriptor Typ Descriptor Type = koncových bodů
0687 0x83 2 bEndpointAddress koncových bodů Režie (1 je v) a adresa = IN3
0688 0x02 3 bmAttributes XFR Type = BULK
0689 0x40 4 wMaxPacketSize (L) Maximální velikost paketu = 64 Bytes
068A 0x00 5 wMaxPacketSize (H) Maximální velikost paketu - Vysoká
068B 0x01 6 bInterval Polling Interval v milisekundách

068C 0x07 0 bLength Délka tohoto koncového bodu Descriptor
068D 0x05 1 bDescriptor Typ Descriptor Type = koncových bodů
068E 0x84 2 bEndpointAddress koncových bodů Režie (1 je v) a adresa = IN4
068F 0x02 3 bmAttributes XFR Type = BULK
0690 0x40 4 wMaxPacketSize (L) Maximální velikost paketu = 64 Bytes
0691 0x00 5 wMaxPacketSize (H) Maximální velikost paketu - Vysoká
0692 0x01 6 bInterval Polling Interval v milisekundách

0693 0x07 0 bLength Délka tohoto koncového bodu Descriptor
0694 0x05 1 bDescriptor Typ Descriptor Type = koncových bodů
0695 0x85 2 bEndpointAddress koncových bodů Režie (1 je v) a adresa = IN5
0696 0x02 3 bmAttributes XFR Type = BULK
0697 0x40 4 wMaxPacketSize (L) Maximální velikost paketu = 64 Bytes
0698 0x00 5 wMaxPacketSize (H) Maximální velikost paketu - Vysoká
0699 0x01 6 bInterval Polling Interval v milisekundách

069A 0x07 0 bLength Délka tohoto koncového bodu Descriptor
069B 0x05 1 bDescriptor Typ Descriptor Type = koncových bodů
069C 0x86 2 bEndpointAddress koncových bodů Režie (1 je v) a adresa = IN6
069D 0x02 3 bmAttributes XFR Type = BULK
069E 0x40 4 wMaxPacketSize (L) Maximální velikost paketu = 64 Bytes
069F 0x00 5 wMaxPacketSize (H) Maximální velikost paketu - Vysoká
06A0 0x01 6 bInterval Polling Interval v milisekundách

06A1 0x07 0 bLength Délka tohoto koncového bodu Descriptor
06A2 0x05 1 bDescriptor Typ Descriptor Type = koncových bodů
06A3 0x87 2 bEndpointAddress koncových bodů Režie (1 je v) a adresa = IN7
06A4 0x02 3 bmAttributes XFR Type = BULK
06A5 0x40 4 wMaxPacketSize (L) Maximální velikost paketu = 64 Bytes
06A6 0x00 5 wMaxPacketSize (H) Maximální velikost paketu - Vysoká
06A7 0x01 6 bInterval Polling Interval v milisekundách

která se pak následuje unicode podobě nulové končící řetězec
"Microchip Technologie ICD2 USB Device"



Pokud však narazíte s 4550 bin, mohu zkusit pomoci přidáním komentáře v CY asm souboru.
Zpět na začátek
Zedman



Založen: 13 říjen 2003
Příspěvky: 294
Pomohl: 2


Post 03 dubna 2006 17:10 Re: Project nahradit CY7C64613 v ICD2
Štítky: icd2.dll

Ahoj Silvia,

díky za informace, už dávno jsem musel zpracovat jeden bin soubor pocházející z EPROM čipu. Já ani ne typ procesoru ani na okruhu. Ale musel jsem najít, jak se obchoduje s paměťovou kartou a je to data.
I předpokládat, že se jedná o 8051 druhů čipů a snažil hodně disassemblers, a skončil s 80C542 (i cant pamatovat, který z nich to bylo přesně) jsem si to od čísla portů a jak kód zabývá jednotlivými přístavu kolíky.
Ale to trvalo 2 týdny denní i noční práci Neutrální pro mě hodně čtení / ladění / učení.
To je důvod, proč jsem chtěl jeden assembler, co je schopen dělat to, co vám bylo uvedeno místo mě ... Velmi Happy
Díky opět Silvio.

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

Iam začínají věřit vám všem, podle bin soubory. I udělal výzkum ICD2 dll a zjistil, že hovory GETUSBDESCRIPTOR a kontroly čísel v deskriptoru, a pokud se shoduje novější verzi ICD2, než jsem se v mé 4550 to deskriptor, než se dělá send4550image volat!
A také tam jsou deskriptory v bin soubory totožné s jedné Kripton nahráli.
Jedna věc mi nerozumí tomu, že je důvod, proč se jim dodala zaváděcí obraz?
A proč ICD2.dll se pokusí stáhnout tento obrázek? Pokud se dostanu domů, budu snažit Moje deskriptorů, aby odpovídaly jedné jsem nalezl v bin a pokusí MPLAB na ni.

Myslím, že se blíží! Chladný

Přidáno po 46 minutách:

A tam je kouzelná věc, v první btyes z boot bin: MCHP (mikročip?)
Jsem hledal, pokud je to později (po výkonu) nahrazuje těmito s opravdovou vstupní bod Jdi nebo st, ale v ICD2.dll není.

Přidáno po 3 hodiny 34 minut:

Podívej se na tohle:

Udělal jsem, co jsem řekl předtím, jen nastavit číslo verze na novější očekává a MPLAB snaží poslat OS! (Samozřejmě, můj FW není zavaděč)

Kód:

MPLAB ICD 2 Připraveno
Připojení k MPLAB ICD 2
ICD0289: Nelze re-program ICD2 USB OS firmware.
ICD0021: Nelze se připojit s MPLAB ICD 2
MPLAB ICD 2 Připraveno


Nějak se Zavaděč by měl fungovat, budu snažit udělat něco v noci.
Zpět na začátek
narccizzo



Založen: 20. ledna 2006
Příspěvky: 173
Pomohl: 4
Poloha: PATZCUARO, Michoacán, Mexiko


Post 03 dubna 2006 18:43 Projekt nahradit CY7C64613 v ICD2

Ahoj JaySlovak
Ne, určitě ne Im jsem jen otevřela bin a uložte jej v hexadecimálním formátu. Smutný
Zpět na začátek
Jay.slovak



Založen: 23. březen 2006
Příspěvky: 11


Post 03 dubna 2006 20:45 Re: Project nahradit CY7C64613 v ICD2

narccizzo napsal:
Ahoj JaySlovak
Ne, určitě ne Im jsem jen otevřela bin a uložte jej v hexadecimálním formátu. Smutný


Jo, je to divný jako řetězec je čitelné, pouze kód nedělá nic Smutný
Zpět na začátek
Zedman



Založen: 13 říjen 2003
Příspěvky: 294
Pomohl: 2


Post 03 dubna 2006 22:25 Re: Project nahradit CY7C64613 v ICD2
Štítky: icd2.dll

Dobrá zpráva po 2 hodinách ladění,

ICD2.dll se použít obě bin soubory. OS soubor chce být stažen pouze do ICD2s nové sériové číslo produktu.
Ale když budete měnit verzi id v souboru z OS.bin do * _FFFF.bin, než se začne kontrolovat zavadece verze vypadat:

Kód:

Připojení k MPLAB ICD 2
ICDWarn0062: USB Zavádecí firmware z ICD2 je aktivní a poskytuje komunikaci s ICD2. Tento firmware je venku-na-den a měla by být aktualizována. To nemůže být aktualizován současně aktivní. Můžete však nadále fungovat s aktuálním boot firmware, pokud se rozhodnete udělat. Chcete pokračovat?


Kdybych stiskněte ANO zde než se pokusí o připojení k ICD2 sama a zamrzne (mám jen 4550 zatím nainstalován).
Kdybych tisku NO, než se zdá, že se pokusí o aktualizaci, ale musíme zde zavaděč takhle, tak tato zpráva se objeví:

Kód:

ICD0288: Nelze re-program ICD2 USB Zavádecí firmware.
ICD0021: Nelze se připojit s MPLAB ICD 2
MPLAB ICD 2 Připraveno


Dobře chlapi, myslíte, myslíte, myslíte, jak můžeme použít, že bin získat pracovní zavaděče do 4550!

Přidáno po 2 minutách:

Také sestavují vzorku zavadece se správným VID / PID, ale mám stejné výsledky jako s mou 4550.

Přidáno po 16 minutách:

Je možné, že se nemůže dostat původní původní původní:) část zavadece, který nahrál první zavaděč, který načte os ...

Přidáno po 5 minutách:

To je doba, kdy rkodaira by vyčítat jeho 4550 na úrovni 0 zavadece. (s velkou naději, že není chráněn ...)

Rkodaira Potřebujeme tě Úsměv
Zpět na začátek
albert22



Založen: 20 červenec 2004
Příspěvky: 95
Pomohl: 3


Post 03 dubna 2006 22:46 Re: Project nahradit CY7C64613 v ICD2

Byl jsem analyzuje výtisk, že jsem se se mnou o BL010101. a najít pár věcí.
Zdá se, přijmout 5 příkazy přicházející z PSP nebo USART.
0x55 spustit kód začínající na 0x0010.
0x56 Načíst hex (tohle si zřejmě více subcommands)
0x5a data posílá 0x01 0x01 0x03 (Verze z BL??)
Dva další příkazy zase jen na chyby a Busy LED a visí v inffinite smyčky.

Následující postupy se vztahují na to, co jsem nazval "nahrát hex" příkaz:

V jiné běžné v BL odeąle následující řetězec 0x5b, "0810C9", 0x5d
Ostatní posílá odpovědi embeded do následující řetězec 0x5b, "0A000", U, 0x31, U, 0x5d. (U, kde se zdá být 0x31, 0x34, 0x36 a 0x37).

I didnt mít mnoho času, aby pokračovaly v analýze. Já ani viděl USB monitorování, které byly zveřejněny, protože Im na počítačové. Ale myslím, že tato data by mělo být zabaleno do USB komunikace
Zpět na začátek
Zedman



Založen: 13 říjen 2003
Příspěvky: 294
Pomohl: 2


Post 03 dubna 2006 23:30 Projekt nahradit CY7C64613 v ICD2

albert,

Ověřil jsem si sériové comm versus USB, USB používá obalovač koryto sériové věc.
Zdá se, že používá pro kontrolu EP1 port (je to OUT a IN) a EP2 jako data port, pouze v (ICD-> PC).
Zpět na začátek
albert22



Založen: 20 červenec 2004
Příspěvky: 95
Pomohl: 3


Post 05. duben 2006 6:39 Re: Project nahradit CY7C64613 v ICD2

Zde jsou mé zálohy s BL
Nebyly zjištěny žádné takové subcommands. Zátěž hex velení právě zastává hex záznamy a zapíše data do paměti programu 2 byty najednou. Kontroluje různé chyby včetně řady adresu. Ap. aby se zabránilo stupňují do BL program. To potvrzuje, že BL je allways bydlištěm na 877.
V [0A000 ", U, 0x31, U]. (2. U je první U 1), je pravděpodobné, že by bylo vidět, protože je to zpráva o chybě. Chyby patří: špatný formát, kontrolní, špatné adresy a EEPROM zapisovat chyby .
Rutinní čeká na 16 znaků, začíná se 0x3c ('<') a končí s 0x3e ('>'). 16 znaků tohoto záhlaví obsahovat adresu, délku a kontrolní údaje, které mají být v písemné formě v ASCII.
Pokud záhlaví je správná Ap. v BL odpovědi s "[0810C9]"
Údaje cames po 0x7b
Tento formát se zdá být odlišný od Intel hex formátu.

Zedman.
Lze jste něco takového v RS232
Tomorrow I wil být můj domov a mohli nainstalovat hdd zkontrolovat logy a uvidíme, jestli můžu být jakékoliv pomoci.
Zpět na začátek
Zedman



Založen: 13 říjen 2003
Příspěvky: 294
Pomohl: 2


Post 05. duben 2006 12:17 Re: Project nahradit CY7C64613 v ICD2
Štítky: mplab protokol icd2 icd2.dll icd2w2k.sys mplbcomm.dll

Jsem přilepená s USB věc. A já jsem smutná.

Nemám opravdu vědět, co dělat dál. Strávil jsem hodně času na ladění icd2.dll.

Problém je: Nedaří se mi poslat ani jeden byte zpět do MPLAB.

vám vysvětlím, co jsem našel až teď, i když nikdo opravdu zajímá (jen chcete chytit hotových věcí). (S výjimkou: Albert, Kripton, rkodaira, silvio a lidi v této vlákno)

Takže MPLAB komunikuje s ICD2 tímto způsobem:

[MPLAB -> ICD2.dll -> MPLBCOMM.dll -> icd2w2k.sys ->] --- [ICD2 zařízení]

Pokud jste zvolili typ připojení USB to požádá přístroj deskriptor z ICD2 a kontrol pro verzi produktu slovo, pokud je to 0x0003, než je to Cypress ICD2 založena, pokud je to 0x0010, než je to 4550 založena jedna. Je-li zjištěno, 0x0010, než je napsáno, co jsem byl vyslán před tímto OS v ICD2 musí být modernizovány. Je zajímavé, že v případě, že verze (0100) v souboru z OS.bin je upraven tak, aby FFFF, než je tento krok vynechává a kontroly zavadece verzi. Zde jsem měl na opravu ICD2.dll na to zkuste zkontrolovat, zda se soubor BL.bin verzi taky, je to, že i hardcoded je to nastaveno na FFFF je zvyklý snažit upgrade, to je důvod, proč jsem to patched (set hardcoded FFFF do nižší), takže teď říká, co jsem taky mentoined před: o bl verze je příliš starý, ale nemůže být aktualizován, přičemž je to účinné.

Dobře. Udělal jsem malý pořady ze vzorku zavadec, se správným deskriptorů a snaží se komunikovat s MPLAB, aby dešifrování protokolu a emulovat BL v novém 4550 ICD2.
ICD2 že Kripton využívá (cypřišovým verzi) obsahuje 7 / a parametry, ale v souladu s protokoly, které používá pouze pro EP1 IN / OUT a EP2 pro IN. (OUT znamená, PC-> Device)
Zdá se, že ji pošle usb specifických příkazů a dat přes EP1, a zpět na EP1, a posílá bytes readed z ICD2 je přes 877 samostatných koncový bod EP2 palců

Když MPLAB snaží poslat tého OS.bin na upgrade FW os vydá getUSBdescriptor volání jádra ovladač, a posílá obsahoval 0x12 bajtů dlouhý příkaz pomocí DeviceIoControl příkaz. I odladěný, že dorazí úspěšně do 4550.
MPLAB než vydá GetStatus hovor, a zdá se, ze hovor parametrů že očekává 0x08 bajtů dat zpět.
Nastavit můj pufru s 8 byty a nastavit vlastnictví na SIE. Ale to, že nikdy odeąle 8 byte zpět (není v USBMon). Jen čeká.
Existuje mnoho věcí.
Možná jsem to st špatného nastavení 4550, ale jsem ji s jinou progs a to funguje, můžete poslat zpět bytů.
Vím, že se host musí posílat a ve velení nechat přístroj zaslat co chce.
Ale když jsem odladěný MBLBCOMM, viděl jsem, že DeviceIoControl velení selhalo!
I tought že možná některé zpravodajské byla postavena v. Sys souboru a kapky paketu, protože je to špatný obsah, ale myslím, že by měla být vyšší úroveň úkol.
Když jsem si doma budu kontrolovat GetLastError hodnoty.


Každý, kdo nemá ponětí, jak mohu zjistit, jestli byl v paketu rozeslaly, nebo jak se mohu vykonávat?
Zpět na začátek
Kripton2035



Založen: 19. července 2001
Příspěvky: 482
Pomohl: 15
Poloha: Earth


Post 05. duben 2006 16:59 Projekt nahradit CY7C64613 v ICD2

je možné, měli byste připojit 877 k PSP port je 4550 vidět to, co přichází přes 877 a program se s zavadece jsme? může být bytes jste čeká pocházejí z EP2 a tak 877?

chcete mi poslat další log soubor přesný stav? na cestě je to určitě budete potřebovat rokaida přihlašte se svými 4550 icd2 ..

PS: Já nemám zájem v tomto projektu .. Úsměv Jsem jen zvědavý! Již mám usb icd2! Úsměv
Zpět na začátek
Zedman



Založen: 13 říjen 2003
Příspěvky: 294
Pomohl: 2


Post 05. duben 2006 20:08 Projekt nahradit CY7C64613 v ICD2

Díky Kripton,

Já vám oznámíme, když potřebujete více výpisu Úsměv , Je to trochu složitější, než jen prochází bytů do 877 a zpět, má protokol obal na ni.
Co jste říkal bylo velmi užitečné, ale rkodeira zvyklý sacrify své zbrusu nové ICD2 ... Úsměv Pokud by, než s výpisem ze je to aktualizace OS procesu by definovat protokol dobře ...
Zpět na začátek
Kripton2035



Založen: 19. července 2001
Příspěvky: 482
Pomohl: 15
Poloha: Earth


Post 05. duben 2006 22:09 Projekt nahradit CY7C64613 v ICD2

I dont think i on potřebuje sacrify své icd2! pouze některé skládky se usbmon, jako já .. doufejme, že můj icd2 se stále pracuje!
Zpět na začátek
albert22



Založen: 20 červenec 2004
Příspěvky: 95
Pomohl: 3


Post 05. duben 2006 22:16 Re: Project nahradit CY7C64613 v ICD2
Štítky: icd2 nahrát hex příkaz

Nemohu nainstalovat HHD monitoru vidět špalky, protože jsem jen w98 doma.
Můžeš export s výpisem z OS ke stažení. Txt, pro mě?
-------
Jak se CY vynuluje 877?
Je signálu (pin 43) se základnou Q1, jehož kolektor je MCLR. Ale tohle je na konektor nazývá PROG. I nyní si uvědomujeme, že tento signál by měl jít do 877 taky.
Měli bychom vědět, které potřebují USB příkaz vynuluje 877. Může být, že je na jednom z kontrolních body?
I dont vědět, jaká je funkce tohoto PROG konektor. ale extra body mohou být v souvislosti s jeho.
----------
Jedním z OS nahraje do ICD2 se zdá být: ICD01020405.hex jsem se snažil disassemby, ale nemůžu se dostat do disassembler nahradit hex adres s názvem registrů. To bude mít více času na to, jak to funguje.
Zajímavým faktem je, že kód začíná na 0x0010. Nezapomeňte, že BL volání této adrese se spustit příkaz.

V BL verzi hlásí mplab je 01.01.01.00 To je docela dobře s BL příkaz, který odpoví 01,01,01,03
---------
Neexistuje žádný DPot (MCP41xxxx) v brazilských ICD. Jak nastavit VPP?
Většina z klony mají pevnou VPP. Má to znamená, že brazilská ICD je jen nízké náklady a není klon ICD2 nového? I dont think mikročipovými že šel za fixní VPP. Pokud existuje jiný způsob ovládání VPP, jiné než by bylo potřeba DPot firmware změny v ICD OS. Starý OS nebude fungovat na nový. To může být příčinou, že tato knihovna je zkontrolovat verzi.
Zpět na začátek
Zedman



Založen: 13 říjen 2003
Příspěvky: 294
Pomohl: 2


Post 05. duben 2006 22:32 Projekt nahradit CY7C64613 v ICD2
Štítky: mplab protokol icd2 icd2w2k.sys icd2w2k download 4550 zavadec zapsat icd2w2k.sys ke stažení ke stažení icd2w2k

Nemyslím, že bychom měli řešit něco ohledně okruhu nebo protokolu nebo spojení mezi 877 a 4550 dosud. Myslím, že vše, co potřebujete, je psáno v 4550 koše dodávané s MPLAB.
Měli bychom napsat zavadece kompatibilní s icd2w2k.sys dostat OS.bin stáhli, a potom můžeme scracth naší hlavy jak 877 je připojen.

Přidáno po 5 minutách:

V ICD2br používá jiný typ čipu, který generuje VPP. Rkodaira mentoined, podívejte se na místa dříve.
Zpět na začátek
silvio



Založen: 31. prosince 2001
Příspěvky: 800
Pomohl: 90


Post 06 dubna 2006 2:36 Re: Project nahradit CY7C64613 v 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... Neutrální
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