Em làm bài tập giao tiếp giữa máy tính và pic ạ.
Hiện em đang triển khai như sau:
PC <=> Cáp usb-com <=> max232 <=> max485 <=> max485 <=> PIC
Em đã làm ra mạch ạ, tuy nhiên hiện tại thì tình trạng của mạch như sau:
Khi kết nối PC <=> Cáp usb-com <=> max232 <=> PIC thì mạch hoạt động bình thường, tín hiệu nhận chuẩn.
Khi kết nối thêm 2 con 485 thì tín hiệu bị đảo bít ạ. //Em đoán thế
Cụ thể khi em truyền chuỗi ký tự '97' với bản tin 8 bít :
[0 1001 1100 1] [0 1110 1100 1] (no parity 1 stop)
Bản tin bị đảo:
[1 0110 0011 0 1 0001 0011 0]
>> Start bit bị nhận sai
Thì lại nhận được 2 ký tự 'cd'
[1 0110 0011 0 1 >> Chính là bản tin ký tự 'c' : [0 1100 0110 1]
Mô phỏng proteus: tín hiệu qua 232 xem trên vitural terminal bị đảo bít. Em phải thêm 7400 vào để đảo bít lại.
Mạch thật:Tín hiệu qua 232 đến pic và ngược lại truyền nhận bình thường.
Mạch thật khi có 2 max485: tín hiệu bị đảo bít giống như mô phỏng.
Theo nghĩ em nghĩ thì về vật lý tín hiệu truyền như sau:
Bên phía com232 thì 3-12V là logic 0 đi qua max232e thì chuyển thành 0V logic 0 tức là về điện thế vật lý bị thay đổi tuy nhiên giá trị logic thì giữ nguyên.
(-3)>(-12V) logic 1 khi đi qua max232e thì chuyển thành 5V logic 1
Trên datasheet dấu đảo chỉ là ký hiệu về điện áp, về mặt logic thì giá trị vẫn không đổi.
Vậy có chỗ nào về proteus em hiểu sai ạ?
Thêm vào đó em đo chân RTS thì thấy mức của nó là 0 và 5V không theo mức 232. Hay do cáp của em có vấn đề ạ? Cáp em màu xanh dài khoảng 1m. E thấy driver ghi là PL2303.
Mong mọi người giúp đỡ ạ.
Hiện em đang triển khai như sau:
PC <=> Cáp usb-com <=> max232 <=> max485 <=> max485 <=> PIC
Em đã làm ra mạch ạ, tuy nhiên hiện tại thì tình trạng của mạch như sau:
Khi kết nối PC <=> Cáp usb-com <=> max232 <=> PIC thì mạch hoạt động bình thường, tín hiệu nhận chuẩn.
Khi kết nối thêm 2 con 485 thì tín hiệu bị đảo bít ạ. //Em đoán thế
Cụ thể khi em truyền chuỗi ký tự '97' với bản tin 8 bít :
[0 1001 1100 1] [0 1110 1100 1] (no parity 1 stop)
Bản tin bị đảo:
[1 0110 0011 0 1 0001 0011 0]
>> Start bit bị nhận sai
Thì lại nhận được 2 ký tự 'cd'
[1 0110 0011 0 1 >> Chính là bản tin ký tự 'c' : [0 1100 0110 1]
Mô phỏng proteus: tín hiệu qua 232 xem trên vitural terminal bị đảo bít. Em phải thêm 7400 vào để đảo bít lại.
Mạch thật:Tín hiệu qua 232 đến pic và ngược lại truyền nhận bình thường.
Mạch thật khi có 2 max485: tín hiệu bị đảo bít giống như mô phỏng.
Theo nghĩ em nghĩ thì về vật lý tín hiệu truyền như sau:
Bên phía com232 thì 3-12V là logic 0 đi qua max232e thì chuyển thành 0V logic 0 tức là về điện thế vật lý bị thay đổi tuy nhiên giá trị logic thì giữ nguyên.
(-3)>(-12V) logic 1 khi đi qua max232e thì chuyển thành 5V logic 1
Trên datasheet dấu đảo chỉ là ký hiệu về điện áp, về mặt logic thì giá trị vẫn không đổi.
Vậy có chỗ nào về proteus em hiểu sai ạ?
Thêm vào đó em đo chân RTS thì thấy mức của nó là 0 và 5V không theo mức 232. Hay do cáp của em có vấn đề ạ? Cáp em màu xanh dài khoảng 1m. E thấy driver ghi là PL2303.
Mong mọi người giúp đỡ ạ.
Comment