Säännöt | Recent posts | aihe RSS | Haku | Rekisteröidy | Kirjaudu

Hanke korvaa CY7C64613 on ICD2


Siirry sivulle Edellinen 1, 2, 3, 4 ... 59, 60, 61 Seuraava
Siirry sivulle:

Post new topic Reply to topic EDAboard.com Forum Index -> mikro -> Project korvata CY7C64613 on ICD2
Arabiankielinen toisinto Bulgaria versio Katalaani versio Tšekki versio Tanska versio Saksa versio Kreikankielinen toisinto Englanti versio Espanja versio Ruotsinkielinen versio Ranska versio Hindi versio Kroatia versio Indonesia versio Italian version Heprea versio Japanin versio Korealainen versio Liettua versio Latvia versio Hollanti versio Norja versio Puola versio Portugali versio Romania versio Venäjä versio Slovakian versio Sloveeni versio Serbia versio Ruotsinkielinen versio Tagalog versio Ukraina versio Vietnam versio Kiina versio
Laatija Viesti
Kripton2035



Liittynyt: 19 heinäkuu 2001
Posts: 492
Auttanut: 16
Paikkakunta: Maa


Post 03 huhtikuu 2006 8:28 Re: Hanke korvata CY7C64613 on ICD2

predrage wrote:
Ystäväni i ei onnistunut ohjelmointi ICD2_4550_BOOT_0180.BIN osaksi 4550. I'v
yritit avata bin tiedoston winpic 800 ohjelmistoja, mutta se epäonnistui. I tryed avata se vaihtoehto "kaikki tiedostot" kohdassa "tiedostotyypit", koska ei ole suoraa tukea bin tiedostoja. ICprog on, että tukea (avata bin tiedostoja), mutta ei voida ohjelmoida 4550. Itse asiassa ei ole 4550 laitteen luettelosta. Mitä minun pitäisi tehdä seuraavaksi? Mitään ehdotuksia? Olen aivan aloittelija, mutta olen hyvä tahto auttaa.
Sorry about my huono englanti.


nimetä. BIN on. HEX ja winpic avaa sitä!
joskus paljon tiedostoja. BIN todellisuudessa ovat Intel. hex!
olla varma, avaa tiedoston Muistiossa, jos se sisältää riveiltä joiden alussa on ":" ja sitten nimetä sen. hex ja avaa sen winpic .. jos se roskat, sitten bin2hex on käytettävä avaa se.
Palaa alkuun
View user's profile
narccizzo



Liittynyt: 20 tammikuu 2006
Posts: 173
Auttanut: 4
Paikka: Patzcuaro, Michoacan, MEKSIKO


Post 03 huhtikuu 2006 9:42 Re: Hanke korvata CY7C64613 on ICD2

Nämä ovat kaksi tiedostoa bin muunnetaan hex, olen avannut bin tiedostot, joiden
ic-prog ohjelmisto sitten i tallentaa tiedostot hex-muodossa, jos tutustua näiden tiedostojen näet luettavissa string "Microchip Tecnology ICD2 USB Device icd2 usb" ja osoite 0x0ee7 varten boot.hex tiedosto ja sama merkkijono että 0x0b8e varten
os.hex tiedosto, i dont on disassembler tutkimaan yksityiskohtaisemmin tämän tiedostot, mutta jokin sanoo minulle, että nämä kaksi tiedostoa, että me tarvitsemme.

BR
Narccizzo


Anteeksi, mutta sinun on kirjautumistunnuksen nähdäksesi tämän liitäntävaatimuksia

Palaa alkuun
View user's profile
Jay.slovak



Liittynyt: 23 maaliskuu 2006
Posts: 11


Post 03 huhtikuu 2006 11:17 Re: Hanke korvata CY7C64613 on ICD2

narccizzo wrote:
Nämä ovat kaksi tiedostoa bin muunnetaan hex, olen avannut bin tiedostot, joiden
ic-prog ohjelmisto sitten i tallentaa tiedostot hex-muodossa, jos tutustua näiden tiedostojen näet luettavissa string "Microchip Tecnology ICD2 USB Device icd2 usb" ja osoite 0x0ee7 varten boot.hex tiedosto ja sama merkkijono että 0x0b8e varten
os.hex tiedosto, i dont on disassembler tutkimaan yksityiskohtaisemmin tämän tiedostot, mutta jokin sanoo minulle, että nämä kaksi tiedostoa, että me tarvitsemme.

BR
Narccizzo


Oletko varma, että olet muuttanut tiedostoja oikein? Jos minun tuoda ne MPLAB, koodi ei ole järkeä, kaikki se on vain eletään Program muistia ja tekee NOPs. Mitään hyödyllistä tapahtuu sekä Boot ja OS HEXs. Jopa config bittiä ovat erilaisia molemmat tiedostot!
Palaa alkuun
View user's profile
Zedman



Liittynyt: 13 lokakuu 2003
Posts: 294
Auttanut: 2


Post 03 huhtikuu 2006 11:19 Project korvata CY7C64613 on ICD2

albert,

ytimen kuljettaja (t) odottavat, että sypressi muodostaa yhteyden johonkin muuhun vid / pid kun firt kytketty, ja sen jälkeen loader sys lataus on fw se uudelleen toisen vid / pid joten muut sys keskusteluissa siihen. Meidän on pantava täytäntöön vain toista.
IAM @ work joten en voi tehdä mitään täällä odottaa kovasti miettii Rolling Eyes ...
Palaa alkuun
View user's profile
Silvio



Liittynyt: 31 joulukuu 2001
Posts: 800
Auttanut: 90


Post 03 huhtikuu 2006 11:31 Re: Hanke korvata CY7C64613 on ICD2
tags: mplab pöytäkirja icd2 sypressi disassembler disassembler sypressi

Hi Zedman,

it's a must to understand what's under cover. Mitä CY hex-tiedosto ei ole pelkästään hyvä disassembler joka tuntee sypressi siru, mutta käsittelyyn 436 sivua EZ-USB FX TechRefManual it's a on ymmärtää, mitä alla.
Enkä usko olet aikaa. Mutta jos et ole perehtynyt 8051 opcodes, jäsennykseen koodi vie aikaa. (Tiedän, että olet familar kanssa PIC ones)
with appropiate values from CY7C64613 registers 0x7800-0x7FFF but you'll definitely end up turning the pages of TechRefManual looking for definitions. En voi korvata kaikki tapahtumisvuoden MOV DPTR, # LXXXX asianmukaiset arvot CY7C64613 rekisterit 0x7800-0x7FFF mutta sinun ehdottomasti lopulta kääntää sivuja TechRefManual HAKU määritelmiä.
Sen lisäksi, että jotkut kuinka vaikea määrittää bittiä nimiä, jotka on asetettu tai selvästi ohjelman niin kauan kuin ne eivät ole kartoitettu SFR tilaa (joka päättyy vuonna 0 tai 8).
with MOV DPTR, #EP0CS but it's difficult to say SETB HSNAK due to the above reasons. Se on helppo korvata MOV DPTR, # L7FB4 kanssa MOV DPTR, # EP0CS mutta on vaikea sanoa SETB HSNAK johtuu edellä mainituista syistä.

and EP0STAL L which are affected in the bellow code at 0x03E2. Let's ottaa esimerkiksi bittiä HSNAK ja EP0STAL L jotka vaikuttavat sen alapuolella tunnus 0x03E2.
Code:

L03E2: LCALL L0FBE
Jnc L03EE
MOV DPTR, # L7FB4
MOVX A, @ DPTR
ORL A, # 01h; jonkinlainen SETB EP0STALL
MOVX @ DPTR, A
L03EE: MOV DPTR, # L7FB4
MOVX A, @ DPTR
ORL A, # 02h; jonkinlainen SETB HSNAK
MOVX @ DPTR, A
RET

L0FBE: SETB C
RET


Otetaan esimerkiksi (CP_1.asm) koodi linjat alkaen offset 0x0100 (a subroutine kutsutut 0x05FA), ensimmäinen koodi linja käyttää immediatelly palje vektorin keskeyttää taulukko
Klo RAM 0x7FE9 löydät 2. tavu on 8 tavua USB SETUP pakettidataa (katso sivu 215 table9-1), mikä tarkoittaa bRequest alalla (ks. taulukko 9-2).


Code:

L0100: MOV DPTR, # L7FE9
MOVX A, @ DPTR
JNZ L0109
LJMP L029B jos bRequest = GetStatus siirtyä 0x029B
L0109: DEC A
JNZ L010F
LJMP L0317, jos bRequest = Vapaa Feature, siirtyä 0x0317
L010F: ADD A, # 0FEh
JNZ L0116
LJMP L038E, jos bRequest = Set Feature, siirtyä 0x038E
L0116: ADD A, # 0FBh
JNZ L011D
LJMP L0295, jos bRequest = Hae Configuration, siirtyä 0x0295
L011D: DEC A
JNZ L0123
LJMP L028F jos bRequest = Set Configuration, siirtyä 0x028F
L0123: DEC A
JNZ L0129
LJMP L0283, jos bRequest = Lataa Interface, siirtyä 0x0283
L0129: DEC A
JNZ L012F
LJMP L0289, jos bRequest = Aseta Interface, siirtyä 0x0289
L012F: ADD A, # 05h
JZ L0136
LJMP L03E2 jos bRequest = ei mitään edellä mainituista, määritä bittiä HSNAK
ja EP0STALL on EP0CS valvonta & tila rekisteriin ja
; sieltä RET klo 0x05FD
;
L0136: LCALL L0F7A jos bRequest = Lataa avainsana, LCALL 0x0F7A jossa
JC L013E; carry bit on asetettu oletusarvoisesti, joten siirtyä 0x013E
LJMP L03EE; jos 0x0F7A kuljettaa olisi 0 oletusarvoisesti, aseta bittinen HSNAK
; tehty EP0CS valvonta & tila rekisteriin ja RET klo 0x05FD
;
L013E: MOV DPTR, # L7FEB; täällä, koska bRequest oli Hanki Descriptor
MOVX A, @ DPTR, joten tarkista WValueH alalla USB SETUP packet
ADD A, # 0FEh
JZ L015F jos wValueH oli 0x02 siirtyä 0x015F
DEC A
JZ L0190, jos wValueH oli 0x03 siirtyä 0x0190
ADD A, # 02h
JZ L0150, jos wValueH oli 0x01 siirtyä 0x0150
LJMP L0279, jos wValueh on erilainen joko 0x01 tai 0x02 tai 0x03 määritä
; bittiä HSNAK ja EP0STALL on EP0CS rekisteriin ja RET klo 0x05FD
;
L0150: MOV A, 0Ch; täällä, koska wValueH oli 0x01, joten kuorman SUDPTR maailmanlaajuinen USB rekisteri
MOV DPTR, # L7FD4, joissa arvo 0x0C0D aseta sitten bittinen HSNAK on EP0CS ja RET klo 0x05FD
MOVX @ DPTR, A
MOV A, 0Dh
MOV DPTR, # L7FD5
MOVX @ DPTR, A
LJMP L03EE
L015F: MOV DPTR, # L7FEA; näyttää nyt wValueL alalla USB SETUP packet
;
;
;
;
ja niin edelleen ...................


port2: Microchip MPLAB ICD2 Fw client Tai tämän lookup taulukossa offset 0x0622, jotka vastaavat Kripton2035 port2: Microchip MPLAB ICD2 Fw asiakas


Code:

Taulukko 5-9. USB Default Device Descriptor

RAM Value Offset Kenttä Kuvaus

0622 0x12 0 bLength Pituus tämän avainsana = 18 tavua
0623 0x01 1 bDescriptorType Descriptor Type = Device
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 Class (FF on Vendor-erityisohjelma)
0627 0xFF 5 bDeviceSubClass Device Sub-luokka (FF on Vendor-erityisohjelma)
0628 0xFF 6 bDeviceProtocol Device Protocol (FF on Vendor-erityisohjelma)
0629 0x40 7 bMaxPacketSize0 paketin enimmäiskoko on EP0 = 64 tavua
062A 0xD8 8 idVendor (L) myyjätunnus (L) Microchip Technology = 04D8H
062B 0x04 9 idVendor (H) myyjätunnus (H)
062C 0x01 10 idProduct (L) Product ID (L) ICD2 = 8001H
062D 0x80 11 idProduct (H) Product ID (H)
062E 0x03 12 bcdDevice (L) Laitehallinta Release lukumäärä (BCD, L)
062F 0x00 13 bcdDevice (H) Laitehallinta Release lukumäärä (BCD, H)
0630 0x00 14 iManufacturer Valmistaja Hakemisto String = None
0631 0x00 15 iProduct Tuotehakemistoja String = None
0632 0x00 16 iSerialNumber Sarjanumero Hakemisto String = None
0633 0x01 17 bNumConfigurations lukumäärä Kokoonpanot tässä Interface = 1

Taulukko 5-10. USB oletuskokoonpanoon Descriptor

RAM Value Offset Kenttä Kuvaus

0634 0x09 0 bLength Pituus tämän avainsana = 9 tavua
0635 0x02 1 bDescriptorType Descriptor Type = Kokoonpanoasetukset
0636 0x74 2 wTotalLength (L) Kokonaispituus (L) Sisältää Interface ja päätepisteen Kuvaajat = 116
0637 0x00 3 wTotalLength (H) Kokonais pituus (H)
0638 0x01 4 bNumInterfaces lukumäärä Interfaces tässä Kokoonpanoasetukset
0639 0x01 5 bConfigurationValue Kokoonpanoasetukset arvo on Set_Configuration Pyyntö Valitse tämä Kokoonpanoasetukset
063A 0x00 6 iConfiguration Index of String kuvaaminen tämän Kokoonpano = None
063B 0x80 7 bmAttributes Attributes - Bussi-Powered, No herättämistä
063C 0x4B 8 MaxPower Suurin tehonkesto - 150 mA

Taulukko 5-11. USB Oletus Interface 0, Alternate Setting 0 Descriptor

RAM Value Offset Kenttä Kuvaus

063D 0x09 0 bLength pituus on Interface Descriptor
063E 0x04 1 bDescriptorType Descriptor Type = Interface
063F 0x00 2 bInterfaceNumber Zero-pohjainen Hakemisto tämän Interface = 0
0640 0x00 3 bAlternateSetting Alternate Setting Value = 0
0641 0x0E 4 bNumEndpoints lukumäärä päätepisteitä tässä Interface (Ei Counting EPO) = 14
0642 0xFF 5 bInterfaceClass Interface class = Vendor Specific
0643 0xFF 6 bInterfaceSubClass Interface Sub-class = Vendor Specific
0644 0xFF 7 bInterfaceProtocol Interface pöytäkirjan = Vendor Specific
0645 0x00 8 iInterface hakemisto String avainsana tämän Interface = None

Taulukko 5-14. Oletus Interface 0, Alternate Setting 1, Bulk päätetapahtuma Kuvaajat

RAM Value Offset Kenttä Kuvaus

0646 0x07 0 bLength Pituus tämän päätetapahtuma Descriptor
0647 0x05 1 bDescriptor Tyyppi Descriptor Type = päätetapahtuma
0648 0x01 2 bEndpointAddress päätetapahtuma Direction (1 on) ja osoite = Out1
0649 0x02 3 bmAttributes XFR Type = BULK
064A 0x40 4 wMaxPacketSize (L) Suurin Packet Size = 64 Bytes
064B 0x00 5 wMaxPacketSize (H) paketin enimmäiskoko - High
064C 0x01 6 bInterval Polling Interval millisekunteina

064D 0x07 0 bLength Pituus tämän päätetapahtuma Descriptor
064E 0x05 1 bDescriptor Tyyppi Descriptor Type = päätetapahtuma
064F 0x02 2 bEndpointAddress päätetapahtuma Direction (1 on) ja osoite = OUT2
0650 0x02 3 bmAttributes XFR Type = BULK
0651 0x40 4 wMaxPacketSize (L) Suurin Packet Size = 64 Bytes
0652 0x00 5 wMaxPacketSize (H) paketin enimmäiskoko - High
0653 0x01 6 bInterval Polling Interval millisekunteina

0654 0x07 0 bLength Pituus tämän päätetapahtuma Descriptor
0655 0x05 1 bDescriptor Tyyppi Descriptor Type = päätetapahtuma
0656 0x03 2 bEndpointAddress päätetapahtuma Direction (1 on) ja osoite = OUT3
0657 0x02 3 bmAttributes XFR Type = BULK
0658 0x40 4 wMaxPacketSize (L) Suurin Packet Size = 64 Bytes
0659 0x00 5 wMaxPacketSize (H) paketin enimmäiskoko - High
065A 0x01 6 bInterval Polling Interval millisekunteina

065B 0x07 0 bLength Pituus tämän päätetapahtuma Descriptor
065C 0x05 1 bDescriptor Tyyppi Descriptor Type = päätetapahtuma
065D 0x04 2 bEndpointAddress päätetapahtuma Direction (1 on) ja osoite = OUT4
065E 0x02 3 bmAttributes XFR Type = BULK
065F 0x40 4 wMaxPacketSize (L) Suurin Packet Size = 64 Bytes
0660 0x00 5 wMaxPacketSize (H) paketin enimmäiskoko - High
0661 0x01 6 bInterval Polling Interval millisekunteina

0662 0x07 0 bLength Pituus tämän päätetapahtuma Descriptor
0663 0x05 1 bDescriptor Tyyppi Descriptor Type = päätetapahtuma
0664 0x05 2 bEndpointAddress päätetapahtuma Direction (1 on) ja osoite = OUT5
0665 0x02 3 bmAttributes XFR Type = BULK
0666 0x40 4 wMaxPacketSize (L) Suurin Packet Size = 64 Bytes
0667 0x00 5 wMaxPacketSize (H) paketin enimmäiskoko - High
0668 0x01 6 bInterval Polling Interval millisekunteina

0669 0x07 0 bLength Pituus tämän päätetapahtuma Descriptor
066A 0x05 1 bDescriptor Tyyppi Descriptor Type = päätetapahtuma
066B 0x06 2 bEndpointAddress päätetapahtuma Direction (1 on) ja osoite = OUT6
066C 0x02 3 bmAttributes XFR Type = BULK
066D 0x40 4 wMaxPacketSize (L) Suurin Packet Size = 64 Bytes
066E 0x00 5 wMaxPacketSize (H) paketin enimmäiskoko - High
066F 0x01 6 bInterval Polling Interval millisekunteina

0670 0x07 0 bLength Pituus tämän päätetapahtuma Descriptor
0671 0x05 1 bDescriptor Tyyppi Descriptor Type = päätetapahtuma
0672 0x07 2 bEndpointAddress päätetapahtuma Direction (1 on) ja osoite = OUT7
0673 0x02 3 bmAttributes XFR Type = BULK
0674 0x40 4 wMaxPacketSize (L) Suurin Packet Size = 64 Bytes
0675 0x00 5 wMaxPacketSize (H) paketin enimmäiskoko - High
0676 0x01 6 bInterval Polling Interval millisekunteina

RAM Value Offset Kenttä Kuvaus

0677 0x07 0 bLength Pituus tämän päätetapahtuma Descriptor
0678 0x05 1 bDescriptor Tyyppi Descriptor Type = päätetapahtuma
0679 0x81 2 bEndpointAddress päätetapahtuma Direction (1 on) ja osoite = IN1
067A 0x02 3 bmAttributes XFR Type = BULK
067B 0x40 4 wMaxPacketSize (L) Suurin Packet Size = 64 Bytes
067C 0x00 5 wMaxPacketSize (H) paketin enimmäiskoko - High
067D 0x01 6 bInterval Polling Interval millisekunteina

067E 0x07 0 bLength Pituus tämän päätetapahtuma Descriptor
067F 0x05 1 bDescriptor Tyyppi Descriptor Type = päätetapahtuma
0680 0x82 2 bEndpointAddress päätetapahtuma Direction (1 on) ja osoite = IN2
0681 0x02 3 bmAttributes XFR Type = BULK
0682 0x40 4 wMaxPacketSize (L) Suurin Packet Size = 64 Bytes
0683 0x00 5 wMaxPacketSize (H) paketin enimmäiskoko - High
0684 0x01 6 bInterval Polling Interval millisekunteina

0685 0x07 0 bLength Pituus tämän päätetapahtuma Descriptor
0686 0x05 1 bDescriptor Tyyppi Descriptor Type = päätetapahtuma
0687 0x83 2 bEndpointAddress päätetapahtuma Direction (1 on) ja osoite = IN3
0688 0x02 3 bmAttributes XFR Type = BULK
0689 0x40 4 wMaxPacketSize (L) Suurin Packet Size = 64 Bytes
068A 0x00 5 wMaxPacketSize (H) paketin enimmäiskoko - High
068B 0x01 6 bInterval Polling Interval millisekunteina

068C 0x07 0 bLength Pituus tämän päätetapahtuma Descriptor
068D 0x05 1 bDescriptor Tyyppi Descriptor Type = päätetapahtuma
068E 0x84 2 bEndpointAddress päätetapahtuma Direction (1 on) ja osoite = IN4
068F 0x02 3 bmAttributes XFR Type = BULK
0690 0x40 4 wMaxPacketSize (L) Suurin Packet Size = 64 Bytes
0691 0x00 5 wMaxPacketSize (H) paketin enimmäiskoko - High
0692 0x01 6 bInterval Polling Interval millisekunteina

0693 0x07 0 bLength Pituus tämän päätetapahtuma Descriptor
0694 0x05 1 bDescriptor Tyyppi Descriptor Type = päätetapahtuma
0695 0x85 2 bEndpointAddress päätetapahtuma Direction (1 on) ja osoite = IN5
0696 0x02 3 bmAttributes XFR Type = BULK
0697 0x40 4 wMaxPacketSize (L) Suurin Packet Size = 64 Bytes
0698 0x00 5 wMaxPacketSize (H) paketin enimmäiskoko - High
0699 0x01 6 bInterval Polling Interval millisekunteina

069A 0x07 0 bLength Pituus tämän päätetapahtuma Descriptor
069B 0x05 1 bDescriptor Tyyppi Descriptor Type = päätetapahtuma
069C 0x86 2 bEndpointAddress päätetapahtuma Direction (1 on) ja osoite = IN6
069D 0x02 3 bmAttributes XFR Type = BULK
069E 0x40 4 wMaxPacketSize (L) Suurin Packet Size = 64 Bytes
069F 0x00 5 wMaxPacketSize (H) paketin enimmäiskoko - High
06A0 0x01 6 bInterval Polling Interval millisekunteina

06A1 0x07 0 bLength Pituus tämän päätetapahtuma Descriptor
06A2 0x05 1 bDescriptor Tyyppi Descriptor Type = päätetapahtuma
06A3 0x87 2 bEndpointAddress päätetapahtuma Direction (1 on) ja osoite = IN7
06A4 0x02 3 bmAttributes XFR Type = BULK
06A5 0x40 4 wMaxPacketSize (L) Suurin Packet Size = 64 Bytes
06A6 0x00 5 wMaxPacketSize (H) paketin enimmäiskoko - High
06A7 0x01 6 bInterval Polling Interval millisekunteina

jota sitten seuraa unicode muodossa nolla päättynyt string
"Microchip Technology ICD2 USB Device"



Kuitenkin jos saat kiinni 4550 bin, voin yrittää auttaa lisäämällä huomautuksia CY ASM-tiedosto.
Palaa alkuun
View user's profile
Zedman



Liittynyt: 13 lokakuu 2003
Posts: 294
Auttanut: 2


Post 03 huhtikuu 2006 17:10 Re: Hanke korvata CY7C64613 on ICD2
tags: icd2.dll

Hi Silvio,

Kiitos infos, kauan sitten minulla oli jäsentää Bin tiedosto peräisin EPROM siru. En edes ole jalostajan tyyppi eikä piiri. Mutta minun piti löytää miten se käsittelee muistikortille, ja sen tiedot.
Oletin, it's a 8051 luontoissuorituksina sirujen ja yritti paljon disassemblers, ja päätyi kanssa 80C542 (i cant muistaa, joista yksi oli se tarkalleen) Olen tajunnut sen pois porttien numerot ja miten koodi käsitellään yksittäisen sataman nastoja.
Mutta kesti 2 viikkoa päivä-ja yötyön Neutraali minulle paljon käsittelyssä / virheenjäljitykseen / oppiminen.
Siksi halusi kokoonpanijalle mitä pystyy tekemään asioita mainitsitte sijaan minua ... Very Happy
Kiitos jälleen Silvio.

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

IAM alkaa uskoa teitä kaikkia mukaan bin tiedostoja. Tein tutkimusta ICD2 dll ja todennut, että se vaatii GETUSBDESCRIPTOR ja tarkastukset numerot on avainsana, ja jos se vastaa uudempi versio ICD2 kuin olen allekirjoittanut minun 4550: n avainsana kuin se antaa send4550image soittaa!
Ja lisäksi on olemassa kuvaajat bin tiedostoja sama Kripton ladattu.
Yksi asia, en ymmärrä, että miksi ne toimitetaan käynnistyksen kuvan?
Ja miksi ICD2.dll yrittää ladata tämän tiedoston? Jos pääsen kotiin, I'll yrittää asettaa minun kuvaukset vastaamaan minun löytynyt bin ja yrittää MPLAB sitä.

Uskon, että olemme pääsemässä lähemmäs! Viileä

Lisätty jälkeen 46 minuuttia:

Ja on olemassa taikakeinoa asia ensimmäisen btyes on boot bin: MCHP (mikrosiru?)
Olen etsinyt sitä, jos se on myöhemmin (sen jälkeen, kun kuormitus) korvaa nämä todellisia saapumispisteet goto tai kpl, mutta on sen ICD2.dll ei.

Lisätty jälkeen 3 tuntia 34 minuuttia:

Katso tätä:

Tein mitä aiemmin sanoin, vain asettaa versionumero on uudempi se odottaa ja MPLAB yrittää lähettää OS! (Tietenkin minun fw ei ole käynnistyslatainta)

Code:

MPLAB ICD 2 Valmis
Liittäminen MPLAB ICD 2
ICD0289: Unable to re-ohjelma ICD2 USB OS firmware.
ICD0021: Unable yhteys MPLAB ICD 2
MPLAB ICD 2 Valmis


Jotenkin käynnistyslataimen pitäisi toimia, I'll yrittää tehdä jotain yöllä.
Palaa alkuun
View user's profile
narccizzo



Liittynyt: 20 tammikuu 2006
Posts: 173
Auttanut: 4
Paikka: Patzcuaro, Michoacan, MEKSIKO


Post 03 huhtikuu 2006 18:43 Project korvata CY7C64613 on ICD2

Hi JaySlovak
Ei, Im ole varma, minulla on vain avasi bin ja tallenna se hex muodossa. Surullinen
Palaa alkuun
View user's profile
Jay.slovak



Liittynyt: 23 maaliskuu 2006
Posts: 11


Post 03 huhtikuu 2006 20:45 Re: Hanke korvata CY7C64613 on ICD2

narccizzo wrote:
Hi JaySlovak
Ei, Im ole varma, minulla on vain avasi bin ja tallenna se hex muodossa. Surullinen


Jep, se on outoa, koska merkkijono on luettavissa, vain koodi ei Surullinen
Palaa alkuun
View user's profile
Zedman



Liittynyt: 13 lokakuu 2003
Posts: 294
Auttanut: 2


Post 03 huhtikuu 2006 22:25 Re: Hanke korvata CY7C64613 on ICD2
tags: icd2.dll

Hyviä uutisia jälkeen 2 tuntia debugging,

ICD2.dll ei käytä molempia bin tiedostoja. OS tiedoston haluaa olla ladattu vain ICD2s kanssa uuden tuotteen sarjanumero.
Mutta kun muuttaa versio id että tiedostonimi OS.bin tuotteeseen * _FFFF.bin kuin se alkaa tarkistaaksesi bootloader versio näyttää:

Code:

Liittäminen MPLAB ICD 2
ICDWarn0062: USB Boot firmware on ICD2 on aktiivinen ja viestinnän kanssa ICD2. Tämä laiteohjelmisto on out-of-päivästä ja sen olisi saatettava ajan tasalle. Se ei voi päivittää, kun taas aktiivinen. Voit kuitenkin jatkaa toimintaansa ja nykyiset boot firmware, jos haluat tehdä niin. Haluatko jatkaa?


Jos minä paina Kyllä täällä kuin se yrittää muodostaa yhteyden ICD2 itse ja jäätyy (olen vain 4550 asennettu vielä).
Jos minä painamalla NO kuin se vaikuttaa se yrittää päivittää, mutta meidän on tässä käynnistyslataimen näin, joten tämä sanoma tulee näyttöön:

Code:

ICD0288: Unable to re-ohjelma ICD2 USB Boot firmware.
ICD0021: Unable yhteys MPLAB ICD 2
MPLAB ICD 2 Valmis


Okei jätkät, mieti sitä mieltä, mieti, miten voimme käyttää tätä bin saada työpäivän käynnistyslataimen osaksi 4550!

Lisätty 2 minuutin kuluttua:

Olen myös laatinut näyte käynnistyslatain oikea VID / PID mutta sai samat tulokset kuin minun 4550.

Lisätty jälkeen 16 minuuttia:

Se voi olla, että emme voi saada alkuperäisen alkuperäisen alkuperäinen:) osa käynnistyslataimen joka kuormaa ensimmäistä käynnistyslataimen joka lataa os ...

Lisätty jälkeen 5 minuuttia:

Tämä on aika, kun rkodaira pitäisi upottaa hänen 4550 varten 0 tasolla käynnistyslataimen. (with a big toivoa, että ei ole suojattu ...)

Rkodaira Me tarvitsemme sinua Hymyillä
Palaa alkuun
View user's profile
albert22



Liittynyt: 20 heinäkuu 2004
Posts: 95
Auttanut: 3


Post 03 huhtikuu 2006 22:46 Re: Hanke korvata CY7C64613 on ICD2

Olen ollut analysoimasta tulosteen, että olen samaa mieltä, että BL010101. ja löytää joitakin asioita.
Vaikuttaa hyväksyä 5 komennot tulevat joko PSP tai USART.
0x55 Execute koodi alkaen 0x0010.
0x56 Lataa hex (tämä vaikuttaa enemmän subcommands)
0x5a lähettää tiedot 0x01 0x01 0x03 (versio on BL??)
Kaksi muuta komentoja vain päälle Virhe ja Varattu LEDien ja jumittuu joka inffinite silmukka.

Seuraavat rutiineja liittyvät mitä kutsutaan "kuorma hex" komento:

Toisessa rutiini on BL lähettää seuraava merkkijono 0x5b "0810C9", 0x5d
Muut lähettää vastauksia embeded osaksi seuraava merkkijono 0x5b "0A000", U, 0x31, U, 0x5d. (kun U näyttää olevan 0x31, 0x34, 0x36 ja 0x37).

I didnt ole paljon aikaa jatkaa analyysia. En ole nähnyt USB seuranta, jotka on lähetetty koska Im tietoverkkojen. Uskon kuitenkin, nämä tiedot olisi pakataan USB viestintä
Palaa alkuun
View user's profile
Zedman



Liittynyt: 13 lokakuu 2003
Posts: 294
Auttanut: 2


Post 03 huhtikuu 2006 23:30 Project korvata CY7C64613 on ICD2

albert,

Tarkistin sarjaportin comm vs. USB, USB käyttää kääreellä aallonpohjasta sarjaportin asia.
Vaikuttaa se käyttää Ep1 valvonta satamassa (it's Out ja IN) ja EP2 tietoja satamaan, vain IN (ICD-> kpl).
Palaa alkuun
View user's profile
albert22



Liittynyt: 20 heinäkuu 2004
Posts: 95
Auttanut: 3


Post 05 huhtikuu 2006 6:39 Re: Hanke korvata CY7C64613 on ICD2

Tässä on minun ennakkojen kanssa BL
Ei ollut tällaisia subcommands. Kuorman hex komento vain ottaa hex kirjaa ja kirjoittaa tiedot ohjelman muisti 2 tavua kerrallaan. Se etsii eri virheet myös eri osoite. Ap. välttää tehostamalla osaksi BL-ohjelmaan. Tämä osoittaa, että BL on allways kotipaikka on 877.
The [0A000 ", U, 0x31, U]. (2. U on ensimmäinen U 1) ei todennäköisesti ole nähnyt, koska se on virheraportti. Virheet kuuluvat: huono-muodossa, checksum, huono osoite valikoima ja EEPROM kirjoittaa virhe .
Rutiininomaista odottaa 16 merkkiä Lähtökohtanamme on 0x3c ('<') ja päättyy kanssa 0x3e ('>'). Tämän 16 merkkiä ylätunniste sisältää osoite, pituus ja tarkistussumma varten tiedot on kirjoitettu ASCII.
Jos otsikko on oikea Ap. että BL vastaa "[0810C9]"
Tiedot cames jälkeen 0x7b
Tämä muoto näyttää olevan erilainen kuin Intel hex-muodossa.

Zedman.
Voidaan te tunnustitte jotain tässä RS232
Huomenna olen wil olla kotini ja pystyy asentamaan hdd tarkistaaksesi lokit ja nähdä, jos voin olla mitään apua.
Palaa alkuun
View user's profile
Zedman



Liittynyt: 13 lokakuu 2003
Posts: 294
Auttanut: 2


Post 05 huhtikuu 2006 12:17 Re: Hanke korvata CY7C64613 on ICD2
tags: mplab pöytäkirja icd2 icd2.dll icd2w2k.sys mplbcomm.dll

Olen juuttunut tähän USB asia. Ja olen surullinen.

En todellakaan tiedä, mitä tehdä seuraavaksi. Olen viettänyt paljon aikaa virheenkorjaus on icd2.dll.

Ongelmana on: En voi lähettää jopa yhden tavun takaisin MPLAB.

I'll selittää mitä löysin tähän saakka, vaikka kukaan todella kiinnostunut (vain tartu päättynyt asia). (Paitsi: albert, Kripton, rkodaira Silvio ja kaverit tässä thread)

Joten, MPLAB viestii sen ICD2 tällä tavalla:

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

Jos valitset USB tyyppi yhteydessä se pyytää, että laite avainsana alkaen ICD2 ja valvonta tuotteen versio sana, jos se on 0x0003 kuin se on Cypress perustuu ICD2, jos se on 0x0010 kuin se on 4550 perustuu yksi. Jos 0x0010 löytyi kuin se sanoo, mitä olen ollut lähetetty ennen että OS on ICD2 on päivitetty. On mielenkiintoista, että jos versio (0100), että tiedostonimi on OS.bin on muutettu FFFF kuin se ohittaa tämän vaiheen ja tarkastukset käynnistyslataimen versio. Täällä oli laastari ICD2.dll saada se yrittää tarkistaa BL.bin tiedoston versio liikaa, se on kovakoodattu, että vaikka se on asetettu FFFF se tapana yrittää päivittää, siksi olen patched se (set kovakoodattu FFFF alentamiseksi), jotta nyt sanoo mitä mentoined liian ennen: bl versio on liian vanha, mutta sitä ei voida päivittää, kun se on aktiivinen.

Okei. Tein pienen prog pois otoksesta käynnistyslataimen, että oikea kuvaajia ja yrittävät kommunikoida MPLAB voidakseen purkaa pöytäkirjan ja emuloiminen BL vuonna uuden 4550 ICD2.
ICD2 että Kripton käyttää, (sypressi versio) vahvistetaan 7 OUT / IN päätepisteitä, mutta mukaan tukit se käyttää vain Ep1 for IN / OUT ja EP2 varten IN. (OUT tarkoittaa PC-> Device)
Vaikuttaa siltä, se lähettää usb erityisiä komentoja ja dataa Ep1 ulos ja takaisin Ep1, ja lähettää bytes readed alkaen ICD2 n 877 erillisten päätetapahtuma EP2 tuumaa

Kun MPLAB yrittää lähettää th OS.bin parantamisesta fw os se antaa getUSBdescriptor puhelun ytimen kuljettajan ja lähettää esitetään 0x12 bytes kauan komentoa käyttämällä DeviceIOControl komento. I debugged, se saapuu menestyksekkäästi ja 4550.
Than MPLAB antaa GetStatus puhelun, ja näyttää siltä, että puhelu parametrit, että se odottaa 0x08 tavua tiedot takaisin.
Otan minun puskurin kanssa 8 tavua ja aseta omistajuutta SIE. Mutta se ei koskaan lähettää että 8 byte taaksepäin (se ei näy USBMon). Vain odottaa.
Ei voi olla monia asioita.
Ehkä en st vikaa asennusohjelma 4550, mutta olen yrittänyt sen toisella progs ja se toimii, voi lähettää bytes takaisin.
Tiedän, että vastaanottavan on lähetettävä ja IN komento antaa laite lähettää mitä se haluaa.
Mutta kun olen debugged MBLBCOMM, olen nähnyt, että DeviceIOControl komento ei onnistunut!
I tought että ehkä joitakin älykkyys on rakennettu osaksi. Sys-tiedoston ja se tippaa paketin, koska se on väärä sisältö, mutta luulen, että se olisi korkeamman tason tehtävä.
Kun pääsen kotiin I'll tarkistaaksesi Getlasterror arvosta.


Jokainen on mitään käsitystä siitä, miten voin nähdä jos oli Packet lähetetään, tai miten voin jatkaa?
Palaa alkuun
View user's profile
Kripton2035



Liittynyt: 19 heinäkuu 2001
Posts: 492
Auttanut: 16
Paikkakunta: Maa


Post 05 huhtikuu 2006 16:59 Project korvata CY7C64613 on ICD2

voi olla sinun pitäisi liittää 877 ja PSP satamassa tapahtuneen 4550, mitä on tulossa läpi, ja ohjelmoida 877 kanssa käynnistyslataimen meillä on? voi olla bytes olet odottaa kotoisin EP2 joten 877?

Haluatko lähettää toiseen lokitiedosto tarkka kunnossa? sen mukaan, miten se on varma, että tarvitset rokaida log hänen 4550 icd2 ..

PS: En ole kiinnostunut siitä, että hankkeiden .. Hymyillä Olen vain utelias! Minulla on jo usb icd2! Hymyillä
Palaa alkuun
View user's profile
Zedman



Liittynyt: 13 lokakuu 2003
Posts: 294
Auttanut: 2


Post 05 huhtikuu 2006 20:08 Project korvata CY7C64613 on ICD2

Kiitos Kripton,

I ilmoitamme sinulle, kun tarvitset lisää kaatopaikka Hymyillä , Se on hieman monimutkaisempi kuin vain kulkee tavua 877 ja takaisin, se on pöytäkirjan käärelehti sitä.
Mitä sanoitte, oli erittäin hyödyllinen, mutta rkodeira tapana sacrify hänen upouusi ICD2 ... Hymyillä Jos hän olisi kuin kaatopaikalle on se OS päivitysprosessi määritellään protokolla hyvin ...
Palaa alkuun
View user's profile
Kripton2035



Liittynyt: 19 heinäkuu 2001
Posts: 492
Auttanut: 16
Paikkakunta: Maa


Post 05 huhtikuu 2006 22:09 Project korvata CY7C64613 on ICD2

hyvin I dont usko, että hän on sacrify hänen icd2! vain joitakin kaatopaikkoja kanssa usbmon kuten tein .. toivottavasti minun icd2 on edelleen!
Palaa alkuun
View user's profile
albert22



Liittynyt: 20 heinäkuu 2004
Posts: 95
Auttanut: 3


Post 05 huhtikuu 2006 22:16 Re: Hanke korvata CY7C64613 on ICD2
tags: icd2 kuorma hex komento

En pysty asentamaan HHD seurata nähdä lokit, koska minulla on vain w98 kotona.
Voitko viedä kaatopaikalle, että OS lataus on. Txt, minulle?
-------
Miten CY nollaa 877?
On signaali (nasta 43) on sijaintipaikkakunnasta Q1 joiden Collector on MCLR. Mutta tämä menee liitintenhallinnan kutsutaan PROG. Olen nyt ymmärrettävä, että tämä signaali olisi siirtyäksesi 877 liikaa.
Meidän pitäisi tietää, mikä USB-komento palauttaa 877. Voidaan se on yksi valvontaa päätepisteitä?
I dont tiedä, mitä on tehtävä tämän PROG liitin. mutta extra päätepisteitä voi liittyä siihen.
----------
Yksi OS ladattu, että ICD2 näyttää olevan: ICD01020405.hex olen yrittänyt disassemby, mutta en voi saada disassembler korvata hex-osoitteista, joiden nimi on rekistereistä. Se vie enemmän aikaa selvittää, miten se toimii.
Mielenkiintoinen seikka on se, että koodi alkaa 0x0010. Muista, että BL vaatii tämän osoitteen ja suorita komento.

The BL versio ilmoittamat mplab on 01.01.01.00 tämä menee melko hyvin yhteen BL-komennon, jossa vastataan 01,01,01,03
---------
Ei ole DPot (MCP41xxxx) kun Brasilian ICD. Miten he Vpp?
Suurin osa klooneja on kiinteä Vpp. Onko tämä tarkoittaa sitä, että Brasilian ICD on vain edullisesti klooni eikä uusia ICD2? I dont ajatella, että mikrosiru lähti kiinteän VPP. Jos on olemassa toinen tapa valvoa VPP, muut kuin DPot se olisi firmware muutoksista, ICD OS. Vanhan OS ei työskennellä uuden. Tämä voi olla syynä, että DLL tarkastaa versiota.
Palaa alkuun
View user's profile
Zedman



Liittynyt: 13 lokakuu 2003
Posts: 294
Auttanut: 2


Post 05 huhtikuu 2006 22:32 Project korvata CY7C64613 on ICD2
tags: mplab pöytäkirja icd2 icd2w2k.sys icd2w2k ladata 4550 käynnistyslataimen kirjoittaa icd2w2k.sys Lataa icd2w2k

En usko, että meidän tulisi käsitellä mitään virtapiiriin tai pöytäkirjan tai yhteys 877 ja 4550 vielä. Uskon, että kaikki me tarvitsemme merkitään 4550 laareihin mukana MPLAB.
Meidän pitäisi kirjoittaa käynnistyslataimen sopusoinnussa icd2w2k.sys saada OS.bin ladattu, ja sen jälkeen voimme scracth päämme miten 877 on kytkettynä.

Lisätty jälkeen 5 minuuttia:

Vuonna ICD2br käyttää muunlaista siru joka synnyttää Vpp. Rkodaira mentoined, tarkista virkaa ennen.
Palaa alkuun
View user's profile
Silvio



Liittynyt: 31 joulukuu 2001
Posts: 800
Auttanut: 90


Post 06 huhtikuu 2006 2:36 Re: Hanke korvata CY7C64613 on ICD2
tags: icd2w2k.sys icd2w2k ladata 4550 käynnistyslataimen kirjoittaa icd2w2k.sys Lataa icd2w2k

Zedman wrote:

Meidän pitäisi kirjoittaa käynnistyslataimen sopusoinnussa icd2w2k.sys saada OS.bin ladataan.


Kyllä, tämä on tärkein syy, jonka olen sanonut, että dissasembling CY fw on hyödytöntä niin kauan kuin meillä on OS ja BL bin tiedosto tarjoaa mikrosiru. Voit aloittaa koodausstandardien tyhjästä varten 4550 ja simuloida CY fw olisi aikaa vievää ja arvottomia.
That's Arvostan zedman ponnisteluja.

Kuitenkin joskus en voi olla vain kysyä tyhmä kysymys: Jos BL ei voi päivittää, kun se on aktiivinen, mikä oli Microchip: n ICD2 suunnittelijat lähestymistapa päivittää? Samanaikaisesti ohjelmoija ennen juotto 4550? Tai ICSP joilla on puhdas bin kuva ladataan jälkeen boot estää hävitä?
Jos rkodaira tulevat huomaamaan, että CPB ja EBTRB bittiä on nollattu Crying tai Erittäin surullista Sitten miten OS.bin kuormitetaan 4550? Voin aloittaa pyydämme teitä: miksi he toimittanut boot kuvan?
Tai, kuten Jay.slovak sanoi "merkkijono on luettavissa, vain koodi ei mitään", koska se on salattu ja järkevää vain alkuperäinen käynnistyskoodi.
Joten, ainoa ratkaisu on simuloida 4550: n käynnistyslataimen ja saada peili bin kuva OS?
Palaa alkuun
View user's profile
albert22



Liittynyt: 20 heinäkuu 2004
Posts: 95
Auttanut: 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]
Palaa alkuun
View user's profile
Zedman



Joined: 13 Oct 2003
Posts: 294
Auttanut: 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.
Palaa alkuun
View user's profile
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.
Palaa alkuun
View user's profile
albert22



Joined: 20 Jul 2004
Posts: 95
Auttanut: 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.
Kiitos
Palaa alkuun
View user's profile
Kripton2035



Joined: 19 Jul 2001
Posts: 492
Helped: 16
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...
Palaa alkuun
View user's profile
Zedman



Joined: 13 Oct 2003
Posts: 294
Auttanut: 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.
Palaa alkuun
View user's profile
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 (?) .
Palaa alkuun
View user's profile
albert22



Joined: 20 Jul 2004
Posts: 95
Auttanut: 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,
Upea. I was just at the routines that handle connection with the ICD once the OS is loaded. Kiitos.
Palaa alkuun
View user's profile
Zedman



Joined: 13 Oct 2003
Posts: 294
Auttanut: 2


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

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 tai Erittäin surullista

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

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... Neutraali
Palaa alkuun
View user's profile
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.
Palaa alkuun
View user's profile
Zedman



Joined: 13 Oct 2003
Posts: 294
Auttanut: 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
Palaa alkuun
View user's profile
Post new topic Reply to topic EDAboard.com Forum Index -> Microcontrollers -> Project to replace CY7C64613 in the ICD2
Page 3 of 61 Kaikki ajat ovat GMT 2 Hours
Goto page Previous 1 , 2 , 3 , 4 ... 59 , 60 , 61 Next
Siirry sivulle:


Väärinkäyttö | | Administrator | | Moderaattorit | | Tue meitä | | sivukartta
topic RSS