Непрерывное напряжение на выводах ввода-вывода, когда 5 В не подключено?

У меня есть небольшой проект, в котором я только что успешно уничтожил свой первый из 5 Digispark (Attiny85).

На картинке вы видите Cirucit. У меня есть 2 литий-ионных элемента, соединенных последовательно, чтобы получить достаточно высокое напряжение, чтобы понизить его до постоянного 5 В. К этим 5V подключены некоторые Neopixels и контроллер Digispark, который будет устанавливать цвет для Neopixels. A0 и A1 измеряют напряжение ячеек, чтобы сообщить пользователю, если напряжение слишком низкое, чтобы его можно было отключить вручную. При прототипировании у меня не было резисторов 10k.

Что произошло: при соединении ячеек друг за другом светодиоды контроллеров уже загорались вместе с ячейкой Frist. Я предполагаю, что он был запитан через контакт A0 (опять же, у меня не было там резистора 10k), поэтому я предполагаю, что внутренние диоды защиты ввода-вывода пропускают напряжение, и таким образом контроллер был поврежден. Поскольку это произошло, он больше не включается.

Проблема: поскольку у меня очень мало места, я не могу использовать многополюсный переключатель, чтобы также снять напряжение с контактов ввода-вывода, и поэтому у меня всегда будет напряжение на A0 и A1, в то время как нет напряжения питания 5 В. Я предполагаю, что последовательного сопротивления на выводе будет достаточно, чтобы ограничить ток через них и таким образом защитить контроллер от повреждений. Но у меня действительно нет опыта в этом, и я надеюсь, что вы, ребята, можете дать мне несколько советов, что также может быть проблемой или что может помочь :) Я действительно не хочу уничтожать второй xD

Заранее спасибо и хорошего дня :)

, 👍1

Обсуждение

Вы правы в своем анализе исходной проблемы. Резистор 10 кОм должен подойти, так как он пропускает только 0,4 мА. Хотя это не совсем элегантно. Этот ток может быть проблемой для нижней батареи, если она остается выключенной в течение длительного времени. Так как это будет медленно разряжать батарею., @Gerben

@Gerben Я думал, что аналоговые входы на большинстве плат Arduino были емкостными, поэтому ток близок к нулю? (Я предполагаю, что если плата выключена, контакт может работать как цифровой выход с НИЗКИМ уровнем, который соединяет его с землей.), @Duncan C

Обычно в этой ситуации вы должны изолировать соединения с батареями с помощью P-канальных МОП-транзисторов и включать их только тогда, когда хотите измерить напряжение., @Majenko

@DuncanC проблема заключалась в фиксирующих диодах внутри микросхемы на каждом выводе ввода-вывода. Таким образом, 3,7 В шло на контакт через фиксирующий диод на Vcc. Питание всей схемы через этот диод. Это может работать для нескольких миллиампер, но со светодиодной лентой диод не проживет долго., @Gerben

В этом есть смысл. Я забыл о фиксирующих диодах, обеспечивающих путь для входов, идущих к VCC., @Duncan C


3 ответа


0

Как правило, к логическим выводам цифровых ИС не следует подавать более высокое напряжение, чем к их выводам питания. Это означает, что если вы отключите питание, вы также должны отключить напряжение на логических выводах.

Несоблюдение этого правила часто приводит к краху IC.

Я не знаю специфики входов на вашем DigiSpark. Резисторы на 10 кОм, безусловно, снизят ток, который может протекать через эти контакты, но вы все равно нарушите принцип «не подавайте на входной контакт больше напряжения, чем на контакт VIN». правило.

,

2

Для этого я бы рекомендовал изолировать питание от батарей с помощью P-канальных МОП-транзисторов и включать их только тогда, когда вы хотите измерить напряжение. Это означает, что в выключенном состоянии энергопотребление вообще отсутствует (кроме абсолютно ничтожного тока утечки).

Для всей установки потребуется 4 полевых МОП-транзистора — два P-канальных и два N-канальных. Они не должны быть большими, так как задействованные токи очень малы, но они должны иметь «логический уровень». пороги, в идеале < 1,5 В (-1,5 В для P-канала).

Основная схема выглядит следующим образом:

схема

Схема состоит из двух одинаковых сегментов - M1+M3 и M2+M4. Операция довольно проста:

  • M1 (M2) остается в выключенном состоянии, когда R1 (R2) подтягивает затвор к источнику.
  • M3 (M4) может тянуть затвор M1 (M2) LOW, открывая его и пропуская ток
  • Любой вывод GPIO (в данном примере D7) может одновременно управлять и M3, и M4.
  • R5 удерживает M3 (M4) в выключенном состоянии, когда нет питания, в противном случае он не работает.
  • R3/R4 — это ваш существующий делитель напряжения.

Целью M3 и M4 является превращение GPIO (D7) в «открытый сток». так что он либо тянет вниз, либо плавает на высоком уровне (а не на высоком уровне 5 В) и изолирует два напряжения затвора подтягивания. Тот же эффект может быть достигнут с помощью двух диодов и одного МОП-транзистора, но проще использовать два МОП-транзистора и не покупать диоды.

,

Воооу, не ожидал такого подробного ответа, спасибо большое., @KidCe

Отправьте последний комментарий, прежде чем я захотел xD, так что вот остальное: Теперь мне нужно заказать несколько мосфетов общего логического уровня :') Поскольку я использую механический переключатель для отключения питания, я думаю, мне все равно придется убедиться, что контакт D7 в этом примере будет низким, когда я выключу, потому что в противном случае он все равно был бы подключен к контакту на долю секунды. . Любые мысли по этому поводу? :), @KidCe

Для этого вы можете оставить встроенные токоограничивающие резисторы., @Majenko

Кроме того, полевые транзисторы будут включаться только на короткое время, когда вы считываете напряжение батареи, и выключаются в остальное время., @Majenko


0

Если все, что вы делаете с A0/A1, это "сообщение пользователю о том, что напряжение слишком низкое для продолжения работы", рассмотрите следующее:

  • полностью снимите провод с верхней части нижней батареи
  • вместо делителя напряжения 1/1 используйте что-то вроде 10/1 (т. е. 680 К сверху и 68 К снизу, чтобы обеспечить большое последовательное сопротивление (что делает потребление тока в установившемся режиме незначительным). Это также поместит номинальное напряжение полного заряда, измеренное на входе АЦП, в диапазон напряжения постоянного тока Digispark с небольшими затратами на точность. от использования резистора серии 680K не должно быть больше нескольких процентов.Используйте переменный источник питания для калибровки настройки аналого-цифрового преобразователя, чтобы ваш контроллер предупредил пользователя о низком уровне заряда батареи.Если у вас нет переменного блок питания, рассмотрим что-то вроде этого

Фрэнк

,

Да, измерять только верхнюю ячейку — это здорово, если вы всегда используете «соединенные ячейки» и у вас есть некоторая погрешность, но, поскольку я планирую сделать ячейки взаимозаменяемыми, я думаю, что в моем приложении я должен всегда контролировать обе ячейки., @KidCe

Несоответствие типов батарей обычно является очень плохой идеей, но если вам необходимо, измерьте оба напряжения с помощью делителей напряжения с высоким коэффициентом, как описано выше, чтобы ток утечки через делитель был сопоставим с током саморазряда батарей., @user3765883