PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Tiny Bootloader (http://www.picvietnam.com/forum/forumdisplay.php?f=67)
-   -   Cơ bản về bootloader & tiny bootloader (http://www.picvietnam.com/forum/showthread.php?t=130)

anhphuong23 18-07-2007 03:14 PM

Vậy thật ra nạp theo bootloader và nạp theo ICSP có gì khác nhau không ?

Cũng dùng 2 chân RB6-RB7 , cũng có nối chân Reset . Vẫn không cần tháo chip ra , vẫn Detec được chip .

Chắc khác nhau ở chổ là ICSP cần có thêm 1 mạch nạp riêng biệt . Nạp xong lại phải nhớ reset lại PIC .

namqn 18-07-2007 07:01 PM

Trích:

Nguyên văn bởi anhphuong23 (Post 10154)
Vậy thật ra nạp theo bootloader và nạp theo ICSP có gì khác nhau không ?

Cũng dùng 2 chân RB6-RB7 , cũng có nối chân Reset . Vẫn không cần tháo chip ra , vẫn Detec được chip .

Chắc khác nhau ở chổ là ICSP cần có thêm 1 mạch nạp riêng biệt . Nạp xong lại phải nhớ reset lại PIC .

Nạp bằng bootloader và nạp bằng ICSP khác nhau:

- Mọi chip đều hỗ trợ nạp bằng ICSP, trong khi chỉ có 1 số chip có khả năng tự ghi vào flash mới có thể nạp bằng bootloader.
- Nạp bằng bootloader thì cần có 1 firmware nho nhỏ nằm trong chip để giao tiếp với host nhằm lấy các thông tin cần nạp vào chip.
- Nạp bằng ICSP thì nhất định phải dùng các chân dành riêng cho giao tiếp đó (thường là RB6, RB7, MCLR, và có thể là PGM), còn nạp bằng bootloader thì có thể dùng hầu như bất kỳ chân nào, và có thể dùng nhiều giao tiếp khác nhau (RS-232, I2C, hay USB) tùy theo firmware.

Thân,

plain 28-07-2007 08:45 AM

tôi vừa mới ráp thử một bộ tiny bootloader theo bài hướng dẫn của bạn Nguyễn Trung Chính và phát hiện ra một chuyện lạ:
Khi dùng reset bằng đường RST, lẽ ra đường reset này phải xuống thấp rồi trở lên cao, sau đó mới tiến hành check PIC thì nó lại giữ luôn đường này ở mức thấp trong suốt quá trình check PIC, điều này gây ra lỗi không tìm thấy PIC. Chuyển sang reset bằng tay thì hắn chạy tốt. Tôi nghĩ đây chắc chắn là lỗi của chương trình trên máy tính rồi.
Không biết có bạn nào biết cách khắc phục không?

pictai 25-09-2007 10:26 PM

so sanh voi tiny
 
1 Attachment(s)
cai nay cung kha hay so voi tiny

PSman 08-11-2007 12:02 PM

Em làm theo hướng dẫn với 16F877A, sửa asm và biên dịch bằng MPLAB OK, nạp source .hex vào 16F877A cũng OK. Build mạch phần cứng cũng OK, đã kiểm tra lại tất cả. Vậy mà vẫn gặp tình trạng k detect được PIC.

Baud 115200 / 19200 đều không được. Bỏ Reset bằng phần cứng đi dùng Reset tay cũng không đc.

Có bác nào gặp như em không xin chỉ giáo kinh nghiệm với.

À, đoạn code mẫu trong TUT của bác NTC up lên đây, copy vào MPLAB dịch báo lỗi. Xài asm trong zip load về từ TinyBootLd thì OK.

Bác Nam có hex mẫu cho 16F877A đang chạy tốt up lên cho em với, để em chắc chắn rằng k phải do asm -> hex bị sai.

Em dùng thạch anh 20MHz, baud 115200 cho nhanh. Cám ơn bác trước !

namqn 08-11-2007 05:08 PM

1 Attachment(s)
Với thạch anh 20 MHz, không nên dùng baud rate 115200 bps. Tôi đã chọn baud rate tốt nhất có thể có là 38400 bps. Từ cấu hình trong bootloader của tôi:

Code:

        __CONFIG  _HS_OSC & _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _LVP_OFF & _DEBUG_OFF
Thân,

PSman 09-11-2007 12:03 PM

2 Attachment(s)
Hic, em load của bác Nam về rồi mà vẫn k chạy được. Bác Nam và mọi người check dùm em xem mạch nguyên lí và mạch in có lỗi gì không ? Vd thừa thiếu chân nào, chứ board thì em đã test kĩ, k dính chân nào cả.

namqn 09-11-2007 04:43 PM

Trích:

Nguyên văn bởi PSman (Post 12740)
Hic, em load của bác Nam về rồi mà vẫn k chạy được. Bác Nam và mọi người check dùm em xem mạch nguyên lí và mạch in có lỗi gì không ? Vd thừa thiếu chân nào, chứ board thì em đã test kĩ, k dính chân nào cả.

Trong sơ đồ nguyên lý của bạn, chân 9 của MAX232 không nối vào chân 1 của PIC (tên các net khác nhau). Bạn cũng nên cho biết bạn thiết lập phần mềm trên host PC ra sao (đã có trường hợp thiết lập không tốt trên host PC dẫn đến bootloader không làm việc tốt).

Thân,

PSman 09-11-2007 10:42 PM

1 Attachment(s)
Cám ơn bác Nam đã trả lời sớm. ;)
Em đánh nhầm net thôi, đó là 2 mạch xuất 2 layout khác nhau. Em dùng cáp để nối. Mạch Max232 gắn dính vào COM nhỏ xíu, qua cáp nối vào J18 BootLoader của mạch PIC, nên chân 9 Max vẫn nối chân 1 PIC. Mà em thử gỡ bỏ chân 1 để Reset bằng tay cũng không ăn thua.

Cổng COM 1 này em nạp firmware hex Bootloader cho PIC bằng JDM đã OK, sau đó chuyển PIC sang board test, chuyển cáp COM tương ứng.

Thiết lập Tiny của em đây. SearchDelay em để thử 11 vẫn k xong.
Bác Nam chẩn bệnh tiếp giúp em với.

namqn 09-11-2007 11:03 PM

Trích:

Nguyên văn bởi PSman (Post 12758)
...
Thiết lập Tiny của em đây. SearchDelay em để thử 11 vẫn k xong.
Bác Nam chẩn bệnh tiếp giúp em với.

Bạn thử làm như sau:

- Đặt Timeout(ms) là 100
- Đặt SearchDelay là 10
- Nhấn nút CheckPIC trên host PC, nhanh chóng nhấn nút reset trên mạch thử nghiệm của bạn.

Bạn kiểm tra khả năng làm việc của nút reset trên mạch thử nghiệm một cách độc lập trước nhé (để đảm bảo là bạn có thể reset mạch).

Thân,

PSman 10-11-2007 09:00 AM

1 Attachment(s)
Em đã làm như bác Nam chỉ.
Mạch test em sure là không có vấn đề gì. Nguồn/mass đã nối đủ vào 4 chân. Mạch Reset OK, test nút Reset thì nó chập chân 1 xuống mass. TX, RX thì nối vào TX/RX tương ứng của PIC.

Đo áp cũng như các dây tương ứng từ Max232 xuống board cũng thông tốt.

Vậy mà cũng không xong.

Chắc phải làm mạch Max232 mới, dù thấy nó chẳng có vấn đề gì cả.

Vạn sự khởi đầu nan
Gian nan bắt đầu nản ... ;)

PSman 10-11-2007 02:22 PM

3 Attachment(s)
Bác Nam,
Mạch chạy rồi bác ơi. Gặp phải cái lỗi thật buồn cười. Tất cả là do em và cả bác ... NTC nữa ;) khi làm mạch nguyên lý thì OK, nhưng chọn footprint cho đầu Dsub 9 chân có lẽ em chọn nhầm cổng đực, trong khi PCB muốn làm là cổng cái. 2 cái này chân đối xứng nhau. Làm mạch xong cứ thế cắm DSub vào. Thế là ngược mất. Chân 2/3/5/7 có đúng đâu mà đòi mạch chạy.

Em gỡ đầu COM ra, hàn ngược mặt mạch in. OK rồi bác ạ. Bây giờ thì nạp source 115200@20MHz, SearchDelay 5 lần nó cũng chạy tất.
Và phải bỏ chọn "RTS,DTR ON after open" thì mới nhận PIC được.

Cám ơn bác Nam nhiều.

Đây, mạch in của bác NTC post trong pdf của bác ấy. Em tự chạy layout xong thấy cũng gần giống thế này, so đi so lại yên tâm. Làm xong cắm đầu COM CÁI vào là thua ;)
Bạn nào đang làm gặp vấn đề này chú ý.

vuhoang8x 04-12-2007 08:14 AM

Cần giúp đỡ - Mạch nạp bootloader
 
1 Attachment(s)
Hi,
Minh mới làm quen vớp PIC. Mình vừa ráp xong cái bootloader nhưng sao nó lại không nhận ra PIC. giúp mình xem cái mạch chính xác không. Mình làm giống với mạch của bootloader nhưng bỏ đi phần reset manual không biết có ảnh hưởng gì không. Và phần giao tiếp MAX232 thấy hơi lạ với mạch của F. Chân số 2 , 6 nối với GND còn mạch của F thì chân 2 nối với Vcc và 6 nối GND. Ai giải thích giùm mình chỗ này với.

namqn 04-12-2007 07:43 PM

Trích:

Nguyên văn bởi vuhoang8x (Post 13234)
Hi,
Minh mới làm quen vớp PIC. Mình vừa ráp xong cái bootloader nhưng sao nó lại không nhận ra PIC. giúp mình xem cái mạch chính xác không. Mình làm giống với mạch của bootloader nhưng bỏ đi phần reset manual không biết có ảnh hưởng gì không. Và phần giao tiếp MAX232 thấy hơi lạ với mạch của F. Chân số 2 , 6 nối với GND còn mạch của F thì chân 2 nối với Vcc và 6 nối GND. Ai giải thích giùm mình chỗ này với.

Vì bạn mới làm quen với PIC nên tôi muốn làm rõ điều này: Bạn đã nắm được nguyên tắc làm việc và các yêu cầu đối với bootloader chưa?

Bạn nói làm giống với mạch bootloader, nhưng đó là bootloader của ai mới được (cho biết link đến mạch đó chẳng hạn)? Mạch của F mà bạn nói là mạch nào (cho biết link đến mạch đó chẳng hạn)?

Bạn có thể tham khảo cách dùng Tiny Bootloader, và một mạch reset mềm được Claudiu đề xuất ở đây:

http://www.etc.ugal.ro/cchiculita/so...nybldusage.htm

Thân,

KnowMore 25-12-2007 02:42 AM

Em hỏi câu này có thể hơi củ chuối:
Có trường hợp nào không thể xóa vùng Protected ROM?

Em định làm một mạch nạp để setup bootloader; sau đó chỉ cần cấp phát cho anh em TinyBld để nạp chíp. (Giải pháp kinh tế!?).
Thế nên em quan tâm việc sau khi protect vùng bootloader thì có thể xóa đi khi cần thiết không.
Tiện thể cho em hỏi luôn: tại sao thiên hạ ít dùng transistor thay MAX232 trong giao tiếp COM? Em thấy trong Tinybld vẫn thừa 1 chân ra của PC COM mà! Giá MAX232 là 11k thì phải, đắt cắt cổ!!! Nếu dùng transistor thì có thể lắp trong một số mạch lowcost.
Thanks!


Múi giờ GMT. Hiện tại là 10:36 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam