Разрабатываю устройство у которого имеется microSD на борту для ведения архива измерений и в целом жизни устройства. Устройство отключается просто выниманием штепселя или отключением автомата - короче плата не в курсе что ей гасят свет, аварийно или штатно. И если не повезет то файловая система будет убита. Я решил воткнуть детектор напряжения КР1171СП10 (10 вольт) до преобразователя на 3.3В (K78L03-1000R3). Сам преобразователь подключить после диода, что бы ток не утекал обратно к детектору и выше. После преобразователя воткнуть ионистор на 5В 5Ф через токоограничивающий резистор на 2,67 Ом. Всем этим делом будет питаться МК + microSD + мелочевка, в сумме без карты памяти ток потребления 150мА. Карта памяти же в зависимости от типа может жрать до 800 мА в пике - кратковременно в процессе активной записи, грубо 5мс, потом ток падает до 30 и ниже мА.
После обнаружения просадки ниже 10 вольт буду запускать процесс записи и завершать работу, ожидая восстановления питания.
Вот тут вопросы возникают: А можно ли так ионистор использовать? От чего их ресурс истощается? Можно ли с него порядка 1А жрать кратковременно? Сколько он в таком режиме проживет? Ранее в них паяльником не тыкал - без понятия как их готовить.
Может быть другие варианты решения вопроса кто подкинет?) 220 на плату для детектирования не хочу.
Карта памяти же в зависимости от типа может жрать до 800 мА в пике
Вы шутите? Это какой порт USB в ПК может выдать 0,8 А? Не встречал microSD с потреблением тока более 100 мА. Для экономии потребления, используйте карты созданные по технологии TwinMos, их максимальный ток не превышает 50 мА. Ну а в плане резервного питания, я бы установил аккумулятор (Li-Ion), без лишних преобразователей.
ионисторы ониж низковольтные а держать емкостью выгоднее какраз высокое напряжение (потому что просадка в нем менее критична)
чтоб экономнее расходовать емкость 12V конденсатора - можно применить импульсный стэпдаун (buck, напр на mt1470 ) это позволит ~ в 2-3 раза уменьшить необходимую емкость. при этом всего 1000uF 16V электролит даст ~13..15mS запас по времени при разряде 10V->4V при потреблении 1A @3.3V.
ну да и 1A это ооч большой перезаклад, померьте или поверьте )))
VNS Про 800 мА нашел именно что пиковое может быть, пока померить нет возможности, да и надо же разные типы карточек по перебирать. Аккумуляторы не вариант.
AlexS4 Ну теоретически ионистора хвататет, по размерам он с конденсатор - в целом меня устраивает, как и написал вопрос лишь втом можно ли сделать так как я хочу, не помрет ли ионистор через пару включений выключений. У меня и так импульсная понижайка K78L03-1000R3, с заявленной эффективностью 80-89%.
ну если уже импульсная то просто поставьте на вход преобразователя обычный электролитический конденсатор на 1000+uF на 16..25V и все, ничего другого не нужно! вам же хватит 10+mS для завершения записи? если нет - поставьте электролит пропорционально большей емкости. (эти прикидки на 1A потребления а в реальности в разы больше времени будет)
это дешевле и надежнее ионистора или других подобных странных решений)
Я понимаю что 800 это на высоких скоростях у какой то неведомой приблуды, но лучше заложу побольше ресурсов, в данном случаи не критично в плане денег, не серийное устройство
Ну вот,теперь вы вынудили меня тоже прогнать тесты с замерами тока >_< Чем бы только график снять...
пики тока может и больше... мой тестер пики тока не показывает. мой тестер показывает средний ток... после конденсатора. мерить пики тока нет смысла... конденсатор сглаживает все пики тока.
Может быть другие варианты решения вопроса кто подкинет?)
А что (и сколько) вы аварийно записывать то хотите? А то может просто поставить FRAM/MRAM и выкинуть все костыли с ионисторами и прочим? Это будет намного дешевле и проще.
PS: Учитываете ещё, что SD-карта кроме потребления, ещё имеет свойство оказываться внезапно занятой. На несколько сотен мсек. (например - подали команду стирания, а тут РАЗ! - авария питания случилась)
И если не повезет то файловая система будет убита.
А если её не будет, то и убиваться нечему получается. Зачем вам ФС "для ведения архива измерений"? Сами себе создаёте искусственно проблему, чтобы потом её решать? Ведите архив без ФС. И убиваться будет нечему.
Разрабатываю устройство у которого имеется microSD....
по уму конечно же следить за протуханием 220. под эту тему хорошо подходит детектор нуля на пару деталюшек + оптопара. Плюс - переход через ноль, если требуется, что нить крутить не крутящееся.
запись в микросд можно делать не при отключении, а при включении. тем более , как тут уже сказано было выше, она может вам и тайм-аут выдать нечаянно - вплоть до 2 секунд судя по официальным мануалам от сони. при пропадании питалова лучше всё обрубить (даже микросд), и записать тупо в сектор флеша. этот же подход спасает и при аппаратном исключении. правда тут надо подумать об частоте этих действий и износе флэша.
Заголовок сообщения: Re: Аварийная запись на microSD. Как реализовать лучше?
Добавлено: Ср сен 17, 2025 22:21:33
Открыл глаза
Зарегистрирован: Пн сен 15, 2025 08:43:23 Сообщений: 62
Рейтинг сообщения:0
Эти флешки - больно нежные создания. Лет 5-7 назад я массово начал было использовать дешевые (700-1000 рублей за штучку) одноплатники (orange pi zero, zero 2 и далее) в своих железках. Ведь куда дешевле взять одноплатник с нормальным линуксом на борту и завести там всю сетевую подчасть, а разную хитрую периферию держать на микроконтроллере, чем пытаться поднять ssh, https и т.п. на микроконтроллере. Однако, недолго я радовался: очень быстро одноплатники стали "помирать". Билась файловая система на флешке. ОК, стал монтировать корень ридонли. Думаете, спасло? А вот нет! Ну, теперь вместо месяца-двух одноплатники стали жить по полгода. Но все равно в итоге флешка помирала (причем, иногда помирала "насовсем", а не просто ФС портилась). В общем, плюнул я на это дело и решил по-другому эту проблему: узлы соединяются оптикой, по которой и пробрасывается 232 или 485 (при желании можно и CAN в оптику купить, но у меня пока получается по большей части point2point). Там, где остро необходим CAN, вместо одноплатника встал недорогой китайский безвентиляторный комп (они на алике по 15-20 тыр продаются, с маржой посредника выходит 19-25, вполне приемлемо для бюджета организации).
По конкретно этому устройству вопрос: а что, записи ведутся настолько часто, что обычной внешней EEPROM не хватит? Хотя, если устройство мало жрет, можно на трех-четырех аккумуляторах 18650 сделать эдакий бесперебойник, возможно, на неделю хватит - тогда не будет проблем с флешкой. (у меня дома над входной дверью файлопомойка висит на intel n100, так такой бесперебойник на четырех 18650 не так давно удерживал ее в рабочем состоянии около 4.5 часов, пока света не было: я его выключить забыл, а как пришел домой, проверил uptime - а там все прекрасно, шевелится)…
у меня флэшки по многу лет живут во всяких орэньжах и бананах. есть 2 момента: на них я обычно держу kernel + rd-image (cpio) перегружаемые в ram,
а записываю на отдельный раздел на этой же флешке, ext4, смонтированный с commit=120 или больше, а по аварии питания делаю sync + shutdown (с литиевым резервным питанием)
а самое главное - беру micro-sd 1 или 2G , не более если нужна большая емкость для данных то лучше hdd по sata подключить ... или ssd если записи не слишком интенсивные.
запись в микросд можно делать не при отключении, а при включении. тем более , как тут уже сказано было выше, она может вам и тайм-аут выдать нечаянно - вплоть до 2 секунд судя по официальным мануалам от сони.
... и ещё не забывать, что если предыдущее выключение произошло в тот момент, когда карта как раз выполняла это самое "действие вплоть до 2 секунд" (запись или стирание), то карту следует вообще-то полностью проверить на неразрушенность данных. Потому как она могла не закончить эту операцию и остановиться где-то на полпути. И зачем все эти сложности?? Делаем простой кольцевой буфер в SD (а ещё лучше - в чипе SPI-flash) без всяких FS. + текущие индексы кольцевого буфера + текущие накопленные данные -> во FRAM. И всех делов.
при пропадании питалова лучше всё обрубить (даже микросд), и записать тупо в сектор флеша. этот же подход спасает и при аппаратном исключении. правда тут надо подумать об частоте этих действий и износе флэша.
Не нужно ничего. Никаких "детекторов питания" и "записей при включении". Ставим дешёвую FRAM (можно и не дешёвую, ведь у ТС - единичное устройство) и просто пишем туда критические данные постоянно, периодически. Всё просто.
И можно дёргать (по питанию) устройство как угодно часто. И тем более не нужно лезть в ~220V. Или подключать HDD (как тут уже насоветовали)
Крылья, лапы, хвосты... Бог ты мой, о чём вы вообще ? изделие штучное Запись в FRAM решила бы все вопросы буквально за копейки, что по цене, что программно, об этом уже говорилось тут, а вы сервер, SCADA...
Роме нравятся красивые картинки из интернета. СКАДА систему он и "в глаза не видел"… потому мальчонка несмышлёныш вставляет понравившиеся картинки на форуме (чтобы были). А то что они здесь как корове седло, он этого не понимает. Мал ещё такое понимать, вот и надувает щёки перед дядьками, якобы он тоже большой.
Не мне задавай такие вопросы, а тем, кому я писал алгоритмы… всё автоматизировать не нужно, просто ты ещё мал и глуп, от того этого и не понимаешь. Подрастёшь, может тогда поймёшь.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 74
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения