Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Управление питанием одной кнопкой
Форум разработчиков электроники ELECTRONIX.ru > Силовая Электроника - Power Electronics > Силовая Преобразовательная Техника
AVStech
Добрый день!
Просмотрел форум, поискал яндексом и не нашел решения своей задачи. Прошу вашей помощи.

Задача:
Управление питанием Устройства одной кнопкой без фиксации + светодиод индикации состояния

Устройство:
SoM на базе Snapdragon 410. OS: Linux + периферия.
Питание от двух Li-po аккумуляторов емкостью по 3000 mAh
Потребление от DC-DC при максимальной нагрузке 5,37V@3.5A

Как было:
Узел питания представляет собой две параллельные линии зарядки (BQ25892 от TI) и повышающих модулей (TPS61236P от TI), соединенных current share (UCC39002DGK от TI) и приходящих в силовой-распределительный mosfet (IRF7324). Хотя последний может быть и лишний с учетом схемы current share
Узел включения был реализован на базе триггера (MC14013BDTR2G) в связке с триггером Шмитта (SN74LVC1G17DCKR).
Кнопка включения по типу двухканальной без фиксации. Схема включения выглядела следующим методом: кратковременное нажатие - включение, кратковременное нажатие - выключение с задержкой. Задержка выполнена на базе резистор-конденсатор и подобрана так, чтобы отключался сначала SoM (подтяжка на землю через второй канал кнопки), а потом вся схема. Но это не правильно на мой взгляд, и также вылезла проблема

Проблема текущей схмы:
Во включенном состоянии устройства, при окончательном разряде батареи, срабатывает защита от глубокой разрядки батареи (LC05111CMT). Схема отключается, но ладно, если бы она отключалась и больше не включалась, но она начинает "мерцать" - многократно вкл./выкл. из-за увеличения/просадки напряжения на аккумуляторе после выключения/включения потребителей и "памяти" состояния на триггере. Можно конечно поставить монитор напряжения и выключать DCшки через SoM, но мне пока такой вариант не нравится.

Что хотелось бы сделать:
1. Устранить проблему "мерцания" при разряде батареи.
2. Для управления питанием использовать Push button on/off controller типа MAX16054 или STM660X или SRC0 (от STM). Контроллеры от Linear дорогие, но не исключаю их использование

Как должно работать:
1. Включение - длительное нажатие на кнопку < 3 сек. Включение схемы питания - загорается светодиод (вмонтирован в кнопку)
2. Выключение - кратковременное нажатие на кнопку. Поступает команда на SoM на выключение, ждем отключения SoM, после отключения SoM - отключение всей схемы. Светодиод после поступления команды на выключение должен начинать моргать предупреждая об отключении.
3. "Хард" выключение - при зависании или сбое в SoM принудительное выключение схемы питания длительным удержанием кнопки < 3 сек.
4. Управление морганием светодиода должно осуществляться простой и не зависящей от SoM схемой.

В чем нужна помощь:
1. Посоветовать в выборе Push button on/off controller для реализации описанной схемы
2. Решит ли Push button on/off controller вопрос "мерцания" или они тоже все с эффектом памяти?
3. Посоветовать схему для управления светодиодом.

Спасибо!
aaarrr
Боюсь, это тот случай, когда проще поставить мелкий МК.
AVStech
Цитата(aaarrr @ Jan 11 2018, 12:17) *
Боюсь, это тот случай, когда проще поставить мелкий МК.

МК нужно дополнительно шить, выводить разъемы для прошивки и т.д. Чего не хотелось бы. Нужно просто и сердито - спаял и забыл.
Jury093
Цитата(AVStech @ Jan 11 2018, 13:08) *
МК нужно дополнительно шить, выводить разъемы для прошивки и т.д. Чего не хотелось бы. Нужно просто и сердито - спаял и забыл.

что-то типа
http://www.linear.com/product/LTC2954
обслуживание лампочки и прерываний в линуксе, там же моргание при шутдауне..
aaarrr
Цитата(AVStech @ Jan 11 2018, 13:08) *
Нужно просто и сердито - спаял и забыл.

Тогда придется проверять на макете - очень легко что-нибуть упустить при проектировании.
MAX уж слишком простой, а SRC0 на вид годится. Правда, светодиодом мигать все равно проще со стороны SoM.
jcxz
Цитата(AVStech @ Jan 11 2018, 12:08) *
МК нужно дополнительно шить, выводить разъемы для прошивки и т.д.

Не обязательно. Раз есть SOM - пусть он при первом включении считывает память этого МК и, если тот чистый, шьёт его.
Предусмотреть дополнительный джампер внутри корпуса девайса, подающий питание в обход этого МК.
На свежеизготовленном устройстве замыкаем этот джампер, включаем питание на некоторое время (в это время SOM шьёт младшенького), снимаем джампер, корпусируем устройство.
AVStech
Цитата(aaarrr @ Jan 11 2018, 13:22) *
Тогда придется проверять на макете - очень легко что-нибуть упустить при проектировании.
MAX уж слишком простой, а SRC0 на вид годится. Правда, светодиодом мигать все равно проще со стороны SoM.



Просто я думал, что есть простой способ помигать светодиодом. А если со стороны SoM мигать, то придется еще ставить какой нибудь нормально открытый выключатель типа "Load Switch" управляемый SoM-ом, так как кнопка должна светится сразу после подачи напряжения с DC-DC, а не после того как загрузится Linux на SoM-е.

Таким образом, либо МК, либо SoM. В общем буду думать.

Спасибо!
aaarrr
Цитата(AVStech @ Jan 11 2018, 14:13) *
А если со стороны SoM мигать, то придется еще ставить какой нибудь нормально открытый выключатель типа "Load Switch" управляемый SoM-ом, так как кнопка должна светится сразу после подачи напряжения с DC-DC, а не после того как загрузится Linux на SoM-е.

Так одного транзистора достаточно: пока Linux не загружен, пин SoM в Z, на затвор даем уровень
от pull-up резистора - светодиод горит. Когда надо будет мигать, SoM переведёт пин на выход и
будет рулить диодом сам.
jcxz
Цитата(jcxz @ Jan 11 2018, 13:07) *
Предусмотреть дополнительный джампер внутри корпуса девайса, подающий питание в обход этого МК.
На свежеизготовленном устройстве замыкаем этот джампер, включаем питание на некоторое время (в это время SOM шьёт младшенького), снимаем джампер, корпусируем устройство.

Даже собственно джампер не нужен: вместо него - ключ, управляемый ногой от мелкого МК, и эта нога - подтянута к уровню включения ключа.
Таким образом при первом включении в МК прошивки нет - нога управления в 3-м состоянии - ключ подаёт питание на SOM, который стартует через некоторую задержку после завершения импульса сброса от супервизора/WDT. SOM после старта проверяет наличие прошивки в МК и если нужно - шьёт его. Дальше ключом рулит уже МК. Питание на МК подаётся напрямую, мимо ключа.
Никаких доп. разъёмов или манипуляций при изготовлении. И после первого включения питания МК будет прошит.
serglg
при современных ценах на МК действительно лучше на нем. :-)
Там вообще 6-выводные бывают.
AVStech
Цитата(jcxz @ Jan 11 2018, 14:58) *
Даже собственно джампер не нужен: вместо него - ключ, управляемый ногой от мелкого МК, и эта нога - подтянута к уровню включения ключа.
Таким образом при первом включении в МК прошивки нет - нога управления в 3-м состоянии - ключ подаёт питание на SOM, который стартует через некоторую задержку после завершения импульса сброса от супервизора/WDT. SOM после старта проверяет наличие прошивки в МК и если нужно - шьёт его. Дальше ключом рулит уже МК. Питание на МК подаётся напрямую, мимо ключа.
Никаких доп. разъёмов или манипуляций при изготовлении. И после первого включения питания МК будет прошит.


Идея! Так и сделаю, потом схемку и код выложу сюда.
Посоветуйте младшенького МК для моих целей. Так, чтобы по минимуму места и рассыпухи.

Нет серьезно - идея ОГОНЬ! beer.gif
СПАСИБО! 08.gif
jcxz
Да пожалуйста . Но исходно идею aaarrr предложил, я только развил wink.gif
Цитата(AVStech @ Jan 11 2018, 16:39) *
Посоветуйте младшенького МК для моих целей. Так, чтобы по минимуму места и рассыпухи.

Вряд-ли смогу посоветовать - я почти не имею опыта ни с чем ниже Cortex. Работал с STM8 - он для решения вашей задачи вполне подойдёт. Но шить нужно по SWIM-интерфейсу. Сможете его реализовать на вашем SOM? Если да - тогда это самый оптимум: ног для прошивки надо чуть, МК - дешёвый, а если взять STM8L-серию - то ещё и очень экономичный.
Проще наверное через UART или SPI шить. Но нужен такой МК, у которого в ROM есть соответствующий загрузчик.
Это точно есть в LPC (FlashMagic через UART их и шьёт) и протокол там простой. У LPC есть и младшие семейства. Но я с ними не работал.
Ещё можно через USB в тех МК где есть DFU-загрузчик в ROM.
Я бы сейчас делал наверное на STM8L или STM8S: IAR есть, описание протокола прошивки по SWIM - тоже есть, периферия и сам МК - очень простые, быстрые для изучения.
AVStech
Цитата(jcxz @ Jan 11 2018, 19:59) *
Да пожалуйста . Но исходно идею aaarrr предложил, я только развил wink.gif

Вряд-ли смогу посоветовать - я почти не имею опыта ни с чем ниже Cortex. Работал с STM8 - он для решения вашей задачи вполне подойдёт. Но шить нужно по SWIM-интерфейсу. Сможете его реализовать на вашем SOM? Если да - тогда это самый оптимум: ног для прошивки надо чуть, МК - дешёвый, а если взять STM8L-серию - то ещё и очень экономичный.
Проще наверное через UART или SPI шить. Но нужен такой МК, у которого в ROM есть соответствующий загрузчик.
Это точно есть в LPC (FlashMagic через UART их и шьёт) и протокол там простой. У LPC есть и младшие семейства. Но я с ними не работал.
Ещё можно через USB в тех МК где есть DFU-загрузчик в ROM.
Я бы сейчас делал наверное на STM8L или STM8S: IAR есть, описание протокола прошивки по SWIM - тоже есть, периферия и сам МК - очень простые, быстрые для изучения.


Большое спасибо ВСЕМ!
Сейчас поковырял интернет и камни которые у меня лежат без дела нашел ATMEGA328P-MU.
1. Покрутил повертел, посмотрел даташит - шьется через UART или SPI, что мне подходит.
2. Потом вспомнил, что у меня на контроле уровня заряда батареи стоят два max17043 (разные i2c-адреса), которые мерили заряд двух батарей. Подумываю выкинуть их вместе с их обвязкой и мерить через МК, а затем передавать по i2c или тому же SPI (по которому шили) данные в SoM. Правда точность таких измерений мне пока не ясна. И не ясна обвязка и ее размер - в моем случае очень важно экономить место.
3. Потом пришла идея зажигать светодиоды состояния включения периферии (всего 7 штук). Сейчас буду считать ноги - хватит ли их...

В общем начали с кнопки, а заканчиваем целым "девайсом" )
serglg
и вот так всегда. :-)
AVStech
Цитата(jcxz @ Jan 11 2018, 14:58) *
Даже собственно джампер не нужен: вместо него - ключ, управляемый ногой от мелкого МК, и эта нога - подтянута к уровню включения ключа.
Таким образом при первом включении в МК прошивки нет - нога управления в 3-м состоянии - ключ подаёт питание на SOM, который стартует через некоторую задержку после завершения импульса сброса от супервизора/WDT. SOM после старта проверяет наличие прошивки в МК и если нужно - шьёт его. Дальше ключом рулит уже МК. Питание на МК подаётся напрямую, мимо ключа.
Никаких доп. разъёмов или манипуляций при изготовлении. И после первого включения питания МК будет прошит.


Что-то я в ступоре. Вроде все понятно и не понятно ))) Мозги перегрелись, а куллера нет ))). Я не пойму, куда в таком случае мы подключаем кнопку включения устройства. Или в таком случае первое включение по подсоединению батареи? МК же не прошита все в Z... В общем на такой не сложной вещи уперся.
Разъясните по подробнее. А лучше схематично. Буду очень рад!

aaarrr
Цитата(AVStech @ Jan 22 2018, 17:10) *
Или в таком случае первое включение по подсоединению батареи? МК же не прошита все в Z...

Правильно: МК не прошит, R1 обеспечивает высокий уровень на EN после подключения батареи.
AVStech
Цитата(aaarrr @ Jan 22 2018, 18:48) *
Правильно: МК не прошит, R1 обеспечивает высокий уровень на EN после подключения батареи.

Спасибо!
jcxz
Цитата(AVStech @ Jan 22 2018, 16:10) *
Я не пойму, куда в таком случае мы подключаем кнопку включения устройства. Или в таком случае первое включение по подсоединению батареи? МК же не прошита все в Z...

Я же ещё в 9-м сообщении писал: https://electronix.ru/forum/index.php?s=&am...t&p=1540142
На вашей схеме я бы добавил ещё конденсатор между затвором и истоком такой ёмкости, чтобы время зарядки его через R1 обеспечивало временное закрытие транзистора при появлении напряжения питания на некоторое время, достаточное для старта ПО в AVR. А то если AVR уже прошит, но стартует он ведь не мгновенно - пока ПО в нём стартанёт, на питании SOM получим кратковременное включение, а потом выключение (после старта AVR).
AVStech
Цитата(jcxz @ Jan 23 2018, 15:51) *
Я же ещё в 9-м сообщении писал: https://electronix.ru/forum/index.php?s=&am...t&p=1540142
На вашей схеме я бы добавил ещё конденсатор между затвором и истоком такой ёмкости, чтобы время зарядки его через R1 обеспечивало временное закрытие транзистора при появлении напряжения питания на некоторое время, достаточное для старта ПО в AVR. А то если AVR уже прошит, но стартует он ведь не мгновенно - пока ПО в нём стартанёт, на питании SOM получим кратковременное включение, а потом выключение (после старта AVR).

Ок Спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.