Dịch chuyển cấp I2C


11

Tôi hiện đang thiết kế một mạch có thể ghi dữ liệu từ một cảm biến và lưu dữ liệu được ghi vào EEPROM. Hai thiết bị của tôi (EEPROM và cho mục đích thử nghiệm RTC) được kết nối qua bus I2C đến PIC16F887 PhaC. Tuy nhiên, phạm vi hoạt động của hai thiết bị không giống nhau (5v cho EEPROM, 3,3 cho RTC) và pin của tôi là pin 9V.

Do đó, tôi đã thiết kế một mạch điện tử với bộ dịch mức bao gồm các MOSFET cho hệ thống dây SDA / SDL. Trên hết, tôi đã thêm hai bộ điều chỉnh điện áp LM317 để cấp nguồn cho các thiết bị (9V-> 3.3V và 9V-> 5V). Vì tôi không phải là một chuyên gia trong việc thiết kế những thứ như vậy, tôi sẽ đánh giá cao nếu bạn có thể liếc nhìn những gì tôi đã làm và nói với tôi nếu tôi làm sai điều gì đó khủng khiếp!

nhập mô tả hình ảnh ở đây


Câu trả lời:


3

Mặc dù có ý kiến ​​khác, bản thân giải pháp là tốt. Tôi thấy một vài vấn đề nhỏ mặc dù.

  1. Điện trở kéo lên 10k trên xe buýt gần như không đủ cứng, đặc biệt nếu bạn muốn sử dụng tốc độ xe buýt cao hơn.

  2. Bạn cần tụ tách rời đầu vào và đầu ra trên bộ điều chỉnh tuyến tính và IC kỹ thuật số. 100nF là một khởi đầu tốt cho các IC kỹ thuật số và cho các bộ điều chỉnh tuyến tính, 100nF trên đầu vào và 1μF trên đầu ra.


Cảm ơn cho đầu tụ tách rời, thực sự nó được hiển thị trên hầu hết các sơ đồ điều chỉnh tuyến tính nhưng tôi hoàn toàn bỏ qua phần này! Đối với tụ tách rời cho các IC kỹ thuật số, ý bạn là một tụ điện giữa điện áp đầu vào và mặt đất của chúng, điều đó có ổn không? . Có một vấn đề với shifter cấp? Dù sao, lời khuyên đó là tuyệt vời!
Al_th

1
Đúng - giữ các tụ tách rời càng gần càng tốt với các chân nguồn và trở lại. Nếu có bất kỳ điện dung đáng kể nào trên các đường I2C, bạn sẽ cần phải hạ thấp các pullups đó để giữ cho các cạnh sắc nét. Tôi thường bắt đầu với 1,8k và đánh giá từ đó.
Adam Lawrence

Được rồi, cảm ơn vì tất cả mọi thứ, tôi hy vọng nó sẽ giúp mọi người chơi xung quanh với các thiết bị I2C khác nhau!
Al_th

-4

Vâng, bạn đã làm những điều trên sơ đồ của bạn là sai lầm khủng khiếp. Để thay đổi mức chính xác các mức điện áp của bạn, hãy xem địa chỉ nô lệ I2C không được thừa nhận (đôi khi) IC MAX3373E được sử dụng để dịch chuyển mức. Xin lưu ý rằng, điện trở kéo lên được hiển thị trên các dòng SDA & SCK. Tuy nhiên, khi sử dụng MAX3373E, không yêu cầu điện trở kéo lên vì MAX3373E đã tích hợp sẵn các bộ kéo ở cả hai phía của dòng I / O. Có những IC khác có sẵn để thay đổi cấp độ là tốt. Bạn có thể đến Digi Key hoặc Mouser và tìm kiếm.


5
Cách tiếp cận của OP là tốt! NXP thậm chí có một ghi chú ứng dụng về chủ đề này. Đừng vội phán xét.
Adam Lawrence

Tôi thấy tôi đã sai ở đâu. Biểu tượng cho các FET không được hiển thị chính xác, diode bị thiếu.
Suirnder

1
@Suirnder Có những rủi ro cố hữu khi gặp quá mạnh với kiến ​​thức hạn chế. Không phải bài viết đầu tiên của bạn, tôi tin.
Anindo Ghosh

1
@Gosh Tôi đang học bài học của tôi. Tôi nên kiểm tra bảng dữ liệu trên FET trước.
Suirnder
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.