Перейти к содержанию
    

Управление питанием одной кнопкой

Добрый день!

Просмотрел форум, поискал яндексом и не нашел решения своей задачи. Прошу вашей помощи.

 

Задача:

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

 

Устройство:

SoM на базе Snapdragon 410. OS: Linux + периферия.

Питание от двух Li-po аккумуляторов емкостью по 3000 mAh

Потребление от DC-DC при максимальной нагрузке 5,[email protected]

 

Как было:

Узел питания представляет собой две параллельные линии зарядки (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. Посоветовать схему для управления светодиодом.

 

Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Боюсь, это тот случай, когда проще поставить мелкий МК.

МК нужно дополнительно шить, выводить разъемы для прошивки и т.д. Чего не хотелось бы. Нужно просто и сердито - спаял и забыл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

МК нужно дополнительно шить, выводить разъемы для прошивки и т.д. Чего не хотелось бы. Нужно просто и сердито - спаял и забыл.

что-то типа

http://www.linear.com/product/LTC2954

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нужно просто и сердито - спаял и забыл.

Тогда придется проверять на макете - очень легко что-нибуть упустить при проектировании.

MAX уж слишком простой, а SRC0 на вид годится. Правда, светодиодом мигать все равно проще со стороны SoM.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

МК нужно дополнительно шить, выводить разъемы для прошивки и т.д.

Не обязательно. Раз есть SOM - пусть он при первом включении считывает память этого МК и, если тот чистый, шьёт его.

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

На свежеизготовленном устройстве замыкаем этот джампер, включаем питание на некоторое время (в это время SOM шьёт младшенького), снимаем джампер, корпусируем устройство.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда придется проверять на макете - очень легко что-нибуть упустить при проектировании.

MAX уж слишком простой, а SRC0 на вид годится. Правда, светодиодом мигать все равно проще со стороны SoM.

 

 

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

 

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

 

Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Так одного транзистора достаточно: пока Linux не загружен, пин SoM в Z, на затвор даем уровень

от pull-up резистора - светодиод горит. Когда надо будет мигать, SoM переведёт пин на выход и

будет рулить диодом сам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

На свежеизготовленном устройстве замыкаем этот джампер, включаем питание на некоторое время (в это время SOM шьёт младшенького), снимаем джампер, корпусируем устройство.

Даже собственно джампер не нужен: вместо него - ключ, управляемый ногой от мелкого МК, и эта нога - подтянута к уровню включения ключа.

Таким образом при первом включении в МК прошивки нет - нога управления в 3-м состоянии - ключ подаёт питание на SOM, который стартует через некоторую задержку после завершения импульса сброса от супервизора/WDT. SOM после старта проверяет наличие прошивки в МК и если нужно - шьёт его. Дальше ключом рулит уже МК. Питание на МК подаётся напрямую, мимо ключа.

Никаких доп. разъёмов или манипуляций при изготовлении. И после первого включения питания МК будет прошит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

при современных ценах на МК действительно лучше на нем. :-)

Там вообще 6-выводные бывают.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Даже собственно джампер не нужен: вместо него - ключ, управляемый ногой от мелкого МК, и эта нога - подтянута к уровню включения ключа.

Таким образом при первом включении в МК прошивки нет - нога управления в 3-м состоянии - ключ подаёт питание на SOM, который стартует через некоторую задержку после завершения импульса сброса от супервизора/WDT. SOM после старта проверяет наличие прошивки в МК и если нужно - шьёт его. Дальше ключом рулит уже МК. Питание на МК подаётся напрямую, мимо ключа.

Никаких доп. разъёмов или манипуляций при изготовлении. И после первого включения питания МК будет прошит.

 

Идея! Так и сделаю, потом схемку и код выложу сюда.

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

 

Нет серьезно - идея ОГОНЬ! :beer:

СПАСИБО! :08:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да пожалуйста . Но исходно идею aaarrr предложил, я только развил ;)

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

Вряд-ли смогу посоветовать - я почти не имею опыта ни с чем ниже Cortex. Работал с STM8 - он для решения вашей задачи вполне подойдёт. Но шить нужно по SWIM-интерфейсу. Сможете его реализовать на вашем SOM? Если да - тогда это самый оптимум: ног для прошивки надо чуть, МК - дешёвый, а если взять STM8L-серию - то ещё и очень экономичный.

Проще наверное через UART или SPI шить. Но нужен такой МК, у которого в ROM есть соответствующий загрузчик.

Это точно есть в LPC (FlashMagic через UART их и шьёт) и протокол там простой. У LPC есть и младшие семейства. Но я с ними не работал.

Ещё можно через USB в тех МК где есть DFU-загрузчик в ROM.

Я бы сейчас делал наверное на STM8L или STM8S: IAR есть, описание протокола прошивки по SWIM - тоже есть, периферия и сам МК - очень простые, быстрые для изучения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да пожалуйста . Но исходно идею aaarrr предложил, я только развил ;)

 

Вряд-ли смогу посоветовать - я почти не имею опыта ни с чем ниже 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 штук). Сейчас буду считать ноги - хватит ли их...

 

В общем начали с кнопки, а заканчиваем целым "девайсом" )

Изменено пользователем AVStech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Даже собственно джампер не нужен: вместо него - ключ, управляемый ногой от мелкого МК, и эта нога - подтянута к уровню включения ключа.

Таким образом при первом включении в МК прошивки нет - нога управления в 3-м состоянии - ключ подаёт питание на SOM, который стартует через некоторую задержку после завершения импульса сброса от супервизора/WDT. SOM после старта проверяет наличие прошивки в МК и если нужно - шьёт его. Дальше ключом рулит уже МК. Питание на МК подаётся напрямую, мимо ключа.

Никаких доп. разъёмов или манипуляций при изготовлении. И после первого включения питания МК будет прошит.

 

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

Разъясните по подробнее. А лучше схематично. Буду очень рад!

 

post-95076-1516630232_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...