Плавающая скорость записи на sd карту

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Мучитель микросхем
Аватара пользователя
Сообщения: 424
Зарегистрирован: Чт май 14, 2015 15:11:39
Откуда: Саратов

Сообщение FireProoF »

Всем привет. Имеется stm32f3 и sd карта, подключенная по spi. В главном цикле происходит опрос всех датчиков и последующая запись готового сектора на карту. Так вот всё бы ничего да вот частота записи на карту плавает. Причем 90% времени частота с учётом опроса датчиков порядка 100Гц, а в остальное время 25Гц. Причем, чем дальше я продвигаюсь по секторам на карте, тем дольше идёт запись (ну это другой вопрос).
Есть предложения как сгладить процесс записи не особо снижая темп записи?
Реклама
Потрогал лапой паяльник
Сообщения: 312
Зарегистрирован: Вс июл 29, 2012 16:25:39

Сообщение mas123 »

FireProoF писал(а):Есть предложения как сгладить процесс записи не особо снижая темп записи?
Производить запись не одного целого сектора, а сразу блока секторов. В идеале - размером с кластер.
Т.е. создать буфер под запись данных.
Закешировать FAT-таблицу: и поиск свободного кластера увеличится, и сохранение изменений FAT делать тоже большими блоками.
Но, всё это требует много памяти!
FireProoF писал(а):чем дальше я продвигаюсь по секторам на карте, тем дольше идёт запись (ну это другой вопрос).
А вот это проверить. Возможно, поиск первого свободного кластера в FAT-таблице каждый раз производиться от начала таблицы, а не от последнего найденного кластера.
Реклама
Мучитель микросхем
Аватара пользователя
Сообщения: 424
Зарегистрирован: Чт май 14, 2015 15:11:39
Откуда: Саратов

Сообщение FireProoF »

А если я буду использовать МК с аппаратным SDIO, эти проблемы сами отпадут?
Потрогал лапой паяльник
Сообщения: 312
Зарегистрирован: Вс июл 29, 2012 16:25:39

Сообщение mas123 »

FireProoF писал(а):МК с аппаратным SDIO
Нет, с чего бы им отпасть?
SDIO/SPI - это лишь способ обмена с карточкой. Так сказать, нижний уровень обмена.
А "запись файла" - это уже работа с FAT-таблицей, запись в нужные кластеры и т.д. Более высоких уровень. :)

Но! В принципе, проблема может уйти. Точнее, она может быть скрыта повышенной скоростью обмена с картой.
За исключением проблемы поиска следующего свободного кластера, если он реализован как я предположил ранее.
Поэтому стоит посчитать скорости обмена и прикинуть. Да, а с какой частотой сейчас идет обмен по SPI?

Кстати! А кто будет считывать сохранённые данные? Тот же самый stm или карта будет выниматься и втыкаться в комп?
Реклама
Эиком - электронные компоненты и радиодетали
Мучитель микросхем
Аватара пользователя
Сообщения: 424
Зарегистрирован: Чт май 14, 2015 15:11:39
Откуда: Саратов

Сообщение FireProoF »

После перехода с stmf1 на f3 что-то не проверил. Надо будет посмотреть.
Потом вставляю в комп и считываю.
Реклама
Потрогал лапой паяльник
Сообщения: 312
Зарегистрирован: Вс июл 29, 2012 16:25:39

Сообщение mas123 »

FireProoF писал(а):Потом вставляю в комп и считываю.
Ясно. Да, тут необходимо использовать FAT, да.
Хотя, рассмотри вариант "своей файловой системы".
В этом случае запись будет производится куда быстрее. А для считывания на компе придётся писать программу-читалку... :)
Реклама
Ответить

Вернуться в «Периферия»