Regler | Nya inlägg | ämne RSS | Sök | Registrera | Logga in

Projekt för att ersätta CY7C64613 i ICD2


Gå till sida Föregående 1, 2, 3, 4 ... 59, 60, 61 Nästa
Hoppa till sida:

Post new topic Reply to topic EDAboard.com Forum Index -> mikrokontrollers -> Projekt för att ersätta CY7C64613 i ICD2
Arabiska version Bulgariska version Katalanska version Tjeckiska version Danska version Tyska version Grekiska version Engelsk version Spanska version Finsk version Franska version Hindi version Kroatiska version Indonesiska version Italienska version Hebreiska version Japanska version Koreanska version Litauiska version Lettiska version Nederländska version Norska version Polska version Portugisiska version Rumänska version Ryska version Slovakiska version Slovenska version Serbisk version Svenska versionen Tagalog version Ukrainska version Vietnamesiska version Kinesiska version
Författare Meddelande
Kripton2035



Anställd: 19 juli 2001
Inlägg: 480
Hjälpt: 15
Ort: Earth


Post 03 april 2006 8:28 Re: Projekt för att ersätta CY7C64613 i ICD2

predrage skrev:
Mina vänner jag inte lyckas med planeringen ICD2_4550_BOOT_0180.BIN till 4550. I'v
försökte öppna bin-filen med winpic 800 programvaran men det misslyckades. I tryed för att öppna den med alternativet "alla filer" under "filtyper" eftersom det inte finns något direkt stöd för bin-filer. ICprog ha som stöd (för att öppna bin filer), men kan inte programmera 4550. I själva verket finns det ingen 4550 i enhetens listan. Vad ska jag göra härnäst? Några förslag? Jag är bara en nybörjare men jag har goda vilja att hjälpa till.
Ledsen för min dåliga engelska.


byta namn på. BIN till. HEX och winpic kommer att öppna den!
ibland en massa filer. BIN i verkligheten är Intel. hex!
att vara säker på att öppna filen med notepad, om den innehåller rader som börjar med ":" byt namn till. hex och öppna den med winpic .. om det är skräp, så en bin2hex måste användas för att öppna den.
Tillbaka till toppen
narccizzo



Anställd: 20 januari 2006
Inlägg: 173
Hjälpt: 4
Ort: PATZCUARO, Michoacán, MEXIKO


Post 03 april 2006 9:42 Re: Projekt för att ersätta CY7C64613 i ICD2

Dessa är de två filer bin omvandlas till hex har jag öppnat bin-filer med
IC-PROG programvara sedan jag spara filerna i hex-format, om du tar en titt på dessa filer kan du se en läsbar string "Microchip Tecnology ICD2 USB Device icd2 usb" i adressen 0x0ee7 för boot.hex fil och samma sträng i 0x0b8e för
os.hex fil, jag dont har en disassembler att undersöka mer i detalj här filer, men något säger mig att dessa två filer är allt vi behöver.

BR
Narccizzo


Ledsen, men du måste logga in för att kunna se denna anslutningskrav

Tillbaka till toppen
Jay.slovak



Anställd: 23 mars 2006
Inlägg: 11


Post 03 april 2006 11:17 Re: Projekt för att ersätta CY7C64613 i ICD2

narccizzo skrev:
Dessa är de två filer bin omvandlas till hex har jag öppnat bin-filer med
IC-PROG programvara sedan jag spara filerna i hex-format, om du tar en titt på dessa filer kan du se en läsbar string "Microchip Tecnology ICD2 USB Device icd2 usb" i adressen 0x0ee7 för boot.hex fil och samma sträng i 0x0b8e för
os.hex fil, jag dont har en disassembler att undersöka mer i detalj här filer, men något säger mig att dessa två filer är allt vi behöver.

BR
Narccizzo


Är du säker på att du har konverterat filerna korrekt? Om jag importera dem till MPLAB, koden är inte meningsfullt, allt det är bara att gå igenom programmet minne och gör NOPs. Inget användbart som händer i både uppstart och OS HEXs. Även config bitar är olika i de båda filerna!
Tillbaka till toppen
Zedman



Anställd: 13 oktober 2003
Inlägg: 294
Hjälpt: 2


Post 03 april 2006 11:19 Projekt för att ersätta CY7C64613 i ICD2

Albert,

kärnan föraren (s) förväntar sig, det Cypress kommer att ansluta på en annan vid / pid när firt ansluten, och efter loader sys nerladdningar det är FW den kommer igen som en annan vid / pid så andra sys samtalen till det. Vi måste genomföra endast den andra en.
Iam @ work så jag kan inte göra någonting här väntar hårda tänka Rolling Eyes ...
Tillbaka till toppen
silvio



Anställd: 31 december 2001
Inlägg: 800
Hjälpt: 90


Post 03 april 2006 11:31 Re: Projekt för att ersätta CY7C64613 i ICD2
taggar: mplab protokoll icd2 Cypress disassembler disassembler Cypress

Hej Zedman,

it's a must to understand what's under cover. Beträffande CY hex fil det är inte bara en fråga om god disassembler som vet cypress chip, men läsning av 436 sidor EZ-USB FX TechRefManual det är ett måste för att förstå vad som finns under luckan.
Och jag tror inte du har tid för detta. Men om du inte är bekant med 8051 opcodes, analysera koden kommer att ta tid. (Jag vet att du familar med PIC sådana)
with appropiate values from CY7C64613 registers 0x7800-0x7FFF but you'll definitely end up turning the pages of TechRefManual looking for definitions. Jag kan ersätta alla förekomsten av MOV DPTR, # LXXXX med lämpliga värden från CY7C64613 register 0x7800-0x7FFF men du kommer definitivt att hamna vrida sidor TechRefManual söker definitioner.
Förutom att det skulle vissa hur svårt tilldela bitar namn som anges eller tydligt i programmet, så länge de inte är mappad i SFR rymden (som slutar på 0 eller 8).
with MOV DPTR, #EP0CS but it's difficult to say SETB HSNAK due to the above reasons. Det är lätt att ersätta MOV DPTR, # L7FB4 med MOV DPTR, # EP0CS men det är svårt att säga SETB HSNAK på grund av ovanstående skäl.

and EP0STAL L which are affected in the bellow code at 0x03E2. Låt oss ta exemplet bitar HSNAK och EP0STAL L som berörs i nedanstående kod på 0x03E2.
Kod:

L03E2: LCALL L0FBE
JNC L03EE
MOV DPTR, # L7FB4
MOVX A @ DPTR
ORL A # 01H, någon form av SETB EP0STALL
MOVX @ DPTR, A
L03EE: MOV DPTR, # L7FB4
MOVX A @ DPTR
ORL A # 02h; något slags SETB HSNAK
MOVX @ DPTR, A
RET

L0FBE: SETB C
RET


Ta till exempel (CP_1.asm) koden rader som börjar med offset 0x0100 (en subrutin anropas från 0x05FA), den första koden linje används immediatelly nedan vektor avbryta tabellen
På RAM 0x7FE9 hittar du 2:a byte av 8 bytes USB SETUP paketdata (se sidan 215 table9-1), vilket innebär bRequest området (se tabell 9-2).


Kod:

L0100: MOV DPTR, # L7FE9
MOVX A @ DPTR
JNZ L0109
LJMP L029B, om bRequest = GetStatus hoppa till 0x029B
L0109: DEC A
JNZ L010F
LJMP L0317, om bRequest = Rensa Feature, hoppa till 0x0317
L010F: ADD A, # 0FEh
JNZ L0116
LJMP L038E, om bRequest = Set Feature, hoppa till 0x038E
L0116: ADD A, # 0FBh
JNZ L011D
LJMP L0295, om bRequest = Få Konfiguration hoppa till 0x0295
L011D: DEC A
JNZ L0123
LJMP L028F, om bRequest = Set Konfiguration hoppa till 0x028F
L0123: DEC A
JNZ L0129
LJMP L0283, om bRequest = Få Interface, hoppa till 0x0283
L0129: DEC A
JNZ L012F
LJMP L0289, om bRequest = Set Interface, hoppa till 0x0289
L012F: ADD A # 05h
JZ L0136
LJMP L03E2, om bRequest = inget av ovanstående, då bitar HSNAK
och EP0STALL av EP0CS kontroll & status register och
; sedan RET på 0x05FD
;
L0136: LCALL L0F7A, om bRequest = Få deskriptor, LCALL 0x0F7A där
JC L013E, carry bit är satt som standard, så hoppa till 0x013E
LJMP L03EE, om ens 0x0F7A transportera skulle vara 0 som standard, som bit HSNAK
; av EP0CS kontroll & status register och RET på 0x05FD
;
L013E: MOV DPTR, # L7FEB; här eftersom bRequest var en Get deskriptor
MOVX A @ DPTR; därmed kontrollera WValueH gäller USB SETUP paketkopplade
ADD A, # 0FEh
JZ L015F, om wValueH var 0x02 hoppa till 0x015F
DEC A
JZ L0190, om wValueH var 0x03 hoppa till 0x0190
ADD A, # 02h
JZ L0150, om wValueH var 0x01 hoppa till 0x0150
LJMP L0279, om wValueh är annorlunda antingen 0x01 eller 0x02 eller 0x03 sedan
; bitar HSNAK och EP0STALL av EP0CS registrera och RET på 0x05FD
;
L0150: MOV A, 0Ch; här eftersom wValueH var 0x01, så belastningen SUDPTR globala USB register
MOV DPTR, # L7FD4, med värdet 0x0C0D, ställ sedan in lite HSNAK av EP0CS och RET på 0x05FD
MOVX @ DPTR, A
MOV A, 0Dh
MOV DPTR, # L7FD5
MOVX @ DPTR, A
LJMP L03EE
L015F: MOV DPTR, # L7FEA, titta nu på wValueL området USB SETUP paketkopplade
;
;
;
;
, och så vidare ...................


port2: Microchip MPLAB ICD2 Fw client Eller detta uppslagstabell i offset 0x0622 som matchar Kripton2035 port2: Microchip MPLAB ICD2 Fw klient


Kod:

Tabell 5-9. USB standardenhet deskriptor

RAM Värde Offset Fält Beskrivning

0622 0x12 0 bLength Längd denna deskriptor = 18 bytes
0623 0x01 1 bDescriptorType deskriptor Typ = Anordning
0624 0x00 2 bcdUSB (L) USB Specification Version 1.10 (L)
0625 0x01 3 bcdUSB (H) USB Specification Version 1.10 (H)
0626 0xFF 4 bDeviceClass Device klass (FF är leverantörsneutrala Särskilda)
0627 0xFF 5 bDeviceSubClass Anordning underklass (FF är leverantörsneutrala Särskilda)
0628 0xFF 6 bDeviceProtocol Anordning protokoll (FF är leverantörsneutrala Särskilda)
0629 0x40 7 bMaxPacketSize0 maximala paketstorleken för 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) Produkt-ID (L) ICD2 = 8001H
062D 0x80 11 idProduct (H) Produkt-ID (H)
062E 0x03 12 bcdDevice (L) Anordning Releasedatum Antal (BCD, L)
062F 0x00 13 bcdDevice (H) Anordning Release Antal (BCD, H)
0630 0x00 14 iManufacturer Tillverkare Index String = Ingen
0631 0x00 15 iProduct Produktindex String = Ingen
0632 0x00 16 iSerialNumber Serienummer Index String = Ingen
0633 0x01 17 bNumConfigurations Antal Konfigurationer i detta interface = 1

Tabell 5-10. USB Standardkonfigurationen deskriptor

RAM Värde Offset Fält Beskrivning

0634 0x09 0 bLength Längd denna deskriptor = 9 bytes
0635 0x02 1 bDescriptorType deskriptor Typ = Konfiguration
0636 0x74 2 wTotalLength (L) Total längd (L) Inklusive Interface och Endpoint Deskriptorer = 116
0637 0x00 3 wTotalLength (H) Total längd (H)
0638 0x01 4 bNumInterfaces antal gränssnitt i detta Konfiguration
0639 0x01 5 bConfigurationValue Konfiguration värde som Set_Configuration Begär att välja Konfiguration
063A 0x00 6 iConfiguration Index String beskriver denna Konfiguration = Ingen
063B 0x80 7 bmAttributes Attribut - Bus-Powered, nr Wakeup
063C 0x4B 8 MaxPower Maximal effekt - 150 mA

Tabell 5-11. USB Standard Interface 0, Alternate Ställa 0 deskriptor

RAM Värde Offset Fält Beskrivning

063D 0x09 0 bLength längd gränssnittet deskriptor
063E 0x04 1 bDescriptorType deskriptor Typ = Interface
063F 0x00 2 bInterfaceNumber Zero-baserade Index denna Interface = 0
0640 0x00 3 bAlternateSetting Alternate Ställa Value = 0
0641 0x0E 4 bNumEndpoints Antal endpoint i denna Interface (Ej Counting EPO) = 14
0642 0xFF 5 bInterfaceClass Interface tCLASS = Vendor Särskilda
0643 0xFF 6 bInterfaceSubClass Interface underklass = Vendor Särskilda
0644 0xFF 7 bInterfaceProtocol Interface protokollet = Vendor Särskilda
0645 0x00 8 iInterface Index till String deskriptor för detta interface = Ingen

Tabell 5-14. Standard Interface 0, Alternate Inställning 1, Bulk Endpoint Deskriptorer

RAM Värde Offset Fält Beskrivning

0646 0x07 0 bLength längd denna endpoint deskriptor
0647 0x05 1 bDescriptor Typ deskriptor Type = Endpoint
0648 0x01 2 bEndpointAddress Endpoint Direction (1 ligger i) och Adress = OUT1
0649 0x02 3 bmAttributes XFR Typ = BULK
064A 0x40 4 wMaxPacketSize (L) Max Packet Size = 64 Bytes
064B 0x00 5 wMaxPacketSize (H) maximala paketstorleken - Hög
064C 0x01 6 bInterval Undersökningar Intervalltiden i millisekunder

064D 0x07 0 bLength längd denna endpoint deskriptor
064E 0x05 1 bDescriptor Typ deskriptor Type = Endpoint
064F 0x02 2 bEndpointAddress Endpoint Direction (1 ligger i) och Adress = OUT2
0650 0x02 3 bmAttributes XFR Typ = BULK
0651 0x40 4 wMaxPacketSize (L) Max Packet Size = 64 Bytes
0652 0x00 5 wMaxPacketSize (H) maximala paketstorleken - Hög
0653 0x01 6 bInterval Undersökningar Intervalltiden i millisekunder

0654 0x07 0 bLength längd denna endpoint deskriptor
0655 0x05 1 bDescriptor Typ deskriptor Type = Endpoint
0656 0x03 2 bEndpointAddress Endpoint Direction (1 ligger i) och adress = OUT3
0657 0x02 3 bmAttributes XFR Typ = BULK
0658 0x40 4 wMaxPacketSize (L) Max Packet Size = 64 Bytes
0659 0x00 5 wMaxPacketSize (H) maximala paketstorleken - Hög
065A 0x01 6 bInterval Undersökningar Intervalltiden i millisekunder

065B 0x07 0 bLength längd denna endpoint deskriptor
065C 0x05 1 bDescriptor Typ deskriptor Type = Endpoint
065D 0x04 2 bEndpointAddress Endpoint Direction (1 ligger i) och adress = OUT4
065E 0x02 3 bmAttributes XFR Typ = BULK
065F 0x40 4 wMaxPacketSize (L) Max Packet Size = 64 Bytes
0660 0x00 5 wMaxPacketSize (H) maximala paketstorleken - Hög
0661 0x01 6 bInterval Undersökningar Intervalltiden i millisekunder

0662 0x07 0 bLength längd denna endpoint deskriptor
0663 0x05 1 bDescriptor Typ deskriptor Type = Endpoint
0664 0x05 2 bEndpointAddress Endpoint Direction (1 ligger i) och adress = OUT5
0665 0x02 3 bmAttributes XFR Typ = BULK
0666 0x40 4 wMaxPacketSize (L) Max Packet Size = 64 Bytes
0667 0x00 5 wMaxPacketSize (H) maximala paketstorleken - Hög
0668 0x01 6 bInterval Undersökningar Intervalltiden i millisekunder

0669 0x07 0 bLength längd denna endpoint deskriptor
066A 0x05 1 bDescriptor Typ deskriptor Type = Endpoint
066B 0x06 2 bEndpointAddress Endpoint Direction (1 ligger i) och adress = OUT6
066C 0x02 3 bmAttributes XFR Typ = BULK
066D 0x40 4 wMaxPacketSize (L) Max Packet Size = 64 Bytes
066E 0x00 5 wMaxPacketSize (H) maximala paketstorleken - Hög
066F 0x01 6 bInterval Undersökningar Intervalltiden i millisekunder

0670 0x07 0 bLength längd denna endpoint deskriptor
0671 0x05 1 bDescriptor Typ deskriptor Type = Endpoint
0672 0x07 2 bEndpointAddress Endpoint Direction (1 ligger i) och adress = OUT7
0673 0x02 3 bmAttributes XFR Typ = BULK
0674 0x40 4 wMaxPacketSize (L) Max Packet Size = 64 Bytes
0675 0x00 5 wMaxPacketSize (H) maximala paketstorleken - Hög
0676 0x01 6 bInterval Undersökningar Intervalltiden i millisekunder

RAM Värde Offset Fält Beskrivning

0677 0x07 0 bLength längd denna endpoint deskriptor
0678 0x05 1 bDescriptor Typ deskriptor Type = Endpoint
0679 0x81 2 bEndpointAddress Endpoint Direction (1 ligger i) och Adress = IN1
067A 0x02 3 bmAttributes XFR Typ = BULK
067B 0x40 4 wMaxPacketSize (L) Max Packet Size = 64 Bytes
067C 0x00 5 wMaxPacketSize (H) maximala paketstorleken - Hög
067D 0x01 6 bInterval Undersökningar Intervalltiden i millisekunder

067E 0x07 0 bLength längd denna endpoint deskriptor
067F 0x05 1 bDescriptor Typ deskriptor Type = Endpoint
0680 0x82 2 bEndpointAddress Endpoint Direction (1 ligger i) och Adress = IN2
0681 0x02 3 bmAttributes XFR Typ = BULK
0682 0x40 4 wMaxPacketSize (L) Max Packet Size = 64 Bytes
0683 0x00 5 wMaxPacketSize (H) maximala paketstorleken - Hög
0684 0x01 6 bInterval Undersökningar Intervalltiden i millisekunder

0685 0x07 0 bLength längd denna endpoint deskriptor
0686 0x05 1 bDescriptor Typ deskriptor Type = Endpoint
0687 0x83 2 bEndpointAddress Endpoint Direction (1 ligger i) och Adress = IN3
0688 0x02 3 bmAttributes XFR Typ = BULK
0689 0x40 4 wMaxPacketSize (L) Max Packet Size = 64 Bytes
068A 0x00 5 wMaxPacketSize (H) maximala paketstorleken - Hög
068B 0x01 6 bInterval Undersökningar Intervalltiden i millisekunder

068C 0x07 0 bLength längd denna endpoint deskriptor
068D 0x05 1 bDescriptor Typ deskriptor Type = Endpoint
068E 0x84 2 bEndpointAddress Endpoint Direction (1 ligger i) och adress = IN4
068F 0x02 3 bmAttributes XFR Typ = BULK
0690 0x40 4 wMaxPacketSize (L) Max Packet Size = 64 Bytes
0691 0x00 5 wMaxPacketSize (H) maximala paketstorleken - Hög
0692 0x01 6 bInterval Undersökningar Intervalltiden i millisekunder

0693 0x07 0 bLength längd denna endpoint deskriptor
0694 0x05 1 bDescriptor Typ deskriptor Type = Endpoint
0695 0x85 2 bEndpointAddress Endpoint Direction (1 ligger i) och adress = IN5
0696 0x02 3 bmAttributes XFR Typ = BULK
0697 0x40 4 wMaxPacketSize (L) Max Packet Size = 64 Bytes
0698 0x00 5 wMaxPacketSize (H) maximala paketstorleken - Hög
0699 0x01 6 bInterval Undersökningar Intervalltiden i millisekunder

069A 0x07 0 bLength Längd för denna endpoint deskriptor
069B 0x05 1 bDescriptor Typ deskriptor Type = Endpoint
069C 0x86 2 bEndpointAddress Endpoint Direction (1 ligger i) och Adress = IN6
069D 0x02 3 bmAttributes XFR Typ = BULK
069E 0x40 4 wMaxPacketSize (L) Max Packet Size = 64 Bytes
069F 0x00 5 wMaxPacketSize (H) maximala paketstorleken - Hög
06A0 0x01 6 bInterval Undersökningar Intervalltiden i millisekunder

06A1 0x07 0 bLength längd denna endpoint deskriptor
06A2 0x05 1 bDescriptor Typ deskriptor Type = Endpoint
06A3 0x87 2 bEndpointAddress Endpoint Direction (1 ligger i) och Adress = IN7
06A4 0x02 3 bmAttributes XFR Typ = BULK
06A5 0x40 4 wMaxPacketSize (L) Max Packet Size = 64 Bytes
06A6 0x00 5 wMaxPacketSize (H) maximala paketstorleken - Hög
06A7 0x01 6 bInterval Undersökningar Intervalltiden i millisekunder

som sedan följdes av unicode form av noll slutade string
"Microchip Technology ICD2 USB Device"



Men om du får problem med 4550 bin, jag kan försöka hjälpa genom att lägga till kommentarer i CY asm filen.
Tillbaka till toppen
Zedman



Anställd: 13 oktober 2003
Inlägg: 294
Hjälpt: 2


Post 03 april 2006 17:10 Re: Projekt för att ersätta CY7C64613 i ICD2
taggar: icd2.dll

Hej Silvio,

tack för infos, länge sedan jag var tvungen att analysera en bin-fil som kommer från ett EPROM chip. Jag gjorde inte ens något bearbetningsföretaget typ eller krets. Men jag var tvungen att hitta hur man behandlar ett minneskort och det är uppgifter.
Jag antog att det är en 8051 typ av chip och försökt en hel del disassemblers och slutade med en 80C542 (jag skränande minns som en var det exakt) Jag kom på det från hamnen nummer och hur koden behandlar enskild hamn stift.
Men det tog 2 veckor dag och nattarbete Neutral för mig, mycket läsning / debugging / lärande.
Det är därför jag ville ha en monteringsföretag vad som är kapabel att göra de saker du nämnde i stället mig ... Very Happy
Tack igen Silvio.

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

Nu börjar tro på er alla, enligt bin-filer. Jag gjorde en forskning i ICD2 dll och fick reda på att det kräver GETUSBDESCRIPTOR och kontroller nummer i deskriptor och om det matchar nyare version ICD2 än jag skrev i min 4550: s deskriptor än det gör en send4550image ringa!
Och det finns beskrivningar i bin filer identisk med en Kripton upp.
En sak jag inte förstår är varför de levererat boot image?
Och varför ICD2.dll försöker ladda ner denna fil? Om jag kommer hem, jag ska försöka ställa in mina deskriptorer för att matcha en jag hittade i papperskorgen och kommer att försöka MPLAB på det.

Jag tror att vi närmar sig! Sval

Läggas till efter 46 minuter:

Och det finns en magisk sak i första btyes över uppstartsprocessen bin: MCHP (mikrochip?)
Jag sökte på det, om det senare (efter belastning) ersätter dessa med verkliga ingång GOTO eller st, men i ICD2.dll inte.

Läggas till efter 3 timmar 34 minuter:

Kolla här:

Jag gjorde vad jag sagt tidigare, bara ställa in versionsnumret till nyare man förväntar och MPLAB försöker sända OS! (Självklart min FW är inte en starthanterare)

Kod:

MPLAB ICD 2 Redo
Ansluta till MPLAB ICD 2
ICD0289: Det går inte att återskapa program ICD2 USB OS firmware.
ICD0021: Det går inte att ansluta med MPLAB ICD 2
MPLAB ICD 2 Redo


På något starthanteraren bör arbeta, jag ska försöka göra något på kvällen.
Tillbaka till toppen
narccizzo



Anställd: 20 januari 2006
Inlägg: 173
Hjälpt: 4
Ort: PATZCUARO, Michoacán, MEXIKO


Post 03 april 2006 18:43 Projekt för att ersätta CY7C64613 i ICD2

Hej JaySlovak
Nej, Im inte säker, jag bara öppnat bin och spara den i hex-format. Ledsen
Tillbaka till toppen
Jay.slovak



Anställd: 23 mars 2006
Inlägg: 11


Post 03 april 2006 20:45 Re: Projekt för att ersätta CY7C64613 i ICD2

narccizzo skrev:
Hej JaySlovak
Nej, Im inte säker, jag bara öppnat bin och spara den i hex-format. Ledsen


Japp, det är konstigt eftersom strängen är lättläst, precis koden ingenting Ledsen
Tillbaka till toppen
Zedman



Anställd: 13 oktober 2003
Inlägg: 294
Hjälpt: 2


Post 03 april 2006 22:25 Re: Projekt för att ersätta CY7C64613 i ICD2
taggar: icd2.dll

Goda nyheter efter 2 timmar för felsökning,

ICD2.dll inte använda båda bin-filer. OS-fil vill bli hämtade endast ICD2s med nya serienummer.
Men när du ändrar den version id i filnamnet för OS.bin till * _FFFF.bin än det börjar att se starthanteraren versionen se ut:

Kod:

Ansluta till MPLAB ICD 2
ICDWarn0062: USB Boot firmware i ICD2 är aktiv och kommunikation med ICD2. Denna firmware är föråldrad och bör uppdateras. Det kan inte uppdateras medan aktiv. Du kan dock fortsätta att fungera med det nuvarande boot firmware om du väljer att göra det. Vill du fortsätta?


Om jag trycker på JA här än försöker ansluta till ICD2 själva, och fryser (jag har bara 4550 installerat ännu).
Om jag trycker på NO än verkar det som den försöker att uppdatera den, men vi behöver här en bootloader så här, så detta meddelande visas:

Kod:

ICD0288: Det går inte att återskapa program ICD2 USB Boot firmware.
ICD0021: Det går inte att ansluta med MPLAB ICD 2
MPLAB ICD 2 Redo


Okej killar, tror tror tror Hur kan vi använda bin att få ett arbetstillstånd starthanteraren till 4550!

Läggas till efter 2 minuter:

Jag har också sammanställt provet starthanteraren med rätt VID / PID men fick samma resultat som med mina 4550.

Läggas till efter 16 minuter:

Det kan vara att vi inte kan få de första inledande första:) en del av starthanteraren som laddas första starthanterare som läser in oss ...

Läggas till efter 5 minuter:

Detta är den tid då rkodaira bör dumpa sin 4550 till 0-nivå starthanterare. (med en stor förhoppning om att inte skyddas ...)

Rkodaira Vi behöver dig Le
Tillbaka till toppen
albert22



Anställd: 20 juli 2004
Inlägg: 95
Hjälpt: 3


Post 03 april 2006 22:46 Re: Projekt för att ersätta CY7C64613 i ICD2

Jag har varit att analysera en utskrift som jag har med mig av BL010101. och hitta saker.
Det tycks acceptera 5 kommandon kommer antingen från PSP eller USART.
0x55 köra kod som börjar på 0x0010.
0x56 Ladda hex (här verkar ha mer subcommands)
0x5a skickar data 0x01 0x01 0x03 (version av BL????)
Två andra kommandon bara att slå på fel och Upptagen lysdioder och hänger i en inffinite loop.

Följande rutiner är relaterade till vad jag kallade "load hex" kommando:

I en annan rutin för BL skickar följande sträng 0x5b "0810C9", 0x5d
Andra skickar svar embeded i följande sträng 0x5b "0A000", U, 0x31, U, 0x5d. (där U verkar vara 0x31, 0x34, 0x36 och 0x37).

Jag gjorde så mycket tid att fortsätta med analysen. Jag varken såg USB övervakning som har postat eftersom Im vid en cyber. Men jag tror att dessa uppgifter ska vara förpackade i USB-kommunikation
Tillbaka till toppen
Zedman



Anställd: 13 oktober 2003
Inlägg: 294
Hjälpt: 2


Post 03 april 2006 23:30 Projekt för att ersätta CY7C64613 i ICD2

Albert,

Jag kollade den seriella comm kontra USB, USB använder en wrapper via seriell sak.
Det verkar som den använder EP1 för kontroll port (det är ut och in) och EP2 som data port, bara i (ICD-> pc).
Tillbaka till toppen
albert22



Anställd: 20 juli 2004
Inlägg: 95
Hjälpt: 3


Post 05 april 2006 6:39 Re: Projekt för att ersätta CY7C64613 i ICD2

Här är mina framsteg med BL
Det fanns inga sådana subcommands. Belastningen hex kommandot bara tar hex protokoll och skriver data till programmet minne 2 byte i taget. Det kontroller för olika fel inklusive rad adress. Ap. att undvika att trappa till BL programmet. Detta bekräftar att BL är alltid bosatt på 877.
De [0A000 ", U, 0x31, U]. (2: a U är den första U 1) Det är osannolikt att ses eftersom det är en felrapport. Fel: dåliga format kontrollsumma, dålig adressintervall och EEPROM skriva fel .
Den rutinmässiga väntar på 16 tecken som börjar med en 0x3c ('<') och avslutas med en 0x3e ('>'). denna 16 tecken rubrikinformation innehålla adress, längd och kontrollsumman för de uppgifter som skall skrivas i ASCII.
Om rubriken är korrekt Ap. den BL svar med "[0810C9]"
Uppgifterna cames efter en 0x7b
Detta format verkar vara olika från en Intel hex format.

Zedman.
Får du erkänt något sådant i RS232
I morgon wil vara mitt hem och kunna installera hdd att kontrollera loggarna och se om jag kan vara till någon hjälp.
Tillbaka till toppen
Zedman



Anställd: 13 oktober 2003
Inlägg: 294
Hjälpt: 2


Post 05 april 2006 12:17 Re: Projekt för att ersätta CY7C64613 i ICD2
taggar: mplab protokoll icd2 icd2.dll icd2w2k.sys mplbcomm.dll

Jag fastnade med denna USB sak. Och jag är ledsen.

Jag vet inte riktigt vad jag ska göra härnäst. Jag tillbringade mycket tid debugging den icd2.dll.

Problemet är: Jag kan inte skicka med ett byte tillbaka till MPLAB.

Jag ska förklara vad jag har hittat hittills, även om ingen egentligen är intresserade av (bara vill ta det färdiga sak). (Utom Albert, Kripton, rkodaira, Silvio och killarna i denna tråd)

Så MPLAB kommunicerar med ICD2 detta sätt:

[MPLAB -> ICD2.dll -> MPLBCOMM.dll -> icd2w2k.sys ->] --- [ICD2 enhet]

Om du väljer USB typ sammanhang kommer att be enheten deskriptor från ICD2 och kontroller för produkten version ordet, om det är 0x0003 än det är en Cypress bygger ICD2, om det är 0x0010 än det är ett 4550 grundat ett. Om 0x0010 hittat än säger vad jag har postat före OS i ICD2 måste uppvärderas. Det är intressant att om version (0100) i filnamnet för OS.bin ändras till FFFF än hoppar över detta steg och kontroller starthanteraren version. Här var jag tvungen att plåstret ICD2.dll att få det att försöka kontrollera BL.bin filens version också, det är hårdkodad att även det är inställt på FFFF det wont försöker uppgradera, det är därför jag lappat den (ange hårdkodad FFFF till lägre) så nu säger vad jag mentoined även före det bl versionen är för gammal, men det kan inte uppgraderas, medan det är aktivt.

Okej. Jag gjorde ett litet prog från provet starthanterare, med rätt deskriptorer och försöker kommunicera med MPLAB för att dekryptera protokollet och att emulera BL i den nya 4550 ICD2.
ICD2 att Kripton användningsområden (cypress version) innehåller 7 OUT / IN endpoints men enligt loggarna den använder bara EP1 för IN / UT och EP2 för IN. (UR betyder PC-> Enhetshanteraren)
Det verkar det sänder USB särskilda kommandon och data via EP1 ut och tillbaka på EP1 i och skickar bytes readed från ICD2 s 877 genom separata endpoint EP2 i.

När MPLAB försöker skicka e OS.bin att uppgradera FW os den utfärdar en getUSBdescriptor samtal till kärnan föraren, och sänder ut en 0x12 bytes lång kommando använder DeviceIOControl kommando. Jag debugged, det anländer framgång till 4550.
Than MPLAB frågor en GetStatus samtal, och det verkar från samtalet parametrar som man förväntar 0x08 bytes data tillbaka.
Jag in min buffert med 8 byte, och fastställa äganderätten till Sie. Men det aldrig skickar den 8 byte tillbaka (det visas inte i USBMon). Bara väntar.
Det kan vara många saker.
Kanske jag st fel med installationen av 4550, men jag försökte det med ett progs och det fungerar, kan skicka bytes tillbaka.
Jag vet värdlandet måste skicka och som befälhavare för att låta enheten sända vad den vill.
Men när jag debugged MBLBCOMM såg jag att DeviceIOControl misslyckades!
Jag trodde att kanske en del intelligens byggdes till. Sys fil och det droppar paketet eftersom det är fel innehåll, men jag tycker det ska vara en högre uppgift.
När jag kommer hem Jag ska kolla Getlasterror värde.


Alla som har någon aning om hur kan jag se om det fanns ett paket som skickas ut, eller hur kan jag fortsätta?
Tillbaka till toppen
Kripton2035



Anställd: 19 juli 2001
Inlägg: 480
Hjälpt: 15
Ort: Earth


Post 05 april 2006 16:59 Projekt för att ersätta CY7C64613 i ICD2

kan du ansluta en 877 till PSP port av 4550 för att se vad som kommer igenom, och programmera 877 med bootloader vi har? kan vara byte du väntar kommer från EP2 varför 877?

vill du att jag ska skicka en loggfil på en exakt skick? av hur det är att du behöver en rokaida log med sina 4550 icd2 ..

PS: jag är inte intresserad av att projektet .. Le Jag är bara nyfiken! Jag har redan en usb icd2! Le
Tillbaka till toppen
Zedman



Anställd: 13 oktober 2003
Inlägg: 294
Hjälpt: 2


Post 05 april 2006 20:08 Projekt för att ersätta CY7C64613 i ICD2

Tack Kripton,

Jag kommer att meddela dig när jag behöver mer dumpa Le , Det är lite mer komplicerat än bara passerar genom byte till 877 och tillbaka, har det ett protokoll täckblad på det.
Det du sa var mycket hjälpsamma, men rkodeira wont sacrify hans splitternya ICD2 ... Le Om han skulle, än med dumpfilen av det är OS uppdateringsprocessen skulle definiera protokollet väl ...
Tillbaka till toppen
Kripton2035



Anställd: 19 juli 2001
Inlägg: 480
Hjälpt: 15
Ort: Earth


Post 05 april 2006 22:09 Projekt för att ersätta CY7C64613 i ICD2

och jag dont tror att han behöver sacrify hans icd2! bara några tippar med usbmon som jag gjorde .. förhoppningsvis min icd2 fortfarande fungerar!
Tillbaka till toppen
albert22



Anställd: 20 juli 2004
Inlägg: 95
Hjälpt: 3


Post 05 april 2006 22:16 Re: Projekt för att ersätta CY7C64613 i ICD2
taggar: icd2 belastning hex kommandot

Jag kan inte installera HHD övervaka att se loggarna eftersom jag bara har w98 hemma.
Kan du exporterar en dump av OS ladda ner till en. Txt för mig?
-------
Hur CY återställer 877?
Det är en signal (pin 43) på grund av Q1 vars Collector är MCLR. Men detta går till en kontakt som kallas PROG. Jag nu inser att denna signal ska gå till 877 också.
Vi skulle behöva veta vilka USB-kommando återställer 877. Får man på en av kontrollen effektmått?
Jag vet inte vad som är funktionen av denna PROG kontakten. men extra effektmått kan vara relaterade till den.
----------
En av de OS lastade med den ICD2 verkar vara: ICD01020405.hex Jag har försökt att disassemby det men jag kan inte få disassembler att ersätta hex adress med namnet på registren. Det tar mer tid att fundera ut hur det fungerar.
Ett intressant faktum är att koden börjar vid 0x0010. Kom ihåg att BL samtal denna adress med köra kommandot.

Den BL version rapporterats av mplab är 01.01.01.00 detta går ganska bra med BL kommando som svar 01,01,01,03
---------
Det finns ingen DPot (MCP41xxxx) i den brasilianska ICD. Hur kan de ställa VPP?
De flesta av de kloner som har en fast VPP. Innebär detta att den brasilianska ICD är bara en låg kostnad klon och inte den nya ICD2? I dont tror att mikrochip gick för en bestämd VPP. Om det finns en annan metod för att kontrollera VPP, än DPot det skulle behöva firmware förändringar av ICD OS. Den gamla OS skulle inte fungera i det nya. Detta kan vara orsaken till att DLL kontrollerar versionen.
Tillbaka till toppen
Zedman



Anställd: 13 oktober 2003
Inlägg: 294
Hjälpt: 2


Post 05 april 2006 22:32 Projekt för att ersätta CY7C64613 i ICD2
taggar: mplab protokoll icd2 icd2w2k.sys icd2w2k hämta 4550 starthanteraren skriva icd2w2k.sys hämta hämta icd2w2k

Jag tror inte att vi bör ta itu med allt som har med den krets eller protokoll eller samband mellan 877 och 4550 ännu. Jag tror att allt vi behöver är skrivet i 4550 lådor levereras med MPLAB.
Vi borde skriva en starthanterare förenligt med icd2w2k.sys att få OS.bin hämtat, och efter att vi kan scracth våra huvuden hur 877 är ansluten.

Läggas till efter 5 minuter:

I ICD2br använder en annan typ av chip som genererar VPP. Rkodaira mentoined, se inlägg innan.
Tillbaka till toppen
silvio



Anställd: 31 december 2001
Inlägg: 800
Hjälpt: 90


Post 06 april 2006 2:36 Re: Projekt för att ersätta CY7C64613 i 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: 480
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