Ý 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ông báo
Collapse
No announcement yet.
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, 23: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
-
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ướpDạ chú rủ cô ấy đi ăn uống, cà phê, xem phim...nhớ nắm tay, rồi thì ôm hôn,...trong vòng 1 tuần mà ko nắm tay được, 1 tháng mà ko ôm đc thì dẹp ngay và luôn ạ. Nhắn tin, gọi điện ít thôi ạ, trả lời quá lâu hoặc ko trả lời cũng dẹp ngay ạ. Nên thể hiện chú là người có điều kiện nữa ạ...
-
Channel: Tâm tình dân kỹ thuật
08-02-2026, 18:50 -
-
bởi songchodep76Cảm ơn bác đã nhiệt thành chia sẻ kinh nghiệm bản thân mình cho mọi người.
Tuy nhiên, theo tiếp xúc hạn hẹp của em với mosfet thì vấn đề bác đo vôn ở cực D và thấy đỉnh nó 70V/55V Vds max, như thí nghiệm và trong hình của bác...-
Channel: Hướng dẫn sử dụng diễn đàn
07-02-2026, 09:46 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Cho tới thời điểm này, quả thật Đình Thường đây quá thất vọng, không hào hứng với Suno-AI lắm bởi ra lệnh Creat mấy chục lần với các thay đổi thì mới chọn được 2 bản hát đúng giai điệu tầm 80% để cắt ghép tạo thành bài hát...
-
Channel: Tâm tình dân kỹ thuật
06-02-2026, 17:01 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Kính chào cả nhà, nhân dịp Tết đang về, sắp 23 tháng chạp rồi, xin gởi lời chúc xuân qua bài hát sau ạ:
Bao nhiêu hân hoan
Chúc Mừng Năm Mới, xuân sang!
Nơi nơi hát vang
nâng chén vui chúc câu An Lành.
Vạn Sự đều Hanh Thông,
Rạng...-
Channel: Tâm tình dân kỹ thuật
06-02-2026, 16:46 -
-
bởi ittcChán quá các bác, em nhạt nhẽo quá nên tán em nào cũng tạch, tuyệt vọng vô cùng, nay lại được mấy anh đồng nghiệp cty đối tác mách cho em gái kia sinh năm 2K đầu, em chả biết nhóm đối tượng này phải tán ra sao bây giờ ?
Tính ra em...-
Channel: Tâm tình dân kỹ thuật
06-02-2026, 00:18 -
-
bởi bqvietCó thể, ví dụ phần phản hồi gồm vi mạch cách ly quang, zener thứ cấp, transistor và điện trở phản hồi dòng ... Bất kỳ linh kiện nào nhóm đó hỏng dẫn tới mất đường phản hồi. TNY chính hãng phát hiện được chuyện đó nhưng linh kiện...
-
Channel: Điện tử công suất
05-02-2026, 18:36 -
-
bởi Nexus 6Pcho e hỏi, khi mạch có linh kiện nào đó hư thì có làm hỏng led đắt tiền (osram) không?
-
Channel: Điện tử công suất
05-02-2026, 10:42 -
-
bởi chinhnguyen9· Thí nghiệm 1 (Mạch boost, Vcc=12V, kích bằng dao động PƯM, duty 10%):
* Không có snubber + không tải: Xuất hiện hiện tượng dao động tắt dần tại cực D Mosfet (ringing). Hình 1 cho thấy trong chu kỳ đầu, điện áp spike lên tới hàng trăm V, điện...-
Channel: Hướng dẫn sử dụng diễn đàn
04-02-2026, 09:16 -
-
bởi Nexus 6Pe dùng KiCad 9.0 và đã xuất được file PDF mạch in gòi bác...
-
Channel: Điện tử công suất
03-02-2026, 16:25 -
-
bởi bqvietBấm chuột vào các tệp sẽ bật ra chương trình tương ứng. Nên dùng bản KiCAD sau
https://kicad-downloads.s3.cern.ch/a...ll_version.exe-
Channel: Điện tử công suất
03-02-2026, 14:57 -

Comment