Ý 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
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92GIỚI THIỆU CA KHÚC VỀ CHA MẸ:
Nặng Nghĩa Mẹ Cha
Sáng tác: Hoàng Đình Thường
Giọng hát: AI
Công cha cao tựa như Thái Sơn
Nghĩa mẹ sâu nước biếc xanh trong
Mong con khôn lớn đời hạnh phúc
Mẹ cha...-
Channel: Tâm tình dân kỹ thuật
12-05-2026, 16:22 -
-
bởi afrendlyCảm ơn bạn. Mình hỏi để thợ có thể tham khảo thôi chứ không đủ kiển thức để sửa, mà cũng không có đồ nghề, mua đồ nghề quá tiền máy. Gọi nhiều lần mà thợ hẹn mãi chưa có tới ấy bạn. Mình muốn sửa được chứ bỏ thì uống, nhưng sợ là được mỗi người thợ mà lại không sửa nổi....
-
Channel: Điện tử gia dụng
11-05-2026, 00:34 -
-
bởi mèomướpDạ nó bị tắc ẩm hoặc rò thiếu gas hoặc lốc yếu hoặc van tiết lưu có vấn đề hoặc tất cả những nguyên nhân trên ạ. Chú ko chuyên về mảng này thì bán đi, giành thời gian trồng rau sạch đem ra chợ bán lấy tiền mua tủ mới ạ. Còn...
-
Channel: Điện tử gia dụng
10-05-2026, 17:01 -
-
bởi afrendlyXin chào mọi người. Mình lại có vấn đề về đồ điện cần nhờ mọi người hỗ trợ giúp. Mình có tủ lạnh Sharp dùng cũng lâu rồi. Trước có bị kém lạnh, không đông đá thì có thợ họ mang về, sục đường ga gì đó hết 900k và đã dùng...
-
Channel: Điện tử gia dụng
10-05-2026, 16:53 -
-
bởi dinhthuong92Đấy, cái tôi thắc mắc là chỗ màu hồng ấy bạn, để áp vào cao chứ không bị sụt gần bằng áp pin thì rất cần cuộc cảm để làm điều đó. Tuy nhiên, trong công thức bác thớt dẫn không thấy mặt L, và một vài mạch MPPT tôi đã kiểm...
-
Channel: Nguồn!
09-05-2026, 10:01 -
-
bởi mèomướpDạ mạch sạc là 1 cục nguồn, nó sẽ điều chỉnh công suất đầu ra để có tổng trở bằng nội trở của pin ạ. Và cái cách nó chỉnh công suất đầu ra sẽ là dạng buck, boot. Đều cần đến cuộn cảm ạ. Tất nhiên chú thích thì có thể dùng dạng tuyến tính transistor để bù trừ nhưng mà nó đốt năng lượng vô ích ạ...
-
Channel: Nguồn!
08-05-2026, 16:26 -
-
bởi dinhthuong92Tng trở R của tải (gồm pin và mạch sạc) trong công thức đó rõ ràng khống có L xuất hiện. Nếu tính các dây dẫn thì rất nhỏ, bỏ qua. Vì nội trở pin là rất nhỏ, có thể nói luôn lớn hơn nội trở solar, nên mạch MPPT sẽ hầu như luôn tính...
-
Channel: Nguồn!
08-05-2026, 11:00 -
-
bởi dinhthuong92Chào bác. Đã là công thức phải tổng quát chứ, nó phải thể hiện cả quá trình, rối thì quá độ hay xác lập tính sau vì tùy điều kiện. Cũng như công thức tính diện tích chả hạn, phải là tích phân....
-
Channel: Nguồn!
08-05-2026, 10:49 -

Comment