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

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

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

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

 

Согласен, но хотя бы иметь буфер для тех данных, которые собираемся записывать. Как вариант подобной структуры:

typedef struct {

uint64_t StartAddress;

uint8_t WriteStarted;

uint8_t WriteDone;

uint8_t WerifyOK;

uint16_t DataSize;

uint8_t DataArray[512];

} WriteBuffer;

Про размеры сектора - согласен, но я имел в виду хранение сектора перед записью.

Вроди бы, большинство чипов позволяет записывать иногда даже по байту в сектор (хотя и не все), подавляющее большинство - пол килобайта.

 

Хотя, могу быть неправ. Очень большие микросхемы пока не трогал - не приходилось.

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


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

На всякий случай скажу что проблема с записью у нас в MX25L6406EM2I-12G. Но программные способы решения я не рассматриваю - это не мое. Я аппаратное решение должен предложить подешевле.

 

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

 

Так и решили поступить. То что предложили сделать во втором сообщении, сделают программисты. Электролит такого номинала сопоставим по размерам с суперкапом например на 3 фарада. Цена суперкапа конечно повыше, но не фатально http://amsi.ru/catalog/index.php?categoryI...productID=24360. Решили оставить возможность -вдруг пригодится для чего.

 

Решил сделать отдельную цепь питания процессора - 3.3 вольт - отдельно от периферии. Сначала с 5 вольт понижаю до 2.7 с помощью LD1117STR а потом с помощью TPS61070 буду поднимать до 3.3 пока емкость не разрядится до 0.9. Если действительно хватит миллифарадной емкости вместо суперкапа то просто выкинем LD1117STR

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


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

Кстати, у меня в одном типе плат стоит контроллер (STM32F103). В цепи питания стоит обычный электролит на, кажется, 4700uF. Настроен PVD на уровень 2.9V (номинальное - около 3.2). Когда внешнее питание пропадает - контроллер ловит прерывание от PWD и быстро отправляет в консоль ругань, что его обесточили.

Согласен, не Ваш вариант. Но в это же время можно отключить всю мощную нагрузку (хотя велик риск не успеть) и быстро доделать какие-то вещи, пока ёмкость не истощилась.

Могу ещё предложить контролировать входное напряжение и при его пропадании - так же всё отключать, пока не разрядились ёмкости.

Но две секунды на запись - это минимум сам контроллер + память... память - не более 25мА, судя по даташиту.

Контроллер, если сбросить частоту - можно получить около 10-20мА.

Берём наихудшие значения (20+25), накидываем разные утечки и всё, что нельзя обесточить (+50мА).

Необходимо: 45+50 = 95мА суммарно на 2 секунды.

При этом нельзя ронять напряжение ниже 2.7V для памяти.

При начальном питании в 3.3 получаем разницу в (3.3 - 2.7) = 0.6V. Негусто.

Теперь считаем заряд 2.7 * 0.095 * 4(с) (снова берём худший вариант и накидываем ещё резерв времени) = 1.026J

Неслабо так.

Минимум, который у меня получается, без использования преобразователей, просто на шине питания - 0.6F

Это при токе почти в 100мА. После разряда от 3.3 до 2.7, в конденсаторе останется ещё ~1.8J. Если использовать дополнительный преобразователь:

IN -> BoostCap -> Main_3.3, то можно вытянуть из него порядка 2.5J, а это около 8-10 секунд работы. Естественно, минимум потребителей и высокий КПД.

Ёмкость на 3F можно просто оставить на питании и мониторить вход.

Начальная энергия - 16J, Конечная - 11J (3.3 -> 2.7).

 

А вот запуск с таким конденсатором будет довольно тяжёлым.

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


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

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

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

Сейчас отлаживаю проект на отладке. Пара отладочных плат соединённых вместе + ещё кой-какие мелочи на проводах -

всё это питалось от батареи кондёров 5 шт. * 10000мкФ * 24В (после коих - DC-DC понижающий).

Так мне надоело то, что после нажатия тумблера на БП, до останова работы программы надо ждать примерно 15 секунд. Убрал 4 кондёра, оставил один.

И это при том, что никаких действий по энергосбережению в программе нет. и работает CPU на 120МГц.

 

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

Зачем тут опять какие-то "библиотеки"? Достаточно только следовать правилу "Никогда не писать поверх старого" - и будет гарантия от сбоев питания в любой момент.

 

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

Если уж очень хочется FAT или ещё какую систему хранения с готовым драйвером (типа FatFS Chan-а), то ставим дополнительный чип FRAM (или подобной памяти) и пишем низкоуровневый доступ к FLASH через журналирующую запись во FRAM. С фиксацией всех манипуляций с FLASH. А Chan-а пускаем через API этого драйвера.

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


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

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

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

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

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

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

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

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

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

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