| Автор | Съобщение |
|---|
Kripton2035
Присъединил се: 19 юли 2001 Публикации: 498 Подпомогнат: 17 Местоположение: Земята
| 03 април 2006 8:28 Re: Проект за замяна CY7C64613 в ICD2 | | |
|
| | predrage написа: | Моите приятели не успеем в програмирането ICD2_4550_BOOT_0180.BIN в 4550. I'v Опитах се да отворите файла с бен winpic 800 софтуер, но той не успя. Аз tryed да го отворите с опцията "всички файлове" в "типове файлове", защото не е налице пряка подкрепа за бен файлове. ICprog, че имат подкрепата (за да отворите бен файлове), но не може да програма 4550. В действителност не съществува 4550 в устройството списък. Какво трябва да направя след това? Всякакви предложения? Аз съм само за начинаещи, но имам добра воля да помогнем. Съжалявам за моя лош английски. |
преименувате. БИН да. Hex и winpic ще отвори го! понякога много файлове. БИН в действителност са Intel. шестнадесетичния! за да се уверите, отворете с Notepad файла, ако той съдържа линии, започващи с ":" Тогава да преименувате. шестнадесетичния и го отворете с winpic .. ако това е боклук, тогава bin2hex трябва да се използва за да го отворите. |
|
| Обратно към началото | |
 |
narccizzo
Присъединил се: 20 Януари 2006 Публикации: 173 Подпомогнат: 4 Местоположение: PATZCUARO, Мичоакан, Мексико
| 03 април 2006 9:42 Re: Проект за замяна CY7C64613 в ICD2 | | |
|
| Това са два файла бен превръща в магия, аз откри бен файлове с IC-PROG софтуер После запишете файлове в шестнадесетичен формат, ако можете да разгледате тези файлове може да видите четящо низ "микрочип Tecnology ICD2 USB устройство icd2 USB" в адресната 0x0ee7 за boot.hex файл и същи стринг в 0x0b8e за os.hex файл, I DONT имат disassembler да проучи по-подробно този файл, но нещо ми подсказва, че тези два файла са всички, които се нуждаем.
BR Narccizzo
|
|
| Обратно към началото | |
 |
Jay.slovak
Присъединил се: 23 Март 2006 Мнения: 11
| 03 април 2006 11:17 Re: Проект за замяна CY7C64613 в ICD2 | | |
|
| | narccizzo написа: | Това са два файла бен превръща в магия, аз откри бен файлове с IC-PROG софтуер После запишете файлове в шестнадесетичен формат, ако можете да разгледате тези файлове може да видите четящо низ "микрочип Tecnology ICD2 USB устройство icd2 USB" в адресната 0x0ee7 за boot.hex файл и същи стринг в 0x0b8e за os.hex файл, I DONT имат disassembler да проучи по-подробно този файл, но нещо ми подсказва, че тези два файла са всички, които се нуждаем.
BR Narccizzo |
Сигурни ли сте, че са конвертирани файлове правилно? Ако съм ги внесе в MPLAB, кодът не смисъл, всички го прави е просто става чрез Програмата памет и правиш NOPs. Нищо полезно се случва и в двете Обувка и OS HEXs. Дори конфиг бита са различни в двете файлове! |
|
| Обратно към началото | |
 |
Zedman
Присъединил се: 13 октомври 2003 Публикации: 294 Подпомогнат: 2
| 03 април 2006 11:19 Проект за замяна CY7C64613 в ICD2 | | |
|
| Албер,
Ядрото драйвер (и) очакваме, за елха, ще се свързват по различен VID / PID когато firt свързани, и след товарач системата за сваляне е препратено тя ще отново като друг VID / PID така друга система разговори с него. Ние трябва да се прилагат само във втория. Iam @ работата, така не мога да направя нищо тук очакват твърди мислиш ... |
|
| Обратно към началото | |
 |
Силвио
Присъединил се: 31 Декември 2001 Публикации: 800 Подпомогнат: 90
| 03 април 2006 11:31 Re: Проект за замяна CY7C64613 в ICD2 | | |
|
| Здравей Zedman,
it's a must to understand what's under cover. Що се отнася CY шестнадесетичния файл, това не е само въпрос на добра disassembler който знае елхови чип, но четене на 436 страници EZ-USB FX TechRefManual това е трябва да се разбере какво е под капака. И аз не вярвам, вие сте време за това. Въпреки това, ако не сте запознати с 8051 opcodes, синтактичния анализ на кода, ще отнеме известно време. (Знам, че сте familar с PIC такива) with appropiate values from CY7C64613 registers 0x7800-0x7FFF but you'll definitely end up turning the pages of TechRefManual looking for definitions. Аз може да замести всички появата на MOV DPTR, # LXXXX със съответните стойности от CY7C64613 регистри 0x7800-0x7FFF но вие определено ще свърши завъртане на страниците на TechRefManual търси дефиниции. Освен това тя би някои колко трудно да присвоите бита имена, които са установени или ясно в програмата, доколкото те не са картирани по SFR пространство (което завършва с 0 или 8). with MOV DPTR, #EP0CS but it's difficult to say SETB HSNAK due to the above reasons. Това е лесно да се замени MOV DPTR, # L7FB4 с MOV DPTR, # EP0CS но е трудно да се каже SETB HSNAK поради горепосочените причини.
and EP0STAL L which are affected in the bellow code at 0x03E2. Да вземем например бита HSNAK и EP0STAL L, които са засегнати в по-долу код 0x03E2. | Код: | L03E2: LCALL L0FBE JNC L03EE MOV DPTR, # L7FB4 MOVX A @ DPTR ORL A, # 01h; някаква SETB EP0STALL MOVX @ DPTR, A L03EE: MOV DPTR, # L7FB4 MOVX A @ DPTR ORL A, # 02h; някаква SETB HSNAK MOVX @ DPTR, A RET
L0FBE: SETB C RET
|
Вземете за пример (CP_1.asm) кода редове, започващи с офсетов 0x0100 (а subroutine наречен от 0x05FA), първа линия код, използвани immediatelly долу вектор прекъсне таблица На RAM 0x7FE9 можете да намерите 2рото байт на 8 байта USB SETUP пакети данни (виж стр. 215 table9-1), което означава, bRequest област (вж. таблицата 9/2).
| Код: | L0100: MOV DPTR, # L7FE9 MOVX A @ DPTR JNZ L0109 LJMP L029B; ако bRequest = GetStatus Направо към 0x029B L0109: Dec A JNZ L010F LJMP L0317; ако bRequest = Ясно игрален, скочи до 0x0317 L010F: ADD A, # 0FEh JNZ L0116 LJMP L038E; ако bRequest = Задаване игрален, скочи до 0x038E L0116: ADD A, # 0FBh JNZ L011D LJMP L0295; ако bRequest = Махни конфигурация, скочи до 0x0295 L011D: Dec A JNZ L0123 LJMP L028F; ако bRequest = Задаване конфигурация, скочи до 0x028F L0123: Dec A JNZ L0129 LJMP L0283; ако bRequest = Махни интерфейс, скочи до 0x0283 L0129: Dec A JNZ L012F LJMP L0289; ако bRequest = Настройка Интерфейс, скачай да 0x0289 L012F: ADD A, # 05h JZ L0136 LJMP L03E2; ако bRequest = нито един от по-горе, а след това определете бита HSNAK И EP0STALL на EP0CS контрол & статут на регистър и , после RET най 0x05FD ; L0136: LCALL L0F7A; ако bRequest = Махни Descriptor, LCALL 0x0F7A където JC L013E; носи късче е настроен по подразбиране, така че да скочи 0x013E LJMP L03EE; ако най 0x0F7A носи би е 0 по подразбиране, е малко HSNAK ; на EP0CS контрол & статут на регистър и RET най 0x05FD ; L013E: MOV DPTR, # L7FEB; тук, защото bRequest беше Махни Descriptor MOVX A @ DPTR така, проверете WValueH областта на USB SETUP пакети Добави, # 0FEh JZ L015F; ако wValueH бе 0x02 Направо към 0x015F DEC A JZ L0190; ако wValueH беше 0x03 Направо към 0x0190 Добави, # 02h JZ L0150; ако wValueH беше 0x01 Направо към 0x0150 LJMP L0279; wValueh ако е различен или 0x01 или 0x02 или 0x03 тогава набор ; бита HSNAK и EP0STALL на EP0CS регистър и RET най 0x05FD ; L0150: MOV А, 0Ch; тук, защото wValueH беше 0x01, за да заредите SUDPTR глобалната USB регистър MOV DPTR, # L7FD4; със стойност 0x0C0D, а след това е малко HSNAK на EP0CS и RET най 0x05FD MOVX @ DPTR, A MOV А, 0Dh MOV DPTR, # L7FD5 MOVX @ DPTR, A LJMP L03EE L015F: MOV DPTR, # L7FEA; изглежда сега най wValueL областта на USB SETUP пакети ; ; ; ; И така нататък ...................
|
port2: Microchip MPLAB ICD2 Fw client Или това търсене таблицата по офсетов 0x0622, които съвпадат с Kripton2035 port2: микрочип MPLAB ICD2 препратено клиента
| Код: | Таблица 5-9. USB устройство по подразбиране Descriptor
RAM Стойност Офсетов Област Описание
0622 0x12 0 bLength Дължина на този Descriptor = 18 байта 0623 0x01 1 bDescriptorType Descriptor Тип = Устройство 0624 0x00 2 bcdUSB (L) USB спецификация версия 1,10 (L) 0625 0x01 3 bcdUSB (H) USB спецификация версия 1,10 (H) 0626 0xFF 4 bDeviceClass Устройство клас (FF е доставчика-специфични) 0627 0xFF 5 bDeviceSubClass Устройство Под-клас (FF е доставчика-специфични) 0628 0xFF 6 bDeviceProtocol Устройство протокол (FF е доставчика-специфични) 0629 0x40 7 bMaxPacketSize0 Пакет Максимален размер за EP0 = 64 байта 062A 0xD8 8 idVendor (L) за доставчика ID (L) микрочип Технологии = 04D8H 062B 0x04 9 idVendor (H) за доставчика ID (H) 062C 0x01 10 idProduct (L) Идентификатор на продукта (L) ICD2 = 8001H 062D 0x80 11 idProduct (H) Идентификатор на продукта (H) 062E 0x03 12 bcdDevice (L) устройство на излизане номер (BCD, L) 062F 0x00 13 bcdDevice (H) устройство на излизане номер (BCD, H) 0630 0x00 14 iManufacturer производител Индекс стринга = Няма 0631 0x00 15 iProduct Продукт Индекс стринга = Няма 0632 0x00 16 iSerialNumber Сериен номер Индекс стринга = Няма 0633 0x01 17 bNumConfigurations Брой Конфигурации в този интерфейс = 1
Таблица 5-10. USB стандартната конфигурация Descriptor
RAM Стойност Офсетов Област Описание
0634 0x09 0 bLength Дължина на този Descriptor = 9 байта 0635 0x02 1 bDescriptorType Descriptor Тип = Конфигурация 0636 0x74 2 wTotalLength (L) Обща дължина (L) Включително интерфейс и Крайна цел дескриптори = 116 0637 0x00 3 wTotalLength (H) Обща дължина (H) 0638 0x01 4 bNumInterfaces Брой интерфейси при тази конфигурация 0639 0x01 5 bConfigurationValue конфигурация стойност, използвана от Set_Configuration Искане за да изберете тази конфигурация 063A 0x00 6 iConfiguration Индекс на стринга описва тази конфигурация = Няма 063B 0x80 7 bmAttributes Атрибути - автобус-Powered, № Wakeup 063C 0x4B 8 MaxPower Максимална мощност - 150 mA
Таблица 5-11. По подразбиране USB интерфейс 0, Алтернативен Настройване 0 Descriptor
RAM Стойност Офсетов Област Описание
063D 0x09 0 bLength Дължина на интерфейса Descriptor 063E 0x04 1 bDescriptorType Descriptor Тип = Интерфейс 063F 0x00 2 bInterfaceNumber Zero-базирани Индекс на този интерфейс = 0 0640 0x00 3 bAlternateSetting Алтернативен Настройване стойност = 0 0641 0x0E 4 bNumEndpoints Брой крайни точки в този интерфейс (без ЕПО) = 14 0642 0xFF 5 bInterfaceClass интерфейс клас = доставчика Специфични 0643 0xFF 6 bInterfaceSubClass интерфейс Под-класа = доставчика Специфични 0644 0xFF 7 bInterfaceProtocol интерфейс протокол = доставчика Специфични 0645 0x00 8 iInterface Индекс на стринга Descriptor за този интерфейс = Няма
Таблица 5-14. Основен интерфейс 0, Алтернативен Настройване 1, Залежали Крайна цел дескриптори
RAM Стойност Офсетов Област Описание
0646 0x07 0 bLength Дължина на този Крайна цел Descriptor 0647 0x05 1 bDescriptor Тип Descriptor Тип = Крайна цел 0648 0x01 2 bEndpointAddress Крайна цел посока (1 е) и адрес = OUT1 0649 0x02 3 bmAttributes XFR Тип = ОБЕМНИ 064A 0x40 4 wMaxPacketSize (L) Максимална Пакетна Размер = 64 Bytes 064B 0x00 5 wMaxPacketSize (H) Максимална Пакетна Размер - Високо 064C 0x01 6 bInterval Интервални избирателните секции в милисекунди
064D 0x07 0 bLength Дължина на този Крайна цел Descriptor 064E 0x05 1 bDescriptor Тип Descriptor Тип = Крайна цел 064F 0x02 2 bEndpointAddress Крайна цел посока (1 е) и адрес = OUT2 0650 0x02 3 bmAttributes XFR Тип = ОБЕМНИ 0651 0x40 4 wMaxPacketSize (L) Максимална Пакетна Размер = 64 Bytes 0652 0x00 5 wMaxPacketSize (H) Максимална Пакетна Размер - Високо 0653 0x01 6 bInterval избирателните секции Интервални в милисекунди
0654 0x07 0 bLength Дължина на този Крайна цел Descriptor 0655 0x05 1 bDescriptor Тип Descriptor Тип = Крайна цел 0656 0x03 2 bEndpointAddress Крайна цел посока (1 е) и адрес = OUT3 0657 0x02 3 bmAttributes XFR Тип = ОБЕМНИ 0658 0x40 4 wMaxPacketSize (L) Максимална Пакетна Размер = 64 Bytes 0659 0x00 5 wMaxPacketSize (H) Максимална Пакетна Размер - Високо 065A 0x01 6 bInterval Интервални избирателните секции в милисекунди
065B 0x07 0 bLength Дължина на този Крайна цел Descriptor 065C 0x05 1 bDescriptor Тип Descriptor Тип = Крайна цел 065D 0x04 2 bEndpointAddress Крайна цел посока (1 е) и адрес = OUT4 065E 0x02 3 bmAttributes XFR Тип = ОБЕМНИ 065F 0x40 4 wMaxPacketSize (L) Максимална Пакетна Размер = 64 Bytes 0660 0x00 5 wMaxPacketSize (H) Максимална Пакетна Размер - Високо 0661 0x01 6 bInterval избирателните секции Интервални в милисекунди
0662 0x07 0 bLength Дължина на този Крайна цел Descriptor 0663 0x05 1 bDescriptor Тип Descriptor Тип = Крайна цел 0664 0x05 2 bEndpointAddress Крайна цел посока (1 е) и адрес = OUT5 0665 0x02 3 bmAttributes XFR Тип = ОБЕМНИ 0666 0x40 4 wMaxPacketSize (L) Максимална Пакетна Размер = 64 Bytes 0667 0x00 5 wMaxPacketSize (H) Максимална Пакетна Размер - Високо 0668 0x01 6 bInterval избирателните секции Интервални в милисекунди
0669 0x07 0 bLength Дължина на този Крайна цел Descriptor 066A 0x05 1 bDescriptor Тип Descriptor Тип = Крайна цел 066B 0x06 2 bEndpointAddress Крайна цел посока (1 е) и адрес = OUT6 066C 0x02 3 bmAttributes XFR Тип = ОБЕМНИ 066D 0x40 4 wMaxPacketSize (L) Максимална Пакетна Размер = 64 Bytes 066E 0x00 5 wMaxPacketSize (H) Максимална Пакетна Размер - Високо 066F 0x01 6 bInterval Интервални избирателните секции в милисекунди
0670 0x07 0 bLength Дължина на този Крайна цел Descriptor 0671 0x05 1 bDescriptor Тип Descriptor Тип = Крайна цел 0672 0x07 2 bEndpointAddress Крайна цел посока (1 е) и адрес = OUT7 0673 0x02 3 bmAttributes XFR Тип = ОБЕМНИ 0674 0x40 4 wMaxPacketSize (L) Максимална Пакетна Размер = 64 Bytes 0675 0x00 5 wMaxPacketSize (H) Максимална Пакетна Размер - Високо 0676 0x01 6 bInterval избирателните секции Интервални в милисекунди
RAM Стойност Офсетов Област Описание
0677 0x07 0 bLength Дължина на този Крайна цел Descriptor 0678 0x05 1 bDescriptor Тип Descriptor Тип = Крайна цел 0679 0x81 2 bEndpointAddress Крайна цел посока (1 е) и адрес = IN1 067A 0x02 3 bmAttributes XFR Тип = ОБЕМНИ 067B 0x40 4 wMaxPacketSize (L) Максимална Пакетна Размер = 64 Bytes 067C 0x00 5 wMaxPacketSize (H) Максимална Пакетна Размер - Високо 067D 0x01 6 bInterval Интервални избирателните секции в милисекунди
067E 0x07 0 bLength Дължина на този Крайна цел Descriptor 067F 0x05 1 bDescriptor Тип Descriptor Тип = Крайна цел 0680 0x82 2 bEndpointAddress Крайна цел посока (1 е) и адрес = IN2 0681 0x02 3 bmAttributes XFR Тип = ОБЕМНИ 0682 0x40 4 wMaxPacketSize (L) Максимална Пакетна Размер = 64 Bytes 0683 0x00 5 wMaxPacketSize (H) Максимална Пакетна Размер - Високо 0684 0x01 6 bInterval избирателните секции Интервални в милисекунди
0685 0x07 0 bLength Дължина на този Крайна цел Descriptor 0686 0x05 1 bDescriptor Тип Descriptor Тип = Крайна цел 0687 0x83 2 bEndpointAddress Крайна цел посока (1 е) и адрес = IN3 0688 0x02 3 bmAttributes XFR Тип = ОБЕМНИ 0689 0x40 4 wMaxPacketSize (L) Максимална Пакетна Размер = 64 Bytes 068A 0x00 5 wMaxPacketSize (H) Максимална Пакетна Размер - Високо 068B 0x01 6 bInterval Интервални избирателните секции в милисекунди
068C 0x07 0 bLength Дължина на този Крайна цел Descriptor 068D 0x05 1 bDescriptor Тип Descriptor Тип = Крайна цел 068E 0x84 2 bEndpointAddress Крайна цел посока (1 е) и адрес = IN4 068F 0x02 3 bmAttributes XFR Тип = ОБЕМНИ 0690 0x40 4 wMaxPacketSize (L) Максимална Пакетна Размер = 64 Bytes 0691 0x00 5 wMaxPacketSize (H) Максимална Пакетна Размер - Високо 0692 0x01 6 bInterval избирателните секции Интервални в милисекунди
0693 0x07 0 bLength Дължина на този Крайна цел Descriptor 0694 0x05 1 bDescriptor Тип Descriptor Тип = Крайна цел 0695 0x85 2 bEndpointAddress Крайна цел посока (1 е) и адрес = IN5 0696 0x02 3 bmAttributes XFR Тип = ОБЕМНИ 0697 0x40 4 wMaxPacketSize (L) Максимална Пакетна Размер = 64 Bytes 0698 0x00 5 wMaxPacketSize (H) Максимална Пакетна Размер - Високо 0699 0x01 6 bInterval избирателните секции Интервални в милисекунди
069A 0x07 0 bLength Дължина на този Крайна цел Descriptor 069B 0x05 1 bDescriptor Тип Descriptor Тип = Крайна цел 069C 0x86 2 bEndpointAddress Крайна цел посока (1 е) и адрес = IN6 069D 0x02 3 bmAttributes XFR Тип = ОБЕМНИ 069E 0x40 4 wMaxPacketSize (L) Максимална Пакетна Размер = 64 Bytes 069F 0x00 5 wMaxPacketSize (H) Максимална Пакетна Размер - Високо 06A0 0x01 6 bInterval Интервални избирателните секции в милисекунди
06A1 0x07 0 bLength Дължина на този Крайна цел Descriptor 06A2 0x05 1 bDescriptor Тип Descriptor Тип = Крайна цел 06A3 0x87 2 bEndpointAddress Крайна цел посока (1 е) и адрес = IN7 06A4 0x02 3 bmAttributes XFR Тип = ОБЕМНИ 06A5 0x40 4 wMaxPacketSize (L) Максимална Пакетна Размер = 64 Bytes 06A6 0x00 5 wMaxPacketSize (H) Максимална Пакетна Размер - Високо 06A7 0x01 6 bInterval Интервални избирателните секции в милисекунди
което е последвано от Unicode формата на нула, приключваща на стринг "Микрочип Технологии ICD2 USB устройство"
|
Въпреки това, ако сте се мина с 4550 контейнера, мога да опитам да помогна с добавянето на коментари в CY asm файл. |
|
| Обратно към началото | |
 |
Zedman
Присъединил се: 13 октомври 2003 Публикации: 294 Подпомогнат: 2
| 03 април 2006 17:10 Re: Проект за замяна CY7C64613 в ICD2 | | |
|
| Здравей Силвио,
Благодаря за Infos, отдавна трябваше да се анализира една бен файл, идващи от EPROM чип. Не съм дори не преработвателят тип нито верига. Но аз трябваше да намеря как тя се занимава с карта с памет, и то на данни. Предполагам това е 8051 вида на чипа и опитах много disassemblers, и завърши с 80C542 (аз арго помня кой беше точно) Мисля, че от пристанището номера и кода как се занимава с отделните пристанищни пина. Но тя е 2 седмици ден и нощен труд за мен, много четене / грешки / обучение. Ето защо аз искам едно Асемблер какво е в състояние да вършат неща, които споменатите вместо мен ...  Благодаря отново Силвио.
-----------------------------
Iam започва да повярвам, че всичко, според бен файлове. Направих изследване в ICD2 DLL и е установено, че той призовава GETUSBDESCRIPTOR и проверки номера в descriptor и ако той съвпада по-нова версия ICD2 от мен, подписано в моя 4550 на descriptor отколкото прави send4550image обаждане! И също така има описания в бен файлове идентичен с този, Kripton качени. Едно нещо, което не разбират, че е защо те са снабдявали начално изображение? И защо ICD2.dll се опитва да свалите този файл? Ако се прибера, ще се опита да настрои моите дескриптори да съвпадне една Намерих в бен и ще се опита MPLAB по въпроса.
Мисля, че ние сме се приближавай! 
Добавени след 46 минути:
И там е магията нещо в първата btyes на багажника бен: MCHP (микрочип?) Аз сте търсили за нея, ако това е късно (след натоварване) замества тези с реални входна точка Гото или St, но в ICD2.dll не.
Добавен след 3 часа 34 минути:
Виж това:
Направих това, което казах и преди, просто е версията с по-нова MPLAB го очаква и се опитва да изпраща на ОС! (Разбира се моите препратено не е зареждане на ОС)
| Код: | MPLAB ICD 2 Готови Свързване с MPLAB ICD 2 ICD0289: Не може да се възстанови програма ICD2 USB OS фърмуер. ICD0021: Не може да се свърже с MPLAB ICD 2 MPLAB ICD 2 Готови
|
Някак зареждане на ОС следва да работи, ще се опита да направи нещо през нощта. |
|
| Обратно към началото | |
 |
narccizzo
Присъединил се: 20 Януари 2006 Публикации: 173 Подпомогнат: 4 Местоположение: PATZCUARO, Мичоакан, Мексико
| 03 април 2006 18:43 Проект за замяна CY7C64613 в ICD2 | | |
|
| Здравей JaySlovak Не, Im не сте сигурни, че само отвори бен и го запишете в шестнадесетичен формат. |
|
| Обратно към началото | |
 |
Jay.slovak
Присъединил се: 23 Март 2006 Мнения: 11
| 03 април 2006 20:45 Re: Проект за замяна CY7C64613 в ICD2 | | |
|
| | narccizzo написа: | Здравей JaySlovak Не, Im не сте сигурни, че само отвори бен и го запишете в шестнадесетичен формат.  |
Мда, това е странно, както стринга се чете, просто кода не прави нищо |
|
| Обратно към началото | |
 |
Zedman
Присъединил се: 13 октомври 2003 Публикации: 294 Подпомогнат: 2
| 03 април 2006 22:25 Re: Проект за замяна CY7C64613 в ICD2 | | |
|
| Добра новина след 2 часа за отстраняване на грешки,
ICD2.dll прави Използвайте и двете си на бен файлове. В OS файл иска да се изтегли само до ICD2s с нов продукт сериен номер. Но когато модифицирате версията ID в името на файла на OS.bin до * _FFFF.bin отколкото започва да провери bootloader версията поглед:
| Код: | Свързване с MPLAB ICD 2 ICDWarn0062: The USB Обувка фърмуера на ICD2 е активна и осигуряване на комуникации с ICD2. Този фърмуер е с изтекъл срок на годност и трябва да бъде актуализиран. Той не може да бъде актуализиран, като активен. Въпреки това, може да продължи да работи със сегашните обувка на фърмуера, ако решите да го направите. Искате ли да продължите?
|
Ако натиснете YES тук, отколкото се опитва да се свърже с ICD2 сами по себе си и замръзва (Имам само 4550 инсталирани още). Ако натиснете NO, отколкото изглежда, че се опитва да го актуализира, но ние NEED тук bootloader така, така че това се появява съобщение:
| Код: | ICD0288: Не може да се възстанови програма ICD2 USB Обувка фърмуер. ICD0021: Не може да се свърже с MPLAB ICD 2 MPLAB ICD 2 Готови
|
Добре момчета, мисля, мисля, мисля, как можем да го използват бен да получи работна bootloader в 4550!
Добавен след 2 минути:
Аз също съставила проба bootloader с правилното VID / PID но имам същите резултати, както с моята 4550.
Добавен след 16 минути:
Тя може да бъде, че ние не може да получи първоначалното начална начална:) част от bootloader, който зарежда първа bootloader, който зарежда на ...
Добавен след 5 минути:
Това е времето, когато rkodaira трябва дъмп си 4550 за 0 ниво bootloader. (с голяма надежда, че не е защитен ...)
Rkodaira Имаме нужда от теб |
|
| Обратно към началото | |
 |
albert22
Присъединил се: 20 юли 2004 година Мнения: 95 Подпомогнат: 3
| 03 април 2006 22:46 Re: Проект за замяна CY7C64613 в ICD2 | | |
|
| Имам били анализиране разпечатка, че съм с мен на BL010101. и да намерят някои неща. Изглежда, за да приемете 5 команди идват или от PSP или USART. 0x55 Извършвайте код, започвайки от 0x0010. 0x56 Заредете шестнадесетичния (това изглежда да има повече subcommands) 0x5a изпраща данни 0x01 0x01 0x03 (версия на BL????) Две други команди само включване на грешката и Заето светодиоди и увисва в inffinite електрическа верига.
Следните съчетания са свързани с това, което нарече "товар шестнадесетичния" команда:
В друг рутинни на BL изпраща следния стринг 0x5b, "0810C9", 0x5d Други изпраща отговори embeded в следните стрингове 0x5b, "0A000", U, 0x31, U, 0x5d. (U, където изглежда се 0x31, 0x34, 0x36 и 0x37).
АЗ didnt имат много време, за да продължим с анализа. Нито аз видях USB мониторинг, които са били публикувани, защото Im в кибернетичното пространство. Но мисля, че тези данни трябва да бъдат опаковани в USB комуникация |
|
| Обратно към началото | |
 |
Zedman
Присъединил се: 13 октомври 2003 Публикации: 294 Подпомогнат: 2
| 03 април 2006 23:30 Проект за замяна CY7C64613 в ICD2 | | |
|
| Албер,
Проверих серийния комитет спрямо USB, USB използва обвивка чрез серийния нещо. Изглежда, той използва EP1 за контрол порт (It's OUT и в) и EP2 като данните пристанището, само в (icd-> PC). |
|
| Обратно към началото | |
 |
albert22
Присъединил се: 20 юли 2004 година Мнения: 95 Подпомогнат: 3
| 05 април 2006 6:39 Re: Проект за замяна CY7C64613 в ICD2 | | |
|
| Тук са моите аванси с BL Не е имало такива subcommands. Натоварването на шестнадесетичния команда просто взема шестнадесетичния записи и пише данни на програмата памет 2 байта по един. Тя проверява за различни грешки, включително диапазон на адрес. Ап. за да се избегне засилването в BL програма. Това потвърждава, че е BL allways пребиваващ в 877. [На 0A000 ", U, 0x31, U]. (2 U е първата U 1), е малко вероятно да се види, защото то е грешка доклада. Грешки включват: лошо формат, checksum, лош адрес обхват и EEPROM пиша грешка . Рутинните чака 16 знака се започне с 0x3c ('<') и завършващ с 0x3e ('>'). това 16 знака заглавна съдържа адреса, дължината и checksum за данни, които да бъдат написани в ASCII. Ако заглавието е вярна Ап. на BL отговори с "[0810C9]" Данните cames след 0x7b Този формат е да бъде различен от Intel шестнадесетичния формат.
Zedman. Може би нещо като признава това в RS232 Утре ще бъде най-ми дом и можете да инсталирате HDD за проверка на регистрите и видя дали мога да бъда на всяка помощ. |
|
| Обратно към началото | |
 |
Zedman
Присъединил се: 13 октомври 2003 Публикации: 294 Подпомогнат: 2
| 05 април 2006 12:17 Re: Проект за замяна CY7C64613 в ICD2 | | |
|
| Аз съм остана с този USB нещо. И аз съм тъжен.
Аз наистина не знам какво да правя след това. Прекарах много време за отстраняване на грешки icd2.dll.
Проблемът е: Не мога да изпратя един байт обратно MPLAB.
Ще обясня какво имам открити до сега, макар, че никой наистина се интересуват от (просто искате да вземете крайния нещо). (С изключение на: Албърт, Kripton, rkodaira, Силвио и момчетата по тази тема)
Така че, MPLAB комуникира с ICD2 този начин:
[MPLAB -> ICD2.dll -> MPLBCOMM.dll -> icd2w2k.sys ->] --- [ICD2 устройство]
Ако изберете USB тип връзка, че ще поиска от устройството descriptor от ICD2 и проверки за продуктовата версия дума, ако това е 0x0003, отколкото това е елхови базирани ICD2, ако това е 0x0010, отколкото това е 4550 основава едно. Ако 0x0010 резултат от това, което казва, че съм бил публикуван преди тази на ОС в ICD2 трябва да бъде обновен. Това е интересно, че ако версията (0100) в името на файла на OS.bin е променено, за да FFFF отколкото Пропуснати тази стъпка и проверки на bootloader версия. Тук трябваше да пластир ICD2.dll, за да го опитате да проверите BL.bin файла версия също е hardcoded, че дори е настроено на FFFF тя навик се опитват да надстроите, този 'защо patched я (набор hardcoded FFFF до по-ниски), така сега казва какво mentoined твърде преди: в бл версия е прекалено стар, но той не може да бъде обновен, докато е активна.
Добре. Направих малка PROG от пробата bootloader, с правилни дескриптори и се опитват да общуват с MPLAB, за да разшифровате протокола и да се съревновават на BL в новата 4550 ICD2. ICD2 че Kripton употреби, (елхови версия) определя 7 OUT / в крайни точки, но според трупите я използва само за EP1 / изход и EP2 в. (Извън средствата PC-> Устройство) Изглежда, тя изпраща USB специфични команди и данни чрез EP1, и обратно по EP1, и изпраща байта readed от ICD2 на 877 чрез отделни крайна точка EP2 инча
Когато MPLAB опитва да изпрати OS.bin та да надстроите препратено на това издава getUSBdescriptor покана към ядрото водача, и изпраща една 0x12 байта дълго използвате командата DeviceIOControl команда. Аз debugged, тя пристига успешно до 4550. Than MPLAB издава GetStatus разговор, и то изглежда от разговора параметрите, които тя очаква 0x08 байтове данни обратно. Настроя моя буфер с 8 байта, и на собствеността на Sie. Но тя никога не изпраща че 8 байт обратно (тя не се появи в USBMon). Просто чакам. Там могат да бъдат много неща. Може би трябва да ви не е наред с настройката на 4550, но аз се опитах с друг progs и той работи, може да изпрати обратно байта. Знам домакин трябва да изпратите и по команда, за да споделите с устройството изпраща в това, което той иска. Но когато аз debugged MBLBCOMM, видях, че DeviceIOControl командване не успя! Мислех, че може би някои разузнаването е построен в. Системата файл и той падне на пакети, защото от нея има съдържание, но аз мисля, че трябва да бъде по-високо ниво на задачата. Когато се прибера в къщи ще провери Getlasterror стойност.
Всеки, който има някаква идея как мога да видя дали е имало в пакета изпратени, или как мога да се извършват? |
|
| Обратно към началото | |
 |
Kripton2035
Присъединил се: 19 юли 2001 Публикации: 498 Подпомогнат: 17 Местоположение: Земята
| 05 април 2006 16:59 Проект за замяна CY7C64613 в ICD2 | | |
|
| може би трябва да свържете 877 до PSP порта на 4550 да видите какво идва, както и програмата на 877 с bootloader имаме? може да бъде байта сте чакат идват от EP2, така и на 877?
искаш да ти изпратим друго лог файл на точното състояние? от начина, по който със сигурност имате нужда от rokaida влезте със своя 4550 icd2 ..
PS: Не съм се интересуват от този проект .. Аз съм само любопитна! Аз вече имат USB icd2! |
|
| Обратно към началото | |
 |
Zedman
Присъединил се: 13 октомври 2003 Публикации: 294 Подпомогнат: 2
| 05 април 2006 20:08 Проект за замяна CY7C64613 в ICD2 | | |
|
| Благодарение Kripton,
Аз ще ви уведоми, когато се нуждаете от повече дъмп , Това е малко по-сложна, отколкото просто да преминават през байта до 877 и обратно, тя е с протокол обвивка върху нея. Какво ти каза, беше много полезен, но rkodeira приучавам sacrify си чисто нов ICD2 ... Ако той би, отколкото с дъмп за това е OS обновяване процес ще определи протокол добре ... |
|
| Обратно към началото | |
 |
Kripton2035
Присъединил се: 19 юли 2001 Публикации: 498 Подпомогнат: 17 Местоположение: Земята
| 05 април 2006 22:09 Проект за замяна CY7C64613 в ICD2 | | |
|
| | DONT и аз мисля, че той трябва да sacrify си icd2! само някои изхвърлени с usbmon като мен .. icd2 се надяваме, че ми е все още работи! |
|
| Обратно към началото | |
 |
albert22
Присъединил се: 20 юли 2004 година Мнения: 95 Подпомогнат: 3
| 05 април 2006 22:16 Re: Проект за замяна CY7C64613 в ICD2 | | |
|
| Не мога да инсталирате HHD монитора да видите трупи, защото имам само w98 у дома. Можеш ли да изнася дъмп на ОС изтегляне на файл. TXT, за мен? ------- Как CY нулира на 877? Налице е сигнал (ПИН-43) на база на Q1, чиито Колектор е MCLR. Но това отива към конектора, наречено PROG. Сега осъзнавам, че този сигнал трябва да отида до 877 също. Ние ще трябва да се знае кои USB команда нулира на 877. Може би тя е в една от контролните параметри? Не знам каква е функцията на този PROG конектор. но допълнителните параметри могат да бъдат свързани с него. ---------- Една от ОС натоварени до ICD2 изглежда да бъде: ICD01020405.hex аз се опитах да disassemby нея, но не мога да получа disassembler да замени шестнадесетичния адреси с името на регистрите. Това ще отнеме повече време, за да разбера как тя работи. Интересен факт е, че кодът започва в 0x0010. Не забравяйте, че BL призовава този адрес с изпълнение на командата.
В BL версия докладвани от mplab е 01.01.01.00 това върви доста добре с BL командване, което отговаря 01,01,01,03 --------- Не е DPot (MCP41xxxx) в бразилския ICD. Как да те Vpp? Повечето от клонове имат фиксирани Vpp. Дали това означава, че бразилският ICD е само ниската цена клонинг, а не на нови ICD2? Аз мисля, че DONT микрочип отиде за определен vpp. Ако там е друг метод за контролиране на vpp, различни от DPot тя ще трябва фърмуер промени на ICD OS. Старата OS няма да работят в новия. Това може да е причината, че DLL проверява версията. |
|
| Обратно към началото | |
 |
Zedman
Присъединил се: 13 октомври 2003 Публикации: 294 Подпомогнат: 2
| 05 април 2006 22:32 Проект за замяна CY7C64613 в ICD2 | | |
|
| Аз не мисля, че трябва да се справят с всичко по веригата или протокол или връзката между 877 и 4550 все още. Мисля, че всички ние се нуждаем е писано в 4550 кошчета доставят с MPLAB. Ние трябва да напишете bootloader, съвместими с icd2w2k.sys за да получите OS.bin изтеглили, а след това можем да scracth главите ни как 877 е свързано.
Добавен след 5 минути:
В ICD2br използва друг вид чип, който генерира Vpp. Rkodaira mentoined, проверка на публикациите преди. |
|
| Обратно към началото | |
 |
Силвио
Присъединил се: 31 Декември 2001 Публикации: 800 Подпомогнат: 90
| 06 април 2006 2:36 Re: Проект за замяна CY7C64613 в ICD2 | | |
|
| | Zedman написа: | Ние трябва да напишете bootloader, съвместими с icd2w2k.sys за да получите OS.bin изтеглили.
|
Да, това е основната причина, за които казах, че dissasembling CY препратено е безполезна, докато ние имаме OS и BL бен файлове, предоставени от микрочип. За да започнете от нулата, кодиран за 4550 и симулират CY ще бъде препратено време и безполезно. Това е Оценявам zedman усилията.
Но понякога не мога да помогна сама да поиска този глупав въпрос: Ако BL не може да бъде обновен, докато е активен, това, което бе микрочип на ICD2 дизайнери подход за ъпгрейд? Паралелно програмист преди запояване 4550? Или чрез ICSP с чиста бен изображение изтеглени след зареждане блок изтрие? Ако rkodaira ще откриете, че CPB и EBTRB бита са разчистени , Тогава как може да се зареди OS.bin в 4550? Започна да питам като вас: Защо са доставени за зареждане на изображението? Или, както Jay.slovak каза "стринга се чете, просто кода не прави нищо", защото това е криптирана и има смисъл само за първоначалното зареждане код. Така че, единственото решение е да се симулират 4550 на bootloader и да получите огледалото бен образ на ОС? |
|
| Обратно към началото | |
 |
albert22
Присъединил се: 20 юли 2004 година Мнения: 95 Подпомогнат: 3
| 06 април 2006 4:36 Re: Проект за замяна CY7C64613 в ICD2 | | |
|
| | Цитат: | В ICD2br използва друг вид чип, който генерира Vpp. Rkodaira mentoined, проверка на публикациите преди.
| АЗ didnt означава MIC2175, което е преминаването на регулатора като MC34063. Бях насочен към DPOT и конкретно към нейното I2C interfase защото то изисква подкрепата на фърмуера на 877 за да настроите правилно Vpp напрежение. 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. | Цитат: | | 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: | Цитат: | | 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] |
|
| Обратно към началото | |
 |
Zedman
Joined: 13 Oct 2003 Posts: 294 Подпомогнат: 2
| 06 Apr 2006 11:48 Re: Project to replace CY7C64613 in the ICD2 | | |
|
| 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. |
|
| Обратно към началото | |
 |
rkodaira
Joined: 08 Jun 2004 Posts: 332 Helped: 54 Location: Sao Paulo - Brasil
| 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. |
|
| Обратно към началото | |
 |
albert22
Joined: 20 Jul 2004 Posts: 95 Подпомогнат: 3
| 06 Apr 2006 18:26 Re: Project to replace CY7C64613 in the ICD2 | | |
|
| Моля 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. Благодарности |
|
| Обратно към началото | |
 |
Kripton2035
Joined: 19 Jul 2001 Posts: 498 Helped: 17 Location: Earth
| 06 Apr 2006 19:31 Re: Project to replace CY7C64613 in the ICD2 | | |
|
| | rkodaira wrote: | Здравейте момчета! 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... |
|
| Обратно към началото | |
 |
Zedman
Joined: 13 Oct 2003 Posts: 294 Подпомогнат: 2
| 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. |
|
| Обратно към началото | |
 |
Brem
Joined: 06 Apr 2006 Мнения: 36
| 06 Apr 2006 20:22 Re: Project to replace CY7C64613 in the ICD2 | | |
|
| 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 (?) . |
|
| Обратно към началото | |
 |
albert22
Joined: 20 Jul 2004 Posts: 95 Подпомогнат: 3
| 06 Apr 2006 23:17 Re: Project to replace CY7C64613 in the ICD2 | | |
|
| | Цитат: | | 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. Благодарности. |
|
| Обратно към началото | |
 |
Zedman
Joined: 13 Oct 2003 Posts: 294 Подпомогнат: 2
| 06 Apr 2006 23:29 Re: Project to replace CY7C64613 in the ICD2 | | |
|
| Hey Brem!
nice to see you here! Thanks for the infos on the protocol.
| Цитат: | I used the information from this thread to connect my existing program with the real ICD USB Driver. I got so far that I receive the GETFIRMWAREVERSION command, but my response seems not to be understood. It sends the same command again and then hangs (?) .
|
would you please explain this a bit more? What's that mean you response is not understood? You got an usb packet starting with 0x01, replied it succesfully and just the content was wrong?
Please explain this, because as you can see from the thread Iam stuck with the replying. 
-------------------
Iam now trying an alternate way to **** with the replying thing, I wrote a small program in Delphi to test if the reply works, getting the same results yet but it's faster than switching the programmer in mplab while using it too.
here is the proc (values got from disassembled/debugged MPLBCOMM.dll): | Код: | 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... |
|
| Обратно към началото | |
 |
Brem
Joined: 06 Apr 2006 Мнения: 36
| 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. |
|
| Обратно към началото | |
 |
Zedman
Joined: 13 Oct 2003 Posts: 294 Подпомогнат: 2
| 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!
| Код: | 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
|
|
|
| Обратно към началото | |
 |