Блок питания для RPi

Сегодня взял в руки осциллограф и посмотрел, что делается на шине питания +5В у RPi.

AZH-0032

(Все картинки кликабельны)

Вот осциллограмма нормального «БП» (850 мА, это фирменный зарядник от телефона Xperia)

Что мы видим?

Ну, во первых, напряжение не совсем 5.0В, а «пляшет» где-то в районе 4.8В. Размах «пляски» примерно 0.3 В. Тем не менее — RPi работает нормально. Развертка по X была 1.0 с/дел, по Y — 1.0 В/дел

Давайте ускорим развертку и посмотри, что это за шумные такие пляски в питании:AZH-0033

Я установил развертку 10 мс/дел. Сейчас стало видно, что примерно через каждые 10 мс случается маленький такой провал в напряжении. В общем-то нормальное явление, всё абсолютно в норме! Другое дело, что мы можем догадываться, что процессор что-то делает каждые 10 мс. Если вы знакомы с работой операционных систем, то наверно уже догадались.

Каждые 10 мс RPi меняет контекст, то есть переключает задачи. Линукс — многозадачная система. Говорят, что задачи выполняются одновременно. На самом деле, в один момент времени может выполняться только одна задача. Ну, если быть более дотошным, то сколько ядер у проца, столько задач выполняется одновременно. У процессора BCM2835, на которм создан RPi, одно ядро.

Из-за того что проц переключаются с одной задачи на другую достатчно быстро, нам кажется, что все задачи исполняются одновременно.

Ладно. Претензий к этому БП у меня нет. Перехожу к расмотрению дешового БП на 350 мА.

И что я вижу! На этапе загрузки, когда система подключает USB-периферию (клаву, мышь) случается сильная просадка напряжения — вплоть до 3.6 В:

AZH-0021

Этов начале 3-е1 секунды от начала старта системы. Нехилое проседание. Вероято именно это и приводит к тому, что ни клава, ни мышка после загрузки Малинукса не работают.

Вот еще несколько осциллограмм при загрузке. Все провалы случились в то же самое время:AZH-0023 AZH-0026 AZH-0027

Они немного различаются, но уровень проседания на них примерно одинаковый.

Несколько раз мне удалось  загрузить Малинукс при отключенной мышке. Тем не менее, в процессе работы в питании так же случаются провалы:

AZH-0029 AZH-0028 AZH-0024

Ну что ж, чудес не бывает. Источник питания должен быть хороший. Сейчас попробую поискать в загашнике резистор на 1 Ом, и установить его вместо R51 (0 Ом). На сколько я понимаю, он стоит в цепи питания +5В последовательно с предохранителем. (Нужно будет еще нагуглить схему RPi.) Если все это так, как я предполагаю, то можно будет посмотреть осциллографом падение напряжения на резисторе, то есть увидеть потребляемый платой ток.

UPADTE 08.01.2012-19:52

Изловчился я сегодня и снова позанимался вопросами питания RPi.

1. Изучил нагрузочную способность источника питания Vertex 350 mA.

Поскольку у меня в хозяйстве не оказалось ни одного разъема micro-USB, пришлось эксперименты устраивать непосредственно на плате RPi. Конечно, риск был, но если подойти вдумчиво к вопросу и не делать того, чего не понимаешь, то ничего опасного.

Во первых, я нагуглил схему RPi. Оказалось, резистор R51 сопротивлением 0 Ом стоит несколько в другой цепи. Он соединяет землю (общий провод) платы RPi с защитной землей (экраном) разъема micro-USB. То есть питающие токи по нему не текут. В связи с таким поворотом фактов пришлось демонтировать с платы не его, а предохранитель F3. Таким образом я отключил плату от +5В.

Далее я припаял к общему проводу и цепи +5В переменный проволочный резистор на 50 Ом и снял нагрузочную характеристику блока «дохленького» питания.

При увеличении нагрузочного тока с 0 до 350 мА питающее напряжение на разъеме плавно снижается с 5.38 до 5.13 В. При токах 350-400 мА происходит резкий изгиб нагрузочной характеристики примерно до 4.5 В.Более точно померить в этом месте характеристику мне не удалось из-за температурного дрейфа элементов БП.

Дальнейшее уменьшение сопротивления нагрузки приводит к ограничению тока на уровне 430-450 мА и резкому падению напряжения вплоть до 0 В. В БП встроена неплохая защита.

В общем, так или иначе, БП выдает свои заявленные 350 мА, но на большие подвиги он не способен — срабатывает защита.

2. Вторая часть эксперимента состояла в том, что я вместо предохранителя впаял пару резисторов на 1 Ом. Получилось общее сопротивление 0.5 Ома. Даже если плата вдруг начнет потреблять 1 А, то падение напряжения на этих 0.5 Омах уменьшать питающее напряжение всего на 0.5 В. Оставшихся 4.5 по моим прикидка будет более чем достаточно для платы.

(Ну, наверно, понятно, что я удалил переменный резистор на 50 Ом.)

Я пристыковал все разъемы к плате и к резисторам прицепил осциллограф. Каково же было мое удивление, что плата вообще отказалась работать! Не горел даже красный светодиод в питании. О-о, как!

Я еще раз проверил схему, ничего не замыкало. Проверил питание на плате — положенные +5В на месте. Однако, никаких признаков жизни, такое ощущение, что согрел проц. Но как!?

Не буду вас утомлять эмоциональным пересказом… короче — провод земли, который идет к осциллографу, соединяется с клеммой «земля» в питающем кабеле и, соответственно, в розетке. (У меня евро-розетки). Тоже самое происходит с «землей» в мониторе. Я не знаю как, но «земля» осциллографа и «земля» монитора (пришедшая на плату через разъем HDMI) друг другу не понравились. «Бэмс!» не случилось, но из-за их взаимной ненависти плата отказалась работать.

Пришлось переобувать моник и осциллограф в питающие кабеля а-ля СССР, у который нет «земли». К счастью, плата оказалась живой, и я продолжил свои исследования.

Вот, что я намерил в питании платы от нормального БП:

AZH-0034

На этой и следующей осциллограммах вертикальная развертка соответствует значению 200 мА/клетка. Горизонтальная развертка на этой осциллограмме — 2 сек в клетке. Очень хорошо видно, что к концу шестой секунды потребляемый ток увеличивается до значения 400-500 мА, а отдельные пики достигают 600 и чуть более мА. Теперь становится понятно, почему «дохленький» БП не позволял толком запуститься RPi.

И еще хочу обратить ваше внимание на бросок тока при подключении БУ к плате. На осциллограмме это токая «иголка» уходящая вверх в бесконечность. На самом деле это есть бросок тока примерно 5-6 А. Я не стал делать скриншот, просто прошу поверить мне на-слово.

На следующей осциллограмме изображено потребление тока при очень медленной развертке — 20 секунд в клетке. Примерно к 40-вой секунде повышенное потребление тока несколько снижается. Это время соответствует окончанию загрузки Raspbian.

AZH-0035

Я переконфигурировал загрузку Малинукса. Тепрь он у меня не загружает Иксы, а останавливается на текстовой консоли. Прмиерно на 60-65 секунде я захожу в систему под своим аккаунтом, а на 75-ой даю команду на загрузку Иксов:

$ startx

Потом, почти сразу после загрузки графической среды, я открыл браузер и загрузил страницу с сайта http://raspberrypi.ru/

Ну вот, теперь картина почти полная. В процессе работа RPi потребляет в среднем 400-500 мА, отдельные пики могут достигать значения 600-650 мА. Отсюда и требования к БП.

Реклама

4 responses to “Блок питания для RPi

  1. Кондер в 5-10000 мКф спасет отца русской демократии, ммм, а на фига этот эксперимент с последовательным подключением низкоомного резистора? И так понятно что будет… 😉

    • 1.
      Кондер в 5-10000 мКф — это не мой метод.

      К стати, на плате RPi уже имеется конденсатор в 220 мкФ. Поэтому я буду считать, что Вы имели ввиду не 5.0 мкф, а 5000 мкф.

      То, что вы предлагаете, содержит уйму граблей, которых сразу не видно.

      Например, затянутый фронт нарастающего напряжения питания. Вы когда-нибудь с микроконтроллерами работали? Как вы обходили проблемы очень плавного включения питания?

      Следующая проблема — известно, что в слабеньком источнике питания срабатывала защита при токах 350 мА, и начинала снижать подаваемую мощность (, которое выражалось в снижении напряжения). А так как даже сглаженные пики потребляемого тока RPi находится как раз где-то в этих пределах, то получается, что один раз мега-электролит может и не даст просадить напряжение питания, в другой раз, более длительного потребления повышенного тока, — она не справится. И что тогда? Эксплуатировать изделие и знать, что у БП запаса по мощности практически нет — как минимум не разумно. Зачем себе создавать проблемы, которые вылезут в самый неподходящий момент?

      Ну и так далее. Мне, честно говоря, не хочется фантазировать на эту тему. Тем более, что цена вопроса — новый БП за 140 рублей.

      Вы просто оцените риски своего способа и стоимость нового БП, который гарантированно (на 100%) избавит Вас от проблемы питания.

      2.
      Зачем нужен был резистор. Ну, в отличие от Вас, мне было не понятно, какой ток потребляет RPi. Мне также были неясен характер потребляемого тока. Все эти характеристики можно посмотреть с помощью осциллографа. Но осциллографы измеряют напряжения, а не токи. Поэтому, я выпаял предохранитель и на его место установил резистор — датчик тока. На резисторе падало напряжение пропорциональное потребляемому току. Таким образом, измеряя напряжение на этом резисторе, можно легко пересчитать его в потребляемый ток.

  2. для измерения тока ставят резисторы как минимум 0,1 Ом — которые меньше ограничат ток при включении питания.

    • Наверно Вы хотели сказать «как максимум».

      Да. Конечно. В общем случае это так. Чем меньше сопротивление резистора, тем меньше будет падение напряжения на нём. Тем меньше он «отберёт» напряжения у исследуемого устройства.

      В моём же случае — у меня под руками были два резистора по 1 Ому. Конечно, шунт, сопротивление которого 0.5 Ом, несколько великоват, но картину посмотреть принципиально можно. А это главное.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s