Делаю даталоггер на Атмега328, 1 раз в секунду получаю 40байт данных (10 переменных флоат по 4 байт),всего будет около10 тыс. записей в день, т.е. файл объемом 400 кб. Планирую записывать все на SD карту.
100к количество циклов перезаписи заявляемые производителями карт это надо понимать в одну ячейку(кластер). Отсюда если это для одной ячейки, то записывая рандомно каждую секунду карта условно умрет на 10 день.
Догадываюсь что есть варианты равномерного заполнения SD карты (с указанием ячеек как у EEPROM), тогда например карты 32Гб хватит на 32Гб/400кб=80000 дней записи и это будет только один цикл перезаписи из 100к, пожизненно короче.
Подскажите, как на Ардуино организовать равномерное (последовательное) заполнение SD карты?
ПиСи. Сам факт открытия/закрытия файла на SD считается за цикл перезаписи? Если да, то равномерная запись не поможет и надо смотреть в сторону уменьшения частоты записи на SD, например поставить доп RAM, там все запоминать и потом разом записывать на SD.
Если переносить на комп, то без файловой системы не обойтись. Можно копить данные в памяти и по одному-два кб (в зависимости от МК и размера ОЗУ) и записывать на карту в файл соответствующего размера.
Или прицепить FRAM, накапливать 40*3600 байт и записывать раз в час на SD…
Согласен, причем ОЗУ можно расширить до 512кб и кидать все за раз в конце процесса, что бы лишний раз не отвлекать МК от считывания показаний.
Но у меня остались вопросы чисто для закрытия пробелов в знаниях:
100к циклов перезаписи SD это для ячейки или всю карту забить надо?
(думаю для ячейки)
можно ли последовательно писать в FAT систему SD карты?
Есть SD карты с увеличенным ресурсом, для камер, регистраторов.
Типа: Samsung PRO Endurance.
У меня в Распбери такая стоит логи пишутся постоянно, проблем пока нет, уже несколько лет.
Если вы пишете в длинный файл последовательно, а не перезаписываете одну и ту же запись - это и будет последовательное заполнение карты. И не надо тут ничего выдумывать.
А зачем вам его закрывать-открывать раз в секунду. Открыли и пишите. Просто делайте сброс данных в файл командой flush вот и все
согласен, что SD карта не самое элегантное решение, однако организовать wifi веб-сервер пока нет возможности, запись на SD это пробный шар для понимания нужно ли вообще это логгирование
не спорю сколько людей столько и мнений (решений),
задача простая есть установка, с её вольтметров, амперметров и всяких датчиков надо зафиксировать данные, что бы оптимизировать процесс и воспроизводимость результатов… этап пуско-наладки, сейчас процесс мониторим через ком-порт и параллельно пишем
в дальнейшем когда все прикатается если будет необходимость в тотальном контроле сделаем веб-сервер или просто оставим SD карту в качестве “черного ящика”