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

Прошу совета по питанию STM32F407 от суперконденсатора

Есть устройство на том самом STM32F407VGT6. К устройству подключены: USB порт для FLASH накопителя, Ethernet PHY, SPI память, SPI дисплей, SPI АЦП, изолированные интерфейсы (с изоляторами типа ISO7721), часовая батарейка 2032 и прочая мелочь. Замечено что неожиданное выключение питания приводит к сбою записи в SPI память. Кроме лога там телеметрия и для ее нормальной записи нужны несколько секунд. Еще одну батарейку ставить категорически не хочется по нескольким причинам. Нравится суперконденсатор. Вопросов два.

Первый - что нужно сделать на аппаратном уровне чтобы при минимальном номинале суперконденсатора продержаться максимальное время. Есть опасения что через подключенных к портам потребителей энергия суперконденсатора будет утекать бесполезно. Пока на ум пришло увеличить номиналы подтяжек на землю и питание с обычных 10 к до например 47...100 к руководствуясь конечно по каждому пункту здравым смыслом. Понятно что надо тушить дисплей, или завести его в RESETное состояние, как-то программно потушить USB и Ethernet PHY (LAN8720 если он это позволяет?) . Что еще не забыть?

 

Второй вопрос по типу суперконденсатора. Мне встретились 2 типа (а может их и больше в природе) отличающиеся отдаваемой мощностью. Первый тип в нашей литературе называют ионистором. Он может отдавать небольшой ток но длительное время. Например такой экземпляр от Panasonic емкостью 1 фарад стоит около 3...4 баксов. Выглядит как литиевая батарейка таблетка. Этого можно зарядить до трех вольт и уверенно рассасывать энергию до 1.8 вольта

Второй тип может отдавать большой ток но недолго. Его обычно зовут EDLC. Он выглядит как электролитический конденсатор вроде отечественных K50-6. Их много кто делает. По разумным ценам в России можно купить Nesscap, Samwha и пр. Например 3 фарада за 60 центов. Этот вариант мне нравится больше, потому что дешевле. Этого можно зарядить максимум до 2.7 а лучше не больше 2.5 ну и как-то дотянуть до тех же 1.8.

 

Поискал но сходу не нашел готовых апнот по этой тематике. Наверное плохо искал. Очень надеюсь на помощь.

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


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

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

У STM32 повыключать тактирование всех блоков, кроме необходимых для записи флэш, а также все лишние выходы перевести во входы.

Можно поставить power switch на питание всех микросхем не нужных для записи и просто выключать им питание.

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


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

Кроме лога там телеметрия и для ее нормальной записи нужны несколько секунд.

Несколько секунд?

Что-то подозрительно долго. С этим надо разбираться.

А работать от ионистора на границе brownout-а дело довольно рискованное.

 

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


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

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

Вам же нужно обеспечить несколько секунд в активном режиме.

Предлагаю использовать обычный электролит емкостью в несколько миллифарад.

Обычно этого вполне достаточно.

Только конденсатор надо перенести подальше от питания контроллера.

Напоминаю, что накопленная энергия равна С * U * U. Чем больше напряжение, тем больше энергия.

При понижении напряжения ниже порога - прерывание - безопасное завершение.

А вообще конечно, несколько секунд - это много.

Оптимизируйте и будет достаточно вполне себе маленького конденсатора.

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


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

К устройству подключены: USB порт для FLASH накопителя, Ethernet PHY, SPI память, SPI дисплей, SPI АЦП, изолированные интерфейсы (с изоляторами типа ISO7721), часовая батарейка 2032 и прочая мелочь.

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

Чтобы можно было вести какие-то расчеты потребной запасаемой энергии.

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


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

Использую такой режим аварийной запитки по 5В, суперконденсаторы -- 5Ф - 10Ф на 2,7В пара последовательно включенных, заряд через одноватный резистор 24 Ом, разряд (на цепь +5В) через большой, "медленный" диод Шоттке (либо какой нибудь идеальный SBR диод) параллельно резистору. Питает в том числе GSM модем. В зависимости от потребления работает от нескольких секунд до пяти минут. Если с 5В на 3,3В или другое используется импульсный, а не линейный источник аккуратно выбирайте микросхему преобразователя в плане ее выживания на низких напряжениях в процессе разряда -- приходилось сталкиваться с проблемами.

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


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

Наверное, у меня странный вариант решения вопроса, но....

Если сделать свой буфер записи в BackUP домене?

Выделяется блок памяти, скажем, чуть больше сектора. В него пишется будущий сектор, добавляется пара флагов типа "Запись пошла", "Запись прошла", "Проверка успешна", ну и адрес записи.

Соответственно, перед записью - взводим первый флаг. Обязательно БАЙТ-флаг.

После записи - сразу же взводим второй флаг. После этого ПРОВЕРЯЕМ записаные данные. Если успешно - обнуляем адрес и очищаем память.

В случае потери питания и после перезапуска кристалла, нужно проверить:

1. Ненулевой адрес записываемого блока данных.

2. Соответствие флагов - "Начали писать", "Закончили писать", "Проверили".

3. Выполнить соответствующие действия - стереть сектор, повторить запись.

 

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

Ну и разбиение данных на блоки для удобства.

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


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

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

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


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

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

Вы используете только свои собственные форматы или уже есть вменяемые библиотеки? Вы разрабатывали дополнительные прослойки для использования, скажем, FAT?

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


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

Наверное, у меня странный вариант решения вопроса, но....

Если сделать свой буфер записи в BackUP домене?

Размер BKRAM 4к. Размер сектора флеша может быть 32к-128к-256к-512к-1м - зависит от жирности и параллельности архитектуры чипа. Оно туда не влезет.

Хотя для внешней памяти 25-той серии - весь сектор стирать не обязательно, и такой вариант защиты вполне приемлем.

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


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

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

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


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

Вы используете только свои собственные форматы или уже есть вменяемые библиотеки? Вы разрабатывали дополнительные прослойки для использования, скажем, FAT?

Изобретал свой велосипед. Файловая система никогда не была нужна, тем более FAT. Доморощенный велосипед чреват доморощенными глюками, конечно. Впрочем, в чужом - чужие глюки. Что касается логов, есть вот такой велосипед: тут.

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


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

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

Никак.

 

Что касается логов, есть вот такой велосипед: тут.

Forbidden

You don't have permission to access /fwlib/group___l_o_g___f_s.html on this server.

наверное имелась ввиду вот эта ссылка: https://piconomix.com/fwlib/#EXAMPLE_DATA_LOGGING

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


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

HardEgor, у Вас тоже Forbidden 403. Обе ссылки нужно открывать без https:

http://piconomix.com/fwlib/group___l_o_g___f_s.html

http://piconomix.com/fwlib/#EXAMPLE_DATA_LOGGING

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


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

Forbidden

You don't have permission to access /fwlib/group___l_o_g___f_s.html on this server.

наверное имелась ввиду вот эта ссылка: https://piconomix.com/fwlib/#EXAMPLE_DATA_LOGGING

HardEgor, у Вас тоже Forbidden 403. Обе ссылки нужно открывать без https:

http://piconomix.com/fwlib/group___l_o_g___f_s.html

http://piconomix.com/fwlib/#EXAMPLE_DATA_LOGGING

Все ссылки приблизительно одинаковой степени несвежести. Они как-то интересно настроили свой веб сервер, снаружи ссылаться не очень получается. В любом случае, кто ищет, тот всегда найдёт :laughing:

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


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

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

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

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

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

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

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

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

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

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