Ý tưởng của em là đúng. Để nối mạng thì mỗi nốt mạng(slave) sẽ có một địa chỉ, master sẽ sử dụng các địa chỉ này để liên lạc với các slave. Nhưng dùng kiểu kết nối 232 như của em là không ổn về mặt tín hiệu vì tín hiệu 232 dễ nhiễu nên không thể truyền đi xa được. Thường RS232 chỉ dùng để kết nối 1<->1 trong khoảng cách <15m. Với những ứng dụng vừa phải người ta sẽ dùng mạng RS485 hoặc cao hơn là mạng LAN.
a USART trong AVR
Collapse
X
-
ơ thế đấy là kiểu RS232 hả anhNguyên văn bởi hungnp Xem bài viếtÝ tưởng của em là đúng. Để nối mạng thì mỗi nốt mạng(slave) sẽ có một địa chỉ, master sẽ sử dụng các địa chỉ này để liên lạc với các slave. Nhưng dùng kiểu kết nối 232 như của em là không ổn về mặt tín hiệu vì tín hiệu 232 dễ nhiễu nên không thể truyền đi xa được. Thường RS232 chỉ dùng để kết nối 1<->1 trong khoảng cách <15m. Với những ứng dụng vừa phải người ta sẽ dùng mạng RS485 hoặc cao hơn là mạng LAN.
thôi thế thì em lại phải nghiên cứu thêm vậyThiết kế chế tạo các loại máy xoáy nắp, chiết rót định lượng dùng trong dược phẩm và thực phẩm.
Comment
-
9 bít có thể coi là dạng mở rộng của các kiểu truyền nối tiếp, để làm cho nó chuyên nghiệp thì nên tìm hiểu giao thức truyền I2C ,sau đó phát triển lên để truyền nhiều bit hơn. Chúc bác thành công.Nguyên văn bởi lytau Xem bài viếtcó ai trả lòi dệ ko vậy.
có thể cho m mọt ví dụ truyền thông vói 9 bit dữ liệu,dùng AT16Nỏ biết chữ mần răng ký được??!! Thôi nhé.
Comment
-
9 bit như bác thắng đã bảo, y hệt 8 bit, chả có gì khác cả,Nguyên văn bởi lytau Xem bài viếtcó ai trả lòi dệ ko vậy.
có thể cho m mọt ví dụ truyền thông vói 9 bit dữ liệu,dùng AT16
, chỉ khác lúc khai báo khung truyền thôi, mà bạn đã truyền được 8 thì 9 thử là đc thôi, có gì cứ ... " xem datasheet
"
*** Thành viên không biết gì về điện ***
Comment
-
Em muốn dùng USART giao tiếp nhiều chíp thì hãy dùng chế độ Multi Processor Communication.Nguyên văn bởi Le Thi Bich Xem bài viếtơ thế đấy là kiểu RS232 hả anh
thôi thế thì em lại phải nghiên cứu thêm vậy
Trong đó có một con Master, các con còn lại là Slave.
Khi thiết lập là Slave, nó sẽ được kích hoạt một bộ lọc khung dữ liệu đầu vào, khung dữ liệu nào ko chứa thông tin địa chỉ sẽ bị bỏ qua.
Dùng chế độ này có nhược điểm là các slave chỉ có khả năng nhận dữ liệu. Do USART ko có chức năng phân quyền ưu tiên sử dụng bus như của I2C (two wire serial interface).
+Nếu dùng khung dữ liệu 5-->8bit thì phải dùng 2 bit stop. Bit stop đầu tiên sẽ chỉ cho Slave biết khung dữ liệu đi vào là khung dữ liệu địa chỉ hay khung Data.
+Nếu khung dữ liệu là 9bit thì bit thứ 9 sẽ chỉ ra cho Slave biết khung dữ liệu đi vào là khung dữ liệu địa chỉ hay khung Data.
+Em xem cách thiết lập mode này trong datasheet phần Using MPCM
Chúc e ngâm cứu vui vẻ, lỡ ngâm cứu rồi thì ráng đi cho trọn mới thấy hết cái hay của cái mình nghiên cứu.Last edited by apple; 24-10-2008, 22:19.Mấy ai định nghĩa được tình yêu.
Có gì đâu một buổi chiều.
Kề dao lên cổ yêu hay chết .
Gật đầu cái rụp thế là yêu.
--------
Apple
Comment
-
thật ra thì em cũng không có ứng dụng bắt buộc nào phải làm, vấn đề em mới học cách truyền với USART nên thử hết các khả năng của nó xem có vấn đề jf thôi.
làm như cách của em cũng được chỉ có 2 điểm hạn chế em chưa khắc phục được là tốc độ truyền chậm và nếu byte dữ liệu trùng với byteđia chỉ của một chíp nào thì nó sẽ nhận ngay byte sau đó làm dữ liệu, em biết là buồn cười xong em thử để hiểu thêm về USART thôi các anh ạ.sau đó tất nhiên em sẽ phải học thêm các chuẩn giao tiếp khac chứ
anh APPle có thể nói cụ thể hơn về chế độ multi không hoặc cho em xin một đoạn code ví dụ thì tốt quá,
em cảm ơn các anh nhiều!.Thiết kế chế tạo các loại máy xoáy nắp, chiết rót định lượng dùng trong dược phẩm và thực phẩm.
Comment
-
các anh cho em hỏi tí:
khi đang làm việc mà nhận dữ liệu qua "USART" thì có phải ngừng các hoạt động khác không ạ(nó có ngắt không) hay nó tự động nhập vào thanh ghi của nóThiết kế chế tạo các loại máy xoáy nắp, chiết rót định lượng dùng trong dược phẩm và thực phẩm.
Comment
-
Chào Bích,Nguyên văn bởi Le Thi Bich Xem bài viếtcác anh cho em hỏi tí:
khi đang làm việc mà nhận dữ liệu qua "USART" thì có phải ngừng các hoạt động khác không ạ(nó có ngắt không) hay nó tự động nhập vào thanh ghi của nó
Với câu hỏi này thì đáp án như sau: Ngừng hay không, ngắt hay không là do mình thiết lập. Nết thiết lập dùng ngắt thì khi đang làm việc gì đó mà nhận xong 1 byte vào thì VĐK thì xảy ra ngắt nhận. Truyền đi cũng vậy... Còn nếu không thiết lập ngắt thì muốn nhận được khi VĐK làm việc khác thì ta phải luôn kiểm tra cờ nhận. Bình thường cờ nhận =0 khi nhận xong 1 byte thì nó =1.
-------
Khi gửi nhiều byte cùng lúc không ai dùng trễ cả, mà dùng ngắt để truyền tự động hoặc kiểm tra cờ để truyền thủ công. Nếu không làm như vậy thì byte trước chưa truyền hết đã ghi byte khác vào->truyền sai. Code VR nó thiết lập sẵn bộ đệm >=8 byte khi dùng ngắt là như vậy.
-------
Khoảng cách truyền xa nhất phụ thuộc nhiều yếu tố như chất lượng dây dẫn, tốc độ... Để truyền xa từ VĐK người ta phải chuyển nó ra giao diện RS232 ( +-12V). Với rs232 theo lý thuyết <=15m --> nếu theo lý thuyết nhiều khi món. Với kinh nghiệm thực tế: dây chất lượng thường thường, tốc độ lên đến 38400 baud thì khoảng cách đạt được 50m.
-------
Bích làm giao tiếp 1 M với 3 S như vậy là đúng, chỉ phải chỉnh 1 chút - nói bên dưới. Các anh hình như không làm thực tế nhiều và M & S (dùng nối tiếp) nên cứ nói lung tung làm em nó băn khoăn. Không phải dùng I2C.... gì cả. Nếu nối trực tiếp các chân TX, RX của M và các S thì cũng được 1 M và >3 S, khoảng cách cớ 5m. Còn muốn nối xa hơn thì con M nối đến max232, nhóm S dùng chung 1 max232 ( phần TTL nối đến các S) - nói thế này chắc Bích hiểu ngay cách nối nhỉ?. Kiểu nối này tôi và nghaiha đã nói nhiều trong diễn đàn này rồi.
Thực tế dùng Rs485 cũng giống dùng rs232 bán song công thôi. Chuẩn Modbus, HDLC, FLAG... thì cũng dùng được cho đường truyền vật lý rs232, rs485... Trong các giao thức này họ tổ chức 1 gói tin ( frame) nhiều byte, trong đó có cả các byte địa chỉ...
Bích cứ làm như của B nhưng thay vì truyền 1 byte 1 gói B hãy tăng lên >2 byte. Trong đó có 1 byte địa chỉ, 1 byte dữ liệu... Khi M truyền nó truyền 2 byte 1 lần. các S khi nhận cũng phải nhận 2 byte thì mới kiểm tra phần địa chỉ, nếu trùng địa chỉ với mình thì nhận byte thứ 2 làm dữ liệu... khi báo cáo về cũng vậy, có yêu cầu từ M đến 1 S cụ thể thì S mới được truyền 2 byte về M. Đây là cách làm mà các kỹ sư trẻ ở Việt Nam thường dùng vì dễ. Nên truyền 1 gói lớn hơn 2 byte vì như vậy sẽ đủ thông tin cho 1 lần truyền và có các byte kiểm tra lỗi....
Nếu muốn tự động thì cấu hình VĐK họat động chế độ đa xử lý- truyền nhận 9 bit dữ liệu. bít 9 =1 thì dữ liệu truyền là địa chỉ, =0 là dữ liệu. Khi 1 S nhận được byte có bit 9=1 mà trùng địa chỉ của nó thì nó chuyển sang nạnn dữ liệu từ các byte tiếp theo, lúc này bit 9=0 -> các S khác không sinh ra ngắt nối tiếp được...
email:mahaco@fpt.vn
Comment
-
ôi trời vậy mà em không nghĩ ra, tại vì em cứ tưởng chỉ truyền được 8 bít thôi,Nguyên văn bởi hoctro89xxx Xem bài viếtChào Bích,
Với câu hỏi này thì đáp án như sau: Ngừng hay không, ngắt hay không là do mình thiết lập. Nết thiết lập dùng ngắt thì khi đang làm việc gì đó mà nhận xong 1 byte vào thì VĐK thì xảy ra ngắt nhận. Truyền đi cũng vậy... Còn nếu không thiết lập ngắt thì muốn nhận được khi VĐK làm việc khác thì ta phải luôn kiểm tra cờ nhận. Bình thường cờ nhận =0 khi nhận xong 1 byte thì nó =1.
-------
Khi gửi nhiều byte cùng lúc không ai dùng trễ cả, mà dùng ngắt để truyền tự động hoặc kiểm tra cờ để truyền thủ công. Nếu không làm như vậy thì byte trước chưa truyền hết đã ghi byte khác vào->truyền sai. Code VR nó thiết lập sẵn bộ đệm >=8 byte khi dùng ngắt là như vậy.
-------
Khoảng cách truyền xa nhất phụ thuộc nhiều yếu tố như chất lượng dây dẫn, tốc độ... Để truyền xa từ VĐK người ta phải chuyển nó ra giao diện RS232 ( +-12V). Với rs232 theo lý thuyết <=15m --> nếu theo lý thuyết nhiều khi món. Với kinh nghiệm thực tế: dây chất lượng thường thường, tốc độ lên đến 38400 baud thì khoảng cách đạt được 50m.
-------
Bích làm giao tiếp 1 M với 3 S như vậy là đúng, chỉ phải chỉnh 1 chút - nói bên dưới. Các anh hình như không làm thực tế nhiều và M & S (dùng nối tiếp) nên cứ nói lung tung làm em nó băn khoăn. Không phải dùng I2C.... gì cả. Nếu nối trực tiếp các chân TX, RX của M và các S thì cũng được 1 M và >3 S, khoảng cách cớ 5m. Còn muốn nối xa hơn thì con M nối đến max232, nhóm S dùng chung 1 max232 ( phần TTL nối đến các S) - nói thế này chắc Bích hiểu ngay cách nối nhỉ?. Kiểu nối này tôi và nghaiha đã nói nhiều trong diễn đàn này rồi.
Thực tế dùng Rs485 cũng giống dùng rs232 bán song công thôi. Chuẩn Modbus, HDLC, FLAG... thì cũng dùng được cho đường truyền vật lý rs232, rs485... Trong các giao thức này họ tổ chức 1 gói tin ( frame) nhiều byte, trong đó có cả các byte địa chỉ...
Bích cứ làm như của B nhưng thay vì truyền 1 byte 1 gói B hãy tăng lên >2 byte. Trong đó có 1 byte địa chỉ, 1 byte dữ liệu... Khi M truyền nó truyền 2 byte 1 lần. các S khi nhận cũng phải nhận 2 byte thì mới kiểm tra phần địa chỉ, nếu trùng địa chỉ với mình thì nhận byte thứ 2 làm dữ liệu... khi báo cáo về cũng vậy, có yêu cầu từ M đến 1 S cụ thể thì S mới được truyền 2 byte về M. Đây là cách làm mà các kỹ sư trẻ ở Việt Nam thường dùng vì dễ. Nên truyền 1 gói lớn hơn 2 byte vì như vậy sẽ đủ thông tin cho 1 lần truyền và có các byte kiểm tra lỗi....
Nếu muốn tự động thì cấu hình VĐK họat động chế độ đa xử lý- truyền nhận 9 bit dữ liệu. bít 9 =1 thì dữ liệu truyền là địa chỉ, =0 là dữ liệu. Khi 1 S nhận được byte có bit 9=1 mà trùng địa chỉ của nó thì nó chuyển sang nạnn dữ liệu từ các byte tiếp theo, lúc này bit 9=0 -> các S khác không sinh ra ngắt nối tiếp được...
để truyền đi xa em đang có ý tưởng chuyển thành nguồn dòng chuẩn 4-20mA không biết có được không nữaThiết kế chế tạo các loại máy xoáy nắp, chiết rót định lượng dùng trong dược phẩm và thực phẩm.
Comment
-
Sao phải mệt vậy em, hãy dùng chuyển đổi Serial <-> rs485 là OK ngay thôi. Nó là 1 mạch cứng mà IC chủ đạo là con SN75176, Tx,Rx từ AVR đưa thẳng vào đây --> nó sẽ ra rs485 -> xa được >1km. Mỗi con AVR em làm 1 bộ này. Lập trình để truyền nhận không có gì thay đổi, em coi nó là lập trình nối tiếp bán song công cho VĐK là được ( khi truyền thì thôi nhận và ngược lại).Nguyên văn bởi Le Thi Bich Xem bài viếtôi trời vậy mà em không nghĩ ra, tại vì em cứ tưởng chỉ truyền được 8 bít thôi,
để truyền đi xa em đang có ý tưởng chuyển thành nguồn dòng chuẩn 4-20mA không biết có được không nữa
Hãy tìm lại các bài viết của anh trong diễn đàn này, đã hướng dẫn kỹ về phần này rồi. Có cả hình vẽ chi tiết về mạch chuyển đổi này.
Nếu không thấy hãy liên hệ với anh.
email:mahaco@fpt.vn
Comment
-
Bác cho e hỏi, chế độ đa xử lý e ko rành lắm, địa chỉ của slave nó lưu ở đâu trong con slave để nó biết để lấy ra so sánh với byte địa chỉ nhận vào, e ko thấy trong datasheet nói về cái này.Nếu muốn tự động thì cấu hình VĐK họat động chế độ đa xử lý- truyền nhận 9 bit dữ liệu. bít 9 =1 thì dữ liệu truyền là địa chỉ, =0 là dữ liệu. Khi 1 S nhận được byte có bit 9=1 mà trùng địa chỉ của nó thì nó chuyển sang nạnn dữ liệu từ các byte tiếp theoMấy ai định nghĩa được tình yêu.
Có gì đâu một buổi chiều.
Kề dao lên cổ yêu hay chết .
Gật đầu cái rụp thế là yêu.
--------
Apple
Comment
Bài viết mới nhất
Collapse
-
bởi mèomướp1. Tìm hiểu đc thì càng tốt, bận thì thôi. Ko cần quá quan trọng
2. Số tự động cho đơn giản, kiểu như đi xe ga ấy ạ
3. Học lý thuyết tử tế ok
4.ok
5.có. đủ số km, tgian cầm lái là đc
6.đi ăn tập thể,...-
Channel: Tâm tình dân kỹ thuật
hôm nay, 16:34 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi lvhnE nhớ bác Vivanpham làm bên điện tử y sinh, có lần đó cái sơ đồ máy chụp x quang sao có mấy con thryristor làm gì mà ko ai trả lới đúng cả
...
-
Channel: Tâm tình dân kỹ thuật
07-08-2026, 09:17 -
-
Trả lời cho Amply bị rò DC 22 voltbởi lvhnBác kiểm tra lại đường mạch, mối hàn xem có bị hở hoặc dẫn không tốt không?
Thay cầu diode lớn hơn càng tốt không vấn đề gì cả....-
Channel: Điện thanh
07-08-2026, 09:12 -
-
bởi LantheChào bạn.
Trục đầu ra của hộp số hành tinh xoắn ốc được kết nối với mặt bích của khách hàng thông qua một trục răng trong. Sau chưa đầy sáu tháng hoạt động, nó phát ra tiếng kêu lách cách và độ rơ lớn đáng báo động.
Việc...-
Channel: Thiết bị điện tử cá nhân
06-08-2026, 13:05 -
-
bởi ittcChào các anh em nhé, mình dự định sắp tới sẽ đi học lái xe Ôtô, thi lấy bằng lái. Cụ thể mình sẽ học và thi lấy giấy phép lái xe hạng B. Thật sự mình là người chưa có kiến thức hiểu biết gì về Ôtô cả ? tất nhiên mình sẽ phải...-
Channel: Tâm tình dân kỹ thuật
-
-
Trả lời cho Amply bị rò DC 22 voltbởi trung30000Theo sự hướng dẫn của bác, sau khi em kiểm tra tầng Vi sai sử dụng cặp c1815, tiếp đến là 1 con a1013, và cặp thúc sử dụng mje304g và mje305g, em đã tiến hành thay cặp Vi sai c1815 sau đó mở máy lên đo ngõ công suất DC 0,2V hai giây sau máy đo...-
Channel: Điện thanh
05-08-2026, 20:09 -

Comment