Я хочу использовать Raspberry Pi в качестве сервера XBMC в автомобиле. Документы XBMC говорят, что вы всегда должны использовать команду выключения перед отключением питания. Я не хочу (скажу моей жене) войти в систему Pi и выключить ее перед тем, как выключить машину - я хочу иметь возможность
Я думал, что можно создать простую схему с конденсатором и, возможно, диодом, чтобы определять, когда источник питания отключен (и вызывать прерывание на одном из выводов GPIO), но конденсатор будет обеспечивать ток достаточно долго. для правильного выключения системы.
Это выглядит правильным и достаточным?
Схема будет питаться от автомобильного аккумулятора - от 12,6 до 11,7 В. Raspberry Pi потребляет 5 В (от 5,25 до 4,75 В) и потребляет 700-1200 мА. Я еще не рассчитал время, но я предполагаю, что процесс выключения, вероятно, займет около 5 секунд.
Итак, я полагаю, что мне нужно знать:
Какой тип конденсатора мне понадобится, чтобы хранить достаточно заряда, чтобы Pi работал достаточно долго, чтобы XBMC правильно выключился?
Учитывая, что порт GPIO Rasperry Pi потребляет 3,3 В, что является лучшим компаратором / операционным усилителем для использования (полагаю, я мог бы использовать пару резисторов, чтобы снизить выходной сигнал с 5 до 3,3)
Будет ли какая-то выгода в том, чтобы линия GPIO была нормально высокой или нормально низкой?
источник
Ответы:
Альтернативной стратегией было бы непрерывное питание Raspberry Pi и использование линии зажигания для запуска последовательности выключения. Я делал это в прошлом, но с системами, где точное решение не применимо к Pi, но в целом:
Для достижения максимальной эффективности используйте преобразователь постоянного тока. Существует множество примеров, но ниже приведен один пример того, что было бы удобно использовать, и он может подавать 1A при 5 В от входа 6,5 В до 32 В:
http://www.digikey.com/product-detail/en/V7805-1000/102-1715-ND/1828608
Автомобильное питание может быть довольно резким, поэтому вы можете использовать 30-вольтовый диод TVS на входе для защиты от пиков с коротким диодом Шоттки с анодом на земле и катодом на входе 12 В для защиты от отрицательных напряжений, а также обычный предохранитель или самовосстанавливающийся предохранитель PTC, подключенный последовательно к источнику питания автомобиля и вашей системе. В противном случае вы сможете «взломать» автомобиль на USB-зарядное устройство, в котором уже должно быть все это.
Я не уверен, что рисует Raspberry Pi в обычном режиме ожидания, но, предположительно, под 500 мА, что является максимальным USB-питанием, и, скорее всего, 100 мА. Скажем, он использует 100 мА при 5 В, который будет ниже 50 мА при 12 В, если использовать эту схему, автомобильный аккумулятор обычно составляет порядка 50 Ач, так что для разряда батареи до 50% потребуется около 20 дней. Если автомобиль находится в регулярном использовании, вероятно, нет необходимости идти дальше, и вы можете просто оставить его включенным и просто отключить все периферийные устройства, которые вы не используете.
В противном случае для обнаружения изменения зажигания в любом случае и для информирования Pi о необходимости его выключения с последующим отключением питания через минуту наиболее практичным способом, вероятно, является использование внешнего микроконтроллера, который управляет полевым транзистором. Это может быть сделано с дискретной логикой, но вам также нужно убедиться, что питание подается снова, когда зажигание повышается, так что это не совсем тривиальное упражнение, но затраты на запчасти будут ниже, чем при использовании большой крышки.
источник
Я не очень хорошо знаком с поведением Raspberry Pi при выключении и энергопотреблении, поэтому я буду в основном полагаться на цифры, которые вы дали, и оставить формулы.
Кривая экспоненциального разряда, которую вы показываете, предназначена для цепи резистор-конденсатор, но линейный регулятор заставляет вещи действовать немного по-другому. Предположим, что RPi всегда потребляет максимальный ток, который вы указали: 1200 мА. В этом случае этот ток всегда протекает через регулятор, и эффективное сопротивление цепи постоянно меняется (уменьшается) по мере разрядки конденсатора. Это верно, пока мы находимся в рабочем диапазоне линейного регулятора, что нормально, потому что нам нужно отключить RPi, прежде чем мы достигнем этой области.
Дифференциальное уравнение для конденсатора:
Это дает следующий результат:
Да, это 1,28 Фарада (здесь нет ни микро, ни милли). Это, вероятно, потребует покупки нескольких низковольтных колпачков и их последовательного размещения
Тогда другой проблемой является ваша схема - она не будет работать так, как вы хотите, потому что единственный способ, которым положительный вход компаратора приближается к отрицательному входному напряжению (так что выход может измениться), это когда ваше входное напряжение уже мертв. Как и задумано, компаратор никогда не переключается.
То, что вы хотите сделать, это измерить ваше входное напряжение перед конденсаторами и диодом и сравнить это напряжение с «эталоном», который вы можете установить с помощью триммера. Смотрите пример схемы ниже:
смоделировать эту схему - схема, созданная с использованием CircuitLab
источник
Примечание: следующий ответ был написан с предположением, что только использование файловой системы SD-карты может быть повреждено. С тех пор появилось много неподтвержденных данных, свидетельствующих о том, что внутреннее состояние самих SD-карт ниже уровня любой файловой системы потенциально подвержено риску повреждения из-за несвоевременной потери питания, что может оказаться невозможным для обхода. уровень файловой системы.
Я хотел бы взглянуть на совершенно другой подход, один из решения проблемы в ее источнике. По сути, нет ничего принципиально неправильного в том, чтобы просто извлечь силу из пи; проблема заключается в потенциально незафиксированном состоянии файловой системы, приводящем к повреждению файловой системы и последующему сбою загрузки, пока вы не восстановите / повторно не создадите образ тома.
Но это то, что можно исправить на стороне программного обеспечения, с помощью некоторой комбинации:
Создайте больше разделов на SD-карте и никогда не монтируйте загрузочный раздел или раздел операционной системы в режиме записи. Если вы хотите пойти дальше, никогда не записывайте что-либо на SD-карту, сохраняя все изменяемые данные на USB-накопителе.
Используйте журналирующую файловую систему для хранения данных, которые фактически будут изменены в процессе работы.
Просто держите резервную карту под рукой, при желании это может быть какая-то схема автоматического резервного копирования и восстановления с подключенной карты с правилом, когда только одна из карт может быть подключена для записи в любой момент времени (в сочетании с первым правилом загрузки / операционной системы). разделы никогда не будут записываться)
В конечном итоге все сводится к вопросу философии дизайна - выбора между:
А) Деликатная система, которая должна быть защищена от потери мощности, чтобы она не страдала от коррупции.
или
Б) Система, спроектированная таким образом, что неожиданная потеря питания не может привести к неисправимому повреждению.
Большинство встроенных систем более похожи на (B).
источник
Как уже отмечали другие, есть несколько проблем с предложенными схемами, и вы можете получить конденсатор, достаточно большой, чтобы поддерживать источник питания либо. Если вы хотите построить небольшую цепь, вы можете рассмотреть возможность включения / выключения контроллера с защелкивающимся питанием, работающего от кнопки. Чтобы выключить сервер XBMC, вы можете нажать кнопку, сигнализирующую о выключении Pi, затем он может сделать то, что нужно для чистого упорядоченного выключения, а затем подать сигнал GPIO в цепь, которая отключает питание для себя. Это дает RPi столько времени, сколько необходимо для безопасного отключения SD-карты. Схема не должна быть такой сложной, как реле и таймер.
Вот простая схема для этого , которая использует только двойной mosfet в качестве контроллера. Схема описана на веб-странице.
источник