Cách thích hợp để ngắt kết nối IC trong trạng thái năng lượng thấp để tránh việc cung cấp ký sinh / cho ăn ngược


10

Tôi đang làm việc trong một dự án dựa trên nền tảng pin năng lượng thấp, tích hợp một vài thiết bị khác nhau bao gồm dải neopixel và pixie Adaf nhung . Khi tổng thể thiết bị không hoạt động, tôi muốn nó rút ra dưới 0,1mA để tối đa hóa tuổi thọ pin LiPo.

Tôi đã làm tất cả những thứ này hoạt động (đo 0,035mA) nhưng tôi không chắc chắn rằng tôi nhất thiết phải làm nó theo cách thức đúng hướng và tôi dự định xây dựng một sản phẩm dựa trên điều này vì vậy tôi muốn làm đúng.

nhập mô tả hình ảnh ở đây (Không hiển thị: một diode flyback cho rơle)

Mối quan tâm cốt lõi mà tôi có là khả năng cung cấp năng lượng cho các thiết bị khi có VCC bị ngắt kết nối thông qua dòng điện từ các chân dữ liệu. Chẳng hạn, Pixie (giao tiếp qua sê-ri), không có chế độ tắt nguồn và ngay cả khi ra khỏi đường thoát ra khỏi một miliamp. Vì vậy, tôi đã đặt một rơle nhỏ để ngắt kết nối VCC của nó và phát hiện ra rằng pin nối tiếp thực sự vẫn đang cung cấp năng lượng cho pixie. Các gợi ý ở nơi khác cho rằng nhiều chip có một diode chuyển các chân đầu vào kỹ thuật số của chúng sang VCC để bảo vệ nguồn. Để giải quyết vấn đề này, tôi đã phải tạm dừng thư viện nối tiếp và thực sự là DigitalWrite (PIN, THẤP) trong khi ngủ.

Điều tương tự với dải WS2812b - ngắt kết nối VCC vẫn cho phép thiết bị được cấp nguồn từ chân dữ liệu. Và trong các thiết kế khác khi tôi ngắt kết nối GND với MOSFET kênh N, tôi đã thấy điều ngược lại - một dòng chảy ngược qua dòng dữ liệu xuống đất! (Điều này phải được giải quyết bằng một diode trên mỗi bài đăng trên PJRC.) WS2812b thực sự mất khoảng một milliamp mỗi lần ngay cả khi không bật,

Vì vậy, câu hỏi: Có một cách chung, cách sạch sẽ để ngắt kết nối VCC và GND khỏi các phần của dự án trong khi ngủ hệ thống khi có các chân dữ liệu trong hỗn hợp. Thực hành tốt nhất là gì?

Một vài ý tưởng:

  1. Buộc VCC thành GND (không chắc bằng cách nào? Hbridge?). (Nếu tôi làm điều đó, điều gì xảy ra với các chân dữ liệu cao?)
  2. Đặt bộ đệm ba trạng thái giữa tất cả các chân dữ liệu và các thiết bị này và trong khi ngủ, đặt bộ đệm ba trạng thái ở trạng thái trở kháng cao, chỉ ngắt kết nối VCC hoặc GND với P hoặc N mosfet
  3. Chỉ ngắt kết nối GND với N mosfet và đặt điốt trên tất cả các chân dữ liệu
  4. Có một loại chốt công suất nào đó ngắt kết nối cả VCC và GND và đặt chúng vào trạng thái trở kháng cao (như bộ đệm ba trạng thái cho điện?) Theo cách đó, dòng điện không có cách nào "chảy" ra khỏi các đường dữ liệu.

Ai đó có thể khai sáng cho tôi cách xử lý gọn gàng nhất, lặp đi lặp lại nhất để xử lý loại vấn đề này không? (Không cần phải nói, tôi đã dành hàng giờ để giải quyết vấn đề này với rất ít may mắn, mặc dù tôi đã tìm thấy lưu ý công nghệ này về chuyển đổi tải nhưng nó không giải quyết được nguồn cấp dữ liệu ngược và ký sinh trùng)


Thật là khó chịu, tôi thực sự đã thấy các trường hợp mà nguồn điện đạt tới chân GPIO có thể bật một AVR (mã thực thi) ngay cả khi không có nguồn nào chạm tới chân VCC ...
Abbeyatcu

2
Quan sát hài hước: tôi đã thực hiện thêm một số tìm kiếm trên google kể từ khi đăng câu hỏi này và câu hỏi này trên SE đã được xếp hạng cao nhất. Google đã lập chỉ mục trang này trong vòng chưa đầy 10 phút.
Jeremy Gilbert

Chỉ nhận xét: Công tắc cách ly thích hợp như những người khác đã đề xuất là giải pháp tốt nhất khi không thể loại bỏ điện áp từ xa. Có thể là việc sử dụng điốt Schottky cho các chân đầu vào có Cathodes phổ biến và thường ở Vcc và được kẹp xuống đất khi muốn cách ly, sẽ giúp loại bỏ hoàn toàn các điện áp trở kháng cao. Rõ ràng, Schottky kẹp một đường cấp điện có trở kháng thấp có thể làm hỏng ngày của bạn.
Russell McMahon

Có lẽ Hi-Z-ing tất cả các kết nối của bạn theo một cách nào đó (chân TriC trạng thái, bộ đệm ba trạng thái, công tắc tương tự, bất cứ điều gì), như Peter Smith và CL đã đề xuất, là đặt cược tốt nhất. Mà một trong những phương pháp tốt hơn, tôi không chắc chắn. Trong mọi trường hợp: tại sao bạn sử dụng rơle cho chuyển mạch, mà không phải là P-MOSFET (hoặc N-MOSFET thấp cho vấn đề đó, mặc dù chuyển đổi thấp có thể sẽ khó hơn một chút ở đây)?
FlashCactus

Câu trả lời:


5

Khi tôi làm điều này, tôi thường sử dụng các công tắc tương tự CMOS trên các dòng dữ liệu bị ảnh hưởng.

Một cái gì đó như ADG812 có 4 kênh chuyển mạch SPST dễ dàng phù hợp với logic khá nhanh và cung cấp trở kháng thực sự cao giữa các nút chuyển đổi khi ở trạng thái tắt.

ADG812 tắt rò rỉ

Điều tuyệt vời ở đây là kỹ thuật này hoạt động cho cả các dòng dữ liệu hai chiều hai chiều.

Những phần này cũng chạy trên một nụ cười rạng rỡ:

Yêu cầu năng lượng ADG812

Trình tự thông thường để tắt nguồn:

  1. Tắt chuyển đổi đường dẫn dữ liệu

  2. Tắt nguồn miền.

Tăng sức mạnh là ngược lại, tất nhiên.

[Cập nhật]

Chúng thực sự được biết đến bởi các tên khác, chẳng hạn như cổng thông qua và cổng truyền .

Chúng khác biệt đáng kể so với bộ đệm ba trạng thái thực (như bạn có thể thấy trong diagrame trong liên kết ở trên), nhưng đối với logic thông thường, hiệu ứng tốt hơn (đây vốn là một thiết bị hai chiều) nhưng có công suất thấp hơn.


Tha thứ cho sự thiếu hiểu biết của câu hỏi, nhưng điều này có khác biệt rõ rệt so với bộ đệm ba trạng thái không? (Và cảm ơn vì câu trả lời!)
Jeremy Gilbert

Đây cũng được gọi là "cổng thông qua"
Abbeyatcu

3

Nếu các tín hiệu dữ liệu được kết nối với vi điều khiển của bạn, bạn có thể chỉ cần làm cho chúng trở kháng cao bằng cách định cấu hình các chân đó làm đầu vào. (Nếu chip khác sử dụng rất ít năng lượng, bạn có thể coi Vcc của nó giống như tín hiệu dữ liệu.)

Nếu không, bạn có thể sử dụng các công tắc tương tự (chip logic 74x66) để ngắt kết nối chúng. Đối với các tín hiệu đơn hướng, 74 ngẫu nhiên cũng sẽ hoạt động.


Bạn thực sự không cần phải làm cho chúng trở thành Z cao, bạn chỉ có thể lái các dòng GPIO của micro thấp.
DoxyLover

1
Điều đó sẽ nguy hiểm hơn nếu con chip kia có thể khiến tín hiệu tăng cao.
CL.

Để tôi hoàn toàn hiểu, việc chuyển đổi các chân sang đầu vào luôn giống như đặt chúng ở trạng thái trở kháng cao? Đó có phải là khái quát cho hầu hết các MCU hay chỉ các AVR? Trạng thái đó có giống như bạn nhận được từ 74 xăng khi OE bị vô hiệu hóa không?
Jeremy Gilbert

@JeremyGilbert Tất cả các đầu vào CMOS có trở kháng cao (chúng là các cổng MOSFET, hoạt động giống như các tụ điện rất nhỏ). Một đầu ra 125 bị vô hiệu hóa không có cổng, nhưng sự khác biệt là không đáng kể.
CL.

1
@JeremyGilbert Các đầu vào thường có Z cao trong hầu hết các ứng dụng; Rốt cuộc, thật khó để cảm nhận bất cứ điều gì khi bạn đang lái xe. Điều đó nói rằng, với các AVR ít nhất (và có thể cả những người khác nữa, nhưng tôi không biết chi tiết cụ thể), bạn phải coi chừng các pullups bên trong: nếu pin ở chế độ đầu vào (được định cấu hình qua DDRx) và bạn viết THẤP nó (thông qua PORTx), nó ở chế độ Hi-Z thông thường. Tuy nhiên, nếu bạn viết CAO trong khi ở chế độ đầu vào, pullup bên trong được bật và từ bên ngoài chân trông giống như điện trở ~ 50K đến VCC thay vì đường nổi.
FlashCactus

1

Tôi không nghĩ rằng có một kích thước phù hợp với tất cả các chiến lược không may. Chuyển nguồn sang hệ thống con như bạn đã làm. Trong phần mềm, ổ chân thấp cho trạng thái năng lượng thấp, trừ khi làm như vậy sẽ gây ra tình trạng trạng thái ổn định công suất cao. Trong trường hợp đó, lái pin cao. Không bao giờ để đầu vào nổi. Trình tự sức mạnh khi cần thiết để thiết lập các điều kiện ban đầu an toàn.


1


I2C

Bạn không có tùy chọn đó - bạn buộc phải sử dụng I / O nối tiếp không đồng bộ. Một số vi điều khiển cho phép một cách tiếp cận tương tự như I2C để giải quyết vấn đề. Nếu bạn có thể lập trình pin đầu ra nối tiếp thành chỉ kéo xuống thay vì kéo xuống phổ biến hơn , kéo xuống cho 0 , thì bạn có thể thêm điện trở kéo lên để chuyển Vcc sang thiết lập một logic cao.
Giải pháp này không gây ồn như cách tiếp cận hiện tại của bạn, nhưng nó sẽ giải quyết vấn đề cấp nguồn lại cho các mô-đun I / O của bạn từ AVR. Nó không thực sự là một giải pháp "sạch", nhưng nó an toàn hơn nhiều cho các vi điều khiển trong các mô-đun IO của bạn.

sơ đồ

mô phỏng mạch này - Sơ đồ được tạo bằng CircuitLab

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.