PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   PIC - Thiết kế và Ứng dụng (http://www.picvietnam.com/forum/forumdisplay.php?f=23)
-   -   Giao tiếp giữa hai con 16f877a qua max485 (http://www.picvietnam.com/forum/showthread.php?t=2428)

pictd03 27-05-2008 06:12 PM

Giao tiếp giữa hai con 16f877a qua max485
 
Mình đang làm mạch giao tiếp giữa hai con 16f877a qua max485, đã dùng thử một số sơ đồ trên mạng và các tài liệu khác nhưng vẫn không chạy.
Mục đích là gửi một gói dữ liệu từ con này qua con kia, con kia nhận được và sẽ trả lời là nhận được và gửi một gói dữ liệu trả về.Thực tế thì gửi trực tiếp giữa hai con thì kết quả báo đúng.Nhưng khi cho giao tiếp qua max485 (để truyền đi xa) thì hầu như không chạy.Mình củng đã thay đổi nhiều loại điện trở đầu cuối của max485 cho phù hợp với tổng trở của dây dẫn nhưng vẫn không được.
Bạn nào đã từng làm mạch này chạy rồi giúp mình với, hoặc đã từng biết qua mạch này củng được xin cho mình ý kiến, thanks!
đang cấn gấp

namqn 27-05-2008 06:37 PM

Trích:

Nguyên văn bởi pictd03 (Post 16553)
Mình đang làm mạch giao tiếp giữa hai con 16f877a qua max485, đã dùng thử một số sơ đồ trên mạng và các tài liệu khác nhưng vẫn không chạy.
Mục đích là gửi một gói dữ liệu từ con này qua con kia, con kia nhận được và sẽ trả lời là nhận được và gửi một gói dữ liệu trả về.Thực tế thì gửi trực tiếp giữa hai con thì kết quả báo đúng.Nhưng khi cho giao tiếp qua max485 (để truyền đi xa) thì hầu như không chạy.Mình củng đã thay đổi nhiều loại điện trở đầu cuối của max485 cho phù hợp với tổng trở của dây dẫn nhưng vẫn không được.
Bạn nào đã từng làm mạch này chạy rồi giúp mình với, hoặc đã từng biết qua mạch này củng được xin cho mình ý kiến, thanks!
đang cấn gấp

Bạn đã hỏi ở đây, và tôi cũng đã có ý kiến về việc bổ sung thông tin:
http://www.picvietnam.com/forum/showthread.php?p=16521

Bạn không đưa thêm thông tin (sơ đồ mạch) mà lại tạo ra luồng mới này, với cùng nội dung đã hỏi. Đề nghị bạn xem lại cách làm việc.

Thân,

pictd03 28-05-2008 05:32 PM

sorry,mình không thường xuyên up bài lên các forum nên chưa rành lắm, có gì chỉ bảo mình với.Mình sẽ up sơ đồ nguyên lý lên khi về nhà(hiện tại ko có ở nhà), anh em có gì giúp đỡ.Mình chỉ mới tìm hiểu PIC chủ yếu là tự vọc.

david 28-05-2008 09:15 PM

Giao tiếp giữa 2 con PIC theo RS485 không có vấn đề gì cả !
Vì bản chất vẫn là giao tiếp theo RS232 :
từ PIC1 đến MAX485_1 là RS232
từ MAX485_1 đến MAX485_2 là RS485
từ MAX485_2 đến PIC2 là RS232
Bạn không cần bận tâm đến giữa 2 con MAX nó trao đổi thế nào
Với PIC bạn xuất và nhận theo RS232 bình thường
Chỉ có lưu ý là bạn nối 2 chân RE và DE lại để điều khiển : nhận dữ liệu thì cho chân điều khiển bằng 0 và ngược lại

rongluavt7 20-05-2010 07:51 AM

Bạn nào cho mình biết Max485 ban ở đâu được không? Mình đi hỏi khắp cả chợ trời và chợ nhật tảo rồi mà chẳng có, Ai biết thì giúp mình nhé. gửi mail cho mình vào địa chỉ
khongquannhandanvietnnam@gmail.com nhé, cám ơn nhiều.

sit_alone76816 30-05-2010 01:10 PM

uhm Max485 thì bạn kiếm hổng thấy đâu, có thì cũng có đó, tại bạn chưa hỏi đúng chỗ thôi, tốt nhất bạn hỏi con SN75176 con này tương đương với Max485 mà.

Mình chưa hiểu cách mắc giữa con Max485 với PIC như thế nào, mình có mắc thử, nhưng chăng thấy tín hiệu gì hết. Ai có thi share cho mình với nha. Cảm ơn nhiều !

nhanh0112 01-06-2010 05:32 PM

@rongluavt7:Max485 thì ra 17a Hàn Thuyên (Hà nội). Tui vẫn mua ở đó mà.
@sit_alone76816: Chân RO(1) nối vào TX của PIC, Chân DI(4) nối vào TX của PIC, Chân DE(3) và RE(2) nối chung với nhau và nối vào 1 PIN in/out nào đó để điều khiển truyền nhận. Khi phát thì cho chân điều khiển lên 1, khi thu thì cho về 0.
Tham khảo:
http://www.sharps.lv/Informacija/PIC...iles/rs485.gif

sit_alone76816 02-06-2010 01:33 AM

Chân thành cảm ơn bạn nhanh0112, cái này mình tìm hoài mà hổng thấy, cảm ơn bạn đã share.
Cho mình hỏi thêm giả sử mình mắc cho con 89V51 thì cái chân DE của MAX485 mình cũng mắc vào chân R\D\ của 89V51 luôn hay là vào chân khác, mình thấy hình như là mắc vào chân INT1 của 89V51 thì phải ?

Thứ 2 : là mình muốn mắc thêm vài con PIC nữa thì con PIC kia cũng mắc như trên hả, có cần thay đổi gì không vậy ?

Mong được sự giúp đỡ !

nhanh0112 02-06-2010 10:50 AM

Trích:

Nguyên văn bởi sit_alone76816 (Post 36473)
Chân thành cảm ơn bạn nhanh0112, cái này mình tìm hoài mà hổng thấy, cảm ơn bạn đã share.
Cho mình hỏi thêm giả sử mình mắc cho con 89V51 thì cái chân DE của MAX485 mình cũng mắc vào chân R\D\ của 89V51 luôn hay là vào chân khác, mình thấy hình như là mắc vào chân INT1 của 89V51 thì phải ?

Thứ 2 : là mình muốn mắc thêm vài con PIC nữa thì con PIC kia cũng mắc như trên hả, có cần thay đổi gì không vậy ?

Mong được sự giúp đỡ !

Chân DE bạn mắc vào chân In/out bất kỳ thôi (chân trên port in/out). Trường hợp bạn lắp vào chân INT là khi bạn muốn nhận sự kiện (Module 485 khác gửi đến, khi nào nhận đc dữ liệu thì mới xử lý). Còn tất cả các module mắc song song với nhau vào chân AB thôi.

sit_alone76816 02-06-2010 11:31 PM

Thế vậy chân DE mắc vào chân bất kỳ làm gì vậy bạn, nếu mắc mà không xử lý gì thì mắc làm gì, mong bạn giải thích giùm !

nhanh0112 03-06-2010 12:00 AM

Trích:

Nguyên văn bởi sit_alone76816 (Post 36491)
Thế vậy chân DE mắc vào chân bất kỳ làm gì vậy bạn, nếu mắc mà không xử lý gì thì mắc làm gì, mong bạn giải thích giùm !

Như tui đã nói ở post #7 là: "Chân DE(3) và RE(2) nối chung với nhau và nối vào 1 PIN in/out nào đó để điều khiển truyền nhận. Khi phát thì cho chân điều khiển lên 1, khi thu thì cho về 0." RS458 chạy ở chế độ bán song công mà (half duplex - 1 thời điểm chỉ có thể hoặc là phát hoặc là nhận), nên việc chọn chế độ thu hay phát là cần thiết.
Tiện đây cũng xin đính chính lại cho post trên là chân này ko cần thiết phải lắp vào chân INT vì chân này là chân bị điều khiển, ngắt để bắt sự kiện chính là ngắt nối tiếp, sorry :)

sit_alone76816 04-06-2010 10:43 AM

Cảm ơn bạn, Vậy còn việc truyền với máy tính, với shematic ở trên mình có thể truyền qua máy tính tốt đẹp chứ phải không bạn, có cần làm gì nữa không nhỉ ?

nhanh0112 05-06-2010 10:55 AM

Trích:

Nguyên văn bởi sit_alone76816 (Post 36514)
Cảm ơn bạn, Vậy còn việc truyền với máy tính, với shematic ở trên mình có thể truyền qua máy tính tốt đẹp chứ phải không bạn, có cần làm gì nữa không nhỉ ?

Đúng vậy, phần cứng thì chỉ cần vậy là đủ. Việc còn lại là làm việc với phần mềm thôi. Tìm thêm cho bạn cái hình dùng tranzitor để tự chuyển mạch khi phát hay nhận (giao tiếp với máy tính chỉ cần TX,RX,GND). Việc này giúp bạn tiết kiếm dây (nếu cần)
http://2.bp.blogspot.com/_CvxN91KM3R..._converter.JPG
Như trong hình bạn có thể bỏ dây nối vào chân 12,13 của RS232 (kích điều khiển từ máy tính). Nếu không nó sẽ đc kích bởi chính chân gửi dữ liệu (chân 9).
Mạch đã chạy thử thực tế, chứ ko nói mò :D
Chúc thành công!

sit_alone76816 05-06-2010 12:55 PM

Trích:

Nguyên văn bởi nhanh0112 (Post 36539)
Đúng vậy, phần cứng thì chỉ cần vậy là đủ. Việc còn lại là làm việc với phần mềm thôi. Tìm thêm cho bạn cái hình dùng tranzitor để tự chuyển mạch khi phát hay nhận (giao tiếp với máy tính chỉ cần TX,RX,GND). Việc này giúp bạn tiết kiếm dây (nếu cần)
http://2.bp.blogspot.com/_CvxN91KM3R..._converter.JPG
Như trong hình bạn có thể bỏ dây nối vào chân 12,13 của RS232 (kích điều khiển từ máy tính). Nếu không nó sẽ đc kích bởi chính chân gửi dữ liệu (chân 9).
Mạch đã chạy thử thực tế, chứ ko nói mò :D
Chúc thành công!

Chân thành cảm ơn bạn !

Mà sao mình thất 2 mạch có vẻ khác nhau nhiều quá , như sau:

1. + Mạch dưới chân 1(max485) --> chân T2I(10) RS232 --> T2O(7) --> TX của cổng COM.
+ Mạch trên thì khác chân 1(max485) --> chân T2I(10) RS232 --> T2O(7) --> RX của cổng COM
1 cái thì vào TX, 1 cái thì vào RX như vậy là sao ?

Và chân 4 của max485 cũng thế, 2 hình ngược nhau ! Bạn giải thích giùm. Hoặc bạn có thể giải thích cách truyền nhận của Max485 được không vậy ?

nhanh0112 05-06-2010 05:29 PM

Trích:

Nguyên văn bởi sit_alone76816 (Post 36544)
Chân thành cảm ơn bạn !

Mà sao mình thất 2 mạch có vẻ khác nhau nhiều quá , như sau:

1. + Mạch dưới chân 1(max485) --> chân T2I(10) RS232 --> T2O(7) --> TX của cổng COM.
+ Mạch trên thì khác chân 1(max485) --> chân T2I(10) RS232 --> T2O(7) --> RX của cổng COM
1 cái thì vào TX, 1 cái thì vào RX như vậy là sao ?

Và chân 4 của max485 cũng thế, 2 hình ngược nhau ! Bạn giải thích giùm. Hoặc bạn có thể giải thích cách truyền nhận của Max485 được không vậy ?

Hic, so sánh 2 sơ đồ thì cách nối chân la lá như nhau mà bạn (chân 4 của max485 nối vào chân 9 của max232 đó thôi).Còn cổng CN1 trên sơ đồ là cổng kết nối của module convert 232-485 này, chứ ko phải cổng COM trên PC. Việc đấu nối thế nào thì tùy thuộc vào người thiết kế thôi (đấu cáp thẳng hoặc cáp chéo).
Miễn sao đảm bảo: chân 8 (hoặc chân 13) nối vào TX của PC (đây là chân RX của module); và chân 7 (hoặc chân 14) nối vào RX của PC (đây là chân TX của module). Bạn có thể xem datasheet của Max232 thể thấy rõ hơn.
Đại để của việc truyền dữ liệu trên 485 là so sánh sự chêch lệch điện áp trên 2 dây A và B. Nhưng mình ko cần quan tâm đến phần này, chỉ cần qua tâm là đưa dữ liệu vào TX con 1, và nhận lại toàn bộ dữ liệu trên RX con 2 là đc.


Múi giờ GMT. Hiện tại là 12:42 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