Nội quy | bài viết gần đây | Chủ đề RSS | T́m kiếm | Đăng kư | Đăng nhập

Dự án để thay thế CY7C64613 trong ICD2


Goto trang trước 1, 2, 3, 4 ... 59, 60, 61 Tiếp
Bước tới trang:

Post new topic Reply to topic Diễn đàn EDAboard.com Index -> Microcontrollers -> dự án để thay thế CY7C64613 trong ICD2
Phiên bản tiếng Ả Rập Tiếng Bun-ga-ri phiên bản Catalan phiên bản Phiên bản Tiếng Séc Tiếng Đan Mạch phiên bản Tiếng Đức phiên bản Tiếng Hy Lạp phiên bản Tiếng Anh phiên bản Phiên bản Tiếng Tây Ban Nha Phiên bản Tiếng Phần Lan Tiếng Pháp phiên bản Tiếng Hin-ddi phiên bản Croatia phiên bản Indonesia phiên bản Phiên bản Tiếng Ư Tiếng Do Thái Phiên bản Tiếng Nhật Bản Tiếng Hàn Quốc phiên bản Tiếng Lát-vi phiên bản Tiếng Lát-vi-a phiên bản Tiếng Hà Lan phiên bản Tiếng Na Uy phiên bản Phiên bản Tiếng Ba Lan Tiếng Bồ Đào Nha phiên bản Romanian bản Tiếng Nga phiên bản Phiên bản Tiếng Slovak Tiếng Việt phiên bản Vietnamese phiên bản Phiên bản tiếng Thụy Điển Phiên bản Tiếng Tagalog Tiếng U-crai-na phiên bản Bản tiếng Việt Tiếng Trung Quốc phiên bản
Tác giả Thông báo
Kripton2035



Tham gia: 19 tháng bảy 2001
Bài viết: 482
Giúp đỡ: 15
Địa điểm: Trái Đất


Post 03 tháng tư 2006 8:28 Re: Dự án để thay thế CY7C64613 trong ICD2

predrage đă viết:
Những người bạn của tôi đă không thành công trong lập tŕnh ICD2_4550_BOOT_0180.BIN vào 4550. I'v
cố gắng để mở thùng winpic 800 tập tin với phần mềm nhưng nó không thành công. Tôi tryed để mở nó với tùy chọn "tất cả các tập tin" trong "tập tin loại" v́ không có hỗ trợ trực tiếp cho các tập tin thùng. ICprog đă có hỗ trợ (thùng, để mở tập tin), nhưng không thể chương tŕnh 4550. Trong thực tế, không có điện thoại 4550 trong danh sách. Tôi nên làm ǵ tiếp theo? Any suggestions? Tôi chỉ là người mới bắt đầu học, nhưng tôi đă tốt đẹp sẽ đến giúp đỡ.
Xin lỗi về Tiếng Anh của tôi xấu.


đổi tên. BIN đến. hex và winpic sẽ mở nó!
đôi khi rất nhiều các tập tin được. BIN trong thực tế là intel. hex!
để đảm bảo, mở tập tin với notepad, nếu nó chứa các ḍng bắt đầu bằng ":" sau đó đổi tên vào. hex và mở nó bằng winpic .. nếu nó có rác, sau đó một bin2hex phải được sử dụng để mở nó.
Trở về đầu trang
narccizzo



Tham gia: 20 tháng một 2006
Bài viết: 173
Giúp đỡ: 4
Địa điểm: PATZCUARO, Michoacán, MEHICO


Post 03 tháng tư 2006 9:42 Re: Dự án để thay thế CY7C64613 trong ICD2

Đây là hai tác phẩm thùng chuyển đổi thành hex, tôi đă mở cửa trong những thùng các tệp tin với các
ic-xin phần mềm sau đó tôi lưu các tập tin trong định dạng hex, nếu bạn hăy xem những tập tin này để bạn đọc có thể nh́n thấy một chuỗi "Microchip Tecnology ICD2 USB thiết bị icd2 usb" trong địa chỉ 0x0ee7 cho boot.hex tập tin và cùng một chuỗi trong 0x0b8e cho
os.hex tập tin, i dont có một disassembler để t́m hiểu chi tiết hơn tác phẩm này, nhưng cái ǵ tôi nói rằng cả hai đều là những tập tin mà chúng tôi cần.

BR
Narccizzo


Xin lỗi, nhưng bạn cần đăng nhập để xem tập tin đính kèm này

Trở về đầu trang
Jay.slovak



Tham gia: 23 tháng ba 2006
Bài viết: 11


Post 03 tháng tư 2006 11:17 Re: Dự án để thay thế CY7C64613 trong ICD2

narccizzo đă viết:
Đây là hai tác phẩm thùng chuyển đổi thành hex, tôi đă mở cửa trong những thùng các tệp tin với các
ic-xin phần mềm sau đó tôi lưu các tập tin trong định dạng hex, nếu bạn hăy xem những tập tin này để bạn đọc có thể nh́n thấy một chuỗi "Microchip Tecnology ICD2 USB thiết bị icd2 usb" trong địa chỉ 0x0ee7 cho boot.hex tập tin và cùng một chuỗi trong 0x0b8e cho
os.hex tập tin, i dont có một disassembler để t́m hiểu chi tiết hơn tác phẩm này, nhưng cái ǵ tôi nói rằng cả hai đều là những tập tin mà chúng tôi cần.

BR
Narccizzo


Bạn có chắc chắn rằng bạn đă chuyển đổi các tập tin một cách chính xác? Nếu tôi nhập khẩu chúng vào MPLAB, ma không làm cho tinh thần, tất cả chỉ là nó hiện ra thông qua các chương tŕnh và bộ nhớ làm NOPs. Chẳng có ǵ hữu ích đang xảy ra ở cả hai hệ điều hành khởi động và HEXs. Ngay cả bit cấu h́nh khác nhau trong cả hai tập tin!
Trở về đầu trang
Zedman



Tham gia: 13 tháng mười 2003
Bài viết: 294
Giúp đỡ: 2


Post 03 tháng tư 2006 11:19 Dự án để thay thế CY7C64613 trong ICD2

Albert,

hạt nhân của tŕnh điều khiển (s) mong đợi, các Cypress sẽ kết nối khác nhau trên một vid / PID firt khi kết nối, và sau khi nạp sys tải về FW của nó, nó sẽ nối lại như một vid / PID nên sys khác đối với nó. Chúng ta có, để thực hiện chỉ có điều thứ hai.
Iam @ làm việc v́ vậy tôi không thể làm bất cứ điều ǵ ở đây mong đợi cứng thinkin ' Rolling Eyes ...
Trở về đầu trang
Silvio



Tham gia: 31 tháng mười hai 2001
Bài viết: 800
Giúp đỡ: 90


Post 03 tháng tư 2006 11:31 Re: Dự án để thay thế CY7C64613 trong ICD2
tags: mplab thức icd2 Cypress disassembler disassembler Cypress

Hi Zedman,

it's a must to understand what's under cover. CY hex tập tin liên quan đến nó không phải chỉ là một vấn đề tốt disassembler mà biết Cypress chip, nhưng đọc sách của 436 trang EZ-USB FX TechRefManual nó phải là để hiểu những ǵ dưới nắp lại.
Và tôi không tin rằng bạn đă thời gian cho việc này. Tuy nhiên, nếu bạn không quen thuộc với 8051 opcodes, phân tích cú pháp mă sẽ mất một thời gian. (Tôi biết bạn đang familar PIC với những người thân)
with appropiate values from CY7C64613 registers 0x7800-0x7FFF but you'll definitely end up turning the pages of TechRefManual looking for definitions. Tôi có thể thay thế tất cả các sự xuất hiện của MOV DPTR, # LXXXX thích hợp với các giá trị từ CY7C64613 đăng kư 0x7800-0x7FFF, nhưng bạn sẽ chắc chắn sẽ biến các trang web của TechRefManual t́m định nghĩa.
Bên cạnh đó nó sẽ một số khó khăn như thế nào để phân định bit tên được thiết lập hoặc rơ ràng trong các chương tŕnh miễn là chúng không phải là ánh xạ trong không gian SFR (mà kết thúc bằng 0 hoặc 8).
with MOV DPTR, #EP0CS but it's difficult to say SETB HSNAK due to the above reasons. Rất dễ để thay thế MOV DPTR, # L7FB4 với MOV DPTR, # EP0CS nhưng khó để nói SETB HSNAK do những lư do nêu trên.

and EP0STAL L which are affected in the bellow code at 0x03E2. Hăy lấy ví dụ bit HSNAKEP0STAL L mà bị ảnh hưởng trong bellow mă tại 0x03E2.
Mă số:

L03E2: LCALL L0FBE
JNC L03EE
MOV DPTR, # L7FB4
MOVX A, @ DPTR
ORL A, # 01h; một số loại SETB EP0STALL
MOVX @ DPTR, A
L03EE: MOV DPTR, # L7FB4
MOVX A, @ DPTR
ORL A, # 02h; một số loại SETB HSNAK
MOVX @ DPTR, A
Ret

L0FBE: SETB C
Ret


Hăy cho ví dụ (CP_1.asm) mă bắt đầu với ḍng bù 0x0100 (subroutine gọi là một từ 0x05FA), là người đầu tiên được sử dụng ḍng mă immediatelly bellow vector gián đoạn bảng
Hiện 0x7FE9 bộ nhớ RAM, bạn có thể t́m thấy 2. Byte của 8 bytes USB Setup gói dữ liệu (xem trang 215 table9-1),nghĩa là bRequest lĩnh vực (xem bảng 9-2).


Mă số:

L0100: MOV DPTR, # L7FE9
MOVX A, @ DPTR
JNZ L0109
LJMP L029B; nếu bRequest = GetStatus chuyển đến 0x029B
L0109: DEC Đáp
JNZ L010F
LJMP L0317; nếu bRequest = Clear tính, chuyển đến 0x0317
L010F: ADD A, # 0FEh
JNZ L0116
LJMP L038E; nếu bRequest = Đặt tính, chuyển đến 0x038E
L0116: ADD A, # 0FBh
JNZ L011D
LJMP L0295; nếu bRequest = Nhận cấu h́nh, chuyển đến 0x0295
L011D: DEC Đáp
JNZ L0123
LJMP L028F, nếu bRequest = Thiết lập cấu h́nh, chuyển đến 0x028F
L0123: DEC Đáp
JNZ L0129
LJMP L0283; nếu bRequest = Nhận giao, chuyển đến 0x0283
L0129: DEC Đáp
JNZ L012F
LJMP L0289; nếu bRequest = Thiết lập giao diện, chuyển đến 0x0289
L012F: ADD A, # 05h
JZ L0136
LJMP L03E2; bRequest = nếu không có trường hợp nào ở trên, sau đó thiết lập bit HSNAK
; và EP0STALL của EP0CS & kiểm soát t́nh trạng đăng kư và
; sau đó Ret tại 0x05FD
;
L0136: LCALL L0F7A; nếu bRequest = Nhận Descriptor, LCALL 0x0F7A nơi
JC L013E; mang bit, được thiết lập theo mặc định, do đó, chuyển đến 0x013E
LJMP L03EE; tại 0x0F7A nếu mang theo sẽ là 0 theo mặc định, đặt bit, HSNAK
; của EP0CS & kiểm soát t́nh trạng đăng kư và Ret tại 0x05FD
;
L013E: MOV DPTR, # L7FEB; bởi v́ đây là một bRequest Nhận Descriptor
MOVX A, @ DPTR; v́ vậy, hăy kiểm tra các lĩnh vực WValueH USB Setup gói
ADD A, # 0FEh
JZ L015F, nếu wValueH đă được 0x02 chuyển đến 0x015F
DEC Đáp
JZ L0190; wValueH nếu 0x03 đă được chuyển đến 0x0190
ADD A, # 02h
JZ L0150; wValueH nếu 0x01 đă được chuyển đến 0x0150
LJMP L0279; nếu wValueh là khác nhau hoặc là 0x01 hoặc 0x02 hoặc 0x03 sau đó đặt
; bit HSNAK và EP0STALL của EP0CS đăng kư và Ret tại 0x05FD
;
L0150: MOV A, 0Ch; wValueH bởi v́ ở đây đă được 0x01, do đó, cổng USB tải SUDPTR toàn cầu đăng kư
MOV DPTR, # L7FD4; với giá trị 0x0C0D, sau đó thiết lập bit, HSNAK của EP0CS và Ret tại 0x05FD
MOVX @ DPTR, A
MOV A, 0Dh
MOV DPTR, # L7FD5
MOVX @ DPTR, A
LJMP L03EE
L015F: MOV DPTR, # L7FEA; nh́n ngay bây giờ tại wValueL lĩnh vực cổng USB Setup gói
;
;
;
;
và vv ...................


port2: Microchip MPLAB ICD2 Fw client Hoặc tra cứu bảng này tại bù 0x0622 mà phù hợp với Kripton2035 port2: Microchip MPLAB ICD2 Fw khách hàng


Mă số:

Bảng 5-9. Mặc định thiết bị USB Descriptor

Lĩnh vực giá trị gia tăng bộ nhớ RAM Chênh giờ Mô tả

0622 0x12 0 bLength Length này Descriptor = 18 byte
0623 0x01 1 bDescriptorType = Descriptor Loại thiết bị
0624 0x00 2 bcdUSB (L) USB Đặc Phiên bản 1/10 (L)
0625 0x01 3 bcdUSB (H) USB Đặc Phiên bản 1/10 (H)
0626 0xFF 4 thiết bị bDeviceClass Class (FF-cụ thể là người bán hàng)
0627 0xFF 5 bDeviceSubClass thiết bị tiểu-Class (FF-cụ thể là người bán hàng)
0628 0xFF 6 bDeviceProtocol thiết bị Protocol (FF-cụ thể là người bán hàng)
0629 0x40 7 bMaxPacketSize0 Kích thước tối đa cho gói EP0 = 64 byte
062A 0xD8 8 idVendor (L) ID người bán hàng (L) Microchip Công nghệ = 04D8H
062B 0x04 9 idVendor (H) ID người bán hàng (H)
062C 0x01 10 idProduct (L) phẩm Mă sản phẩm (L) ICD2 = 8001H
062D 0x80 11 idProduct (H) phẩm Mă sản phẩm (H)
062E 0x03 12 bcdDevice (L) các thiết bị số (BCD, L)
062F 0x00 13 bcdDevice (H) các thiết bị số (BCD, H)
0630 0x00 14 Hăng sản xuất iManufacturer Index String = Không có
0631 0x00 15 sản phẩm iProduct Index String = Không có
0632 0x00 16 iSerialNumber Index tiếp Serial Số String = Không có
0633 0x01 17 bNumConfigurations Số Configurations trong giao diện này = 1

Bảng 5-10. USB mặc định cấu h́nh Descriptor

Lĩnh vực giá trị gia tăng bộ nhớ RAM Chênh giờ Mô tả

0634 0x09 0 bLength Length này Descriptor = 9 byte
0635 0x02 1 bDescriptorType Descriptor Loại = Cấu h́nh
0636 0x74 2 wTotalLength (L) Tổng số Dài (L) Bao gồm các giao diện và Endpoint Descriptors = 116
0637 0x00 3 wTotalLength (H) Tổng số Dài (H)
0638 0x01 4 bNumInterfaces Số Interfaces trong cấu h́nh này
0639 0x01 5 bConfigurationValue Cấu h́nh giá trị sử dụng của Set_Configuration Yêu cầu cấu h́nh này để Chọn
063A 0x00 6 iConfiguration Index of String Mô tả Cấu h́nh này = Không có
063B 0x80 7 bmAttributes thuộc tính - Bus-Powered, Không có Wakeup
063C 0x4B 8 MaxPower lực tối đa - 150 mA

Bảng 5-11. USB Giao diện mặc định 0, Alternate Thiết 0 Descriptor

Lĩnh vực giá trị gia tăng bộ nhớ RAM Chênh giờ Mô tả

063D 0x09 0 bLength Độ dài của giao diện Descriptor
063E 0x04 1 bDescriptorType Descriptor Loại = Giao diện
063F 0x00 2 bInterfaceNumber Zero-Index dựa trên các giao diện này = 0
0640 0x00 3 bAlternateSetting Alternate Thiết Giá trị = 0
0641 0x0E 4 bNumEndpoints Số Endpoints trong giao diện này (Không phải tại EPO) = 14
0642 0xFF 5 bInterfaceClass Giao diện Class = người bán hàng cụ thể
0643 0xFF 6 bInterfaceSubClass Giao diện tiểu học = người bán hàng cụ thể
0644 0xFF 7 bInterfaceProtocol giao thức = người bán hàng cụ thể
0645 0x00 8 iInterface Index để String Descriptor cho các giao diện này = Không có

Bảng 5-14. Giao diện mặc định 0, Alternate Thiết 1, hàng loạt Endpoint Descriptors

Lĩnh vực giá trị gia tăng bộ nhớ RAM Chênh giờ Mô tả

0646 0x07 0 Length bLength này Endpoint Descriptor
0647 0x05 1 bDescriptor Loại Descriptor Loại = Endpoint
0648 0x01 2 bEndpointAddress Endpoint Hướng (1 trong) và Địa chỉ = OUT1
0649 0x02 3 bmAttributes XFR Loại = số lượng lớn
064A 0x40 4 wMaxPacketSize (L) Kích thước tối đa gói = 64 Bytes
064B 0x00 5 wMaxPacketSize (H) Kích thước tối đa gói - cao
064C 0x01 6 bInterval phiếu gian trong mili giây

064D 0x07 0 bLength Length này Endpoint Descriptor
064E 0x05 1 bDescriptor Loại Descriptor Loại = Endpoint
064F 0x02 2 bEndpointAddress Endpoint Hướng (1 trong) và Địa chỉ = OUT2
0650 0x02 3 bmAttributes XFR Loại = số lượng lớn
0651 0x40 4 wMaxPacketSize (L) Kích thước tối đa gói = 64 Bytes
0652 0x00 5 wMaxPacketSize (H) Kích thước tối đa gói - cao
0653 0x01 6 bInterval phiếu gian trong mili giây

0654 0x07 0 Length bLength này Endpoint Descriptor
0655 0x05 1 bDescriptor Loại Descriptor Loại = Endpoint
0656 0x03 2 bEndpointAddress Endpoint Hướng (1 trong) và Địa chỉ = OUT3
0657 0x02 3 bmAttributes XFR Loại = số lượng lớn
0658 0x40 4 wMaxPacketSize (L) Kích thước tối đa gói = 64 Bytes
0659 0x00 5 wMaxPacketSize (H) Kích thước tối đa gói - cao
065A 0x01 6 bInterval phiếu gian trong mili giây

065B 0x07 0 bLength Length này Endpoint Descriptor
065C 0x05 1 bDescriptor Loại Descriptor Loại = Endpoint
065D 0x04 2 bEndpointAddress Endpoint Hướng (1 trong) và Địa chỉ = OUT4
065E 0x02 3 bmAttributes XFR Loại = số lượng lớn
065F 0x40 4 wMaxPacketSize (L) Kích thước tối đa gói = 64 Bytes
0660 0x00 5 wMaxPacketSize (H) Kích thước tối đa gói - cao
0661 0x01 6 bInterval phiếu gian trong mili giây

0662 0x07 0 Length bLength này Endpoint Descriptor
0663 0x05 1 bDescriptor Loại Descriptor Loại = Endpoint
0664 0x05 2 bEndpointAddress Endpoint Hướng (1 trong) và Địa chỉ = OUT5
0665 0x02 3 bmAttributes XFR Loại = số lượng lớn
0666 0x40 4 wMaxPacketSize (L) Kích thước tối đa gói = 64 Bytes
0667 0x00 5 wMaxPacketSize (H) Kích thước tối đa gói - cao
0668 0x01 6 bInterval phiếu gian trong mili giây

0669 0x07 0 Length bLength này Endpoint Descriptor
066A 0x05 1 bDescriptor Loại Descriptor Loại = Endpoint
066B 0x06 2 bEndpointAddress Endpoint Hướng (1 trong) và Địa chỉ = OUT6
066C 0x02 3 bmAttributes XFR Loại = số lượng lớn
066D 0x40 4 wMaxPacketSize (L) Kích thước tối đa gói = 64 Bytes
066E 0x00 5 wMaxPacketSize (H) Kích thước tối đa gói - cao
066F 0x01 6 bInterval phiếu gian trong mili giây

0670 0x07 0 Length bLength này Endpoint Descriptor
0671 0x05 1 bDescriptor Loại Descriptor Loại = Endpoint
0672 0x07 2 bEndpointAddress Endpoint Hướng (1 trong) và Địa chỉ = OUT7
0673 0x02 3 bmAttributes XFR Loại = số lượng lớn
0674 0x40 4 wMaxPacketSize (L) Kích thước tối đa gói = 64 Bytes
0675 0x00 5 wMaxPacketSize (H) Kích thước tối đa gói - cao
0676 0x01 6 bInterval phiếu gian trong mili giây

Lĩnh vực giá trị gia tăng bộ nhớ RAM Chênh giờ Mô tả

0677 0x07 0 Length bLength này Endpoint Descriptor
0678 0x05 1 bDescriptor Loại Descriptor Loại = Endpoint
0679 0x81 2 bEndpointAddress Endpoint Hướng (1 trong) và Địa chỉ = IN1
067A 0x02 3 bmAttributes XFR Loại = số lượng lớn
067B 0x40 4 wMaxPacketSize (L) Kích thước tối đa gói = 64 Bytes
067C 0x00 5 wMaxPacketSize (H) Kích thước tối đa gói - cao
067D 0x01 6 bInterval phiếu gian trong mili giây

067E 0x07 0 bLength Length này Endpoint Descriptor
067F 0x05 1 bDescriptor Loại Descriptor Loại = Endpoint
0680 0x82 2 bEndpointAddress Endpoint Hướng (1 trong) và Địa chỉ = IN2
0681 0x02 3 bmAttributes XFR Loại = số lượng lớn
0682 0x40 4 wMaxPacketSize (L) Kích thước tối đa gói = 64 Bytes
0683 0x00 5 wMaxPacketSize (H) Kích thước tối đa gói - cao
0684 0x01 6 bInterval phiếu gian trong mili giây

0685 0x07 0 Length bLength này Endpoint Descriptor
0686 0x05 1 bDescriptor Loại Descriptor Loại = Endpoint
0687 0x83 2 bEndpointAddress Endpoint Hướng (1 trong) và Địa chỉ = IN3
0688 0x02 3 bmAttributes XFR Loại = số lượng lớn
0689 0x40 4 wMaxPacketSize (L) Kích thước tối đa gói = 64 Bytes
068A 0x00 5 wMaxPacketSize (H) Kích thước tối đa gói - cao
068B 0x01 6 bInterval phiếu gian trong mili giây

068C 0x07 0 bLength Length này Endpoint Descriptor
068D 0x05 1 bDescriptor Loại Descriptor Loại = Endpoint
068E 0x84 2 bEndpointAddress Endpoint Hướng (1 trong) và Địa chỉ = IN4
068F 0x02 3 bmAttributes XFR Loại = số lượng lớn
0690 0x40 4 wMaxPacketSize (L) Kích thước tối đa gói = 64 Bytes
0691 0x00 5 wMaxPacketSize (H) Kích thước tối đa gói - cao
0692 0x01 6 bInterval phiếu gian trong mili giây

0693 0x07 0 Length bLength này Endpoint Descriptor
0694 0x05 1 bDescriptor Loại Descriptor Loại = Endpoint
0695 0x85 2 bEndpointAddress Endpoint Hướng (1 trong) và Địa chỉ = IN5
0696 0x02 3 bmAttributes XFR Loại = số lượng lớn
0697 0x40 4 wMaxPacketSize (L) Kích thước tối đa gói = 64 Bytes
0698 0x00 5 wMaxPacketSize (H) Kích thước tối đa gói - cao
0699 0x01 6 bInterval phiếu gian trong mili giây

069A 0x07 0 bLength Length này Endpoint Descriptor
069B 0x05 1 bDescriptor Loại Descriptor Loại = Endpoint
069C 0x86 2 bEndpointAddress Endpoint Hướng (1 trong) và Địa chỉ = IN6
069D 0x02 3 bmAttributes XFR Loại = số lượng lớn
069E 0x40 4 wMaxPacketSize (L) Kích thước tối đa gói = 64 Bytes
069F 0x00 5 wMaxPacketSize (H) Kích thước tối đa gói - cao
06A0 0x01 6 bInterval phiếu gian trong mili giây

06A1 0x07 0 bLength Length này Endpoint Descriptor
06A2 0x05 1 bDescriptor Loại Descriptor Loại = Endpoint
06A3 0x87 2 bEndpointAddress Endpoint Hướng (1 trong) và Địa chỉ = IN7
06A4 0x02 3 bmAttributes XFR Loại = số lượng lớn
06A5 0x40 4 wMaxPacketSize (L) Kích thước tối đa gói = 64 Bytes
06A6 0x00 5 wMaxPacketSize (H) Kích thước tối đa gói - cao
06A7 0x01 6 bInterval phiếu gian trong mili giây

mà sau đó sẽ theo sau unicode h́nh thức không kết thúc chuỗi
"ICD2 USB Microchip Công nghệ thiết bị"



Tuy nhiên nếu bạn gặp khó khăn với 4550 thùng, tôi có thể cố gắng giúp đỡ bằng cách thêm các ư kiến trong CY asm tập tin.
Trở về đầu trang
Zedman



Tham gia: 13 tháng mười 2003
Bài viết: 294
Giúp đỡ: 2


Post 03 tháng tư 2006 17:10 Re: Dự án để thay thế CY7C64613 trong ICD2
tags: icd2.dll

Hi Silvio,

thanks for the infos, Long thời gian cách đây tôi đă có một thùng để phân tích cú pháp tập tin đến từ một eprom chip. Tôi không thậm chí không có những xử lư các loại h́nh và cũng không phải mạch. Nhưng tôi đă phải t́m cách xử lư với một thẻ nhớ, và dữ liệu của nó.
Tôi giả định nó là một loại chip 8051 và đă cố gắng rất nhiều disassemblers, và kết thúc với một 80C542 (i cant nhớ mà nó đă được một cách chính xác) Tôi figured nó ra khỏi cổng số điện thoại và làm thế nào để mă đề cá nhân với cổng pins.
Nhưng mất 2 tuần làm việc ngày đêm Neutral cho tôi, rất nhiều đọc / gỡ lỗi / học tập.
Đó là lư do tại sao tôi muốn có một assembler những ǵ có đủ khả năng để làm những việc mà bạn đề cập đến thay v́ tôi ... Rất Happy
Cảm ơn một lần nữa Silvio.

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

Iam bắt đầu tin rằng tất cả các bạn, theo các tác phẩm thùng. Tôi đă làm một nghiên cứu về ICD2 dll và phát hiện ra rằng các cuộc gọi GETUSBDESCRIPTOR và kiểm tra số điện thoại trong descriptor và nếu nó phù hợp với phiên bản mới hơn ICD2 hơn tôi đăng nhập của tôi 4550's descriptor hơn hiện một cuộc gọi send4550image!
Và cũng có descriptors trong thùng các tập tin giống nhau vào một trong những Kripton tải lên.
Một trong những điều tôi không hiểu rằng là lư do tại sao mà họ đă cung cấp ảnh khởi động?
Và tại sao ICD2.dll cố gắng để tải tập tin này? Nếu tôi nhận được nhà, tôi sẽ cố gắng thiết lập của tôi descriptors cho phù hợp với một trong những Tôi được t́m thấy trong các thùng và sẽ thử MPLAB về nó.

Tôi nghĩ rằng chúng tôi có nhận được gần gũi hơn! Mát mẻ

46 phút sau khi được thêm vào:

Và có một điều kỳ diệu trong lần đầu tiên khởi động btyes của thùng: MCHP (MiCrocHiP?)
Tôi đă t́m kiếm nó, nếu nó sau này (sau khi nạp) thay thế những thực tế với mục điểm hoặc Goto, TP, nhưng trong ICD2.dll không.

Được thêm vào sau 3 giờ 34 phút:

Xem xét điều này:

Tôi đă làm những ǵ tôi đă nói trước khi, chỉ cần cài số phiên bản mới hơn cho nó tiêu MPLAB và cố gắng gửi cho các hệ điều hành! (Tất nhiên tôi FW không phải là một bộ nạp khởi động)

Mă số:

MPLAB ICD 2 Sẵn sàng
Kết nối với MPLAB ICD 2
ICD0289: Không thể tái ICD2 USB hệ điều hành chương tŕnh phần vững.
ICD0021: Không thể kết nối với MPLAB ICD 2
MPLAB ICD 2 Sẵn sàng


Nào đó các bộ tải khởi động nên hoạt động được, tôi sẽ cố gắng làm một cái ǵ đó vào ban đêm.
Trở về đầu trang
narccizzo



Tham gia: 20 tháng một 2006
Bài viết: 173
Giúp đỡ: 4
Địa điểm: PATZCUARO, Michoacán, MEHICO


Post 03 tháng tư 2006 18:43 Dự án để thay thế CY7C64613 trong ICD2

Hi JaySlovak
Không, Im không chắc chắn, tôi chỉ mở cửa trong những thùng và lưu nó trong định dạng hex. Buồn
Trở về đầu trang
Jay.slovak



Tham gia: 23 tháng ba 2006
Bài viết: 11


Post 03 tháng tư 2006 20:45 Re: Dự án để thay thế CY7C64613 trong ICD2

narccizzo đă viết:
Hi JaySlovak
Không, Im không chắc chắn, tôi chỉ mở cửa trong những thùng và lưu nó trong định dạng hex. Buồn


Vâng, nó là lạ như là chuỗi kư tự được đọc, chỉ cần mă hiện không có ǵ Buồn
Trở về đầu trang
Zedman



Tham gia: 13 tháng mười 2003
Bài viết: 294
Giúp đỡ: 2


Post 03 tháng tư 2006 22:25 Re: Dự án để thay thế CY7C64613 trong ICD2
tags: icd2.dll

Tin tốt sau 2 giờ gỡ lỗi,

ICD2.dll hiện sử dụng cả hai thùng tập tin. Các hệ điều hành muốn tập tin được tải xuống chỉ ICD2s sản phẩm mới với số sê-ri.
NHƯNG khi bạn chỉnh sửa các phiên bản id trong tên tập tin của OS.bin * _FFFF.bin hơn để nó bắt đầu kiểm tra các bộ tải khởi động phiên bản xem xét:

Mă số:

Kết nối với MPLAB ICD 2
ICDWarn0062: Các cổng USB khởi động phần vững của ICD2 là hoạt động và cung cấp các thông tin liên lạc với ICD2. Đây là phần vững, out-of-ngày và cần được cập nhật. Nó có thể không được cập nhật, trong khi hoạt động. Tuy nhiên, bạn có thể tiếp tục hoạt động với các phần vững khởi động hiện tại, nếu bạn chọn để làm như thế. Bạn có muốn tiếp tục không?


Nếu tôi bấm CÓ đây hơn nó cố gắng kết nối với ICD2 chính nó, và đông đặc (Tôi chỉ có những 4550 cài đặt nào được nêu ra).
Nếu tôi không bấm hơn có vẻ như nó cố gắng cập nhật nó nhưng chúng tôi CẦN ở đây một bộ tải khởi động như thế này, do đó, thông báo này xuất hiện:

Mă số:

ICD0288: Không thể tái khởi động chương tŕnh ICD2 USB phần vững.
ICD0021: Không thể kết nối với MPLAB ICD 2
MPLAB ICD 2 Sẵn sàng


Okay guys, nghĩ suy nghĩ suy nghĩ CÁCH chúng tôi có thể sử dụng thùng để có được một bộ tải khởi động vào làm việc một 4550!!!

2 phút sau khi được thêm vào:

Tôi cũng biên soạn các mẫu bộ tải khởi động với đúng VID / PID nhưng có cùng một kết quả như với tôi 4550.

16 phút sau khi được thêm vào:

Nó có thể được, chúng tôi có thể không nhận được ban đầu ban đầu ban đầu:) một phần của bộ tải khởi động có tải bộ tải khởi động đầu tiên mà tải các os ...

5 phút sau khi được thêm vào:

Đây chính là thời gian rkodaira nên biến ḿnh 4550 cho các cấp độ 0 bộ tải khởi động. (với một hy vọng rằng không phải là bảo vệ ...)

Rkodaira CHÚNG TÔI CẦN BẠN Cười
Trở về đầu trang
albert22



Tham gia: 20 tháng bảy 2004
Bài viết: 95
Giúp: 3


Post 03 tháng tư 2006 22:46 Re: Dự án để thay thế CY7C64613 trong ICD2

Tôi đă được phân tích một in rằng tôi đă cho tôi những BL010101. và t́m thấy một số điều.
Nó dường như chấp nhận lệnh đến 5, hoặc từ các PSP hoặc USART.
Thực hiện Xoá 0x55 mă bắt đầu từ 0x0010.
0x56 Nạp hex (này dường như có thêm nhiều subcommands)
0x5a gửi dữ liệu, 0x01 0x01 0x03 (Phiên bản của BL?)
Hai lệnh khác chỉ cần bật Lỗi và Bận LEDs và treo cứng trong một inffinite loop.

Dưới đây là những thói quen có liên quan đến những ǵ tôi gọi là "nạp hex" lệnh:

Trong khác thường xuyên gửi các BL sau chuỗi 0x5b, "0810C9", 0x5d
Khác gửi câu trả lời embeded vào sau chuỗi 0x5b, "0A000", U, 0x31, U, 0x5d. (U, nơi có vẻ là 0x31, 0x34, 0x36 và 0x37).

I didnt có nhiều thời gian để tiếp tục với những phân tích. Tôi không thấy USB giám sát đă được đăng lên, v́ Im tại một cyber. Nhưng tôi nghĩ rằng dữ liệu này phải được đóng gói vào các giao tiếp USB
Trở về đầu trang
Zedman



Tham gia: 13 tháng mười 2003
Bài viết: 294
Giúp đỡ: 2


Post 03 tháng tư 2006 23:30 Dự án để thay thế CY7C64613 trong ICD2

Albert,

Tôi kiểm tra nối tiếp comm so với các cổng USB, cổng USB sử dụng các wrapper trough những điều nối tiếp.
Có vẻ như nó sử dụng để kiểm soát cảng EP1 (nó OUT và IN) và EP2 như cổng dữ liệu, chỉ có tại (ICD-> pc).
Trở về đầu trang
albert22



Tham gia: 20 tháng bảy 2004
Bài viết: 95
Giúp: 3


Post 05 tháng tư 2006 6:39 Re: Dự án để thay thế CY7C64613 trong ICD2

Dưới đây là tôi tiến với BL
Không có như vậy subcommands. Các lệnh tải hex hex chỉ mất các hồ sơ và ghi dữ liệu vào bộ nhớ chương tŕnh 2 byte tại một thời điểm nào. Nó kiểm tra các lỗi khác nhau bao gồm cả các địa chỉ. Ấp. để tránh bị bước vào các chương tŕnh BL. Điều này khẳng định rằng các BL allways là cư dân tại 877.
Các [0A000 ", U, 0x31, U]. (Trang 2. U là lần đầu tiên U 1) là không được nh́n thấy bởi v́ nó là một báo cáo lỗi. Lỗi bao gồm: định dạng xấu, checksum, phạm vi và địa chỉ xấu EEPROM viết lỗi .
Những thói quen Waits cho 16 kư tự bắt đầu với một 0x3c ('<') và kết thúc bằng một 0x3e ('>'). 16 kư tự tiêu đề này chứa các địa chỉ, chiều dài và checksum cho dữ liệu được viết bằng ASCII.
Nếu tiêu đề là đúng Ấp. BL với các câu trả lời "[0810C9]"
Các dữ liệu cames sau khi 0x7b
Điều này dường như được định dạng khác nhau từ một định dạng intel hex.

Zedman.
Bạn có thể được công nhận này giống như trong RS232
Ngày mai tôi wil được ở nhà tôi và có thể cài đặt hdd để kiểm tra xem các bản ghi và xem nếu tôi có thể giúp đỡ.
Trở về đầu trang
Zedman



Tham gia: 13 tháng mười 2003
Bài viết: 294
Giúp đỡ: 2


Post 05 tháng tư 2006 12:17 Re: Dự án để thay thế CY7C64613 trong ICD2
tags: mplab thức icd2 icd2.dll icd2w2k.sys mplbcomm.dll

Tôi đang mắc kẹt với cổng USB điều này. Và tôi buồn.

Tôi thật sự không biết phải làm ǵ tiếp theo. Tôi dành nhiều thời gian gỡ lỗi các icd2.dll.

Nhưng vấn đề là: Tôi không thể gửi, ngay cả một byte trở về MPLAB.

Tôi sẽ giải thích về những ǵ tôi được t́m thấy đến nay, mặc dù không có ai thực sự quan tâm trong (chỉ muốn grab những điều đă hoàn thành). (Ngoại trừ: Albert, Kripton, rkodaira, Silvio và guys trong bai)

V́ vậy, MPLAB giao tiếp với các ICD2 theo cách này:

[MPLAB -> ICD2.dll -> MPLBCOMM.dll -> icd2w2k.sys ->] --- [ICD2 điện thoại]

Nếu bạn chọn loại h́nh kết nối USB, nó sẽ yêu cầu thiết bị descriptor từ ICD2 và kiểm tra các sản phẩm từ phiên bản, nếu nó 0x0003 hơn đó là một Cypress dựa ICD2, nếu nó 0x0010 hơn đó là dựa trên một trong những 4550. Nếu 0x0010 được t́m thấy trên báo rằng những ǵ tôi đă được gửi trước khi các hệ điều hành trong ICD2 phải được nâng cấp. Nó thú vị rằng, nếu các phiên bản (0100) trong tên tập tin của OS.bin được sửa đổi để FFFF hơn skips bước này và kiểm tra các bộ tải khởi động phiên bản. Ở đây tôi đă phải đắp vá ICD2.dll, để làm cho nó cố gắng để kiểm tra các phiên bản của tập tin BL.bin quá, nó hardcoded mà thậm chí nó đặt để FFFF nó wont cố gắng để nâng cấp, đó là lư do tại sao tôi patched nó (thiết lập hardcoded FFFF vào thấp hơn) để bây giờ những ǵ tôi nói trước khi quá mentoined: các phiên bản BL là quá cũ, nhưng nó không thể được nâng cấp, trong khi đó hoạt động.

Okay. Tôi làm một ít ăn xin từ các mẫu bộ tải khởi động, với đúng descriptors và cố gắng liên lạc với MPLAB để decrypt các giao thức và các BL thi đua trong giai đoạn mới 4550 ICD2.
ICD2 rằng Kripton sử dụng, (phiên bản Cypress) bộ 7 OUT / TRONG Endpoints, nhưng theo các bản ghi nó chỉ sử dụng cho EP1 IN / OUT và cho EP2 TRONG. (OUT có nghĩa là máy PC-> Device)
Có vẻ như nó gửi usb lệnh và dữ liệu cụ thể thông qua EP1 ra, và quay lại EP1 trong ngày, và gửi byte readed từ ICD2 của 877 riêng biệt thông qua endpoint EP2 in

MPLAB Khi cố gắng để gửi OS.bin năm để nâng cấp các FW os nó getUSBdescriptor gọi một vấn đề hạt nhân để lái xe, và gửi ra một byte 0x12 dài bằng cách sử dụng lệnh DeviceIOControl lệnh. Tôi debugged, nó đến thành công đến 4550.
MPLAB hơn các vấn đề một GetStatus gọi điện, và có vẻ như cuộc gọi từ các tham số mà nó tiêu 0x08 byte dữ liệu trở lại.
Tôi thiết lập của tôi với 8 trâu ḅ byte, và đặt quyền sở hữu để Sie. Nhưng nó không bao giờ gửi mà quay lại 8 byte (nó không xuất hiện trong USBMon). Chỉ cần Waits.
Có thể có nhiều điều.
Có thể làm ǵ sai, TP với các thiết lập của 4550, nhưng tôi đă thử nó với một progs và nó hoạt động, có thể gửi byte quay trở lại.
Tôi biết rằng các máy chủ phải gửi và trong lệnh cho các thiết bị gửi những ǵ nó muốn.
Nhưng khi tôi debugged MBLBCOMM, tôi thấy rằng các DeviceIOControl lệnh không thành công!
Tôi tought rằng có thể một số thông minh được xây dựng vào. Sys nó xuống tập tin và các gói, v́ nó sai nội dung, nhưng tôi nghĩ rằng nó phải là một nhiệm vụ cấp cao hơn.
Khi tôi nhận được nhà tôi sẽ kiểm tra Getlasterror của giá trị.


Bất cứ ai có ư kiến như thế nào tôi có thể nh́n thấy nếu có một trong gói được gửi ra, hoặc làm thế nào tôi có thể thực hiện?
Trở về đầu trang
Kripton2035



Tham gia: 19 tháng bảy 2001
Bài viết: 482
Giúp đỡ: 15
Địa điểm: Trái Đất


Post 05 tháng tư 2006 16:59 Dự án để thay thế CY7C64613 trong ICD2

có thể được, bạn nên một kết nối 877 đến cảng của PSP 4550 để xem những ǵ sắp tới thông qua, và các chương tŕnh 877 với các bộ tải khởi động, chúng tôi có? có thể là các byte bạn đang chờ đợi đến từ các EP2 và v́ vậy 877?

Bạn muốn gửi cho tôi vào một tập tin nhật kư của một chính xác điều kiện? theo con đường của nó chắc chắn bạn cần một rokaida đăng nhập của ḿnh với 4550 icd2 ..

PS: Tôi không quan tâm trong dự án .. Cười Tôi chỉ curious! Tôi đă có một usb icd2! Cười
Trở về đầu trang
Zedman



Tham gia: 13 tháng mười 2003
Bài viết: 294
Giúp đỡ: 2


Post 05 tháng tư 2006 20:08 Dự án để thay thế CY7C64613 trong ICD2

Thanks Kripton,

Tôi sẽ thông báo cho bạn khi tôi cần thêm biến Cười , It's a bit, phức tạp hơn so vừa qua để thông qua các byte 877 và trở lại, nó có một giao thức wrapper trên đó.
Những ǵ bạn nói là rất hữu ích, nhưng rkodeira wont sacrify thương hiệu của ḿnh mới ICD2 ... Cười Nếu anh xin, hơn với các biến của nó quá tŕnh cập nhật của hệ điều hành sẽ xác định các giao thức cũng ...
Trở về đầu trang
Kripton2035



Tham gia: 19 tháng bảy 2001
Bài viết: 482
Giúp đỡ: 15
Địa điểm: Trái Đất


Post 05 tháng tư 2006 22:09 Dự án để thay thế CY7C64613 trong ICD2

Tôi cũng không nghĩ rằng ông cần phải sacrify của ḿnh icd2!! chỉ một số dumps với usbmon như tôi đă .. icd2 là mong muốn của tôi vẫn làm việc!!!
Trở về đầu trang
albert22



Tham gia: 20 tháng bảy 2004
Bài viết: 95
Giúp: 3


Post 05 tháng tư 2006 22:16 Re: Dự án để thay thế CY7C64613 trong ICD2
tags: icd2 nạp hex lệnh

Tôi không thể cài đặt theo dơi HHD để xem các bản ghi v́ tôi chỉ có w98 ở nhà.
Bạn có thể xuất khẩu một biến của các hệ điều hành để tải về một. Txt, cho tôi được không?
-------
Làm thế nào các CY resets the 877?
Có một tín hiệu (pin 43) để các cơ sở có Q1 Collector là MCLR. Nhưng điều này đi đến một nối gọi là ăn xin. Bây giờ tôi nhận ra rằng tín hiệu này sẽ đi đến 877 quá.
Chúng tôi sẽ cần phải biết đó USB resets các lệnh 877. Có thể nó sẽ là một trong những kiểm soát endpoints?
Tôi không biết được những chức năng này xin nối. nhưng thêm endpoints có thể liên quan đến nó.
----------
Một trong những hệ điều hành nạp vào ICD2 có vẻ là: ICD01020405.hex tôi đă cố gắng để disassemby nó nhưng tôi không thể có được sự thay thế cho các thế disassembler hex địa chỉ với tên của đăng kư. Nó sẽ mất nhiều thời gian hơn để suy ra nó hoạt động như thế nào.
Một thực tế là các mă bắt đầu từ 0x0010. Hăy nhớ rằng các cuộc gọi BL địa chỉ này với thực hiện lệnh.

Các phiên bản báo cáo của BL mplab là 01.01.01.00 này đi khá tốt với các lệnh BL mà câu trả lời 01,01,01,03
---------
Không có DPot (MCP41xxxx) trong Braxin ICD. Làm thế nào để họ đặt Vpp?
Hầu hết các bắt chước có một cố định Vpp. Điều này có nghĩa là Braxin ICD chỉ là một chi phí thấp và không phải clone mới ICD2? Tôi không nghĩ rằng đi microchip cho một cố định vpp. Nếu c̣n có một phương pháp kiểm tra, kiểm soát các vpp, khác với DPot sẽ cần thay đổi phần vững của các hệ điều hành ICD. Các hệ điều hành cũ sẽ không làm việc trong các mới. Đó có thể là nguyên nhân mà dll là kiểm tra các phiên bản.
Trở về đầu trang
Zedman



Tham gia: 13 tháng mười 2003
Bài viết: 294
Giúp đỡ: 2


Post 05 tháng tư 2006 22:32 Dự án để thay thế CY7C64613 trong ICD2
tags: mplab thức icd2 icd2w2k.sys icd2w2k tải bộ tải khởi động 4550 viết icd2w2k.sys tải về tải về icd2w2k

Tôi không nghĩ rằng chúng ta phải đối phó với bất cứ điều ǵ liên quan đến các mạch hoặc các giao thức hoặc kết nối giữa 877 và 4550 nào được nêu ra. Tôi nghĩ rằng chúng tôi cần là các văn bản trong 4550 thùng được cung cấp với MPLAB.
Chúng tôi phải viết một bộ tải khởi động tương thích với icd2w2k.sys, để lấy các OS.bin tải về, và sau khi chúng tôi có thể scracth đứng đầu của chúng tôi như thế nào 877 được kết nối.

5 phút sau khi được thêm vào:

Trong ICD2br sử dụng một loại chip được tạo ra những Vpp. Rkodaira mentoined, hăy kiểm tra xem các bài viết trước đây.
Trở về đầu trang
Silvio



Tham gia: 31 tháng mười hai 2001
Bài viết: 800
Giúp đỡ: 90


Post 06 tháng tư 2006 2:36 Re: Dự án để thay thế CY7C64613 trong ICD2
tags: icd2w2k.sys icd2w2k tải bộ tải khởi động 4550 viết icd2w2k.sys tải về tải về icd2w2k

Zedman đă viết:

Chúng tôi phải viết một bộ tải khởi động tương thích với icd2w2k.sys, để lấy các OS.bin tải về.


Có, đây là lư do chính mà tôi cho rằng, dissasembling CY FW của useless miễn là chúng tôi có hệ điều hành và BL thùng tập tin được cung cấp bởi Microchip. Để bắt đầu từ đầu cho các mă hóa 4550 và mô phỏng các CY FW sẽ cần rất nhiều thời gian và vô.
Đó là tôi đánh giá cao nỗ lực của zedman.

Tuy nhiên đôi khi tôi không thể giúp bản thân ḿnh để yêu cầu này stupid câu hỏi: Nếu BL không thể được nâng cấp, trong khi nó hoạt động, những ǵ đă được Microchip của ICD2 thiết kế cho các phương pháp tiếp cận nâng cấp? Trong lập tŕnh song song trước khi soldering 4550? Hoặc thông qua ICSP sạch thùng với một h́nh ảnh khởi động sau khi tải về, khối xoá hoàn toàn?
Nếu rkodaira sẽ thấy rằng CPB và EBTRB bit được xoá Rất khóc hay buồn , Sau đó làm thế nào có thể được nạp OS.bin trong 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 ?
Trở về đầu trang
albert22



Joined: 20 Jul 2004
Posts: 95
Giúp: 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]
Trở về đầu trang
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.
Trở về đầu trang
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.
Trở về đầu trang
albert22



Joined: 20 Jul 2004
Posts: 95
Giúp: 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
Trở về đầu trang
Kripton2035



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


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

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


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

zedman needs a log of a real 4550... my cypress clone doesnt give all he needs...
Trở về đầu trang
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.
Trở về đầu trang
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 (?) .
Trở về đầu trang
albert22



Joined: 20 Jul 2004
Posts: 95
Giúp: 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.
Trở về đầu trang
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
Trở về đầu trang
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.
Trở về đầu trang
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
Trở về đầu trang
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 giờ
Goto page Previous 1 , 2 , 3 , 4 ... 59 , 60 , 61 Next
Jump to page:


Vi phạm | | Quản trị viên | | Điêu phôi viên | | Hỗ trợ chúng tôi | | sitemap
Chủ đề RSS