Я працюю над проектом на базі AVR з низькою потужністю від акумулятора, який інтегрує кілька різних пристроїв, включаючи неопіксельну смужку і Adafruit pixie . Коли загальний пристрій у спокої, я хотів би отримати менше 0,1 мА, щоб збільшити час роботи акумулятора LiPo.
У мене все це працює (вимірюється 0,035 мА), але я не впевнений, що я обов'язково робив це "правильним" способом, і я планую створити продукт на основі цього, тому хотілося б зробити це правильно.
(Не показано: провідний діод для реле)
Основне занепокоєння, яке я маю, - це "паразитне" живлення пристроїв, коли VCC відключається за допомогою струму, що надходить від штифтів даних. Наприклад, Pixie (який спілкується серійно) не має режиму відключення живлення, навіть коли «вимкнено» стікає близько міліампер. Тому я розмістив невелике реле для відключення його VCC і виявив, що серійний штифт насправді все ще живить піксі. Підказки в іншому місці свідчать про те, що багато мікросхем мають діод, що маніпулює своїми цифровими вхідними штифтами на VCC як захист живлення. Щоб вирішити це, мені довелося призупинити серійну бібліотеку та фактично digitalWrite (PIN, LOW) під час сну.
Те ж саме і з смугою WS2812b - відключення VCC все ще дозволяє пристрою живитись від штифта даних. А в інших проектах, коли я відключав GND з N-канальним MOSFET, я бачив зворотне - зворотний потік струму через лінію передачі даних на землю! (Це потрібно було вирішити за допомогою діода на посаді в PJRC.) WS2812b насправді займає приблизно мільярд кожного, навіть якщо не вимикається,
Отже, питання: чи існує загальний "чистий" спосіб відключення VCC та GND від частин проекту під час системного сну, коли в суміші є шпильки даних. Яка найкраща практика?
Деякі ідеї:
- Примусити VCC до GND (не впевнений, як? Hbridge?). (Якщо я це роблю, що відбувається з високими шпильками даних?)
- Помістіть тривісний буфер між усіма штифтами даних та цими пристроями, а під час сну поставте тривісний буфер у стан високого опору, відключіть VCC або GND лише за допомогою P або N MOSFET
- Від'єднуйте GND тільки за допомогою N MOSFET та розміщуйте діоди на всіх штифтах даних
- Чи існує якась засувка живлення, яка відключає як VCC, так і GND і переводить їх у стан "високого опору" (як тридержавний буфер для живлення?). Таким чином, струм не має можливості витікати "з каналів даних".
Чи може хтось просвітити мене до найчистішого, найбільш повторюваного способу вирішення подібної проблеми "відключення завантаження"? (Потрібно говорити, що я витратив години на вирішення цієї проблеми з невеликою удачею, хоча я знайшов цю технічну записку щодо перемикання навантаження, але вона не стосується зворотної подачі та паразитарної потужності)