ความยาวของเสียงที่บ้าเช่น 10,25 และ 100 เมตรนั้นเป็นไปได้อย่างสมบูรณ์แบบและฉันใช้วิธีนี้บ่อยครั้ง (ด้วย UART ไม่ใช่ I2C แต่วิธีการนี้ตั้งอยู่) เมื่อฉันต้องรวบรวมสิ่งต่าง ๆ เข้าด้วยกันอย่างรวดเร็ว มันไม่ได้เป็นวิธีที่ดีที่สุด
กุญแจสำคัญคือการรู้เกณฑ์แรงดันไฟฟ้าขาเข้าของคุณ ตรวจสอบให้แน่ใจว่าแรงดันตกในสายดินนั้นต่ำกว่านี้หรือไม่เช่นนั้นเครื่องส่งสัญญาณที่มีศักยภาพสูงที่พื้นดินจะไม่สามารถดึงแรงดันไฟฟ้าต่ำพอ การขาดความอดทนสำหรับการชดเชยพื้นดิน IMHO เป็นเหตุผลที่ดีที่สุดในการใช้ RS485 หรือสามารถรับส่งสัญญาณ (I2C over CAN ถูกกล่าวถึงในบันทึกการใช้งานไม่กี่)
ตามหลักการแล้วอุปกรณ์ทุกชิ้นจะมีหูดที่ผนังและแบตเตอรี่ของตัวเองและจะไม่มีการส่งกำลังผ่านสายกราวด์ระหว่างอุปกรณ์
แต่ลองยกตัวอย่าง CAT5 CAT5 ต้องไม่สูงกว่า 52pf / m หรือไม่ใช่ CAT5
สายเคเบิล 100p ของ 52pf มีความจุ 5200pf หรือ 5.2nf
5.2n คูณ 20kohms (pullup) ให้เวลาคงที่ประมาณ 104 microseconds ที่ จำกัด ความเร็วไว้ที่ประมาณ 10kHz หรือมากกว่านั้น
ใช้ 2.2kohm pullups คุณอาจได้รับ 100kHz
ฉันได้ยินมาว่าอุปกรณ์ควรมีตัวต้านทานบน SDL และ SCK เนื่องจากมีการโหลด capacitive ขนาดใหญ่ที่พวกเขากำลังขับรถอยู่เช่น 180 หรือ 200 โอห์ม
แต่โดยความจริงแล้ว I2C นั้นไม่ได้อยู่ในระยะทางไกล สามารถรับส่งสัญญาณหรือ RS485 ที่ใช้กับ UART ปกติเป็นโซลูชั่นที่แข็งแกร่งพร้อมการป้องกันความผิดที่ดีมาก, ความต้านทาน ESD, ความเร็ว, ระยะทางและอื่น ๆ ในราคาดอลลาร์ต่อชิปหรือมากกว่านั้น อิสระในการพกพาพลังงานพร้อมกับข้อมูล
ข้อเสียเพียงอย่างเดียวคือตัวรับส่งสัญญาณสามารถเข้าถึงการส่งสัญญาณ 70ma และ 1 หรือ 2ma เพียงแค่ฟังดังนั้น I2C หรือ direct TTL UART อาจมีประโยชน์ในสถานการณ์ที่ใช้พลังงานต่ำมาก