PDA

View Full Version : Vấn đề khi dùng chân nạp PGD,PGC chung với các chân giao tiếp!


chestnut
08-11-2009, 10:08 PM
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
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
Đ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ê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
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
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