Gửi I2C đáng tin cậy qua cáp Cat5


8

Tôi đang xem xét việc áp dụng một hệ thống tự động hóa gia đình xung quanh Raspberry Pi của tôi nhưng tôi thấy yêu cầu về giá cả và không gian của việc chèn Pi mỗi nơi cần một số điều khiển nhưng cáp Cat5e cần thiết cho thiết kế này đã được cài đặt trong quá trình cải tạo. Tôi có một số PCF8574, PCF8591 và SSR nằm xung quanh vì vậy có thể lái chúng bằng cáp Cat5e không?

Tất cả các cáp Cat5e của tôi đã được nối dây với sơ đồ chân TIA / EIA 568B. Chúng là một phần của hệ thống cáp cấu trúc của tôi và không được bảo vệ, do đó cần có điện áp cao hơn. Tôi đang nghĩ việc gửi các đường dây điện và I2C qua cáp, với sơ đồ chân này:

Pin 1 (Pair 1): SCL+
Pin 2 (Pair 1): SCL-
Pin 3 (Pair 2): SDA+
Pin 4 (Pair 3): +12V
Pin 5 (Pair 3): +12V
Pin 6 (Pair 2): SDA-
Pin 7 (Pair 4): GND
Pin 8 (Pair 4): GND

Cách sắp xếp chân nguồn giống như dây PoE 100BASE-TX, do đó, đánh giá năng lượng cũng sẽ giống nhau và việc sử dụng tín hiệu vi sai hai chiều được tìm thấy trong 1000BASE-T yêu cầu Cat5e.

Các dòng I2C SCL và SDA ban đầu được dẫn xuất thành hai cặp vi sai hai chiều ở các mức TTL (cống mở không được giữ trên dây, nhưng được khôi phục trong thiết bị chuyển đổi mức / chấm dứt dòng mà tôi đang thiết kế)

Bất kỳ đề nghị về điều đó? Ngoài ra, tôi nên sử dụng chip nào để chuyển đổi các đường I2C sang tín hiệu vi sai? Vui lòng đề xuất chip với tùy chọn qua lỗ DIP cho tôi. Tôi không biết làm thế nào để xử lý công cụ SMT.

BIÊN TẬP

Tôi tìm thấy con chip này, SN65LBC180, nó có phải là một lựa chọn tốt không? Làm thế nào để dây nó vào một đơn vị hai chiều? Làm cách nào để thay đổi mức (đó là một phần BiCMOS yêu cầu cấp độ TTL nhưng ổ đĩa Pi ở mức 3,3v CMOS) và làm cho nó tương thích mở cống?

CHỈNH SỬA 2

Các nhà bình luận đề xuất RS-485 có vẻ chấp nhận được với tôi, nhưng vẫn có hai cặp vi sai được yêu cầu là hai chiều và chỉ có hai cặp vi sai hai chiều. Tôi đang tái sử dụng cáp Ethernet hiện có.

EDIT 3

Vì ai đó đã đưa nó lên, tôi không thể sử dụng CAN. Không có cách nào tôi có thể điều chỉnh CAN trên RPi mà không phải hy sinh bất cứ điều gì (SPI bị chiếm bởi màn hình cảm ứng, vì vậy không có bộ chuyển đổi SPI sang CAN)

Tôi nhận thức được giới hạn của I2C PHY vì vậy về cơ bản tôi đang cố gắng điều chỉnh 1000BASE-T PHY cho nó - báo hiệu vi sai hai chiều cho tín hiệu SCL và SDA, nhưng trên hết là chạy giao thức I2C.

CHỈNH SỬA 4

Một con chip mới đã đến với tôi: NXP P82B96, phân tách I2C thành 4 dòng đơn hướng, lần lượt có thể được sử dụng để đưa vào SN65LBC180 thông qua cách ly quang (chỉ có mặt Pi) để tạo thành tín hiệu sẵn sàng cho khoảng cách 8 pin. Bây giờ tôi chỉ cần tìm ra làm thế nào để có được năng lượng thông qua dây, hoặc làm thế nào để xác định nếu xe buýt đang gửi và làm cho các cặp hai chiều.

CHỈNH SỬA 5

Từ những gợi ý của câu trả lời, tôi nghĩ rằng tôi cần thay đổi sơ đồ nguồn một chút:

Pin 1 (Pair 1): SCL+
Pin 2 (Pair 1): SCL-
Pin 3 (Pair 2): SDA+
Pin 4 (Pair 3): +5V
Pin 5 (Pair 3): GND
Pin 6 (Pair 2): SDA-
Pin 7 (Pair 4): GND
Pin 8 (Pair 4): +12V

Điện áp tín hiệu vi sai I2C là TTL. + 5V trên cặp 3 đến từ Pi, không có bộ đệm nhưng được hợp nhất. + 12V trên cặp 4 có thể không có mặt chỉ được sử dụng để lái một số thiết bị công suất cao. Nếu cần thiết bị có thể sử dụng nguồn điện riêng và để cả hai đường ray treo không được kết nối hoặc cung cấp điện áp cao hơn nhưng sử dụng đường ray 5V.

VÒI

Pinout vẫn là thiết kế ban đầu của tôi, tương thích với 802.1af.


4
Tại sao không phải là RS-485? Đó là tiêu chuẩn công nghiệp, đáng tin cậy.
Kamil

Pi không có RS485 và tôi muốn mạch giao thoa càng đơn giản càng tốt. Ngoài ra, tôi cần PCF8574, từ các thí nghiệm của tôi, có thể điều khiển SSR của tôi một cách đáng tin cậy với điện áp cung cấp 5V.
Maxthon Chan

Mặc dù bản thân RS-485 là hai chiều, nhưng nó không thực hiện hai chiều ở phía một đầu.
Ignacio Vazquez-Abrams

5
Nếu bạn quá cố gắng để làm những gì bạn nói ban đầu bạn sẽ làm, tại sao bạn thậm chí đến đây và hỏi về nó?
Matt Young

2
@maxthonchan Dây ethernet Cat5 có thể xử lý 360ma một cách an toàn ở 50V ( en.wikipedia.org/wiki/Power_over_Ethernet#Power_capacity_limits ). Bạn có thể dễ dàng nhận được các rơle trạng thái rắn rút ra <10ma ở 3-32V ở phía đầu vào, do đó, trong các thông số kỹ thuật an toàn.
Cấp

Câu trả lời:


18

Cố gắng làm với IIC là một ý tưởng tồi. IIC thực sự có nghĩa là để liên lạc giữa các chip trên một bảng duy nhất. Do dòng điện tối đa cần thiết để kéo mức thấp xuống bị giới hạn, nên các dòng có trở kháng tương đối cao (một vài kΩ). Điều này có nghĩa là chúng có thể thu tiếng ồn dễ dàng, đây là một vấn đề nghiêm trọng khi chạy trong cáp không được che chắn trong các bức tường có thể ngay bên cạnh dây nguồn AC.

Tôi sẽ sử dụng CAN cho việc này. CAN sử dụng một cặp xoắn duy nhất được kéo với nhau chỉ với 60 tại bất kỳ điểm nào và tín hiệu là vi sai. Điều đó có nghĩa là hầu hết các nhiễu chế độ chung không thể tránh khỏi sẽ được chọn do khớp nối điện dung có thể bị hủy bởi các máy thu. CÓ THỂ chạy ở tốc độ 500 kbits / giây có thể bao gồm một cái gì đó kích thước của một ngôi nhà bình thường.

Nhiều bộ vi điều khiển hiện có sẵn với CAN tích hợp. Bạn thường cần một chip tranceiver vật lý riêng biệt (như MCP2551 thông thường), nhưng một vài lớp thấp nhất của giao thức được triển khai bằng silicon trong thiết bị ngoại vi CAN. Phần sụn tương tác với bus CAN ở mức gửi và nhận gói hoàn chỉnh. Việc phát hiện va chạm và thử lại, tạo tổng kiểm tra, chi tiết về báo hiệu gói bus, xác nhận tổng kiểm tra và điều chỉnh trôi đồng hồ đều được xử lý cho bạn.

Đừng rơi vào RS-485. Đó là một di tích từ thời đã qua. Nó cũng sử dụng tín hiệu vi sai duy nhất như CAN, do đó cũng có khả năng chống nhiễu tốt. Tuy nhiên, mọi người thường rơi vào RS-485 vì nó trông "đơn giản" hơn. Điều này chỉ bởi vì họ không nhìn vào toàn bộ hệ thống. Đầu tiên, nó không thực sự ít phức tạp về điện. Bạn vẫn sẽ cần một số loại transciever để lái xe và nhận tín hiệu vi sai. Cho dù bạn có bộ thu phát RS-485 được kết nối với UART của vi điều khiển hay MCP2551 được kết nối với thiết bị ngoại vi CAN đều không liên quan nhiều về chi phí và độ phức tạp phần cứng. Sự khác biệt lớn là RS-485 khiến bạn ở mức byte thô (thông qua UART). Điều này có nghĩa là để thực hiện bất kỳ hệ thống có ý nghĩa và mạnh mẽ nào, bạn phải phát minh ra giao thức của riêng mình để xử lý phát hiện va chạm, quyết định cách xử lý thử lại, đóng gói, tạo tổng kiểm tra và kiểm tra, kiểm soát luồng, v.v. Bạn có thể sử dụng một kiến ​​trúc chính duy nhất, nhưng làm cho các chi tiết đúng là khó khăn hơn nhiều so với mọi người nghĩ rằng đã không phân tích tất cả chúng một cách cẩn thận. Với CAN, bạn chỉ cần gửi và nhận các gói, và phần cứng sẽ chăm sóc các chi tiết.


Tôi không thể tích hợp vào RPi, tôi không có giao diện CAN, tôi không thể đủ khả năng và tôi không thể lắp chúng vào nhà ở hiện có. Vì vậy, KHÔNG CÓ THỂ. Tôi đang chuyển đổi tín hiệu vi sai IIC sang fro để tránh sự cạm bẫy và kháng cự rất nguy hiểm đó. Việc chuyển đổi và thiết bị IIC chia sẻ một bảng duy nhất.
Maxthon Chan

@Max: Một vi điều khiển có CAN sẽ rẻ hơn, nhỏ hơn, tốn ít năng lượng hơn RPi. Nếu các nút này chủ yếu là các cảm biến và tương tự, thì RPi vẫn quá mức cần thiết.
Olin Lathrop

uC's không có đủ sức mạnh tính toán để chạy phía bên kia của hệ thống. Mặc dù tôi có một màn hình cảm ứng trên hệ thống chỉ dành cho ghi đè khẩn cấp, tất cả các lệnh được gửi qua mạng gia đình đến Pi qua HTTP (với giao diện người dùng điều khiển AJAX khá lạ mắt) và Pi xử lý tất cả xác thực và các nội dung khác.
Maxthon Chan

3
@MaxthonChan Bạn có thể nhận được các IC điều khiển giá rẻ chuyển đổi CAN thành SPI và / hoặc I2C để giao tiếp với RasPI của bạn. Ví dụ từ Microchip .
Peter

Nếu đó là đề xuất của bạn, thì vui lòng cho tôi biết làm thế nào tôi có thể lái SSR của mình? Hiện tại tôi có một bảng nhận với chip giao thoa khác, 7805 và PCF8574 và nó có tới 8 SSR. (và thường tôi có hai hoặc ba)
Maxthon Chan

7

I2C không phải là con đường để đi. Mỗi trancie CAN có thể tốn một đô la và bạn có thể sử dụng chúng làm thủ thuật uart và viết giao thức của riêng mình để bạn không cần một micro có thể tương thích với bạn mà bạn không muốn sử dụng stack có thể đầy đủ.

Tôi luôn cảm thấy hơi khó chịu khi thấy dây dẫn cat5 chạy song song để có thêm dòng điện. Nó làm phiền tôi vì nếu một dây dẫn bị đứt thì dây kia sẽ mang toàn bộ hệ thống. Xếp hạng hiện tại của cat5 rất bảo thủ nên tỷ lệ xảy ra hỏa hoạn khá thấp nhưng tôi không thích khả năng này.

Cách an toàn để làm điều đó là có một polyfuse trên cả hai đường ray điện và tham gia vào căn cứ tại nguồn cung cấp, và kết nối mỗi thiết bị với một và chỉ một bộ nguồn / mặt đất. Theo cách đó, nếu một dây bị hỏng, các thiết bị sử dụng đường dây đó sẽ mất nguồn thay vì một dây buộc phải mang nguồn điện của hai dây.

Rất nhiều người thích đặt sức mạnh và mặt đất trong cả hai cặp xoắn vì lý do EMI thay vì có một cặp sức mạnh và một cặp mặt đất. Nếu bạn có hai cặp công suất / mặt đất, đường dây điện sẽ ở gần mặt đất hơn và các trường sẽ hủy bỏ, làm giảm bất kỳ sóng vô tuyến truyền hoặc nhận từ các đường dây điện. Không cần thiết, nhưng tốt đẹp nếu có nhiều tiếng ồn điện ồn ào.

Theo tôi thì điện áp 12V quá thấp để phân phối điện khi 24v vẫn an toàn hợp lý và hiệu quả hơn nhiều.


Giải pháp của tôi bằng cách nào đó dựa trên điều đó. Tôi sử dụng chip bộ chia NXP để tách bus I2C thành một cặp Tx / Rx (cả SDA và SCL) và ghép chúng thành UART bằng chip giao diện CAN. Điều này mang lại cho tôi hai cặp xoắn mang các dòng I2C SDA và SCL, được nối với các chân Cat5e TIA / EIA568B 1/2 và 3/6.
Maxthon Chan

Điều đó cũng sẽ hoạt động, vấn đề duy nhất là bạn cần chip NXP của bạn, hai máy có thể trancievers và chip i2c I / O thực tế của bạn. Đó là năm chip trên mỗi bảng và cuối cùng tôi đã kiểm tra chip NXP đắt hơn atmega328, nhưng điều đó có thể đã thay đổi. Nó sẽ hoạt động và việc lập trình sẽ đơn giản vì đó là i2c, nhưng sử dụng UART trên CAN sẽ rẻ hơn cho công việc nhiều hơn một chút.
EternityForest

Bảng giao diện phía Pi có 7 chip - bộ đệm / bộ chia NXP I2C, hai CAN PHY và bốn optoisolators. Phía thiết bị là một mô-đun 4 chip - bộ đệm / bộ chia NXP I2C, hai CAN PHY và PCF8574 / 8591.
Maxthon Chan

Tôi tìm thấy một opt ​​optplerpler 4 kênh sẽ giảm mạch phía Pi thành mô-đun 4 chip.
Maxthon Chan

Xem xét lại các chân nguồn, tôi đang sử dụng thiết kế ban đầu của mình, sử dụng một cặp năng lượng và một cặp mặt đất. Điều đó tương thích với 802.3af mặc dù tôi đã xác định lại các chân tín hiệu thành SCL và SDA.
Maxthon Chan

3

Nếu tự động hóa chỉ đơn giản là bật và tắt mọi thứ xung quanh nhà, tôi sẽ đơn giản hóa điều này bằng cách:

  • Giữ tất cả "bộ não" ở một nơi. Sử dụng các bộ mở rộng I / O I2C nếu cần, nhưng giữ tất cả chúng với pi mâm xôi. Bạn cũng sẽ cần phần cứng phù hợp để đảm bảo rằng bạn không cố gắng nhận quá nhiều dòng điện từ các chân GPIO của pi.
  • Sử dụng cáp ethernet để lái rơle. Bạn có thể xây dựng bảng của riêng mình hoặc có được các rơle trạng thái rắn 120 / 240V có thể gắn bảng điều khiển sẽ gắn trong hộp điện. Các dây trong cáp ethernet Cat5 có thể xử lý lên đến 50V ở mỗi 320mA, quá đủ để điều khiển rơle. Trên thực tế, bạn có thể lái 7 rơle từ một dây cáp (cộng với một dây nối đất). Hoặc để lại một dây cho đầu ra 12V không thay đổi, vì vậy bạn cũng có thể cài đặt một công tắc thủ công. Nếu chúng thực sự chạy dài, bạn có thể phải tính đến sự sụt giảm điện áp, nhưng bạn có thể nhận được các rơle sẽ chuyển đổi ở 3-32V. 12V nên là quá đủ, ngay cả khi sụt điện áp.
  • Bạn cũng sẽ muốn tham khảo mã xây dựng địa phương để được tư vấn về việc trộn cáp điện áp cao và thấp trong cùng một hộp.
  • Các công tắc đơn giản cũng có thể được thực hiện thông qua cáp ethernet, lên đến 7 trên mỗi cáp và chỉ cần nối dây với đầu vào của pi. Giảm điện áp có thể là một mối quan tâm cho cáp thực sự dài.
  • Bạn cũng có thể muốn sử dụng optoisolators để bảo vệ pi khỏi bị hư hại.
  • Đối với một số thiết bị cần nhiều hơn rơle (như bảng điều khiển), hãy sử dụng cáp ethernet làm ethernet thực tế. Nó không phải là một chi phí lớn nếu không có nhiều thiết bị này. Chúng có thể là một pi khác, hoặc một vi điều khiển với ethernet.

Tôi không chắc chắn chính xác nhu cầu của người dùng cuối của tôi sẽ ra sao. Cô ấy ủ rũ và thay đổi suy nghĩ rất nhanh. Tôi sẽ phải có khả năng đáp ứng đủ nhanh. Đó là lý do tại sao một số loại giao thức cơ bản (I2C ở đây) được sử dụng qua dây dẫn.
Maxthon Chan

2

sơ đồ

mô phỏng mạch này - Sơ đồ được tạo bằng CircuitLab

EUREKA! Tìm ra! (chưa được kiểm tra, sẽ kiểm tra nó vào cuối tuần này)

Các chip giao diện là bộ đệm / bộ chia NXP P82B96 I2C và chip giao diện bus 2 TI SN65HVD251P CAN. Về cơ bản, tôi đang chạy I2C trên CAN PHY.

P82B96 hiểu giao thức I2C và xử lý trọng tài xe buýt cho tôi và cung cấp cho tôi các chân Tx và Rx riêng biệt có thể được gắn với nhau. Tôi cho chúng vào bộ thu phát SN65HVD251P và nó cho tôi cặp vi sai hai chiều để gửi qua dây dẫn.

Các chân nguồn đến trực tiếp, không có bộ đệm từ đường ray 5V của Pi của tôi. (Tôi sẽ không sử dụng điện áp và nguồn tín hiệu trong một thời gian)


Xin lỗi nhưng không. Những gì sẽ cho phép bạn làm là kết nối hai đơn vị I2C ở một khoảng cách với nhau. Nó sẽ không cho phép bạn kết nối nhiều hơn 2.
WhatRoughBeast

@WhatRoughBeast Tôi đã tra cứu tài liệu NXP và nó nói rằng đây là một giải pháp khả thi (và bằng cách nào đó nó đã đi vào AN của họ) nhưng với tôi, một điểm chính là ổn vì bản thân thiết kế của tôi đang yêu cầu cặp đơn vị chuyển đổi trên mỗi phân khúc Cat5e.
Maxthon Chan

CAN có dây hoặc hai chiều giống như i2c. Tôi thấy không có lý do gì mà điều này không nên hoạt động với nhiều thiết bị như bạn muốn trên xe buýt. Tôi đã thấy ứng dụng này, ông đề cập. Nó xuất hiện để mô tả một chiếc xe buýt, không phải là một điểm để điểm.
EternityForest

@WhatRoughBeast - CAN là đa hướng, tôi đã không nhìn quá kỹ vào những gì OP đang làm, nhưng về mặt lý thuyết là có thể.
Sói Connor

1

Bất kể giá trị của IIC ở cấp chip, việc triển khai đề xuất của bạn sẽ rất khó khăn. Vấn đề là trọng tài xe buýt. Mặc dù nhiều đơn vị có thể được sử dụng song song, ví dụ, RS485, câu hỏi lớn sẽ là:

Làm thế nào để bất kỳ đơn vị nào biết liệu nó có thể kiểm soát xe buýt để gửi dữ liệu?

Trong IIC, với các đường tín hiệu cống mở, việc chuyển hai chiều rất dễ dàng - nhưng với các đường truyền ba chiều, bạn cần một số cách để đảm bảo rằng chỉ có một đơn vị cố gắng lái xe buýt tại một thời điểm. Điều này sẽ là khó khăn. Bạn có thể làm điều đó, đặc biệt nếu bạn thiết lập một chủ duy nhất và yêu cầu tất cả các nô lệ có các ràng buộc về thời gian cứng nhắc trong việc gửi dữ liệu và họ chỉ gửi dữ liệu nếu được chủ yêu cầu, nhưng điều này sẽ đòi hỏi nỗ lực đáng kể từ phía bạn trong việc thiết kế bảng giao diện cho chủ và nô lệ.

Đối với trình điều khiển / bộ thu vật lý, RS485 sẽ làm tốt cho bạn và có rất nhiều chip giao diện có sẵn. Chỉ cần Google.


1

Tôi không biết liệu bạn có quan tâm đến một giải pháp tiền đề trái ngược với việc xây dựng mạch của riêng bạn không, nhưng tôi nghĩ rằng tôi đã chỉ ra rằng Pololu bán các bảng mở rộng khác biệt I²C do SJTbits sản xuất, có vẻ như thực hiện khá chính xác những gì bạn đang tìm kiếm. (Tiết lộ đầy đủ: Tôi làm việc cho Pololu.)

Ngay cả khi bạn không muốn sử dụng nó trực tiếp, có thể nhìn vào mạch mà nó sử dụng có thể cho bạn một số ý tưởng. Bạn có thể xem sơ đồ trong biểu dữ liệu; nó sử dụng bộ đệm NXP PCA9600D, trình điều khiển dòng vi sai TI AM26LS31CDR và ​​bộ thu dòng vi sai TI AM26LS32ACDR.


Điều này không làm việc cho tôi. Tôi cần gửi cả tín hiệu xe buýt và nguồn điện qua dây dẫn.
Maxthon Chan

1

Tôi biết điều này hơi cũ và một giải pháp dường như đã được giải quyết ở đâu đó trong số các câu trả lời, nhưng tôi đã có đề nghị này để đưa ra. Có những thiết bị như PCA9614 / 5/6 từ NXP mà tôi đang tìm kiếm ngay bây giờ như là một giải pháp cho một bus I2C đường dài mạnh mẽ hơn (bộ đệm I2C-bus đa pha 2 kênh đa kênh chế độ nhanh) . Về mặt thực tế, nó trở thành một thứ gì đó không phải là I2C thực sự, nhưng ở phần cuối của xe buýt, nó vô hình với các thiết bị. Họ đặc biệt này chuyển các tín hiệu thành 2 cặp vi sai hai chiều và cũng có những thiết bị tương tự như đã được đề cập trong các ý kiến, dịch thành 4 cặp vi sai đơn hướng. Dịch sang chỉ 2 cặp cho phép bạn sử dụng cáp CAT và vẫn có 2 cặp cho nguồn / mặt đất.


0

Đồng ý Tôi hiện đang cố gắng giải quyết khá nhiều vấn đề tương tự. Tôi cũng đang cố gắng sử dụng I2C trên cat5 để tự động hóa nhà với sơ đồ chân tùy chỉnh của mình. Lý do là chi phí, tôi muốn nó rất hiệu quả về chi phí và các thành phần I2C vẫn rẻ hơn ít nhất 5 lần so với attiny13 uC (AFAIU uC là bắt buộc đối với CAN và RS485).

1) Hiện tại tôi đang trong quá trình thử nghiệm cho phần đầu tiên của hệ thống và hiện tại tôi đã thành công với cáp dài 15m với kết nối 5V và dirrect SCL & SDA! Tôi sử dụng PCF8574 và 2 rơle để kích hoạt đèn phòng. Pinout là

1
2 INT
3 +5V
4 SCL
5 SDA
6 GND
7
8

2) Tôi hiểu rằng nó sẽ không đủ khả năng cho một vài rơle hoặc thêm 10 mét nữa ... Việc giảm điện áp là rất đáng kể (từ 5,5 đến 4,7). Vì vậy, đối với vấn đề sụt áp, tôi sẽ đặt điện áp 12V trên một đường dây và thêm bộ điều chỉnh điện áp 5V trên bo mạch để giữ điện áp tốt ở mọi nơi bất kể sự sụt giảm toàn bộ đường dây. Tôi sẽ đặt nguồn cung cấp bổ sung trong các dòng trong tương lai.

3) Bản thân tín hiệu có thể được cải thiện bằng P82B96 hoặc P82B715 giá rẻ mà không cần tách thành các dòng vi sai. Bản thân NXP sử dụng Cat5 trong một số bài thuyết trình nhưng tôi không thể tìm thấy sơ đồ chân của họ. Một phần quan trọng ở đây là họ sử dụng rõ ràng các đường tín hiệu trong các cặp khác nhau ... ví dụ: một cặp là GND + SDA, cặp kia là VCC + SCL.

4) Một điểm thú vị khác - bộ đệm này có thể chỉ cần tăng biên độ lên đến 12 V để tăng khả năng chống ồn. Vì vậy, có lẽ tôi cũng sẽ cố gắng đặt 12V trên một đường tín hiệu và điều đó sẽ cho phép đặt một pullups ngay lập tức từ dây 12V ... Nhưng điều đó sẽ buộc tôi đặt một cái gì đó như P82B96 trên mỗi thiết bị.

Như bạn có thể nhận thấy, tôi cũng sử dụng đường ngắt riêng biệt ... Master hiện đang ở trên bo mạch arduino được kết nối với PC. Phần mềm chính chính sẽ có trên PC 24x7, vì vậy arduino chỉ cần dịch tín hiệu và xử lý ngắt. Tôi có thể gửi cấu hình cụ thể để xử lý ngắt trên bo mạch, ví dụ như để xử lý chuyển đổi tiện lợi chuyển qua ngắt ... Điều đó cho phép tôi quên mọi sự chậm trễ khi bật đèn bằng tay. Xử lý ngắt là lợi thế bổ sung của i2c.

Vì vậy, ý tưởng của tôi là I2C đủ đơn giản để có thể áp dụng trong <= 100m cáp căn hộ thành phố. Thay vì đi đến tín hiệu vi sai, tôi hy vọng tôi có thể giảm tần số phụ thay thế.

Tôi thích ý tưởng của bạn để đặt cả 5V và 12V vì điều này giúp giảm nhu cầu trong bộ điều chỉnh và giảm chi phí ... toàn bộ ý tưởng về xe buýt đa dây để giảm chi phí cho các điểm cuối, tôi cũng sẽ xem xét điều này cho sơ đồ chân mới :)


1
Đây là một nhận xét mở rộng cho câu hỏi hơn là một câu trả lời, vì tình huống của bạn không giống với OP: phần cứng chính khác nhau, sơ đồ báo hiệu khác nhau. Nhưng nó liên quan chặt chẽ đến mức tôi sẽ để nó đứng vững.
Dave Tweed
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.