fk0, легенда (18.10.2013 12:12, просмотров: 129) ответил Nikolay801_ на Вот некоторые заказчики хотят что бы девайс регистрировал гарантировано время и дату выключения питания (и тока это), как делать будем?
Вот расскажи как делать будем. Вводные данные. Потребление МК в максимуме порядка 70mA (PIC24EP512G810), через его выводы может утечь ещё 30ма в худшем случае (весьма оптимистично -- пару диодиков зажечь). У нас ещё горячо любимая AT45DB161. Потребляет в записи I=18mA. Перезаписываемый объём равен одной странице. Время перезаписи странницы, худшее, t=25мс. Начальное напряжение питания V0=3.3V, конечное V1=3.0V (определяется МК). Необходимая ёмкость конденсатора C=I*t/(V0-V1) ~= 10000мкФ. В корпус не влезет и токи утечки сравнимы с потреблением прибора в одном из режимов. Источник питания (MCP1824) ограничивает ток при пуске на уровне 720mA. Т.е. конденсатор зарядится до уровня порядка 3.0V за 42мс -- скорость нарастания напряжения 72в/с. Что в 14 раз меньше необходимых 1000в/с (из даташита на МК) для нормального запуска. И для многих других микросхем.
И непонятно, как понять, когда можно записывать, а когда разряд конденсатора уже пошёл. Нужно измерять на нём напряжение с 1-процентной погрешностью. Опорное у нас -- те же 3.3V, а встроенный в МК источник опорного напряжения плох.
Конденсатор нужно было поставить перед MCP1824? Это не решает проблему медленного запуска (или нужна сложная схема для запуска после заряда конденсатора). И ёмкость конденсатора нужна на порядок больше ибо, случайно, в цепи ~5в у нас затесялся аудио усилитель с токами по полтора ампера. И ещё много всего.
Конденсатор нужно было поставить на входе источника питания в целом? Но тогда нужна отдельная цепь для измерения на нём напряжения. Но это не самая большая проблема. Большая проблема в том, что ёмкость этого конденсатора могла бы быть всего лишь на порядок меньше, 1000мкф. А вот диапазон напряжений -- до 42в (я сказал до, а не 42в, может быть и 8в). Это только электролит больших размеров, в корпус опять же не лезет. Нужно ограничение тока при включении.
И ради чего всё? Но это ж ещё пол дела только. Вторая кроется в программном обеспечении. Которое достаточно быструю, порядка нескольких миллисекунд, реакцию на отключение источника питания обеспечит только из прерывания. И архитектура ПО не позволит бросить всё (может запись/чтени уже сейчас идёт) и начать резко записывать во флеш.
А вот у нас случай был. Подключили питание к аккуму параллельно советскому заряднику. А тот заряжал как-то дцать раз в секунду. То есть напряжение, то нет. И записывало оно столько же раз в секунду. Оттого и померло. Поэтому вопрос гарантированной записи крайне сомнительный...
Вообще разумно в таком случае ставить RTC с батарейкой (время ж тоже считать нужно) -- у него есть память, в неё и записывать. Естесственно не время выключения, что не всегда возможно (не гарантировано...), а просто раз в секунду записывать текущее время и дату. И, естесственно, две копии подряд последоватeeльно и с CRC каждой копии. Потому, что всё оборваться может в момент записи. Если записывать нужно не время, то не обязательно с батарейкой, можно и флеш. Но по такой же методике.
[ZX]