Step-Up на базе NCP1402 (ncp1402sn50t1g)

Step-Up на базе NCP1402По наводке уважамого Zlodey приобрел на ebay Step-Up ncp1402sn50t1g (даташит).

Поскольку ничего, что требовало бы батарейного питания я сейчас не придумываю, а попробовать новую детальку (пришедшую, между прочим, в количестве десяти штук) хочется — сделал простенькую плату — Step-Up блок питания на 5 Вольт, 200 мА.

Схема — тупо по даташиту.

Схема

Благо деталей требуется всего ничего:

Детали

Крайний слева пятью ногами кверху — герой нашего повествования. Он тут самый маленький.
На правом фланге — опциональная клемма под винт для подключения питания, угловая гребенка для втыкания в макетную плату и полевой N-канальный транзистор IRLML6244TRPBF (даташит), который я использую в качестве защиты от переплюсовки (см. вариант 4 здесь).

Разместилось все на двусторонней печатной плате 32 мм х 13 мм (картинка кликабельна, по клику загружается ZIP-архив с разводкой платы в формате SprintLayout).

Верхняя сторона
Нижняя сторона


Падение напряжения на диодеВходной танталовый конденсатор — безродный китайский номиналом 22 uF вместо рекомендованных 10. 10 uF просто не было. Вроде повлиять не должно.

Выходной — электролит 47uF, 16 Вольт — аналогично безродный.
Честно говоря, даташит рекомендует ставить на выход танталовые конденсаторы емкостью в диапазоне 47-68 uF. Причем если важны габариты, то можно использовать два соединенных паралелльно танталовых конденсатора емкостью по 22 uF.
Но я пожадничал.

Индуктивность 47мкГн — LQH88PN470M (даташит) с малым активным сопротивлением 0.157 Ом (даташит на NCP1402 рекомендует не более 1 Ом).

Диод Шоттки — VS-10MQ040NTRPBF (даташит).
Вот диод подкачал. Потому что опять же, что было. Он, конечно, хотя бы Шоттки, но этим его достоинства и исчерпываются.
По даташиту на NCP1402 именно диод в наибольшей степени влияет на КПД Step-Up. Основной параметр — прямое падение напряжение на диоде. Желательно не более 0.3 Вольт, а у VS-10MQ040NTRPBF на Step-Up-овских скромных 200 мА получается в районе 0.3 Вольт. А может и чуть больше. И это если я еще правильно понял график зависимости VF от тока.
Максимальное же падение напряжения — 0.56 Вольт, но это на полутора амперах тока. Силовой выпрямительный диод.

Кроме того, диод должен как можно быстрее закрываться и иметь минимальные утечки в обратном направлении. Тут мне оценить сложно, но скорее всего у VS-10MQ040NTRPBF все эти показатели не оптимальны.

После того, как я сделал плату, я сообразил, что нижняя сторона у нее практически не задействована. И что если отказаться от клемм, и более равномерно распределить компоненты по разным сторонам, то можно еще больше сократить занимаемые ею размеры.
Получилась миниатюрная платка 18 х 10 мм, картинка — ниже, в файле SprintLayouta она тоже присутствует (на второй закладке).

Только я ее не делал и не тестировал!

Минимальная плата - верхняя сторона
Минимальная плата - нижняя сторона


У этого варианта есть определенная засада — толстенная (0.4 мм) земляная дорожка проходит под брюхом ncp1402. Что до определенной степени рискованно. Но зато разводка получилась логичная и красивая.

Кстати, в даташите приводится разводка преобразователя на плате 20 х 23 мм.

Еще одна хитрость из даташита — в нем есть картинка, на которой прорисованы дорожки, которые должны иметь наименьшее сопротивление (то есть быть как можно более короткими и толстыми), чтобы увеличить КПД преобразователя:

Дорожки

Это «прямоток» от входа к выходу через индуктивность и диод, земляные дорожки и «сборс» на землю с NCP1402.
И дорожки к конденсаторам, естественно.

Вот что получилось. В заголовке устройство сразу после сборки, а это фотография его же уже в цапон-лаке.

Устройство залито цапон-лаком

Черным маркером помечена плюсовая клемма. На всякий случай.

Что любопытно, уже в процессе написания статьи я обнаружил, что во-первых, я когда-то давно читал на хабре статью про этот преобразователь, а во-вторых, многие известные приозводители «хоббийной» электроники выпускают платы на его базе — Pololu, Sparkfun

PololuSparkfun

Как видим, в обоих случаях в качестве выходного конденсатора используется тантал, так что зря наверное я ставил электролит… Тантал и габариты позволяет уменьшить. Правда, катушечка тоже поменьше, чем моя.

Пробуем померять потребление

Измерительный стенд.

Стенд

Четыре резистора справа — различная нагрузка. Подключение нужной нагрузки осуществляется коммутаций выхода Step-Up с нужным резистором.
Светодиод — для оперативной проверки, что все работает (поскольку более-менее точный вольтметр у меня один, его приходилось все время подключать то последовательно, то паралелльно, то ко входу, то к выходу). Ткнул в светодиод проводом — если зажегся, значит все подключено правильно.

Вот что получилось в результате. Таблица в стиле «Почувствуй себя АЦПУ».
Точность, конечно, весьма условная.


.---------.--------------.-------------.---------.--------------.------------.-----------.-----------.-----------.
| Питание | Номинал      | Входное     | Входной | Потребляемая | Выходное    | Выходной | Мощность  | КПД по    |
| батарей | резистора,   | напряжение, | ток,    | мощность,    | напряжение, | ток,     | нагрузки, | мощности, |
|         | Ом           | Вольт       | мА      | мВт          | Вольт       | мА       | мВт       | %         |
|---------|--------------|-------------|---------|--------------|------------|-----------|-----------|-----------|
|    1xAA | Холостой ход |       1.605 | 27.2 uA |              |            |           |           |           |
|         |     1К (984) |       1.603 |    28.9 |         46.3 |       5.17 |      5.16 |      26.7 |        57 |
|         |    560 (548) |       1.473 |    54.3 |         80.0 |       4.60 |      8.66 |      39.8 |        50 |
|         |  150 (147.2) | 1.0-0.9 (*) |    58.4 |              |       1.97 |      10.1 |           |           |
|         |   100 (97.6) |             |         |              |            |           |           |           |
|---------|--------------|-------------|---------|--------------|------------|-----------|-----------|-----------|
|    2xAA | Холостой ход |       3.216 | 12.8 uA |              |            |           |           |           |
|         |     1К (984) |       3.236 |     9.6 |         31.0 |       5.17 |      4.89 |      25.3 |        82 |
|         |    560 (548) |       3.222 |    19.9 |         64.1 |       5.17 |      9.18 |      47.5 |        74 |
|         |  150 (147.2) |       3.138 |   139.5 |        437.8 |       5.04 |     27.0  |     136.1 |        31 |
|         |   100 (97.6) |       3.106 |   140.0 |        434.8 |       4.92 |     39.5  |     194.3 |        44 |
|---------|--------------|-------------|---------|--------------|------------|-----------|-----------|-----------|
|    3xAA | Холостой ход |        4.82 | 0-20 uA (*)            |            |           |           |           |
|         |     1К (984) |        4.84 |    6.46 |         31.3 |       5.08 |      4.84 |      24.6 |        79 |
|         |    560 (548) |        4.83 |   11.34 |         54.8 |       5.05 |      8.86 |      44.7 |        82 |
|         |  150 (147.2) |        4.79 |    46.6 |        223.2 |       5.18 |     28.34 |     146.8 |        66 |
|         |   100 (97.6) |        4.72 |   270.0 |       1274.4 |       5.14 |      41.1 |     211.3 |        17 |
.---------.--------------.-------------.---------.--------------.------------.-----------.-----------.-----------.
(*) - нестабильные показания


Что можно сказать:

1) Обещанный даташитом ток холостого хода порядка десятков uA Step-Up в общем выдерживает. 13-15 uA по даташиту, 12.8 uA при питании от двух батареек.
Что интересно, при подключении к трем батарейкам AA (4.82 Вольт на входе) показания мультиметра непрерывно колебались от нуля до 20 uA. Видимо Step-Up начал заглатывать очередную порцию питания так редко, что это уже стало заметно невооруженным глазом.
Низкий ток холостого хода означает, что NCP1402 можно сравнительно безболезненно использовать в устройствах, которые должны долговремено находиться в автономном режиме с батарейным питанием.
Для сравнения, минимальное потребление, которое мне удалось добиться от Atmega328P-PU в режиме глубокого сна составило 20-30 uA.

2) Подключать нагрузку с током более 5 мА к одной батарейке не стоит. Да и при меньших токах КПД низковат. Две батарейки дают заявленный даташитом КПД в 80% на токе потребления порядка 5-10 мА, характерном для активной фазы небольшого устройства на базе Atmega.

3) Вопрос о целесообразности подключения Step-Up при питании от трех батарей остается открытым.
С одной стороны, при таком подключении Step-Up-а достигается максимально высокий КПД, и одновременно обеспечивается глубокий разряд батарей, позволяющий максимально полно использовать их энергию.
При этом устройство питается (более-менее) стабильными 5 Вольтами, а цена решения в денежном выражении не высока.

С другой стороны, потери все равно имеются, а Atmega на 16МГц достаточно неплохо работает в том диапазоне напряжений, в котором от батареек есть еще какая-то польза.

Было бы любопытно устроить сравнительный «забег» двух устройств с разным типом питания, но он, по самым скромным прикидкам, растянется месяца на три…

4) Легко заметить, что при питании от одной батарейки (1.6 Вольт) преобразователь начинает загибаться (перестает выдерживать заявленное выходное напряжение) уже при выходном токе чуть выше 5 мА.
При питании от двух батарек (3.2 Вольт) просадка выходного напряжения происходит при 40 мА выходного тока.
Эти значения несколько меньше заявленных 200 мА выходного тока, но все становиться понятно, если найти в даташите график зависимости выходного напряжения от выходного тока.

Выходное напряжение в зависимости от тока

В данном случае график приводиться уже, естественно, не для семейства NCP1402 в целом, а для конкретного 5-ти вольтового его представителя.
Это целое семейство характеристик — для различных входных напряжений.

Сразу понятно, что 200 мА на выходе мы можем получить только имея на входе от 3х до 4х Вольт. Что согласуется с моими измерениями — при питании от 3х батареек (4.82 Вольта) на выходе даже при токе 40 мА стабильно было напряжение выше 5.17 Вольт.

При питании от одной батарейки (1.6 Вольт) теоретически можно было бы получить 20-30 мА, да вот только при увеличении выходного тока увеличивается потребление входного тока, и падает входное напряжение. А чем меньше напряжение на входе, тем на меньший ток на выходе можно рассчитывать. Так что даже 10 мА от одной батарейки получить не удается.

Еще одно следствие — если мы хотим максимально полно использовать две или три батарейки, то не следует планировать извлекать из них большие значения выходного тока, т.к. по мере разряда батареек их суммарное входное напряжение будет падать…

Неожиданное применение

И тут меня осенило…

Проблема, которая мучает меня уже года полтора — как организовать совместное батарейное питание Atmega и коллекторного электродвигателя.
Впервые я наступил на эти грабли, когда попытался соорудить управляемого Atmeg-ой робота на базе вот такой колесной платформы

Шасси

Ее двигатели питаются от 4х батареек AA, контейнер для которых входит в состав платформы. Не мудрствуя лукаво я сделал отвод от 3ей батарейки, рассчитывая получить честных 4.5 Вольт для питания «мозга» платформы.
В теории все было разумно. На практике — в момент начала движения «мозг» вис. Если он не вис при старте — он вис при повороте, при изменении скорости (я управлял двигателями ШИМом через драйвер двигятелей L293D), при следующем старте… В общем, он вис рано или поздно.

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

Это несколько доставало, и платформа отправилась в отстойник ждать решения своих проблем.

Первый путь решения надыбанный в Интернете — обвешивание двигателей конденсаторами — оказался ложным. Зависания не прекратились.

Второй путь — организовать для «мозгов» отдельное питание от собственной батарейки — был понятен, но вызывал ощущение капитуляции перед трудностями. Кроме того, появлялась необходимость таскать эту самую дополнительную батарейку, а в перспективе — столкновение с теми же самыми неприятностями при попытке перейти на аккумуляторное питание. Питание от раздельных аккумуляторов выглядело исключительным колхозом…

А потом я попытался управять минипомопой

Помпа

С тем же результатом.

А потом я почитал про устройство коллекторного двигателя и до меня дошло.

Пусковой ток.

В момент подачи напряжения двигатель представляет из себя моток хорошо проводящего медного провода. С сопротивлением порядка нескольких Ом. Соответственно, в полном соответствии с законом Ома, через двигатель течет неслабый ток. И просаживает напряжение питания.

Так, двигатели моей платформы имеют сопротивление 3.2 Ом, помпы — 1.8 Ом.
При напряжении питания платформы порядка 6 Вольт (4 батарейки х 1.5 Вольт) получаем стартовый ток одного двигателя платформы — 1.8 Ампер. Помпа питается от 9 Вольт, то есть стартовый ток — 5 Ампер.

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

Суть проблемы стала понятной. А вот с решением возникли совершенное неожиданные трудности. Попытка найти что-то готовое неизбежно приводила к описанию вариаций устройства ограничения пускового тока для троллейбуса — чудовищного девайса, представляющего из себя магазин сопротивлений, подключенных последовательно двигателю, и переключаемых водителем троллейбуса вручную по мере разгона его пепелаца…

Творческая доработка данного подхода приводила к мысли поставить какой-нибудь достаточно мощный транзистор последовательно двигателю и организовать обратную связь на транзистор от токоизмерительного шунта. Но это все оказывалось слишком близко к аналоговой электронике, чтобы браться за такое устройство с наскоку и управление двигателями временно отодвинулось на второй план.

А тут я держу в руках Step-Up. Работа которого — делать из маленького входного напряжения стабильное выходное.
Собрал стенд. Первый вариант — без Step-Up

Подключение коллекторного двигателя без Step-Up

Второй вариант — со Step-Up

Подключение коллекторного двигателя через Step-Up

«Низковольтную» нагрузку (мозги) имитирует светодиод HL1 с токоограничительным резистором R3. Резистор я подобрал так, чтобы через светодиод протекал ток чуть больше 10 мА.

Управление питанием двигателей и запись напряжений — через Arduino.
Затвовор N-канального полевика VT1 (собственно говоря, это тот же самый IRLML6244TRPBF, что и в схеме Step-Up-а, он позволяет пропустить через себя большой ток) подключен к цифровому пину Arduino. Подача высокого уровня на этот пин запускает двигатели в соответствии с программой, заложенной в Arduino.
Напряжение на двигателях (порядка 6 Вольт) подключил к аналоговому пину Arduino через резистивный делитель напряжения R1,R2.
Напряжение на входе Step-Up и на светодиоде — напрямую к аналоговому пину.

Диод Шоттки VD1 предотвращает разряд входного конденсатора Step-Up (или просто конденсатора) при падении напряжения в питающей цепи.
VD2 — стандартная обвязка индуктивной нагрузки (двигателей) для предотвращения пробоя полевого транзистора VT1 при их отключении.

Земля Arduino объединена с землей стенда (это нарисовать я забыл).

Контрольно-измерительный Arduino реализует следующую программу:
— пауза 300 мс
— три цикла включения двигателей на 500 мс с паузой между включениями 500 мс
— пауза 300 мс

(Неожиданно оказалось, что более частое включение двигателей не усугубляет ситуацию, а улучшает ее — двигатели не успевают остановиться и при повторной подаче напряжения стартуют «с хода», в результате чего наблюдается некоторое уменьшение падения напряжения при старте).

Во время измерений платформа вывешивалась, колеса вращались в воздухе, без сопротивления.

Итак, сначала снимаем графики изменения напряжения при прямом питании «мозгов» от батареек. Все плохо.

Прямое подключение светодиода

Как видно из графика, в момент подключения двигателей напряжение на них в одно мгновенье падет с 6.2 до 4.0 Вольт и только через 250-300 мс стабилизируется на уровне 5.4-5.6 Вольт с шумом амплитудой 0.2 Вольт.
Совершенно синхронно падает и напряжение на светодиоде — с 4.3 до менее чем 3.0 Вольт, стабилизируется на уровне 3.9 Вольт и тоже с сильным шумом.

Уже одного только падения напряжения питания до 3х Вольт достаточно для того, чтобы отправить Atmega328P-PU (Arduino Uno) с кварцем на 16Мгц в браунаут (если я правильно понял даташит — минимальное напряжение, обеспечивающее стабильную работу МК на этой частоте — порядка 3.8 Вольт).
Если же по какой-то случайности процессор переживет момент запуска, его доканает шум на критически низком напряжении питания…

Я попробовал подключить немаленьких размеров конденсатор — 470 uF. Результат более гладок, но не более жизнеспособен.

Прямое подключение светодиода с конденсатором 470 uF

Теперь напряжение на светодиоде падает всего лишь до 3.2 Вольт (все равно браунаут), шума сильно поменьше, стабилизация питания на тех же скудных 3.8 Вольт. В общем, это тоже не жизнь.

Ну и вот то, ради чего все и затевалось. Светодиод подключен через Step-Up, запускаем… Бинго!

Подключение светодиода через Step-Up NCP1405

На этом рисунке синим цветом обозначен график изменения напряжения уже не на светодиоде а на входе в Step-Up. Как видим, тут картина даже более неприглядная, чем в первом случае (судя по всему, преобразователь активно «раскачивает лодку» вытягивая нужную ему мощность).
Напряжение на выходе Step-Up (условное питание «мозгов») — график фиолетового цвета. Только смотреть не на что. Идеальная прямая 5.02 Вольт (это видно и по сырым данным — напряжение вообще не меняяется).

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

В данном конкретном случае напряжение питания Step-Up-а падает до 2.0 — 2.2 Вольт. При таких условиях с него еще можно спокойно снять до 100 мА тока при напряжении 5 Вольт на выходе, а этого хватит не только на питание «мозгов», но и на всякую перифирию типа радиомодуля и ультразвукового дальномера. Когда батарейки подсядут резервы по току, конечно, уменьшаться, но не исключено, что моторчики перестанут запускаться раньше, чем напряжения на входе Step-Up-а упадет до значений, при которых он не сможет обеспечить питанием «слаботочную» часть.

UPD: А потом я попытался собрать натурный стенд с «мозгами» на платформе. И он опять начал виснуть :-(

В процессе разбирательства выяснилось:
а) L293D запаяна «кверх ногами». Всилу ее диагональной симметричности все работало, только вот ток на питание двигателей брался с Atmeg-и… А я и не замечал…
б) Одна из дорожек к управляющиму контакту L293D была замкнута на землю

Но даже исправление этих косяков не помогло.
И тогда я поставил по конденсатору на каждую из «ног направления» L293D (1A, 2А, 3А, 4А). И зависания прекратились.
Блин…

UPD 2: При запитывании мозгов напрямую от отвода с третьей батарейки — все равно виснет… Так что Step-Up полезен.

Экономическая часть

Основные компоненты Step-Up

1) ncp1402sn50t1g на ebay 155.12 руб за 10 штук — 15.52 руб за штуку
2) Танталовый конденсатор, 22 uF, 10 V куплен на ebay 10 шт за 75.68 руб — 7.57 руб за штуку
3) Катушка LQH88PN470M, 47 мкГн, в Чип и Дипе — 21.00 руб
4) Электролитический конденсатор 47 uF, 16 V стоимость оценить сложно, куплен на ebay в составе набора из 184 позиций разных номиналов за 364.10 руб. Оценочно — 2.0 руб
5) Диод Шоттки VS-10MQ040NTRPBF (Вольтмастер) — 5 руб

Итого, по основным компонентам — 51.09 руб. Вроде неплохо. Особенно, если найти замену Чип-и-Диповской индуктивности на чего-нибудь более бюджетное.
Файлы в топике: Step-Up на базе ncp1402sn50t1g.zip

Комментарии (50)

RSS свернуть / развернуть
Врядли это топик именно для детальки. Я бы порекомендовал перебросить его в «силовую электронику».
По поводу нагрузки при питании от одной АА — 5мА чет совсем слабо. Я подозреваю, что ему нужен дросель побольше при таком питании.
Диод лучше было брать на более низкое напряжение и ток. У них и утечки поменьше, и Vf.
На трассировке второй платы довольно неудачное расположение выходного кондера и довольно большие контуры импульсных токов. Первая в этом плане несколько лучше.
По поводу питания робота — лучше использовать SEPIC, он способен как повышать напряжеие, так и понижать — тогда можно не делать отводы, а питаться прямо от 6В. Не уверен насчет этой микросхемы, но вполне возможно, что в режиме SEPIC она запустится — ключ там включен аналогично Step-Up'у.
P.S. И дай ссылку на магазин, где сабж купил.
0
  • avatar
  • Vga
  • 23 ноября 2014, 11:28
Ага, тему перенес… Начианал я ее с желания похвастаться новой деталькой, а вот вынесло на старую проблему :-)

Покупал здесь — www.ebay.com/itm/291114101279?_trksid=p2059210.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT

Дросель по характеристикам вроде очень неплохой и по даташиту «The NCP1402 is designed to work well with a 47 uH
inductor in most applications.» но при этом «Higher inductor values reduce ripple and improve efficiency, but also limit output current.». Маленький DCR индуктивности нужен, это да.

Диод у меня не фонтан, это да. Скорее все-таки из-за него такие характеристики.
0
«Higher inductor values reduce ripple and improve efficiency, but also limit output current.»
Гм. Или напротив, уменьшить индуктивность. Видимо, оно работает в DCM, при этом индуктивность действительно лимитирует максимальную выходную мощность. В общем, попробуй с другими дросселями, большей и меньшей ндуктивности.
0
Не, тоже нельзя :-)
«Note that values below 27 uH is not recommended due to NCP1402 switch limitations.»
0
27мкГн — куда меньше, чем 47мкГн. К тому же, это тоже зависит от входного напряжения — чем оно ниже, тем меньшая индуктивность допустима.
0
P.P.S. Совсем забыл — хотел еще про тантал написать. У него вроде ниже ESR, так что алюминиевый электролит стоило керамикой зашунтировать.
0
Ну вот это кстати да. Это я уже пожалел, что пожадничал и не поставил пару танталов, тем более, что как раз они и рекомендованы.
0
> лучше использовать SEPIC
Что то конкретное можете посоветовать?
Поиск в локальных магазинах выдал только LM2735, цена у него как у хорошего 32-х битного контролера.
Поиск на ali — тоже ничего хорошего…
0
SEPIC — топология. Реализуется на практически любом универсальном DC-DC контроллере (и, полагаю, на Step-Up контроллерах).
0
За вчера надыбал одну более-менее читаемую статью про SEPIC, и там, кстати, сказано что не все DC-DC контроллеры подходят (есть контроллеры, которые жду появление питающего напряжения на выходе).
Но это все теория… которая более-менее понятна. А вот рассчитывать его самому как-то сильно стремно.
0
есть контроллеры, которые жду появление питающего напряжения на выходе
Угу, с такими есть определенные проблемы — и немаленький шанс, что NCP1402 из них. Проверь, поэкспериментируй, расскажи.
0
ИМХО sepic — топология не очень интересная. Гораздо интереснее Buck-Boost топология.
0
Только там два ключа и обычный DC-DC контроллер туда не влепишь. Зато можно одним индуктором отмазаться.
0
Buck-Boost топология это 4 ключа и 1 индуктор
0
Больно много. Или это с синхронным выпрямлением?
0
аха с синхронным))
0
два ключа заменяются диоами. если так считать то и тут два ключа.
-1
А падение напряжения 0,05...0,1в против 0,5в вы учитываете?
0
аха, еше и время защелкивание диода учитывать надо. говорю же, и тут тогда два ключа вставить надо. эт так, чтоб не мелочиться. ясен пень есть разумное решение для каждой задачи.
0
Поделить на две части
+1
Ага… Явно две разные статьи, одна про преобразователь, вторая про пляски с роботом.
0
Я собрал простенький стендик на Arduino для записи изменения напряжении во времени, погонял на нем помпу и убедился в наличии очень значительного провала напряжения питания не только в случае питания помпы от батареек, но даже и при попытке запитать ее от автомобильного аккумулятора.

Дается мне тут проблема была в неправильной разводке. У тебя мотор поднимал землю у МК и все рушилось.
easyelectronics.ru/razvedenie-pitaniya.html

Если бы землю соединил звездой с центром на клемме аккумулятора, то таких эффектов наверняка бы не было. По крайней мере их можно было бы избежать с помощью диода и конденсатора (который бы послужил подушкой безопасности для мк)
+1
Не-не, на аккумуляторе я запускал помпу исключительно в исследовательских целях. Она вообще-то на 6-9 Вольт всего, изначально я хотел использовать 4 батерейки размера D. А аккум пробовал исходя из (ошибочного) представления о нем как о практически бездонном источнике тока…
Собственно, после эксперимента с аккумулятором я и понял, что коллекторный движок будет давать просадку напряжения всегда.

Вот, записал график напряжение при запуске помпы на 4хD

Помпа

При подключении от батареек напряжение просаживается до 2.8 Вольт, это гарантированный браунаут (и это от 4х батареек, отвод от 3х просаживается еще ниже). Стабилизируется напряжение на уровне 3.6 Вольт, причем только через 400-500 мс.

Кстати, видно, что напряжение после запуска помпы ниже, чем до ее запуска на 0.2 Вольта. Этот моторчик очень дорого обходиться батарейкам…
-1
имхо Дихалт дело говорит, на 470 мкФ ТАК проседать не может, что-то с землёй, или цифровой или измерительной. Либо диод мёртв.
0
Полагаю, диода там вообще нет.
+1
с 6 до 2,8в… ппц полный…
0
Сопротивление обмотки 1.8 Ом… Ток в работе сейчас уже плохо помню, но точно больше Ампера. Как бы не два.
Моторчик мощный…
0
Да нет, график в комментариях (над которым написано «Помпа») это моторчик помпы (у которого сопротивление обмотки 1.8 Ом и, соответственно чудовищный стартовый ток — несколько Ампер) в момент подключения к 4м батарейкам типорзамера D (т.е. 6 Вольт) без всяких диодов и конденсаторов. Это не через преобразователь.

Этот маторчик на начальном этапе фактически представляет из себя КЗ…
0
Тогда понятно. У батареек высокое внутреннее сопротивление. Конденсатор тут не поможет. Исключение — кондёр на 1 фарад :)
0
Посчитайте тепловыделение внутри батареи в таком режиме, кпд. Не по батарее такая нагрузка.

Хотя если и от автомобильного аккумулятора был такой же провал, то видимо дело в проводах.
+1
От аккума размер провала уже не помню — я его год назад снимал… Провал был заметный, но скорее всего не вполовину исходного напряжения.
0
По-моему Ди и я о графике «прямое подключение светодиода с конденсатором 470uF». Не может так просаживаться напряжение на светике при запертом диоде, хоть батарею закороти.
0
Не совсем по теме вопрос — как получил табличку в псевдографике? Вручную, аль программка какая?
0
Вручную :-(

Думал в редакторе форума есть табличка — а оказалось нет. А я уже настроился делать таблицу…
0
Тоже не удержался от Step-Up — сделал таой. До 2.5А только смог проверить.



На TPS61030.
0
  • avatar
  • x893
  • 23 ноября 2014, 14:37
Плату сам делал или заказывал?
0
К заказу добавил в Резоните в пустые места. TPS 5 шт как сэмплы прислали. Катушку только купил.
0
А зачем ему так много ножек? Хитрый, многоканальный или просто большая часть из них запараллелена?
0
Какие-то параллельно, часть — контрольные, синхра еще есть.
0
Китайский из АЛИ 0.9V ~ 5V для 5V 600mA (народ в коментах говорит, что реально только 300 мА)
0
Второй путь — организовать для «мозгов» отдельное питание от собственной батарейки — был понятен, но вызывал ощущение капитуляции перед трудностями.


Не согласен, вполне разумное и надежное решение, можно добавить оптроны для развязки сигнального и силового питания

Кроме того, появлялась необходимость таскать эту самую дополнительную батарейку, а в перспективе — столкновение с теми же самыми неприятностями при попытке перейти на аккумуляторное питание. Питание от раздельных аккумуляторов выглядело исключительным колхозом…


Для питания МК можно добавить CR2032 или суперконденсатор.
0
  • avatar
  • Nemo
  • 23 ноября 2014, 21:25
Не согласен, вполне разумное и надежное решение, можно добавить оптроны для развязки сигнального и силового питания

Да я понимаю, что разумное. Но вот робот пылесос питается, гад, от одного аккумулятора и не виснет. А моторы у него очень мощные. Значит решение есть, только я его не могу найти…
0
я для своего робота использовал 14.4В Li-Ion батарею, и два step-down преобразователя — для логики и моторов (4 мотора). Всё работало.

P.S. К сожалению, нет времени, и робот остался на стадии как на видео(тоесть не совсем робот)
0
Ну да, преобразователи обеспечивают развязку силовых и логических питающих цепей…
0
И акумулятор сложней просадить чем батарейки, особенно li-po
0
А чем графики напряжений снимались?
+1
Ардуиной. С аналоговых входов. Напряжение выше 5 Вольт снимал через резистивный делитель.
0
Можно дополнить статью описанием технологии этого испытательного стенда на Ардуино с соответствующим скетчем, т.е. дополнить статью 3-й частью?
0
Так принципиальная схема приводиться в статье — там ничего хитрого.

То, что помечено «Vstep-up», «Vсв.диод» и «Vдвиг.» напрямую подключается к 3ей, 4ой и 5ой аналоговым ногам Ардуино (A3, A4, А5). Просто провод, без всяких дополнительных деталей.
То, что помечено «on/off sw» — провод к цифровой ноге 8. Тоже без всяких дополнительных деталей.
Собственно, конкретные ноги не важны, главное чтобы они совпадали с программой.
Еще одним проводом объеденены земли схемы и Ардуино.

Полевой N-канальный транзистор VT1 и его обвязка — резисторы R4 и R5 существуют у меня в виде маленькой платки для макетки. Я их наделал несколько штук как раз для таких целей — чтобы что-нибудь тестовое быстро собрать.
Все остальное просто собрано на макетке.

Программа тупа до безобразия.

Константы R1 и R2 задают сопротивления резисторов делителя. Я из заранее измерил мультиметром.
REF_V — напряжение на Ардуино, замерил мультиметром.

print_row — основная процедура, производящее измерение и печатающая результат в Serial. Можно было бы сохранять на SD-карте, но зачем? Количество точек измерения не так и много, я их просто копирую текстом с консоли и сразу же вставляю в Grapher для построения графиков.
Поэтому никакой опитимизации по быстродействию тоже нет — все расчеты с плавающей точкой делает Ардуино, хотя конечно же, можно было выводить только целочисленные значения, полученные analogRead и пересчитывать результат, скажем, в Excel-е. Но это муторно, а полученная на неоптимизированном коде дискретизация в 2-3 мс меня вполне устраивает.

Остальной код — реализация различных программ испытаний. Их сейчас три. Построены по принципу конечного автомата, благо все линейно. Все три реализуют одну и ту же идею — начинаем циклический вывод показаний в Serial вызовом процедуры print_row, даем небольшую паузу, подаем напряжение на SW_PIN, тем самым открывая полевик (то есть включаем моторчик), потом либо повторяем включение/выключение моторчика несолько раз с определенными интервалами, либо сразу завершаем программу после небольшой паузы.

Процедура next_state отвечает за реализацию однотипных действий при смене статусов конечного автомата.

В loop — управление запуском конкретной программы испытаний по односимвольным командам через Serial + минимальная отладка.

Вот как-то так.


#define SW_PIN 8
#define L1_PIN A5
#define L2_PIN A4
#define L3_PIN A3


#define REF_V 5.020
#define R1 3304.0
#define R2 9930.0
#define K ((R1 + R2) / R2)

#define P1_START_DELAY 1
#define P1_RUN 2
#define P1_STOP_DELAY 3

#define P2_START_DELAY 11
#define P2_R1 12
#define P2_D1 13
#define P2_R2 14
#define P2_D2 15
#define P2_R3 16
#define P2_D3 17
#define P2_STOP_DELAY 18


int state;
unsigned long state_dur;
unsigned long start_time;
unsigned long state_time;

void print_row() {  
  Serial.print(millis() - start_time);
  Serial.print(";");  
  Serial.print(K * REF_V * analogRead(L1_PIN) / 1024);
  Serial.print(";");
  Serial.print(REF_V * analogRead(L2_PIN) / 1024);
  Serial.print(";");
  Serial.print(REF_V * analogRead(L3_PIN) / 1024);  
  Serial.println();
}


void next_state(int st, unsigned long d, int on) {
  state = st;
  state_dur = d;
  state_time = millis();  
  digitalWrite(SW_PIN, on);    
}

void p1_start() {
  Serial.println("P1");  
  start_time = millis();
  next_state(P1_START_DELAY, 300, LOW);
  while(p1_next() > 0);
}

int p1_next() {
  print_row();
  unsigned long dt = millis() - state_time;
  if(dt > state_dur) {
    switch(state) {
      case P1_START_DELAY: next_state(P1_RUN, 1000, HIGH); break;
      case P1_RUN: next_state(P1_STOP_DELAY, 300, LOW); break;
      case P1_STOP_DELAY: return 0;      
    }    
  }
  return 1;
}

void p2_start() {
  Serial.println("P2");  
  start_time = millis();
  next_state(P2_START_DELAY, 300, LOW);
  while(p2_next() > 0);
}

int p2_next() {
  print_row();
  unsigned long dt = millis() - state_time;
  if(dt > state_dur) {
    switch(state) {
      case P2_START_DELAY: next_state(P2_R1, 500, HIGH); break;
      case P2_R1: next_state(P2_D1, 500, LOW); break;
      case P2_D1: next_state(P2_R2, 500, HIGH); break;
      case P2_R2: next_state(P2_D2, 500, LOW); break;
      case P2_D2: next_state(P2_R3, 500, HIGH); break;
      case P2_R3: next_state(P2_STOP_DELAY, 300, LOW); break;      
      case P2_STOP_DELAY: return 0;      
    }    
  }
  return 1;
}

void p3_start() {
  Serial.println("P3");  
  start_time = millis();
  next_state(P2_START_DELAY, 300, LOW);
  while(p3_next() > 0);
}

int p3_next() {
  print_row();
  unsigned long dt = millis() - state_time;
  if(dt > state_dur) {
    switch(state) {
      case P2_START_DELAY: next_state(P2_R1, 200, HIGH); break;
      case P2_R1: next_state(P2_D1, 100, LOW); break;
      case P2_D1: next_state(P2_R2, 200, HIGH); break;
      case P2_R2: next_state(P2_D2, 100, LOW); break;
      case P2_D2: next_state(P2_R3, 200, HIGH); break;
      case P2_R3: next_state(P2_STOP_DELAY, 100, LOW); break;      
      case P2_STOP_DELAY: return 0;      
    }    
  }
  return 1;
}


void setup() {
  Serial.begin(115200);
  Serial.println(F("[ Voltlogger ]"));
  pinMode(SW_PIN, OUTPUT);
}

void loop() {
  char ch;
  while((ch = Serial.read()) == -1);
  Serial.print(ch);
  Serial.print("> ");
  switch(ch) {
    case 'p': print_row(); break;
    case 'w': Serial.println("start"); digitalWrite(SW_PIN, HIGH); break;
    case 's': Serial.println("stop"); digitalWrite(SW_PIN, LOW); break;
    case 'l': while(true) print_row();
    case '1': p1_start(); break;
    case '2': p2_start(); break;
    case '3': p3_start(); break;
  }
  Serial.println();
}
+1
Раз всплыли такие моменты при питании от батарейного питания, то я бы предложил сделать следующее: DC-DC 5 V для МК. Питание +5V на МК подать через резистор Ом 20-50 и диод. Параллельно питанию МК +5V посадить ионистор. Даже если DC-DC не вывезет, ионистор будет питать МК в моменты просадки напряжения. Двигатели запускать ШИМ-мом, плавно. Не такой бросок тока будет.
+1
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.