PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   dsPIC - Bộ điều khiển tín hiệu số 16-bit (http://www.picvietnam.com/forum/forumdisplay.php?f=29)
-   -   Vấn đề khi dùng chân nạp PGD,PGC chung với các chân giao tiếp! (http://www.picvietnam.com/forum/showthread.php?t=5262)

chestnut 08-11-2009 10:08 PM

Vấn đề khi dùng chân nạp PGD,PGC chung với các chân giao tiếp!
 
Hiện tại em đang gặp vấn đề như thế này, mặc dù đã giải quyết được vấn đề trên nhưng em đưa ra cho mọi nguời thảo luận thử.

Hệ thống của em gồm 1 con dsPIC2010 làm master và con PIC18F2550 dùng để giao tiếp USB. 2 con chíp giao tiếp với nhau theo chuẩn I2C. Nguồn cấp cho PIC18F là nguồn USB và nguồn cấp cho dsPIC là nguồn ngoài.

Vấn đề phát sinh là 2 chân SDA và SDL bên con dspic2010 trùng với 2 chân PGC và PDG. Lúc em detect chip bằng PICKIT2 thì nó báo không nhận được chip...Chip em sài là chip dán(mà em khò ra khò vô nhiều lần) nên em nghĩ chip hư, em bóc ra thay con chip khác nó vẫn vậy.

Thế là em dùng 1 con chip chân DIP ở ngoài em kết nối vào ICSP trên mạch(lúc đã khò con chip dán ra), vẫn không detect được chip.
Cuối cùng em cắt 2 dây SDA và SDL kết nối vào con PIC18F ra và dectect được chip. -> do bệnh chổ này....
Chẳng lẽ phải làm lại mạch mỗi lần nạp là ngắt kết nối vào con PIC18F? Nên em ngồi debug 1 hồi, rồi cấp nguồn cho con PIC18F thì cuối cùng lại nạp được con dsPIC.
Mấy bác có kinh nghiệm lý giải vấn đề này giúp.

namqn 08-11-2009 10:17 PM

Trích:

Nguyên văn bởi chestnut (Post 30993)
Hiện tại em đang gặp vấn đề như thế này, mặc dù đã giải quyết được vấn đề trên nhưng em đưa ra cho mọi nguời thảo luận thử.

Hệ thống của em gồm 1 con dsPIC2010 làm master và con PIC18F2550 dùng để giao tiếp USB. 2 con chíp giao tiếp với nhau theo chuẩn I2C. Nguồn cấp cho PIC18F là nguồn USB và nguồn cấp cho dsPIC là nguồn ngoài.

Vấn đề phát sinh là 2 chân SDA và SDL bên con dspic2010 trùng với 2 chân PGC và PDG. Lúc em detect chip bằng PICKIT2 thì nó báo không nhận được chip...Chip em sài là chip dán(mà em khò ra khò vô nhiều lần) nên em nghĩ chip hư, em bóc ra thay con chip khác nó vẫn vậy.

Thế là em dùng 1 con chip chân DIP ở ngoài em kết nối vào ICSP trên mạch(lúc đã khò con chip dán ra), vẫn không detect được chip.
Cuối cùng em cắt 2 dây SDA và SDL kết nối vào con PIC18F ra và dectect được chip. -> do bệnh chổ này....
Chẳng lẽ phải làm lại mạch mỗi lần nạp là ngắt kết nối vào con PIC18F? Nên em ngồi debug 1 hồi, rồi cấp nguồn cho con PIC18F thì cuối cùng lại nạp được con dsPIC.
Mấy bác có kinh nghiệm lý giải vấn đề này giúp.

Điện trở kéo lên ở 2 chân SDA và SCL bạn nối vào nguồn nào? Của PIC18F2550 hay của dsPIC30F2010?

Thân,

chestnut 08-11-2009 10:21 PM

Trích:

Nguyên văn bởi namqn (Post 30995)
Điện trở kéo lên ở 2 chân SDA và SCL bạn nối vào nguồn nào? Của PIC18F2550 hay của dsPIC30F2010?

Thân,

Điện trở em nói vào nguồn của dsPIC, nhưng lúc đầu nạp k được em đã tháo 2 con trở đó ra rồi mà vẫn không nạp được.

bien_van_khat 08-11-2009 10:26 PM

Trên chân SDA và SCL có 2 con điện trở pull-up, bus I2C yêu cầu khoảng 4k7 với 100KHz và khoảng 1k8 với 400KHz. Trong khi đó 2 chân PGD và PGC lại yêu cầu nếu có thì điện trở pull-up hoặc pull-down phải >10K (mình không nhớ tài liệu nào) để mạch nạp/debug bên ngoài có thể kéo được 2 chân này theo đúng dạng sóng yêu cầu.

----
Edited:
Trong khi nạp tín hiệu trên chân PGD có thể khiến con slave kéo đường SDA (PGC) làm PICkit2 ko hoạt động

chestnut 08-11-2009 10:28 PM

Trích:

Nguyên văn bởi bien_van_khat (Post 30997)
Trên chân SDA và SCL có 2 con điện trở pull-up, bus I2C yêu cầu khoảng 4k7 với 100KHz và khoảng 1k8 với 400KHz. Trong khi đó 2 chân PGD và PGC lại yêu cầu nếu có thì điện trở pull-up hoặc pull-down phải >10K (mình không nhớ tài liệu nào) để mạch nạp/debug bên ngoài có thể kéo được 2 chân này theo đúng dạng sóng yêu cầu.

Em đã tháo 2 con trở đó ra rồi vẫn không nạp được chip, lúc sau này em cấp nguồn vào cho con PIC18F2550 thì nạp được chip, lúc này em lại hàn 2 con trở 5k vào 2 chân SDA và SDL thì nạp chip bình thường.

namqn 11-11-2009 09:23 AM

Trích:

Nguyên văn bởi chestnut (Post 30998)
Em đã tháo 2 con trở đó ra rồi vẫn không nạp được chip, lúc sau này em cấp nguồn vào cho con PIC18F2550 thì nạp được chip, lúc này em lại hàn 2 con trở 5k vào 2 chân SDA và SDL thì nạp chip bình thường.

Vẫn còn có chỗ chưa rõ bạn ạ. Khi nạp bằng PICkit 2 thì bạn dùng PICkit 2 để cấp nguồn cho dsPIC, hay cấp nguồn ngoài cho dsPIC?

Thân,

npbaoduy 20-11-2009 09:49 PM

Vậy khi thiết kế mạch có ICSP có cần 2 điện trở kéo lên chỗ 2 chân PGC và PGD không? Trước giờ em không để ý cái này, nên có nhiều lúc báo lỗi không nạp được.
Còn một điều nữa, chân MCLR mình dùng điện trở kéo lên nguồn bao nhiêu là vừa? Em thường dùng 100k nhưng lại có ý kiến cho rằng 10k thì sẽ tốt hơn khi nạp bằng ICSP.
Em cám ơn.

chestnut 22-11-2009 12:45 PM

Trích:

Nguyên văn bởi namqn (Post 31094)
Vẫn còn có chỗ chưa rõ bạn ạ. Khi nạp bằng PICkit 2 thì bạn dùng PICkit 2 để cấp nguồn cho dsPIC, hay cấp nguồn ngoài cho dsPIC?

Thân,

Em đã thử dùng nguồn của PICKIT2 và cả nguồn ngoài cấp cho dsPIC luôn rồi ạ(lúc nạp chỉ là 1 trong 2 nguồn), trình trạng là nếu không cấp nguồn cho con PIC18F2550 thì không detect được con dsPIC.

thientaisodo 07-12-2009 04:47 PM

Mình cũng thiết kế 2 con PIC, dòng 18F, 2 con cùng dùng các chân PGD và PGC để điều khiển chung các relay (backup cho nhau), ở đầu cắm ICSP các chân PGC và PGD đều nối chung. Chỉ có 2 chân reset của 2 con PIC là khác nhau, nghĩa là mạch nạp ICSP cho cả 2 PIC chỉ có 6 chân, 2 chân reset cho 2 con, 4 chân còn lại là VCC, GND, PGD, PGC đều nối chung, kinh nghiệm của mình là khi nạp 1 con thì kéo thấp chân reset con còn lại đi, tức là disable con kia đi, lỡ con kia còn có chương trình đang hoạt động đưa ra tín hiệu gây nhiễu cho các chân của ICSP.
Bạn thử cách này đi


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

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