|
Прошу совета по питанию STM32F407 от суперконденсатора |
|
|
|
Apr 20 2018, 19:27
|
Частый гость
 
Группа: Участник
Сообщений: 77
Регистрация: 12-12-16
Пользователь №: 94 599

|
Есть устройство на том самом 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.
Поискал но сходу не нашел готовых апнот по этой тематике. Наверное плохо искал. Очень надеюсь на помощь.
|
|
|
|
|
Apr 23 2018, 14:36
|

Частый гость
 
Группа: Участник
Сообщений: 101
Регистрация: 2-05-15
Из: Россия, Омск
Пользователь №: 86 474

|
Наверное, у меня странный вариант решения вопроса, но.... Если сделать свой буфер записи в BackUP домене? Выделяется блок памяти, скажем, чуть больше сектора. В него пишется будущий сектор, добавляется пара флагов типа "Запись пошла", "Запись прошла", "Проверка успешна", ну и адрес записи. Соответственно, перед записью - взводим первый флаг. Обязательно БАЙТ-флаг. После записи - сразу же взводим второй флаг. После этого ПРОВЕРЯЕМ записаные данные. Если успешно - обнуляем адрес и очищаем память. В случае потери питания и после перезапуска кристалла, нужно проверить: 1. Ненулевой адрес записываемого блока данных. 2. Соответствие флагов - "Начали писать", "Закончили писать", "Проверили". 3. Выполнить соответствующие действия - стереть сектор, повторить запись.
Понимаю, это не решает вопрос отказоустойчивости самого Flash накопителя, но хотя бы снижает потерю данных во время работы. Ну и разбиение данных на блоки для удобства.
|
|
|
|
|
Apr 23 2018, 15:43
|
Местный
  
Группа: Участник
Сообщений: 352
Регистрация: 10-08-06
Из: Санкт-Петербург
Пользователь №: 19 471

|
Цитата(scifi @ Apr 23 2018, 17:46)  Всю жизнь проектировал формат дынных, пишущихся во флеш, так, чтобы он был устойчивым к отключениям питания. Да, это гораздо сложнее, чем тупо записать открытым текстом и надеяться, что никто ничего отключать не будет. Зато работает без всяких конденсаторов. Вы используете только свои собственные форматы или уже есть вменяемые библиотеки? Вы разрабатывали дополнительные прослойки для использования, скажем, FAT?
|
|
|
|
|
Apr 23 2018, 16:55
|
Частый гость
 
Группа: Участник
Сообщений: 182
Регистрация: 16-10-15
Пользователь №: 88 894

|
Цитата(AlanDrakes @ Apr 23 2018, 20:36)  Наверное, у меня странный вариант решения вопроса, но.... Если сделать свой буфер записи в BackUP домене? Размер BKRAM 4к. Размер сектора флеша может быть 32к-128к-256к-512к-1м - зависит от жирности и параллельности архитектуры чипа. Оно туда не влезет. Хотя для внешней памяти 25-той серии - весь сектор стирать не обязательно, и такой вариант защиты вполне приемлем.
|
|
|
|
|
Apr 24 2018, 07:19
|
Гуру
     
Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925

|
Цитата(twix @ Apr 24 2018, 13:03)  У меня вопрос немного не в тему, ионисторы у них же большой ток саморазряда, как на нем строить ждущий режим, если он сам себя без нагрузки посадит максимум неделя. Никак. Цитата(scifi @ Apr 24 2018, 14:15)  Что касается логов, есть вот такой велосипед: тут. 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
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|