Xin chỉ chỗ sai trong chương trình test giao tiếp máy tính qua r485
Collapse
X
-
Uh ! phần vb nè phải điều khiển hướng truyền nên có lẽ code chỗ xử lý đó kô hợp lý. Bạn có đoạn code mẫu nào xử lý vấn đề đó không ! ví dụ mình truyền đi một frame (gồm một số byte cho slave) sau đó mình sẽ đợi bao lâu rồi mới cho 75176 trở về chế độ nhận.. nếu đợi thì phải dùng vòng lặp hay gì đó cách tính thời gian trong vb.?
-
bạn ko post mạch lên nên mình ko bit nó ra sao.
ở đây, trong phần mềm bạn set tốc độ baud là 9600 thì tốn khoảng 104us cho một bit truyền đi,mà ở trên,trong phần mềm cả bên vb lẫn bên avr, bạn vừa set chế độ truyền đi, đưa data ra bộ đệm, sau đó lại chuyển hướng sang chế độ nhận, thời gian này chắc nó chưa kịp gửi được bit start lên đường truyền đâu, như vậy data của bạn chỉ dừng lại ở chỗ con 75176 thôi. bạn check lại chỗ này nhé,
Leave a comment:
-
chỗ này mình nhầm.. cảm ơn bạn nhé/ thanks.Nguyên văn bởi xl09 Xem bài viếttrong này có sử dụng chúc năng bắt tay phần cứng đâu hả bạn.
ta vẫn có thể cho chân RTS lên 1 hay xuog 0 được mà.
mà khi bắt tay phần cứng thì ta cũng phải true hay false tín hiệu này mà.
Leave a comment:
-
uh trước đây mình làm cái quang báo 2 lớp bằng tay cũng phải test từ từ vì lỗi nhiều . giờ làm cái này do thời gian gấp quá mà lại phải cái chưa làm bao giờ (avr và vb) nên còn nhiều bỡ ngỡ được các bạn góp ý chỉ bảo thấy rất vui. nhiều khi mò cả ngày không giải quyết được gì cũng chán lắm.
con atmega8 của mình luôn ở trạng thái nhận dữ liệu nên mới để ở mức 0. nhưng trong cái vòng lặp while của void(main) mình cũng kiểm tra biến đếm mảng nhận và khi có dữ liệu nó sẽ chuyển về pc trong chương trình chuyển về này mình lại đưa chân 23 này lên mức cao mà.Chân 2-3 MAX485 bên phần avr bạn đấu chung và chỉ cho mức 0 thì code sẽ không trả ngược lại PC được
Leave a comment:
-
Bạn làm lại từ từ, đùng một cái quất vừa hardware software firmware như kia thì làm sao mò ra nổi.
-Trước hết nên dùng hyperterminal hoặc Codevision Terminal test trước với rs232
-Test tiếp tục với rs485. Chân 2-3 MAX485 bên phần avr bạn đấu chung và chỉ cho mức 0 thì code sẽ không trả ngược lại PC được vì tín hiệu chỉ có một chiều. Cũng vậy MAX485 bên phía PC bạn điều khiển chiều tín hiệu làm sao?
Code lên xuống ok nghĩa là không sai baudrate, chân cẳng đấu đúng đâu đó mới tiếp tục phát triển software.
Leave a comment:
-
trong này có sử dụng chúc năng bắt tay phần cứng đâu hả bạn.Nguyên văn bởi dt_love Xem bài viếtbạn cẩn thận với dòng này... lâu rồi mình ko đụng tới VB nên ko nhớ rõ. nhưng hình như cái này là để bật tính năng bắt tay phần cứng chứ ko phải chỉ đơn thuần là set chân IO đâu, bạn coi lại thử chỗ này nhé..
ta vẫn có thể cho chân RTS lên 1 hay xuog 0 được mà.
mà khi bắt tay phần cứng thì ta cũng phải true hay false tín hiệu này mà.
Leave a comment:
-
Dúng rùi.Nguyên văn bởi newbie_avr Xem bài viếtvậy sao mình truyền được bít 1 đi vậy bạn ? mình không hiểu chỗ nè.
còn phần AT truyền bít 1 lên như đã nói ở trên.khi xuất bít 1 ra TXD như vậy DE,DI có mức 0,75176 nhận dữ liệu hay ở trạng thái trở kháng cao,khi đó trên đường truyền luôn có mức logic 1(bạn dọc lại datasheet của 75176) như vậy bên nhận sẽ nhận được logic 1 mà bạn truyền.
khi kết thúc một byte truyền là bít stop(1) do vậy DI,DE bên truyền ở mức 0,luôn cp nhận dl.còn bên nhận luôn nhận logic 1.
như vậy trạng thái truyền nhận của 75176 luôn thay đổi theo bít dữ liệu bạn truyền là 1 or 0 nên trên đường truyền cũng có các mức logic thay đổi theo
Leave a comment:
-
bạn cẩn thận với dòng này... lâu rồi mình ko đụng tới VB nên ko nhớ rõ. nhưng hình như cái này là để bật tính năng bắt tay phần cứng chứ ko phải chỉ đơn thuần là set chân IO đâu, bạn coi lại thử chỗ này nhé..Nguyên văn bởi newbie_avr Xem bài viếtmục đích của tín hiệu RTC ( điều khiển từ giao diện vb) là để máy tính có thể sau khi gủi data sẽ trở về trạng thái nhận dữ liệu tức con 485 nối với max 232 rồi nối với máy tính phải được tích cực mức thấp . Mức thấp này mình dùng chân số 7 (RTS của cổng com để điều khiển).
Mscomm.Enable = True ==> ~ (10v) tại pin 7 qua 232 thành ~(0 v) == >(nếu kết hợp với 485 thêm thì sẽ có nghĩa là đưa máy tính về trạng thái nhận dữ liệu - 485 mỗi thời điểm chỉ có thể truyền hoặc nhận)
Nhưng vấn đề bạn đã thấy là trong chương trình khi mình chỉ test pc <->232 thôi mà có lệnh Mscomm.Enable = True đã thấy xuất hiện vấn đề rồi mà không hiểu tại sao
Code:[COLOR="Red"]code không chạy[/COLOR] ( không có giá trị trả về test box nhân hoặc trả về tùm lum) Code: [COLOR="Red"]MSComm1.RTSEnable = True[/COLOR] MSComm1.Output = Text2.Text
Leave a comment:
-
bạn nói rõ hơn tí đi mình chưa hiểu rõ lắm ! có nghĩa tại slave atmega8 mình sẽ thêm một cổng not vào đường tx:
pin Tx (atmega8) ---------------------------> Di (pin 4 _75176)
......................................... |
......................................... |...................... cổng not ..........> pin (2_3) của 75176.
-- khi data ( tx = 0) --> pin(2_3) cao tức cho phép truyền. được bít 0 đi.
-- Nhưng trong data truyền đi có bít 1 ( tx =1) --> pin(2_3) thấp tức cấm truyền ( trạng thái trờ kháng cao ở (pin AbB_ bus của 485) vậy sao mình truyền được bít 1 đi vậy bạn ? mình không hiểu chỗ nè.
Leave a comment:
-
vả lại nếu bạn sử dụng chân vdk để dk hướng truyền nhậ thì khi truyền dữ liệu đi thì bạn phải đợi một khoảng thời gian dủ sao cho toàn bộ byte bạn truyền được gởi lên đường truyền thì mới cp nó nhận dữ liệu.nếu không dữ liệu ko dc truyền hết thì đã cấm 75176 truyền->dl sẽ sai
Leave a comment:
-
lý do chân AVR không thể dk dc như vậy thì mình cũng ko rõ lám, chắc là do nguồn không ổn định,nhiễu.mình nói như vậy vì mình đã từng làm như vậy nhưng không được.
còn dùng chính tính hiệu DI điểu dk thì mình dùng một toán tử NOT,hoặc bạn có dùng bóng dt cũng được.
như này nha: khi tín hiẹu bạn xuát ra trên txd là 0 thì qua NOT là 1 ->75176 cho phép truyền dữ liệu,khi tín hiệu là 1->qua NOT là 0->75176 cho phép nhận,bt trên đương truyền 485 luôn là 1.nhw vậy 75176 của bạn luôn thay đổi chế độ làm việc truyền và nhận khi chuỗi bit bạn truyền thay đổi. do vậy bên nhận se nhận được dúng các bít bạn truyền.
Leave a comment:
-
Bạn có thể nói rõ là tại sao phía AVR mình không dùng trực tiếp chân của atmega để điều khiển hướng cho con 75176 đc ?. và nếu dúng chính bản thân tín hiệu Di (tín hiệu out_ nối với Tx của atmega) đề điều khển thì mình làm sao vậy bạn. gửi 2 phương án này thì cái nào ổn hơn mình dùng bản thân slave atmega8 để dk hướng thì không tốn thêm phần cứng cho mạch ! còn về phần cách li dùng opto cũng đc nhưng mình làm test nên cũng tiện sài lun con 232.
Leave a comment:
-
phía mạch AVR bạn đưa thẳng chân của VDK để điều khiển hướng truyền nhận cho 75176 mình nghĩ là không dc.vă lại liệu dữ liệu của bạn từ AVR đã truyền hết lên pc khi bạn cho phép 75176 nhận dữ liệu khôg.
cái này mình làm rùi,nhưng mình khôg dùng chân vdk để dk hướng truyền nhận cho 75176,mà dùng ngay chân dữ liệu DI dể dk.
vả lại bạn nên dùng bộ cách ly giữa pc và đường truyền.
Leave a comment:
-
Bùn wa em vừa thử kiểu pc <->232 test mới đầu sơ ý nối hai chân 11 và 12 của 232 để gửi nhận nghĩ là phần này tốt rồi .giờ test lại không nối vào hai chân này vẫn gửi nhận vậy là 100% pc <->232 nối có vấn đề .vì đã mình lấy con này test trên cái mạch 232 trên bo quang báo 89 của mình thì chạy tốt nên con 232 này khẳng định là ko chết.Nguyên văn bởi natra2k2 Xem bài viếtNối trực tiếp xem nó có chạy không đã, sau đó mới cho tầng 485 vào mà chạy.
= mình đo các chân thì vẫn đấu đúng. chỉ còn vấn đề còn lại là mấy cái tụ trên con 232 nè có thể bị dò hoặc hư (mình dùng đồng hồ điện tử nên cái nè hàn vào rồi ko đo được tụ) mà mình toàn sài tụ 10uF. Theo các bạn thì có ổn không ? theo data sheet thì có loại dùng tụ 1uF có loại 4.7uF còn cái mạch quang báo mình đấu tụ 10uF vẫn chạy . nhưng cái này nếu để truyền tín hiệu có độ ổn định với tốc độ cao chắc kô ổn nhỉ vì quá độ của tụ 10uF với tụ 1uF sẽ khác .
- mình vừa học con atmega8 vừa học vb nên đành mò mẫm mong các bạn giúp nhiệt tình nhé.
bạn nào biết có luồng nào (tutorial, hay code ví dụ..) về lưu và truy xuất data trong access dùng vb 6.0 thì share cho mình biết với nhé !
Leave a comment:
-
mục đích của tín hiệu RTC ( điều khiển từ giao diện vb) là để máy tính có thể sau khi gủi data sẽ trở về trạng thái nhận dữ liệu tức con 485 nối với max 232 rồi nối với máy tính phải được tích cực mức thấp . Mức thấp này mình dùng chân số 7 (RTS của cổng com để điều khiển).
Mscomm.Enable = True ==> ~ (10v) tại pin 7 qua 232 thành ~(0 v) == >(nếu kết hợp với 485 thêm thì sẽ có nghĩa là đưa máy tính về trạng thái nhận dữ liệu - 485 mỗi thời điểm chỉ có thể truyền hoặc nhận)
Nhưng vấn đề bạn đã thấy là trong chương trình khi mình chỉ test pc <->232 thôi mà có lệnh Mscomm.Enable = True đã thấy xuất hiện vấn đề rồi mà không hiểu tại sao
Code:[COLOR="Red"]code không chạy[/COLOR] ( không có giá trị trả về test box nhân hoặc trả về tùm lum) Code: MSComm1.RTSEnable = True MSComm1.Output = Text2.Text
Leave a comment:
dự án của bạn Tra theo mã, xem datasheet và đặt hàng trực tuyến. MicrochipROHMEpsonTaejin
Đặt hàng & tư vấn
Hà Nội024.3640 8561
TP.HCM028.3811 9870
Quét mã hoặc bấm để chat Zalo với R&PChat Zalo
Quét mã hoặc bấm để chat Zalo với R&PChat Zalo
Bài viết mới nhất
Collapse
-
Trả lời cho Tìm bạn thân quen cũ.bởi thuaimiVẫn nhớ và kính trọng Bác cũng các cao nhân trên dientuvietnam.net. Tính từ ngày tham gia trên này cũng đã hơn 20 năm rồi. Quá nhiều thay đổi cả trong công việc và cuộc sống. Nhưng được thấy lại các nick cũ vẫn sáng đèn là thấy vui rồi....-
Channel: Tâm tình dân kỹ thuật
26-10-2026, 16:33 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi nhathung1101Còn sống không lão??? Mất một thời gian chữa bệnh nên quên hỏi thăm.......
-
Channel: Tâm tình dân kỹ thuật
25-10-2026, 03:09 -
-
Trả lời cho Công suất truyền qua lõi máy biến ápbởi nhathung1101Thời buổi năng lượng xanh, nhất là xanh cả mặt... Thì Điện mặt giời, điện gió, sẽ lên ngôi.
Nếu không nắm bắt được cái cơ bản đó thì đi làm coder à? Mà coder giờ thất nghiệp cả lũ vì AI rồi!!!









...
-
Channel: Điện tử công suất
25-10-2026, 03:03 -
-
Trả lời cho Công suất truyền qua lõi máy biến ápbởi quangdonguehChà, lâu lắm rồi nhưng diễn đàn vẫn còn những chủ đề cốt lõi của điện tử công suất...-
Channel: Điện tử công suất
24-10-2026, 07:53 -
-
bởi bqvietNếu muốn tăng công suất cần tăng con chip và tăng biến áp lên lớn hơn. Thiết kế ban đầu dùng TNY25x và biến áp EE16 hoặc EE13. Tăng con chip lên TNY268 vẫn mạch nguyên lý đó và biến áp lên EE19 sẽ nâng công suất ra thêm nhiều. Tăng tối đa...-
Channel: Điện tử công suất
24-10-2026, 02:14 -
-
bởi Nexus 6PMạch này chỉ chạy cho LED 10W trở xuống, còn muốn chạy Led công suất cao thì sao bác thớt ơi?-
Channel: Điện tử công suất
22-10-2026, 14:33 -
-
bởi Nexus 6PMạch này chỉ chạy cho LED 10W trở xuống, còn muốn chạy Led công suất cao thì sao bác thớt ơi?-
Channel: Điện tử công suất
22-10-2026, 10:49 -
-
Trả lời cho Tìm VR 5 chânbởi dinhthuong80Cảm ơn bác bqviet . Nhưng hình như các VR 5 chân của linhkienchatluong là loại có 2 chân là công tắc đóng mở. Thấy trên Shopee có chỗ bán linh kiện đàn Organ, mà không biết đúng loại không, với lại sao ... mắc dữ dội luôn ấy!!!
...-
Channel: Hướng dẫn tìm thông tin linh kiện
19-10-2026, 11:30 -
Leave a comment: