Độ dài âm thanh điên rồ như 10,25 và 100m là hoàn toàn có thể, và tôi sử dụng phương pháp này thường xuyên (với UART không phải I2C, nhưng phương thức đứng) khi tôi cần kết hợp nhanh chóng. Đó không hẳn là cách tốt nhất.
Điều quan trọng là phải biết ngưỡng điện áp đầu vào của bạn. Hãy chắc chắn rằng điện áp rơi trong dây dẫn đất thấp hơn mức này, nếu không thì một máy phát ở điện thế cao sẽ không thể kéo điện áp đủ thấp. Thiếu dung sai cho việc bù đắp mặt đất IMHO là lý do lớn nhất để sử dụng RS485 hoặc có thể thu phát (I2C qua CAN được đề cập trong một vài ghi chú ứng dụng).
Lý tưởng nhất là tất cả các thiết bị sẽ có mụn cóc trên tường và pin riêng và không có nguồn điện nào được gửi qua dây nối đất giữa các thiết bị.
Nhưng, hãy lấy CAT5 làm ví dụ. CAT5 không thể cao hơn 52pf / m hoặc không phải là CAT5.
100m cáp 52pf có điện dung 5200pf hoặc 5,2nf.
5,2n lần 20kohms (pullup) cho hằng số thời gian khoảng 104 micro giây. Điều đó giới hạn tốc độ xuống khoảng 10kHz hoặc hơn.
Sử dụng pullups 2.2kohm, bạn có thể có thể đạt tới 100kHz.
Tôi đã nghe nói rằng các thiết bị nên có một điện trở trên SDL và SCK, vì tải điện dung lớn mà chúng đang lái, khoảng 180 hoặc 200 ohms.
Nhưng thành thật mà nói, I2C hoàn toàn không phải là một chặng đường dài. Bộ thu phát CAN hoặc RS485 được sử dụng với UART bình thường là một giải pháp mạnh mẽ với khả năng bảo vệ lỗi rất tốt, khả năng chống lại lỗi, tốc độ, khoảng cách, v.v., với chi phí là một đô la một con chip, do đó, việc bù đắp không quan trọng bằng bạn tự do mang theo sức mạnh cùng với dữ liệu.
Nhược điểm duy nhất là bộ thu phát có thể đạt tới 70ma truyền và 1 hoặc 2ma chỉ nghe, do đó, I2C hoặc TTL UART trực tiếp có thể hữu ích trong các tình huống công suất cực thấp, nhưng hãy xem xét bạn thực sự dành bao nhiêu thời gian để gửi.