Có bất kỳ shifter cấp 5v-3.3v hai chiều?


27

Có IC nào có giao diện đầu vào / đầu ra 3,3V đến đầu ra / đầu vào 5V không? Tôi cần nó chủ yếu cho một Arduino Do nhưng nếu có bất kỳ IC hai chiều nào hoạt động như vậy thì nó sẽ rất tuyệt.

Một số người khuyên tôi nên sử dụng IC SN74AHC125 và CD4050, nhưng tôi không hiểu cách chúng hoạt động hoặc cách giao tiếp với chúng.


2
Phạm vi tần số dự định là gì?
alexan_e

1
Ví dụ giả sử tôi muốn kết nối thiết bị 5V với arduino 3,3V. Tôi không thể tìm ra nơi kết nối đầu ra 5V và đầu vào 3.3V. Và những gì về đầu ra 3,3V từ một arduino chẳng hạn đến một thiết bị 5V? Bạn có ý nghĩa gì bởi dải tần số?
3bdalla

1
Tôi không chắc chắn rằng tôi đã hiểu ý của bạn, tôi chưa từng xử lý tần số trước đây, mục đích của tôi là dành cho các thiết bị điện tử đơn giản: |
3bdalla

3
sparkfun có một bảng, nó được gọi là 'trình chuyển đổi cấp độ'
geometrikal

1
Thông thường tôi đã sử dụng IC từ các công cụ texas. Sê-ri TXS và TXB có bộ dịch điện áp hai chiều (ví dụ TXS0102 có hai kênh)
frarugi87

Câu trả lời:


44

Một trình dịch mức hai chiều rất đơn giản có thể được thực hiện với một N-mosfet duy nhất:

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

Mosfet được sử dụng phải là một mô hình có ngưỡng VSS thấp, để nó có thể có mức Rds-ON (điện trở ON) tương đối thấp ở mức điện áp đầu vào dự định (trong trường hợp này là 3,3v).
BSS138 trong một ví dụ như vậy, nó có VSS tối đa 1,5v và được chỉ định là có điện trở nguồn thoát thấp với điện áp VSS thấp tới 2,5v (có thể hơi thấp hơn một chút).

Ví dụ hiển thị sử dụng bản dịch 3.3v <-> 5v nhưng nó cũng có thể hoạt động với 2.5v <-> 3.3v hoặc 2.5v <-> 5v, thậm chí trong khoảng 2.5v <-> 12 v. Phạm vi chỉ bị giới hạn bởi các đặc tính của mosfet được sử dụng.

Mạch hiển thị dựa trên ghi chú ứng dụng từ NXP
AN97055 Bộ dịch chuyển cấp hai chiều cho I2C-bus và các hệ thống khác
Phiên bản ngắn hơn mới: AN10441 Các kỹ thuật chuyển cấp trong thiết kế bus I2C

Khi L1 ở mức cao (3v3) hoặc nổi R1 sẽ giữ mosfet tắt để R2 kéo phía cống lên cao (đến 5v).

Khi L1 được kéo xuống thấp thì mosfet tiến hành và cống trở nên thấp.

Khi mức thấp (0) được áp dụng cho H1 thì điện áp đó được truyền qua diode cơ chất đến phía nguồn (L1)

Xin lưu ý rằng kích thước điện trở có thể ảnh hưởng đến tốc độ ( nguồn hình ảnh )

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

Giải pháp bóng bán dẫn thay thế nhập mô tả hình ảnh ở đây


Các bài viết liên quan bạn có thể thấy hữu ích:


11

Vì câu hỏi dường như hướng tới một IC cung cấp dịch chuyển hai chiều, hãy xem xét họ các bộ phận của Texas Cụ TXB010x: TXB0102 có 2 kênh, TXB0104 có 4 kênh và TXB0108 có 8 kênh.

Tính năng nổi bật của họ IC này là hướng tín hiệu được tự động cảm nhận, do đó không cần pin cài đặt hướng riêng.

Chuyển đổi tốc độ lên đến 10 MHz hoạt động đáng tin cậy. Tốc độ tối đa theo lý thuyết có thể cao hơn - các bảng dữ liệu không rõ ràng về điều này từ những gì tôi có thể xác định.

Tôi có một TXB0108 hoạt động giữa Launchpad 3.6 Volt MSP430 và Arduino Nano 5 Volt, vì vậy trường hợp sử dụng của câu hỏi được đề cập.

Với mục đích dùng thử, Adaf Berry cung cấp một mô-đun dựng sẵn kết hợp TXB0108 , giúp bạn tránh được những rắc rối khi hàn một bộ phận SMD. Có thể có các tùy chọn tương tự cho 0102 và 0104 từ họ hoặc những người khác.

Bộ chuyển đổi mức logic hai hướng 8 kênh - TXB0108

Nếu mục đích là thay đổi mức tín hiệu I2C , không phù hợp lý tưởng với các IC dòng TXB, thì tùy chọn giải quyết cụ thể điện trở kéo lên và cấu trúc liên kết bộ thu mở của I2C là mô-đun như thế này , một lần nữa được bán bởi Adaf nhung và các nhà cung cấp khác.

Bộ chuyển đổi cấp I2C

Mô-đun này sử dụng BSS138 MOSFET theo cách được mô tả trong câu trả lời của alexan_e . Mặc dù nó không phải là một IC đơn lẻ như câu hỏi yêu cầu, nhưng có lẽ nó hoàn thành mục đích đã định. Ngoài ra, thật đơn giản để tự xây dựng mạch này bằng cách sử dụng MOSFET.


+1 Tìm thấy tốt đẹp! ... Liên kết của bạn đến TXB0102 thực sự là đến TXS0102. Tôi chưa xác định được sự khác biệt, nhưng điều này được ghi chú trong biểu dữ liệu của TXS0102: "Việc sử dụng ứng dụng mục tiêu chính của nó là để giao tiếp với các trình điều khiển mở trên dữ liệu I / O như I2C hoặc 1 dây, trong đó dữ liệu là hai chiều và không có tín hiệu điều khiển. TXS0102 cũng có thể được sử dụng trong các ứng dụng có trình điều khiển kéo đẩy được kết nối với I / O dữ liệu, nhưng TXB0102 có thể là một lựa chọn tốt hơn cho các ứng dụng kéo đẩy như vậy. " Đây là liên kết thực tế đến TXB0102
Tut

@Tut Oops, trượt lên, cảm ơn. Nhu cầu của riêng tôi được đáp ứng bởi TXB0108, vì vậy những người khác là một "điều tốt đẹp để biết" đối với tôi. :-)
Anindo Ghosh

10

Một điều khác bạn nên xem xét là liệu bạn có thực sự cần thay đổi cấp độ hay không. Nhiều chip có chân đầu vào chịu được 5V ngay cả khi chạy ở mức điện áp thấp hơn như 3,3. CPU atmega cũng diễn giải bất cứ điều gì trên 0,6 * Vcc hoặc 3V đối với arduino là mức logic cao, do đó tín hiệu 3,3V có thể điều khiển trực tiếp chân arduino mà không bị dịch chuyển mức.

Giả sử bạn đang sử dụng arduino 5V và cần nói chuyện với phần 3.3V, nếu phần đó có đầu vào dung sai 5V (nhiều người hiện nay), chỉ cần kết nối em lên và nó sẽ hoạt động. Nếu đường hai chiều của bạn là một thiết kế bộ thu mở, chẳng hạn như i2c trong đó các thiết bị chỉ kéo đường dây ở mức thấp thì chỉ cần gắn các điện trở kéo lên 3,3V thay vì 5V và mọi thứ sẽ hoạt động.

Nếu không, tất cả những gì bạn cần làm là đảm bảo đường dây không vượt quá 3,3V, bạn có thể làm điều đó với điện trở và zener, đặt điện trở trên đường dây arduino sau đó là zener để kẹp điện áp lên 3,3V. (nguồn: repetae.net )kẹp điện trở zener

Bạn có thể bị cám dỗ để sống nguy hiểm và chỉ cần sử dụng điện trở 10k và không có gì khác. Lý do điều này (đôi khi!) Hoạt động là vì có một diode kẹp bên trong chip thu nhận giúp giảm điện áp quá mức thành vcc hoặc 3,3V. Diode này sẽ bị cháy nếu bạn cố gắng kéo toàn bộ đường dây 3.3V lên đến 5V (ngoài bất kỳ thiệt hại nào gây ra bằng cách kéo đường dây đó lên 5V), tuy nhiên với điện trở sẽ không có nhiều dòng điện chạy qua và giả sử đường dây 3.3V của bạn có một tải không tầm thường đối với nó, nó sẽ không thay đổi mức độ đường dây điện của bạn đáng kể nhưng có rất nhiều cảnh báo. Vì vậy, nói chung, đừng làm điều này trừ khi bạn có một chiếc xe buýt 3,3V cục bộ và thực sự không thể dành thêm hai xu cho zener. Tôi chỉ đề cập đến nó bởi vì bạn sẽ thấy nó trong sơ đồ cho các bảng đột phá giá rẻ bẩn mà bạn có trên ebay và có thể bị cám dỗ để sao chép nó, đừng để nó lẻn qua chiếc bánh mì trong thiết kế sản xuất. :)

Chỉnh sửa chỉ nhận thấy bạn đang sử dụng arduino 3.3V mới hơn, vì vậy chỉ cần đảo ngược những gì tôi đã nói ở trên, thủ thuật điện trở zener vẫn sẽ hoạt động mặc dù rõ ràng một số dòng i / o trên có thể có dung sai 5v, dường như có một số bất đồng trên các diễn đàn. Teeny 3.1 cũng là một bo mạch ARM nhỏ xinh có tất cả các chân chịu được 5V và có giá thấp hơn một nửa so với IMHO được thiết kế tốt hơn và được thiết kế tốt hơn http://www.pjrc.com/store/teensy31.html


3

Từ rẻ [er?] Giải pháp bộ phận, các FET (từ câu trả lời được chấp nhận dựa trên appnote NXP) có thể được thay thế bằng một BJT và Schottky diode như trong Silicon Labs AN883 . Sơ đồ của họ hơi phức tạp với những thứ khác, vì vậy tôi đã trích xuất một phần thiết yếu ở đây và định hướng lại nó để có vẻ như trong câu trả lời được chấp nhận để dễ dàng so sánh hai sơ đồ:

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

BJT chỉ dịch theo hướng thấp-> chỉ cao ... chính xác như được thảo luận trong bộ chuyển đổi tăng cấp bóng bán dẫn đơn . Schottky thay thế diode cơ thể của FET cho bản dịch cao-> thấp.

Dưới đây là số đo phạm vi được phóng to của chúng cho trình dịch 3.3 <-> 1.8V; họ cũng đề xuất sơ đồ này cho bản dịch 5 <-> 1.8V, v.v. Khi thực hiện bản dịch 3.3 <-> 1.8V, MMBT3904 chỉ giảm 150mV (bão hòa). Các diode BAS40 có 350mV giảm theo hướng ngược lại. Những sự bù đắp này ảnh hưởng (rõ ràng) đầu ra mức logic thấp ở phía thấp và cao tương ứng của người dịch.

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

Chúng có các thiết bị CMOS đẹp ở cả hai mặt, vì vậy trở kháng đầu vào không phải là vấn đề. Không có sự xuống cấp / bù trừ có thể nhìn thấy của các mức logic cao trong dấu vết 1V / div của chúng, vì vậy tôi không bận tâm bao gồm nó ở đây. Trở kháng đầu vào của các thiết bị của họ ít nhất là 1Mohm so với những gì tôi có thể nói từ một mô phỏng. Lợi nhuận cao logic bắt đầu giảm xuống dưới 100K trở kháng đầu vào hoặc hơn.

Ngoài ra, họ đề xuất trình dịch dựa trên BJT này chỉ tối đa 300KHz hoặc hơn.

Tôi không chắc trong số các giải pháp này rẻ hơn trong thực tế, FET hoặc Schottky + BJT ... nhưng giải pháp này chắc chắn cần nhiều bộ phận hơn ... trừ khi bạn sử dụng một trong các gói diode + bóng bán dẫn, ví dụ như PZMT1101 . Nhưng bạn cũng cần 3 điện trở.


Mức tiêu thụ / năng lượng tiêu thụ hiện tại của phương pháp này so với phương pháp dựa trên FET là gì?
KyranF

@KyranF: Tôi đã không so sánh họ, nhưng nếu bạn lo lắng về điều đó thì sẽ không phải là màu hồng vì sự lôi kéo. Các phiên bản CMOS công suất thấp trông giống như m.eet.com/media/1103155/Fig2.gif Đó là từ eetimes.com/document.asp?doc_id=1231111 , đây là bài viết tốt so sánh các phương pháp khác nhau.
Fizz

Cảm ơn các liên kết. Tôi nghi ngờ phương pháp tiếp cận của BJT sẽ có sức mạnh rất cao so với thời điểm cơ sở bão hòa. Tải liên tục của điện trở kéo lên thực sự đáng lo ngại cho bất kỳ thiết kế nào, đặc biệt là các thiết kế chạy bằng pin.
KyranF

@KyranF: Tôi đã xem xét nó trong mô phỏng: bóng bán dẫn và diode tiêu tán uW công suất trong khi các điện trở làm tiêu tan mW. Trên thực tế, BJT tiêu tan khoảng 100uW, diode 1uW. FET hoặc BJT sẽ không thành vấn đề ở đây ... điện trở có đường dẫn đến sự phân tán tĩnh là điều quan trọng. Điều này là với trở kháng đầu vào 1Meg.
Fizz

@KyranF: Tôi đã thử sử dụng mô hình BSS138LT1 của ON, nhưng điều đó mang lại sự phân tán công suất trung bình âm trong LTspice (của -63uW) ... vì vậy tôi nghĩ rằng mô hình của họ có thể có vấn đề. Rác trong ... rác ra. Ngoài ra, nó bắt đầu dao động (ở tần số cao hơn nhiều so với tín hiệu) khi được điều khiển từ phía cao. Đây là một mô hình phụ chứ không phải mô hình MOS đơn giản, vì vậy thật khó để biết được chuyện gì đang xảy ra. [tiếp tục]
Fizz

2

Vâng, có rất nhiều. Bạn cần xác định tần số tối đa của bạn là bao nhiêu, bạn cần bao nhiêu bit, v.v. Tóm lại, bạn có thể sử dụng bất kỳ IC dịch cấp điện áp nào. Texas Cụ có một công cụ lựa chọn gọn gàng cho cùng một mục đích: http://www.ti.com/logic/docs/translationresults.tsp?sectionId=458&vol voltIn =5.0 & searchDirection = 2 & vol voltOut = 3.33voltintf


2

Ngoài ra, nếu bạn đang tìm kiếm một sự cách ly điện tuyệt vời cũng như chức năng dịch chuyển mức hai chiều, tôi khuyên dùng ISO1541 . Nó khá rẻ và cung cấp bảo vệ tốt thông qua sự cô lập.



1

Giải pháp đơn giản nhất là chạy tất cả các mạch của bạn ở mức 3,3V. Chip HC sẽ hạnh phúc chạy ở mức đó.

Khi điều đó là không thể, bạn có thể làm mọi thứ đơn giản hơn nhiều khi bạn giới hạn bản thân theo một hướng. Một chip HCT ở 5V sẽ chấp nhận mức 3,3V, và bộ chia hai điện trở đơn giản có thể giảm 5V xuống còn 3,3V. Một số uC có khả năng chịu được 5V trên chân của chúng, vì vậy bạn không cần bộ chia. Và nếu bạn đặt pullups 5V trên các chân và chuyển đổi giữa mặt đất và mở (= đầu vào), bạn có đầu ra 0-5V có thể vượt qua.

Đối với các thanh nối collector mở (I2C, dallas 1-dây), thủ thuật BS138 là một cách để đi. Có những con chip nhỏ cho I2C đặt hai FET vào một vỏ. (PCA9306, v.v.)

Nhưng nếu bạn thực sự muốn dịch cấp độ hai lần: các chip như vậy tồn tại, hãy kiểm tra ví dụ TXB0108.


-4

Một giải pháp đơn giản là sử dụng SN74LVC244AN. Có thể được cung cấp năng lượng với 3V3 và là bộ đẩy 5V trên các đầu vào.


5
Đó không phải là hai chiều.
Matt Young

Không nhưng 74LVC4245 là.
Bregalad
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.