Правила | Новији постови | РСС топиц | Претрага | Регистрација | Лог ин

Пројекта за замену ЦЫ7Ц64613 у ИЦД2


Гото паге Превиоус 1, 2, 3, 4 ... 59, 60, 61 Сљедеће
Скочи на страницу:

Post new topic Reply to topic ЕДАбоард.цом Форум Индекс -> Мицроцонтроллерс -> Пројекат заменити ЦЫ7Ц64613 у ИЦД2
Арабиц версион Булгариан версион Цроатиан версион Цзецх версион Дански верзија Герман версион Грчка верзија Енглисх версион Шпански верзија Фински верзија Француски верзија Хинди верзија Хрватска верзија Индонезијски верзија Италиан версион Хебрејски верзија Јапанска верзија Кореан верзија Литхуаниан версион Летонски верзија Холандски верзију Норуегиан верзија Пољски верзију Португалски приказ Румунски верзија Српска верзија Словак версион Словениан версион Српска верзија Шведски верзија Тагалог версион Украиниан версион Вијетнамски верзија Кинески верзија
Аутор Порука
Криптон2035



Јоинед: 19. јули 2001
Постови: 483
Помогао: 15
Локација: Еартх


Post 03. април 2006 8:28 Ре: Пројекат за замену ЦЫ7Ц64613 у ИЦД2

Предраг уроте:
Моји пријатељи и нису успели у програмирању ИЦД2_4550_БООТ_0180.БИН у 4550. И'в
покушао отворити бин филе са уинпиц 800 софтвер али то није успело. ЈА трыед то отворен то с опцијом "алл филес" ин "врсте датотека" јер нема директну подршку бин датотека. ИЦпрог имати тај подршка (отворити бин датотеке), али не може програм 4550. У ствари нема 4550 на листи уређаја. Шта да радим? Било који сугестија? Ја сам тек почетник, али имам добре воље да помогну.
Нажалост о мој лош енглески језик.


преименовати. бин у. Хекс и уинпиц отворит ће се!
понекад пуно датотеке. Канта у стварности су Интел. хексадецимално!
како би били сигурни, отворите датотеку са нотепад ако садржи линије бегиннинг уитх: "онда преименовати то. хексадецимално и отворите га са уинпиц .. ако је смеће, а затим и бин2хекс морају користити да бисте је отворили.
Повратак на врх
нарцциззо



Приступио / ла: 20 јануар 2.006
Постови: 173
Помогао: 4
Локација: ПАТЗЦУАРО, Мицхоаца́н, Мексицо


Post 03. април 2006 9:42 Ре: Пројекат за замену ЦЫ7Ц64613 у ИЦД2

То су две датотеке бин претворена у хексадецимално сам отворио бин датотеке са
иц-ПРОГЛА софтвер онда ја чување датотека у хексадецимално формату, ако погледајте на ове датотеке можете видети читљив стринг "Мицроцхип Тецнологы ИЦД2 УСБ Девице УСБ ицд2" у за адресу 0кс0ее7 за боот.хекс филе и исти стринг у 0кс0б8е за
ос.хекс датотеку, ја донт имати растављања да истражи у више детаља ове датотеке, али нешто ми говори да су те две датотеке су све што нам треба.

БР
Нарцциззо


Жао нам је, али морате да пријавите да бисте видели у овом прилогу

Повратак на врх
Јаы.словак



Приступио / ла: 23 март 2.006
Постови: 11


Post 03 тра 2006 11:17 Ре: Пројекат за замену ЦЫ7Ц64613 у ИЦД2

нарцциззо уроте:
То су две датотеке бин претворена у хексадецимално сам отворио бин датотеке са
иц-ПРОГЛА софтвер онда ја чување датотека у хексадецимално формату, ако погледајте на ове датотеке можете видети читљив стринг "Мицроцхип Тецнологы ИЦД2 УСБ Девице УСБ ицд2" у за адресу 0кс0ее7 за боот.хекс филе и исти стринг у 0кс0б8е за
ос.хекс датотеку, ја донт имати растављања да истражи у више детаља ове датотеке, али нешто ми говори да су те две датотеке су све што нам треба.

БР
Нарцциззо


Јесте ли сигурни да су претворене датотеке исправно? Ако сам се увозити их у МПЛАБ, кодова не смисла, све то је само пролазио кроз Програм меморије и радиш НОПс. Ништа корисно се дешава у оба Чизма и ОС ХЕКСс. Чак и конфигурирати битови се разликују у обе датотеке!
Повратак на врх
Зедман



Јоинед: 13. октобар 2.003
Постови: 294
Помогао: 2


Post 03 тра 2006 11:19 пројекта за замену ЦЫ7Ц64613 у ИЦД2

Алберт,

у кернел дривер (е) очекивати је чемпрес ће повезати на други вид / ПИД када фирт повезани, а након лоадер сыс доунлоадс то ФУ он ће поново, као још један вид / ПИД па други сыс разговора до њега. Ми смо спровести само на другу.
Иам @ радити, па ми не могу ништа учинити овде тешко очекивати тхинкин ' Роллинг Еыес ...
Повратак на врх
Силвио



Приступио / ла: 31 децембар 2.001
Постови: 800
Помогао: 90


Post 03 тра 2006 11:31 Ре: Пројекат за замену ЦЫ7Ц64613 у ИЦД2
тагс: мплаб протокол ицд2 чемпрес растављања растављања чемпрес

Бок Зедман,

it's a must to understand what's under cover. Што се тиче ЦЫ хексадецимално филе то није само ствар доброг растављања која зна чемпрес цхип, али читање 436 страна ЕЗ-УСБ ФКС ТецхРефМануал то је потребно да схвате шта је под поклопцем.
А ја не верујем да сте времена за то. Ипак, ако нисте упознати са 8051 опцодес, анализи ко̂д ће трајати неко време. (Знам да сте фамилар са оне ПИЦ)
with appropiate values from CY7C64613 registers 0x7800-0x7FFF but you'll definitely end up turning the pages of TechRefManual looking for definitions. Ја могу заменити све појава МОВ ДПТР, # ЛКСКСКСКС са одговарајућим вредностима из ЦЫ7Ц64613 регистрима 0кс7800-0кс7ФФФ али ћете свакако завршити окретањем странице ТецхРефМануал тражите дефиниције.
Осим тога како би то неки тежак за додјељивање битова називи који су јасно поставили или у програму све док нису мапирани у СФР простор (који завршава у 0 или 8).
with MOV DPTR, #EP0CS but it's difficult to say SETB HSNAK due to the above reasons. То је лако заменити МОВ ДПТР, # Л7ФБ4 са МОВ ДПТР, # ЕП0ЦС али је тешко рећи СЕТБ ХСНАК због горе наведених разлога.

and EP0STAL L which are affected in the bellow code at 0x03E2. Ајмо узети пример ХСНАК битова и ЕП0СТАЛ Л које су погођене у код испод на 0кс03Е2.
Цоде:

Л03Е2: ЛЦАЛЛ Л0ФБЕ
ЈНЦ Л03ЕЕ
МОВ ДПТР, # Л7ФБ4
МОВКС А, @ ДПТР
ОРЛ А, # 01х; некакав СЕТБ ЕП0СТАЛЛ
МОВКС @ ДПТР, А
Л03ЕЕ: МОВ ДПТР, # Л7ФБ4
МОВКС А, @ ДПТР
ОРЛ А, # 02х; некакав СЕТБ ХСНАК
МОВКС @ ДПТР, А
Мочити

Л0ФБЕ: СЕТБ Ц
Мочити


Узми за пример (ЦП_1.асм) код линије старта са оффсет 0кс0100 (а субрутина зову из 0кс05ФА), први број линија користи прекидни вектор иммедиателлы испод стола
У РАМ 0кс7ФЕ9 можете пронаћи 2. быте од 8 бытес УСБ Сетуп пакетне податке (види страну 215 табле9-1), што значи бРекуест пољу (види табеле 9-2).


Цоде:

Л0100: МОВ ДПТР, # Л7ФЕ9
МОВКС А, @ ДПТР
ЈНЗ Л0109
ЉМП Л029Б; ако бРекуест = ГетСтатус Скочи на 0кс029Б
Л0109: Дец А
ЈНЗ Л010Ф
ЉМП Л0317; ако бРекуест = Обриши Феатуре, скок на 0кс0317
Л010Ф: АДД А, # 0ФЕх
ЈНЗ Л0116
ЉМП Л038Е; ако бРекуест = Постави Феатуре, скок на 0кс038Е
Л0116: АДД А, # 0ФБх
ЈНЗ Л011Д
ЉМП Л0295; ако бРекуест = Гет Цонфигуратион, скок на 0кс0295
Л011Д: А ДЕЦ
ЈНЗ Л0123
ЉМП Л028Ф; ако бРекуест = Постави Цонфигуратион, скок на 0кс028Ф
Л0123: Дец А
ЈНЗ Л0129
ЉМП Л0283; ако бРекуест = Гет Интерфаце, скок на 0кс0283
Л0129: Дец А
ЈНЗ Л012Ф
ЉМП Л0289; ако бРекуест = Постави Интерфаце, скок на 0кс0289
Л012Ф: АДД А, # 05х
ЈЗ Л0136
ЉМП Л03Е2; ако бРекуест = ниједан од горе, а затим поставите битова ХСНАК
и ЕП0СТАЛЛ од ЕП0ЦС контролу и стања и
, А затим мочити у 0кс05ФД
;
Л0136: ЛЦАЛЛ Л0Ф7А; ако бРекуест = Гет дескриптор, ЛЦАЛЛ 0кс0Ф7А где
ЈЦ Л013Е; носи помало је постављен по дефаулту, па скок на 0кс013Е
ЉМП Л03ЕЕ; ако је 0кс0Ф7А носити би било 0 по дефаулту, поставити битна ХСНАК
; Од ЕП0ЦС и контролу стања и мочити у 0кс05ФД
;
Л013Е: МОВ ДПТР, # Л7ФЕБ; јер је био бРекуест Гет дескриптор
МОВКС А, @ ДПТР; тако, проверите УВалуеХ пољу УСБ Сетуп пакетне
АДД А, # 0ФЕх
ЈЗ Л015Ф; ако уВалуеХ је 0кс02 Скочи на 0кс015Ф
А ДЕЦ
ЈЗ Л0190; уВалуеХ ако је 0кс03 Скочи на 0кс0190
АДД А, # 02х
ЈЗ Л0150; уВалуеХ ако је 0кс01 Скочи на 0кс0150
ЉМП Л0279; уВалуех ако се разликује од било 0кс01 или 0кс02 или 0кс03 затим поставите
; Битова ХСНАК и ЕП0СТАЛЛ од ЕП0ЦС регистровати и мочити у 0кс05ФД
;
Л0150: МОВ А, 0Цх; уВалуеХ овде јер је 0кс01, па оптерећење СУДПТР глобалне УСБ регистровати
МОВ ДПТР, # Л7ФД4; са 0кс0Ц0Д вредност, а затим поставите ХСНАК залогај од ЕП0ЦС и мочити у 0кс05ФД
МОВКС @ ДПТР, А
МОВ А, 0Дх
МОВ ДПТР, # Л7ФД5
МОВКС @ ДПТР, А
ЉМП Л03ЕЕ
Л015Ф: МОВ ДПТР, # Л7ФЕА; изгледају сада на подручју уВалуеЛ УСБ Сетуп пакетне
;
;
;
;
и тако даље ...................


port2: Microchip MPLAB ICD2 Fw client Или овај Лоокуп табле ат оффсет 0кс0622 који одговарају Криптон2035 порт2: Мицроцхип МПЛАБ ИЦД2 ФУ клијента


Цоде:

Табела 5-9. Дефаулт УСБ Девице дескриптор

РАМ Вредност Оффсет Опис поља

0622 0кс12 0 бЛенгтх Дужина овог дескриптор = 18 бытес
0623 0кс01 1 бДесцрипторТыпе = описник Тип уређаја
0624 0кс00 2 бцдУСБ (Л) УСБ Специфицатион Версион 1,10 (Л)
0625 0кс01 3 бцдУСБ (Х) УСБ Специфицатион Версион 1,10 (Х)
0626 0ксФФ 4 бДевицеЦласс Девице Цласс (ФФ је-Вендор Специфиц)
0627 0ксФФ 5 бДевицеСубЦласс Девице Под-Цласс (ФФ је-Вендор Специфиц)
0628 0ксФФ 6 бДевицеПротоцол Девице Протоцол (ФФ је продавац-Специфиц)
0629 0кс40 7 бМаксПацкетСизе0 највећи дозвољени обим пакета за ЕП0 = 64 бытес
062А 0ксД8 8 идВендор (Л) Вендор ИД (Л) = Мицроцхип Тецхнологы 04Д8Х
062Б 0кс04 9 идВендор (Х) Вендор ИД (Х)
062Ц 0кс01 10 идПродуцт (Л) Продуцт ИД (Л) ИЦД2 = 8001Х
062Д 0кс80 11 идПродуцт (Х) Продуцт ИД (Х)
062Е 0кс03 12 бцдДевице (Л) Уређај Едиција Број (БЦД, Л)
062Ф 0кс00 13 бцдДевице (Х) Уређај Едиција Број (БЦД, Х)
0630 0кс00 14 иМануфацтурер Производјач Индекс Стринг = Ноне
0631 0кс00 15 иПродуцт Продуцт Индекс Стринг = Ноне
0632 0кс00 16 иСериалНумбер Серијски Број Индекс Стринг = Ноне
0633 0кс01 17 бНумЦонфигуратионс Број Конфигурације у овом Интерфаце = 1

Табела 5-10. УСБ Цонфигуратион Дефаулт дескриптор

РАМ Вредност Оффсет Опис поља

0634 0кс09 0 бЛенгтх Дужина овог дескриптор = 9 бајтова
0635 0кс02 1 бДесцрипторТыпе дескриптор тыпе = Цонфигуратион
0636 0кс74 2 уТоталЛенгтх (Л) Укупна дужина (Л) укључујући и интерфејса за вршне тачке дескрипторе = 116
0637 0кс00 3 уТоталЛенгтх (Х) Укупна дужина (Х)
0638 0кс01 4 бНумИнтерфацес Број интерфејса у овој конфигурацији
0639 0кс01 5 бЦонфигуратионВалуе конфигурацију вредност користи Сет_Цонфигуратион Захтев за Изаберите ову конфигурацију
063А 0кс00 6 иЦонфигуратион Индекс гудачки описујући ову конфигурацију = Ноне
063Б 0кс80 7 бмАттрибутес Аттрибутес - Бус-Поуеред Не Уакеуп
063Ц 0кс4Б 8 МаксПоуер највећу снагу - 150 МА

Табела 5-11. УСБ Интерфаце Дефаулт 0, Алтернате Намјеа̨тање 0 дескриптор

РАМ Вредност Оффсет Опис поља

063Д 0кс09 0 бЛенгтх Дужина међуповршини дескриптор
063Е 0кс04 1 бДесцрипторТыпе дескриптор Интерфаце Тыпе =
063Ф 0кс00 2 бИнтерфацеНумбер Зеро-басед Индекс оф тхис Интерфаце = 0
0640 0кс00 3 бАлтернатеСеттинг Алтернате Намјеа̨тање Валуе = 0
0641 0кс0Е 4 бНумЕндпоинтс Број Ендпоинтс у овом Интерфаце (не рачунајући ЕПО) = 14
0642 0ксФФ 5 бИнтерфацеЦласс Интерфаце Класа = Вендор Специфиц
0643 0ксФФ 6 бИнтерфацеСубЦласс Интерфаце Под-цласс = Вендор Специфиц
0644 0ксФФ 7 бИнтерфацеПротоцол Протоцол Интерфаце = Вендор Специфиц
0645 0кс00 8 иИнтерфаце Индекс у гудачки дескриптор за ово интерфејс = Ноне

Табела 5-14. Дефаулт Интерфаце 0, Алтернате Намјеа̨тање 1, Булк дескрипторе крајње прикључне тачке

РАМ Вредност Оффсет Опис поља

0646 0кс07 0 бЛенгтх дужина ове вршне тачке дескриптор
0647 0кс05 1 бДесцриптор Тип дескриптор тыпе = крајње прикључне тачке
0648 0кс01 2 бЕндпоинтАддресс Дирекција за вршне тачке (1 се налази у) и поштански број = ОУТ1
0649 0кс02 3 бмАттрибутес КСФР = Тыпе Булк
064А 0кс40 4 уМаксПацкетСизе (Л) највећи дозвољени обим пакета = 64 Бытес
064Б 0кс00 5 уМаксПацкетСизе (Х) максимална величина пакета - Висока
064Ц 0кс01 6 бирачких бИнтервал Интервал у милисекунди

064Д 0кс07 0 бЛенгтх дужина ове вршне тачке дескриптор
064Е 0кс05 1 бДесцриптор Тип дескриптор тыпе = крајње прикључне тачке
064Ф 0кс02 2 бЕндпоинтАддресс Дирекција за вршне тачке (1 се налази у) и поштански број = ОУТ2
0650 0кс02 3 бмАттрибутес КСФР = Тыпе Булк
0651 0кс40 4 уМаксПацкетСизе (Л) највећи дозвољени обим пакета = 64 Бытес
0652 0кс00 5 уМаксПацкетСизе (Х) максимална величина пакета - Висока
0653 0кс01 6 бирачких бИнтервал Интервал у милисекунди

0654 0кс07 0 бЛенгтх дужина ове вршне тачке дескриптор
0655 0кс05 1 бДесцриптор Тип дескриптор тыпе = крајње прикључне тачке
0656 0кс03 2 бЕндпоинтАддресс Дирекција за вршне тачке (1 се налази у) и поштански број = ОУТ3
0657 0кс02 3 бмАттрибутес КСФР = Тыпе Булк
0658 0кс40 4 уМаксПацкетСизе (Л) највећи дозвољени обим пакета = 64 Бытес
0659 0кс00 5 уМаксПацкетСизе (Х) максимална величина пакета - Висока
065А 0кс01 6 бирачких бИнтервал Интервал у милисекунди

065Б 0кс07 0 бЛенгтх дужина ове вршне тачке дескриптор
065Ц 0кс05 1 бДесцриптор дескриптор Тыпе = Тип крајње прикључне тачке
065Д 0кс04 2 бЕндпоинтАддресс Дирекција за вршне тачке (1 се налази у) и поштански број = ОУТ4
065Е 0кс02 3 бмАттрибутес КСФР = Тыпе Булк
065Ф 0кс40 4 уМаксПацкетСизе (Л) највећи дозвољени обим пакета = 64 Бытес
0660 0кс00 5 уМаксПацкетСизе (Х) максимална величина пакета - Висока
0661 0кс01 6 бирачких бИнтервал Интервал у милисекунди

0662 0кс07 0 бЛенгтх дужина ове вршне тачке дескриптор
0663 0кс05 1 бДесцриптор Тип дескриптор тыпе = крајње прикључне тачке
0664 0кс05 2 бЕндпоинтАддресс Дирекција за вршне тачке (1 се налази у) и поштански број = ОУТ5
0665 0кс02 3 бмАттрибутес КСФР = Тыпе Булк
0666 0кс40 4 уМаксПацкетСизе (Л) највећи дозвољени обим пакета = 64 Бытес
0667 0кс00 5 уМаксПацкетСизе (Х) максимална величина пакета - Висока
0668 0кс01 6 бирачких бИнтервал Интервал у милисекунди

0669 0кс07 0 бЛенгтх дужина ове вршне тачке дескриптор
066А 0кс05 1 бДесцриптор Тип дескриптор тыпе = крајње прикључне тачке
066Б 0кс06 2 бЕндпоинтАддресс Дирекција за вршне тачке (1 се налази у) и поштански број = ОУТ6
066Ц 0кс02 3 бмАттрибутес КСФР = Тыпе Булк
066Д 0кс40 4 уМаксПацкетСизе (Л) највећи дозвољени обим пакета = 64 Бытес
066Е 0кс00 5 уМаксПацкетСизе (Х) максимална величина пакета - Висока
066Ф 0кс01 6 бирачких бИнтервал Интервал у милисекунди

0670 0кс07 0 бЛенгтх дужина ове вршне тачке дескриптор
0671 0кс05 1 бДесцриптор Тип дескриптор тыпе = крајње прикључне тачке
0672 0кс07 2 бЕндпоинтАддресс Дирекција за вршне тачке (1 се налази у) и поштански број = ОУТ7
0673 0кс02 3 бмАттрибутес КСФР = Тыпе Булк
0674 0кс40 4 уМаксПацкетСизе (Л) највећи дозвољени обим пакета = 64 Бытес
0675 0кс00 5 уМаксПацкетСизе (Х) максимална величина пакета - Висока
0676 0кс01 6 бирачких бИнтервал Интервал у милисекунди

РАМ Вредност Оффсет Опис поља

0677 0кс07 0 бЛенгтх дужина ове вршне тачке дескриптор
0678 0кс05 1 бДесцриптор Тип дескриптор тыпе = крајње прикључне тачке
0679 0кс81 2 бЕндпоинтАддресс Дирекција за вршне тачке (1 се налази у) и поштански број = ИН1
067А 0кс02 3 бмАттрибутес КСФР = Тыпе Булк
067Б 0кс40 4 уМаксПацкетСизе (Л) највећи дозвољени обим пакета = 64 Бытес
067Ц 0кс00 5 уМаксПацкетСизе (Х) максимална величина пакета - Висока
067Д 0кс01 6 бирачких бИнтервал Интервал у милисекунди

067Е 0кс07 0 бЛенгтх дужина ове вршне тачке дескриптор
067Ф 0кс05 1 бДесцриптор Врста дескриптор тыпе = крајње прикључне тачке
0680 0кс82 2 бЕндпоинтАддресс Дирекција за вршне тачке (1 се налази у) и поштански број = ИН2
0681 0кс02 3 бмАттрибутес КСФР = Тыпе Булк
0682 0кс40 4 уМаксПацкетСизе (Л) највећи дозвољени обим пакета = 64 Бытес
0683 0кс00 5 уМаксПацкетСизе (Х) максимална величина пакета - Висока
0684 0кс01 6 бирачких бИнтервал Интервал у милисекунди

0685 0кс07 0 бЛенгтх дужина ове вршне тачке дескриптор
0686 0кс05 1 бДесцриптор Тип дескриптор тыпе = крајње прикључне тачке
0687 0кс83 2 бЕндпоинтАддресс Дирекција за вршне тачке (1 се налази у) и поштански број = ИН3
0688 0кс02 3 бмАттрибутес КСФР = Тыпе Булк
0689 0кс40 4 уМаксПацкетСизе (Л) највећи дозвољени обим пакета = 64 Бытес
068А 0кс00 5 уМаксПацкетСизе (Х) максимална величина пакета - Висока
068Б 0кс01 6 бирачких бИнтервал Интервал у милисекунди

068Ц 0кс07 0 бЛенгтх дужина ове вршне тачке дескриптор
068Д 0кс05 1 бДесцриптор дескриптор Тыпе = Тип крајње прикључне тачке
068Е 0кс84 2 бЕндпоинтАддресс Дирекција за вршне тачке (1 се налази у) и поштански број = ИН4
068Ф 0кс02 3 бмАттрибутес КСФР = Тыпе Булк
0690 0кс40 4 уМаксПацкетСизе (Л) највећи дозвољени обим пакета = 64 Бытес
0691 0кс00 5 уМаксПацкетСизе (Х) максимална величина пакета - Висока
0692 0кс01 6 бирачких бИнтервал Интервал у милисекунди

0693 0кс07 0 бЛенгтх дужина ове вршне тачке дескриптор
0694 0кс05 1 бДесцриптор Тип дескриптор тыпе = крајње прикључне тачке
0695 0кс85 2 бЕндпоинтАддресс Дирекција за вршне тачке (1 се налази у) и поштански број = ИН5
0696 0кс02 3 бмАттрибутес КСФР = Тыпе Булк
0697 0кс40 4 уМаксПацкетСизе (Л) највећи дозвољени обим пакета = 64 Бытес
0698 0кс00 5 уМаксПацкетСизе (Х) максимална величина пакета - Висока
0699 0кс01 6 бирачких бИнтервал Интервал у милисекунди

069А 0кс07 0 бЛенгтх дужина ове вршне тачке дескриптор
069Б 0кс05 1 бДесцриптор Тип дескриптор тыпе = крајње прикључне тачке
069Ц 0кс86 2 бЕндпоинтАддресс Дирекција за вршне тачке (1 се налази у) и поштански број = ИН6
069Д 0кс02 3 бмАттрибутес КСФР = Тыпе Булк
069Е 0кс40 4 уМаксПацкетСизе (Л) највећи дозвољени обим пакета = 64 Бытес
069Ф 0кс00 5 уМаксПацкетСизе (Х) максимална величина пакета - Висока
06А0 0кс01 6 бирачких бИнтервал Интервал у милисекунди

06А1 0кс07 0 бЛенгтх дужина ове вршне тачке дескриптор
06А2 0кс05 1 бДесцриптор дескриптор Тыпе = Тип крајње прикључне тачке
06А3 0кс87 2 бЕндпоинтАддресс Дирекција за вршне тачке (1 се налази у) и поштански број = ИН7
06А4 0кс02 3 бмАттрибутес КСФР = Тыпе Булк
06А5 0кс40 4 уМаксПацкетСизе (Л) највећи дозвољени обим пакета = 64 Бытес
06А6 0кс00 5 уМаксПацкетСизе (Х) максимална величина пакета - Висока
06А7 0кс01 6 бирачких бИнтервал Интервал у милисекунди

који се потом следе Уницоде облик нула завршила стринг
"Мицроцхип Тецхнологы ИЦД2 УСБ Девице"



Међутим ако се заглави са 4550 бин, могу покушати помоћи додавањем коментари у ЦЫ асм филе.
Повратак на врх
Зедман



Јоинед: 13. октобар 2.003
Постови: 294
Помогао: 2


Post 03 тра 2006 17:10 Ре: Пројекат за замену ЦЫ7Ц64613 у ИЦД2
тагс: ицд2.длл

Поштовање Силвио,

хвала за један дан информације, давно сам морао парсати бин датотеке које долазе из једне епром цхип. Нисам чак ни процесор ни тип споја. Али сам морала наћи начин да се бави меморијску картицу, и то податке.
ЈА претпоставити то је 8051 и врсту чипа покушали пуно дисассемблерс, а завршио је са 80Ц542 (ја лицемјерје сећати које је тачно) И фигуред ит оут из луке бројевима и како се број бави појединачним луци игле.
Али, то је 2 недеље и дању и ноћу раде Неутрално за мене, доста читања / дебуггинг / учења.
Зато сам хтела један Асемблер што је способан да учини ствари које се помињу уместо мене ... Веры Хаппы
Хвала опет Силвио.

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

Затим почиње веровати свима вама, према бин датотека. Нисам истраживања у ИЦД2 длл и сазнали да се позиви ГЕТУСБДЕСЦРИПТОР и проверава бројеве у описник и ако то одговара ИЦД2 новији него ја потписан у моје 4550'с дескриптор него ли сенд4550имаге позиву!
И такође постоје дескрипторе у бин датотеке идентичан оном Криптон отпремили.
Појединац ствар ЈА донт 'схватити зашто је учинио да они добили боот имаге?
А зашто ИЦД2.длл покушава да преузмете ову датотеку? Ако сам се кући, ја ћу покушати подесити моје дескрипторе да одговара једној сам нашла у бин те да ће покушати МПЛАБ он.

Мислим да се приближава! Хладно

Аддед након 46 минута:

И ту је чаробна ствар у првом бтыес оф боот бин: МЦХП (МиЦроцХиП?)
Тражили смо га, ако је касније (након оптерећења) те замењује са стварним улазну Гото или ст, но у ИЦД2.длл не.

Аддед након 3 сата 34 минута:

Погледај ово:

Ја сам оно што сам рекао пре, само поставите број верзије на новију га очекује и МПЛАБ покушава послати ОС! (Наравно моје ФУ није боот лоадер)

Цоде:

МПЛАБ ИЦД 2 Реады
Спајање на МПЛАБ ИЦД 2
ИЦД0289: Не може се ре-програм ИЦД2 УСБ ОС фирмвер.
ИЦД0021: Не може се повезати с МПЛАБ ИЦД 2
МПЛАБ ИЦД 2 Реады


Некако боот лоадер требало да раде, ја ћу покушати нешто учинити ноћу.
Повратак на врх
нарцциззо



Приступио / ла: 20 јануар 2.006
Постови: 173
Помогао: 4
Локација: ПАТЗЦУАРО, Мицхоаца́н, Мексицо


Post 03 тра 2006 18:43 пројекта за замену ЦЫ7Ц64613 у ИЦД2

Бок ЈаыСловак
Не, не Им сигуран, само сам отворила канта и сачувате га у хексадецимално формату. Тужан
Повратак на врх
Јаы.словак



Приступио / ла: 23 март 2.006
Постови: 11


Post 03 тра 2006 20:45 Ре: Пројекат за замену ЦЫ7Ц64613 у ИЦД2

нарцциззо уроте:
Бок ЈаыСловак
Не, не Им сигуран, само сам отворила канта и сачувате га у хексадецимално формату. Тужан


Ыеп, то је чудно, као стринг је читати, само код не ради ништа Тужан
Повратак на врх
Зедман



Јоинед: 13. октобар 2.003
Постови: 294
Помогао: 2


Post 03 тра 2006 22:25 Ре: Пројекат за замену ЦЫ7Ц64613 у ИЦД2
тагс: ицд2.длл

Добре вести после 2 сата дебуггинг,

ИЦД2.длл не користите обе бин датотека. ОС датотеку жели бити преузети само са новим производом ИЦД2с серијски број.
Али кад модификовати верзија ид у филенаме оф ОС.бин да * _ФФФФ.бин него што почне да проверите боотлоадер верзију формат:

Цоде:

Спајање на МПЛАБ ИЦД 2
ИЦДУарн0062: УСБ Боот фирмуаре од ИЦД2 је активна и пружање комуникације са ИЦД2. Овај фирмуаре је застарео и треба да буде ажуриран. То не може бити измењена, а активна. Међутим, ти мај наставити да раде са садашњом боот фирмуаре ако сте изабрали да то урадите. Желите ли наставити?


Ако сам притисните ЫЕС овде него покушава да се повеже са ИЦД2 себе, и фреезес (имам само инсталиране још 4550).
Ако сам притисните НО од чини се покушава упдате, али то нам је потребно овде боотлоадер попут ове, тако да је ова порука се појављује:

Цоде:

ИЦД0288: Не може се ре-програм ИЦД2 УСБ Боот фирмуаре.
ИЦД0021: Не може се повезати с МПЛАБ ИЦД 2
МПЛАБ ИЦД 2 Реады


Ок момци, мислим мислим мислим да можемо користити да канта за добијање радне боотлоадер у 4550!

Аддед након 2 минуте:

Такође сам компилиране узорку боотлоадер са тачним вид / ПИД, али је добио исте резултате као и са мојим 4550.

Аддед након 16 минута:

То може бити, да не можемо добити почетне иницијалне почетном:) део је боотлоадер који итава прва боотлоадер који учитава ос ...

Аддед после 5 минута:

Ово је време када би требало ркодаира за 4550 меморије његов 0 боотлоадер нивоу. (са великом надом да није заштићен ...)

Ркодаира ТРЕБА ЛИ НАМ Осмјех
Повратак на врх
алберт22



Јоинед: 20. јули 2004
Постови: 95
Помогао: 3


Post 03 тра 2006 22:46 Ре: Пројекат за замену ЦЫ7Ц64613 у ИЦД2

Ја сам био један анализирање штампање да сам са мном у БЛ010101. и наћи неке ствари.
Чини се да прихвате 5 наредбе долазе било из ПСП или УСАРТ.
0кс55 Ексецуте број почевши од 0кс0010.
0кс56 оптерећење хексадецимално (ово изгледа као да има више субцоммандс)
0кс5а шаље податке 0кс01 0кс01 0кс03 (верзија од БЛ??)
Друге две наредбе само укључивање Грешка и саобраћајну Ледс и смрзну у инффините петља.

Следеће рутине су везане уз оно што сам назива "лоад хексадецимално" наредбу:

У другом рутинске БЛ шаље следеће стринг 0кс5б "0810Ц9", 0кс5д
Остали ембедед шаље одговоре на следећа стринг 0кс5б ", 0А000", У, 0кс31, У, 0кс5д. (где је У Чини се да је 0кс31, 0кс34, 0кс36 и 0кс37).

ЈА није да има много времена да се настави са анализом. Ја не видјех УСБ мониторинга које су постављене јер Им на цыбер. Али мислим да ови подаци треба да буду паковане у УСБ комуникацију
Повратак на врх
Зедман



Јоинед: 13. октобар 2.003
Постови: 294
Помогао: 2


Post 03 тра 2006 23:30 пројекта за замену ЦЫ7Ц64613 у ИЦД2

Алберт,

ЈА провјерити серијски цомм версус УСБ, УСБ користи омот кроз серијски ствар.
Чини се користи за контролу ЕП1 порт (то је ОУТ и ИН), као и податке ЕП2 луку, само у (ицд-> ПЦ).
Повратак на врх
алберт22



Јоинед: 20. јули 2004
Постови: 95
Помогао: 3


Post 05. април 2006 6:39 Ре: Пројекат за замену ЦЫ7Ц64613 у ИЦД2

Ево моје предујма са БЛ
Није било таквих субцоммандс. Оптерећења хексадецимално команду само узима хексадецимално евиденције и записује податке у програм меморы 2 быте одједном. Она проверава различите грешке укључујући опсег адреса. Ап. како би се избегло корачни у БЛ програм. То потврђује да је резидент БЛ је увек на 877.
Тхе [0А000 ", У, 0кс31, У]. (2. У је први У 1) је вероватно да се види јер је извештај о грешци. Грешке укључују: Лоше формат, проверава, лоше адреса ЕЕПРОМ-а ранге писати грешка .
Рутинске чека 16 знакова почевши са 0кс3ц ('<') и закључно са 0кс3е ('>'). 16 знакова овај хеадер да садржи адресу, дужина и испитни збир за податке бити написан у АСЦИИ.
Ако је исправан хеадер Ап. БЛ одговоре са "[0810Ц9]"
Подаци цамес након 0кс7б
Овај формат чини се да је другачији од Интел хексадецимално формату.

Зедман.
Мај вам бити призната нешто попут овог у РС232
Сутра ће ми бити у мојој кући и могу инсталирати ХДД проверити логове и видети ако ја могу бити од било какве помоћи.
Повратак на врх
Зедман



Јоинед: 13. октобар 2.003
Постови: 294
Помогао: 2


Post 05 тра 2006 12:17 Ре: Пројекат за замену ЦЫ7Ц64613 у ИЦД2
тагс: мплаб протокол ицд2 ицд2.длл ицд2у2к.сыс мплбцомм.длл

Ја сам заглави са УСБ-ову ствар. А ја сам тужна.

Не знам шта да учини следећи. Провела сам доста времена за исправљање грешака у ицд2.длл.

Проблем је: не могу слати ни један бајт назад на МПЛАБ.

Ја ћу објаснити шта сам до сада, иако нико није заиста заинтересовани (само желим дочепати готовог ствар). (Осим: Алберт, Криптон, ркодаира, Силвио и момци на овом тхреад)

Дакле, МПЛАБ комуницира са ИЦД2 на овај начин:

[МПЛАБ -> ИЦД2.длл -> МПЛБЦОММ.длл -> ицд2у2к.сыс ->] --- [ИЦД2 уређаја]

Ако изаберете УСБ тип везе упитати ће Вас уређај описник из ИЦД2 и чекове за производ верзија реч, ако је она 0кс0003, него што је чемпрес заснива ИЦД2, ако је она 0кс0010, него што је 4550 базиран један. Ако 0кс0010 наћи оно што каже, него што сам пре тога објављено у ОС ИЦД2 морају бити унапријеђен. То је интересантно да ако верзију (0100), у име датотеке у ОС.бин је измијењени то ФФФФ него прескачу овај корак и проверава боотлоадер верзију. Овде сам да патцх ИЦД2.длл да га покушати да проверите верзију датотеке БЛ.бин превише, то је чак и хардцодед који је постављен на то ФФФФ навика покушате надоградити, то је разлог зашто сам га патцхед (сет хардцодед ФФФФ на ниже), па сад каже што сам пре превише ментоинед: БЛ верзија је престар, али не може се надоградити док је активна.

Ок. ЈА је направио малу храна из узорка боотлоадер, са тачним описима и тежак за комуницирати са МПЛАБ у циљу децрыпт протокола и то такмичити БЛ у новој 4550 ИЦД2.
Криптон ИЦД2 да користи, (чемпреси верзија) поставља 7 ОУТ / ИН Ендпоинтс, али према записницима она користи само за ЕП1 ИН / ОУТ и ЕП2 у. (ОУТ значи ПЦ-> Девице)
Чини га шаље усб специфичне наредбе и податке преко ЕП1 ван и назад на ЕП1, и шаље бытес реадед из ИЦД2'с 877 путем засебне вршне тачке ЕП2 у.

Када МПЛАБ покушава послати тх ОС.бин да надоградите ФУ ос га издаје гетУСБдесцриптор позив на кернел дривер, и шаље један 0кс12 бытес дуго користећи команду ДевицеИОЦонтрол команду. Ја дебуггед, то успешно стигне до 4550.
Него МПЛАБ издаје ГетСтатус позив, а чини се из позива на параметре који га очекује 0кс08 бытес података леђа.
ЈА оснивати мој буффер са 8 бытес, и подесите на Сие власништва. Али то никада не шаље да 8 битова леђа (не појављују у УСБМон). Само чека.
Ту се може много тога.
Можда ми је чинити ст у реду са сетуп од 4550, али сам га са другом прогс и ради, можете послати бытес назад.
Знам домаћин мора послати и на команду нека уређај послати у оно што жели.
Али када сам дебуггед МБЛБЦОММ, видела сам да је ДевицеИОЦонтрол команда није успела!
И тоугхт да можда неки обавештајних саграђена у. сыс филе а капи пакету јер то није у реду садржаја, али мислим да би требао бити виши ниво задатак.
Кад сам да ћу стићи кући проверити Гетластеррор'с вредност.


Свако има неке идеје како да могу видети ако постоји био је у пакет послала, или како се могу носити на?
Повратак на врх
Криптон2035



Јоинед: 19. јули 2001
Постови: 483
Помогао: 15
Локација: Еартх


Post 05 тра 2006 16:59 пројекта за замену ЦЫ7Ц64613 у ИЦД2

мај се требали карика у 877 ПСП порт за 4.550 видети што долази, те програм за 877 са боотлоадер смо? мај бити бытес Вас чека долазе из ЕП2 и тако да је 877?

Желите ли ми послати још једну лог датотеку од прецизне стање? на путу је да ли је потребна рокаида се пријавите са својим 4550 ицд2 ..

ПС: Нисам заинтересован за тај пројекат .. Осмјех Ја сам само знатижељан! Већ имам усб ицд2! Осмјех
Повратак на врх
Зедман



Јоинед: 13. октобар 2.003
Постови: 294
Помогао: 2


Post 05 тра 2006 20:08 пројекта за замену ЦЫ7Ц64613 у ИЦД2

Хвала Криптон,

Обавестићемо ћу вас кад ми је потребно више думп Осмјех То је мало сложенији од пуког пролазе бытес до 877 и назад, има омот протокол о њој.
Оно што је рекао је била веома корисна, али ркодеира његова навика сацрифы потпуно нови ИЦД2 ... Осмјех Ако он би, него са меморије самог ОС упдате процес би дефинисао протокол добро ...
Повратак на врх
Криптон2035



Јоинед: 19. јули 2001
Постови: 483
Помогао: 15
Локација: Еартх


Post 05 тра 2006 22:09 пројекта за замену ЦЫ7Ц64613 у ИЦД2

ЈА донт мислити и он треба да сацрифы његов ицд2! само неке с снужденост усбмон као ја .. надајмо је и даље мој ицд2 раде!
Повратак на врх
алберт22



Јоинед: 20. јули 2004
Постови: 95
Помогао: 3


Post 05 тра 2006 22:16 Ре: Пројекат за замену ЦЫ7Ц64613 у ИЦД2
тагс: ицд2 команду лоад хексадецимално

Не могу инсталирати ХХД монитору да види логове јер сам у98 има само код куће.
Могу ли извести меморије из ОС скидати у. ткст, за мене?
-------
Како ЦЫ Преуреди на 877?
Постоји сигнал (пин 43) на базу К1 Цоллецтор чије је МЦЛР. Али то иде на конектор зове ПРОГЛА. И сада схватити да овај сигнал би требао ићи на 877 превише.
Ми би требало да зна шта је УСБ команду Преуреди 877. Мај се да је на једном од контроле ендпоинтс?
Ја донт кноткле шта је функција тог ПРОГЛА конектор. но екстра ендпоинтс мај се односе на њега.
----------
Један од ОС учита на ИЦД2 чини се да је: ИЦД01020405.хекс сам покушао дисассембы га али не могу добити растављања сменити хексадецимално адресе са именом на регистрима. Проћи ће више времена за схватити како то ради.
Занимљива чињеница је да код почиње у 0кс0010. Запамтите да је БЛ позиви ову адресу са извршити наредбу.

БЛ верзија мплаб извијестио је 01.01.01.00 овај иде сасвим добро са БЛ команду која одговоре 01,01,01,03
---------
Нема ДПот (МЦП41кскскскс) у Бразилски ИЦД. Како оне сет Впп?
Већина од клонова имају фиксне Впп. Да ли то значи да ће Бразилац ИЦД је само клон ниску цену, а не нове ИЦД2? ЈА донт мислити тај мицроцхип отишао на одређено впп. Ако постоје друге методе контроле впп, осим да ће то требати ДПот фирмуаре промене у ИЦД ОС. Стари ОС не раде на новим. То мај бити узрок да је ДЛЛ провере верзије.
Повратак на врх
Зедман



Јоинед: 13. октобар 2.003
Постови: 294
Помогао: 2


Post 05 тра 2006 22:32 пројекта за замену ЦЫ7Ц64613 у ИЦД2
тагс: мплаб протокол ицд2 ицд2у2к.сыс ицд2у2к доунлоад 4550 боотлоадер писати ицд2у2к.сыс Доунлоад Доунлоад ицд2у2к

Не мислим да треба да се баве било шта везано за склоп или протоколом или везу између 877 и 4550 још. Мислим да је све што требате је записано у 4550 бинс испоручује са МПЛАБ.
Ми би требали написати боотлоадер компатибилан са ицд2у2к.сыс да добијете ОС.бин преузели, а након тога можемо сцрацтх наших глава како 877 је повезан.

Аддед после 5 минута:

У ИЦД2бр користи друга врста чип који генерише се Впп. Ркодаира ментоинед, проверите постова пре.
Повратак на врх
Силвио



Приступио / ла: 31 децембар 2.001
Постови: 800
Помогао: 90


Post 06. април 2006 2:36 Ре: Пројекат за замену ЦЫ7Ц64613 у ИЦД2
tags: icd2w2k.sys icd2w2k download 4550 bootloader write icd2w2k.sys download download icd2w2k

Zedman wrote:

We should write a bootloader compatible with the icd2w2k.sys to get the OS.bin downloaded.


Yes, this is the main reason for which I said that dissasembling CY fw it's useless as long as we have the OS and BL bin file provided by Microchip. To start coding from scratch for 4550 and simulate the CY fw would be time consuming and worthless.
That's I appreciate zedman's efforts.

However sometimes I can't help myself to ask this stupid question : If the BL cannot be upgraded while it's active, what was Microchip's ICD2 designers approach for upgrade ? In parallel programmer before soldering 4550 ? Or through ICSP with a clean bin image downloaded after boot block erased ?
If rkodaira will find that CPB and EBTRB bits are cleared Crying or Very sad , then how can OS.bin be loaded in 4550 ? I start asking like you : why did they supplied the boot image ?
Or, as Jay.slovak said "the string is readable, just the code does nothing" because it's encrypted and makes sense only for original boot code.
So, the only solution is to simulate the 4550's bootloader and get the mirror bin image of OS ?
Back to top
albert22



Joined: 20 Jul 2004
Posts: 95
Helped: 3


Post 06 Apr 2006 4:36 Re: Project to replace CY7C64613 in the ICD2
tags: mplab protocol icd2

Quote:
In ICD2br uses another kind of chip which generates the Vpp. Rkodaira mentoined, check the posts before.

I didnt mean the MIC2175, which is a switching regulator as the MC34063. I was aiming at the DPOT and specifically to its I2C interfase because it requires the support of the firmware in the 877 to set the correct Vpp voltage. As I said before if the new ICD2 relies in other component to change the Vdd, all the firmware needs to change.

May be Rkodaira could check ithe circuit associated with pin 3 (FB) of the MIC2172 to see if vpp can be controlled or it is fixed.

Let me make my statement a little clear. If the Brazilian ICD has no control of Vpp it is highly probable that it is just a clone. In that case there is no warranty that the real new ICD2 is based on a 4550 and a 877. It could be just a 4450 alone for example (why not) in that case the following statement would not be true.
Quote:
I think ALL we need is written in the 4550 bins supplied with MPLAB.

As we dont know for sure the arquitecture of the new ICD we need to emulate the CY. However chances are that the 4550BINs will still be usefull to solve the USB protocol. I tried to disassemble it today but found nothing coherent yet.

To the question:
Quote:
why did they supplied the boot image ?

They supplied the BL010101.hex which needs to be programmed at the factory for the ICD to work.[/quote]
Back to top
Zedman



Joined: 13 Oct 2003
Posts: 294
Helped: 2


Post 06 Apr 2006 11:48 Re: Project to replace CY7C64613 in the ICD2
tags: icd2 load hex command

Silvio,

the BL cannot be upgraded thing was a little trick. Actually MPLAB is set to check the BL's version against 0xFFFF, and if 0xFFFF (it's only a word) is lower than it will try to upgrade the bootloader. So it wont ever get here, because larger number than 0xFFFF cannot be set on a word. So I patched it to skip this test and try to do it, but anyway it's a BUILT IN function in MPLAB! It CAN update the boot image too. I just patched the version check out.
But think: it's not accidentaly set to 0xFFFF, they may not want to use this function yet.
According to the OS.bin file, if the product version is 0x0010 than it's downloaded all the time. Maybe 0x0010 is the BL's version only, and set to lower when OS will run in it! The OS.bin's version is also checked against 0xFFFF. If it's equals to 0xFFFF it's starts the checking for the BOOT.bin file as I mentoined above.

I'll check how it handles the active check when it complains about "it cannot be upgraded while active".

Another strange thing is if the original bootloader handles the decryption of the OS.bin image, than it will be a nice thing to clone... Anyway there is no processing on the .bin files in the software as I saw.

the DeviceIOControl command returns 0x57: The parameter is incorrect. (ERROR_INVALID_PARAMETER)

If we get the OS.bin downloaded than we can read it back with another icd2 and see how it works.

Albert,

they wont change the 877 firmware. They have a lot of hexs supplied with MPLAB should work with both versions. They may do minor changes, but thats all.
Sorry I misunderstood that DPOT thing.
The question "Why they supplied the boot image?" I asked was for the 4550_boot.bin file.
Back to top
rkodaira



Joined: 08 Jun 2004
Posts: 332
Helped: 54
Location: Sao Paulo - Brasil


Post 06 Apr 2006 14:19 Re: Project to replace CY7C64613 in the ICD2

Hi guys !

Bad news. I could not install the USB monitor in my PC with Windows98SE, because it doesnīt accept to be installed. I think it (if installed) wouldnīt make any damage to my ICD2, but i could not test it.

About the Vpp control, I think that there is only the high voltage generator for Vpp and there is another way to control this voltage. I donīt know if the DG411 has this role, and there is a power mosfet also in the circuit.

I donīt think my clone is the new ICD2 from Microchip. I suppose the local manufacturer only made a clone using more available parts and making some changes in the firmware to adequate the new parts. Sorry I cannot make any attempt to read the 18F4550 contents.

Added after 15 minutes:

One more thing:

I tried to build the PICKIT2 programmer (onlu the basic part: the PIC, crystal and some connections) some weeks ago. It has the schematic and "all" the software available for download in the Microchip pages. I bought some 18F2550 and programmed with the firmware provided. I installed the programmer software and connected the hardware to the USB port. The PC recognized it once but the software did not. I think that there is something missing in the package, that blocks the programmer to communicate with the software. Could be the same case be happening with the hex files provided for the ICD2 ? Or in other words: Microchip doesīt provide the complete code for the ICD2.
Back to top
albert22



Joined: 20 Jul 2004
Posts: 95
Helped: 3


Post 06 Apr 2006 18:26 Re: Project to replace CY7C64613 in the ICD2

Please
Can somebody export to .txt the USB log files captured by HDD monitor?
I cannot install this soft at my home. Otherwise Ill have to wait until next week to read them on my PC at work. I am now studying the protocol between the CY and the 877 OS.
If they are too big. A connect log, and a program log would be nice.
Thanks
Back to top
Kripton2035



Joined: 19 Jul 2001
Posts: 483
Helped: 15
Location: Earth


Post 06 Apr 2006 19:31 Re: Project to replace CY7C64613 in the ICD2

rkodaira wrote:
Hi guys !
Bad news. I could not install the USB monitor in my PC with Windows98SE, because it doesnīt accept to be installed. I think it (if installed) wouldnīt make any damage to my ICD2, but i could not test it.


may be you can try this one : they say it works under w98...
http://www.perisoft.net/bushound/

zedman needs a log of a real 4550... my cypress clone doesnt give all he needs...
Back to top
Zedman



Joined: 13 Oct 2003
Posts: 294
Helped: 2


Post 06 Apr 2006 20:14 Project to replace CY7C64613 in the ICD2

It can be exported from USBMon to HTML format, but I have only serial ICD2.
Back to top
Brem



Joined: 06 Apr 2006
Posts: 36


Post 06 Apr 2006 20:22 Re: Project to replace CY7C64613 in the ICD2
tags: mplab protocol icd2 icd2 load hex command

Hi group,

Zedman drew my attention to this thread. I find it very interesting.

Last winter my hobby project was to build an ICD clone on a 2455/2550. I used the CDC firmware for RS232 emulation to connect to MPLAB. I disassambled the 877 firmware and made it more readable with a VB program. As far as I can tell the protocol CY<->877 and the protocol RS232<->877 are the same. There are no USB specific things in the 877 firmware.

I'll try to explain what I learned of the protocol.

MPLAB starts a connection by sending a 'Z'. ICD should reply with some kind of version nr in binary: 0x01,0x01,0x03.

Now MPLAB sends a
'V' if it wants to connect to the bootloader, ICD should reply with a 'v'
'U' if it wants to connect to the OS, ICD should reply 'u'

Next is the version of the ICD hardware, this has to be compatible with the old ICD1, so its different from all other commands: MPLAB send '$7F00\r', ICD replies '02' for ICD2

From here on all commands are send in packets in the form: '<', packet len, command, [params], checksum, '>'
all items are sent in hex, packet length is including the <>. An example: '<0801C9>', len=8, cmd=1 (GETFIRMWAREVERSION), no params, checksum=0xC9

Reply's to commands are in the same form, except packed in []. Reply to the above example would be: '[0E0102630102]', len=14, cmd=1 (GETFIRMWAREVERSION), param 2.99.1, checksum=0x02.

Large chunks of data are sent in {} packets : {data [,data..], checksum}. For example the write program command:
MPLAB: <184300005DC000000120FF>, len 24, cmd=0x43 (WRITEPROGRAM), program size= 0x05DC, start address=0x0120, checksum = 0xFF
ICD: [0843CF], len 8, cmd 0x43, checksum 0xCF
MPLAB: {FF3FFF3F.....3C} , data data data.., checksum-0x3C
ICD: [0843CF], ack cmd 0x43 again



I used the information from this thread to connect my existing program with the real ICD USB Driver. I got so far that I receive the GETFIRMWAREVERSION command, but my response seems not to be understood. It sends the same command again and then hangs (?) .
Back to top
albert22



Joined: 20 Jul 2004
Posts: 95
Helped: 3


Post 06 Apr 2006 23:17 Re: Project to replace CY7C64613 in the ICD2

Quote:
It can be exported from USBMon to HTML format, but I have only serial ICD2.

Zedman may be you can open the log files that had been posted here and export them to html. No need to have the USB ICD2.

Brem,
Great. I was just at the routines that handle connection with the ICD once the OS is loaded. Thanks.
Back to top
Zedman



Joined: 13 Oct 2003
Posts: 294
Helped: 2


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

Hey Brem!

nice to see you here!
Thanks for the infos on the protocol.

Quote:

I used the information from this thread to connect my existing program with the real ICD USB Driver. I got so far that I receive the GETFIRMWAREVERSION command, but my response seems not to be understood. It sends the same command again and then hangs (?) .



would you please explain this a bit more? What's that mean you response is not understood? You got an usb packet starting with 0x01, replied it succesfully and just the content was wrong?

Please explain this, because as you can see from the thread Iam stuck with the replying. Crying or Very sad

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

Iam now trying an alternate way to **** with the replying thing, I wrote a small program in Delphi to test if the reply works, getting the same results yet but it's faster than switching the programmer in mplab while using it too.

here is the proc (values got from disassembled/debugged MPLBCOMM.dll):
Code:

procedure TForm1.Button1Click(Sender: TObject);
var hnd: cardinal;
InBuffer: array[0..3] of byte;
OutBuffer: array[0..17] of byte;
bytesReturned: cardinal;
a: integer;
begin
hnd:=CreateFile('\\.\i3kmc-0', $C0000000, 2, 0, 3, 0, 0);

if hnd <> INVALID_HANDLE_VALUE then
begin
// get usb descriptor
for a:=0 to 3 do InBuffer[a]:=0; for a:=0 to 17 do OutBuffer[a]:=0; bytesReturned:=0;
if (DeviceIoControl(hnd, $0A4122404, @InBuffer, 4, @OutBuffer, $12, bytesReturned, nil)) then
begin
Memo1.Lines.Add('1 OK');
end;

// write command
for a:=0 to 3 do InBuffer[a]:=0; for a:=0 to 17 do OutBuffer[a]:=0; bytesReturned:=0;
OutBuffer[0]:=3;
if (DeviceIoControl(hnd, $0A4122451, @InBuffer, 4, @OutBuffer, $12, bytesReturned, nil)) then
begin
Memo1.Lines.Add('2 OK');
end;

// get status
for a:=0 to 3 do InBuffer[a]:=0; for a:=0 to 17 do OutBuffer[a]:=0; bytesReturned:=0;
InBuffer[0]:=7;
if (DeviceIoControl(hnd, $0A412244E, @InBuffer, 4, @OutBuffer, 0, bytesReturned, nil)) then
begin
Memo1.Lines.Add('3 OK');
end;
Memo1.Lines.Add('- done.');
end;
end;



the 3rd DeviceIOControl returns failed.

I can't even remeber how my wife look like... Neutral
Back to top
Brem



Joined: 06 Apr 2006
Posts: 36


Post 07 Apr 2006 0:31 Re: Project to replace CY7C64613 in the ICD2

Hi Zedman,

Besides some recognizable data like the 'Z', the 'U' and <0801C9>, I receive packets I don't understand. They are all 18 bytes long, 1st char is 0x00,0x01 or 0x02, 2nd char seems to be some kind of seq.nr, 3rd byte a length.

First packet received is:
HOST->DEV: 02 C1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
I reply with 8 x 0
DEV->HOST: 00 00 00 00 00 00 00 00 00
Second packet received is:
HOST->DEV: 01 C2 01 00 00 00 00 00 00 00 C9 00 00 00 00 00 00 00
Here the first byte 0x01 seems to mean "data incoming", 3rd bytes undicates length. I dont send reply on this packet.
Next rcvd is a singe 'Z', I reply with the hardware version
HOST->DEV: 5A
DEV->HOST: 01 01 03
Next again a packet starting with 0x02, same reply
HOST->DEV: 02 C1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
DEV->HOST: 00 00 00 00 00 00 00 00 00
then a "data incoming" packet folowed by a 'U', connect to OS
HOST-DEV: 01 C2 01 00 00 00 00 00 00 00 C9 00 00 00 00 00 00 00
HOST-DEV: 55
Now MPLAB seems to want 8 bytes so I send a 'u' with 7 zeros
DEV->HOST: 75 00 00 00 00 00 00 00

Now comes the tricky part. A packet starting with 0x02 means MPLAB wants data on EP2.
HOST-DEV: 02 C3 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
DEV-HOST (on EP2!!): 75
DEV-HOST (on EP1): 00 00 00 00 00 00 00 00

And here I get stuck at the moment. MPLAB sends a <0801C9> but my response is ignored. I think from here on the ICD should send all data over EP2.
Back to top
Zedman



Joined: 13 Oct 2003
Posts: 294
Helped: 2


Post 07 Apr 2006 10:51 Project to replace CY7C64613 in the ICD2

Brem,

Iam a lamer. PLEASE TELL ME how do you reply?
How the hell does it work for you?
What am I missing?
If I set up the shared ram with 0s set the Cnt to 8 and set UOWN bit to SIE, MPLAB wont send me ANY more data, and UOWN never get cleared!!
But from this I see u managed it to work!!!

HELP ME PLEASE!

Code:

HOST->DEV: 02 C1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
I reply with 8 x 0
DEV->HOST: 00 00 00 00 00 00 00 00 00
Back to top
Post new topic Reply to topic EDAboard.com Forum Index -> Microcontrollers -> Project to replace CY7C64613 in the ICD2
Page 3 of 61 All times are GMT 2 Hours
Goto page Previous 1 , 2 , 3 , 4 ... 59 , 60 , 61 Next
Jump to page:


Abuse || Administrator || Moderators || Support us || sitemap
topic RSS