Chuyển đổi I2C 3.3 đến 5.0 V


35

Tôi đang cố gắng giao diện thiết bị 3.3VI 2 C với Arduino 5V.

Tôi không có bất kỳ vấn đề với dòng SCL. Tôi có thể sử dụng một bộ chia điện áp đơn giản nhưng tôi gặp vấn đề với đường dây SDA vì đây là hướng hai chiều.

Tôi không chắc chắn làm thế nào để xử lý này. Tôi có mặc dù thêm một cặp điốt, với một bộ chia điện áp ở phía đầu vào phụ và không có gì thêm vào đầu vào chính.

Có bất kỳ giải pháp khác?


Độc giả tương lai nên lưu ý rằng mặc dù OP chỉ có thể sử dụng SCL theo một hướng, nhưng I2C thường cho phép SCL hai chiều.
Photon

Câu trả lời:


25

Tài liệu tốt về chủ đề này là bộ dịch chuyển cấp hai chiều cho I2C-bus và các hệ thống khác sử dụng một mosfet duy nhất làm bộ dịch chuyển cấp hai chiều.


Tôi thích mạch Philips. Tài giỏi. Theo một cách nào đó có thể tốt hơn nếu các đầu ra I2C không phải chìm tất cả dòng điện từ tất cả các pull-up, nhưng thiết kế một bộ lặp I2C hoạt động là khó khăn; Tôi không nghĩ rằng nó có thể được thực hiện với logic thông thường, vì bộ lặp phải có khả năng phát hiện cạnh tăng và phản ứng với nó trước khi bất kỳ thiết bị I2C nào có thể.
supercat

2
Liên kết đã chết!
Zimano

14

Để mở rộng dựa trên câu trả lời của sivu, đây là cách sử dụng phổ biến cho cái gọi là "công tắc xe buýt", về cơ bản là các MOSFET điều khiển logic. Việc sử dụng các MOSFET rời rạc có một số nhược điểm (điện dung ký sinh / khớp nối điện dung là một) và thật khó để chọn một MOSFET tốt. Các công tắc bus được tối ưu hóa để sử dụng trong các mạch logic tốc độ cao.

Một số nhà sản xuất tạo ra chúng, bao gồm Fairchild, TI, IDT và Pericom. Hãy nhìn vào NC7SZ384 .

Xem các chú thích sau đây, trong số những người khác:


8

Nhiều Arduino có hỗ trợ trên tàu để chạy ở mức 3,3 V. Trên thực tế, tất cả đều có thể chạy ở mức 3,3 V và sơ đồ chip FTDI giải thích làm thế nào trong một ví dụ. Paul, người đã tạo ra Arduino USB Tusky , đã gợi ý rằng tôi có thể nối cáp USB mở và cung cấp điện áp 3,3 V thay cho dòng V CC của cáp. Bạn có thể thử điều này. Nhưng cũng có những lựa chọn khác.

  1. Kiểm tra các mức logic cho Arduino. Tôi tin rằng họ hỗ trợ 3,3 V dưới dạng logic CAO ngay cả trên Atmel có nguồn gốc 5 V. Một bài báo của SparkFun nói: "* Việc kết nối chân đầu ra kỹ thuật số 3,3 V với chân đầu vào 5 V thường đơn giản. Hầu hết các thiết bị đều khá chịu được điện áp tối thiểu mà chúng sẽ chấp nhận là giá trị cao kỹ thuật số. Ví dụ, hầu hết các bộ vi điều khiển Atmel chấp nhận mọi thứ trên 0,6 * V CC , vì vậy thiết bị 3,3 V phải xuất ra mức trên 3 V (0,6 * 5 V). * "
  2. Mua một trong những bản sao Arduino đã nhảy bộ chọn 3,3 V và 5 V. Tôi sử dụng cloan RBBB mà tôi đã đặt chip cung cấp chip FTDI thành 3,3 V. Nhưng có nhiều cái khác có các tùy chọn cấu hình 3,3 V thực tế, bao gồm một trong những Arduinos chính thức gần đây nếu tôi nhớ chính xác. Bạn cũng có thể sử dụng teensy USB với plugin Arduino của mình và làm theo các hướng dẫn trên trang web của mình để cài đặt một bộ điều chỉnh 3,3 V .
  3. Nối cáp USB và cung cấp nguồn 3,3 V chất lượng cung cấp cho phòng thí nghiệm thay cho đường V CC của cáp USB. Nó nên là hiện tại thấp, như Paul đã đề nghị. Do đó, hoặc là một nguồn điện áp chất lượng tốt. Bạn cũng có thể chỉ cần đặt một vài pin nối tiếp để có được điện áp mong muốn.
  4. Nếu bạn quan tâm, tôi có thể thử kiểm tra sơ đồ của Arduino của bạn và có lẽ có thể thay đổi cấu hình FTDI cho phép 3,3 V.

Cuối cùng, chúng tôi có một cuộc thảo luận có thể khiến bạn quan tâm về vấn đề này ở đây trên Chiphacker về các giải pháp hai chiều và hai chiều cho điện áp giảm. Bài viết này về SparkFun được đề cập bởi todbot rất hữu ích, cũng như các cuộc thảo luận về bài viết MOSFET hai chiều được liên kết từ SparkFun. Để tóm tắt bài viết SparkFun:

  • Điện trở nội tuyến. Uni-directional. Chỉ bước xuống - giảm điốt, điốt kẹp IC / I có thể giới hạn đầu vào tối đa.
  • Dòng điện trở. Uni-directional. Chỉ bước xuống, nhưng dạng hạt.
  • Điốt. Uni-directional. Bước xuống. An toàn hơn. Cao từ 5 V khối diode; phía 3,3 V sau đó quan hệ cao. Nhưng, nếu bạn đảo ngược cấu hình diode, bạn cũng không thể bước lên?
  • MOSFE. Bi hướng. Bước xuống hoặc bước lên.
  • Trong các bình luận: Ví dụ cách ly quang học: 4N25. Dòng điện cao.
  • Trong các bình luận: Ví dụ về diode Zener: 1N4728A
  • Trong các bình luận: 74HC244 / 125 uni-directional

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.