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

STMF407 + SD

Софт читает 4 АЦП каждые 2 мс. Нужно записать поток на SD. Сделал двойную буферизацию, пишу в буфер в прерываниях от АЦП. 

Первая беда в том, что если прерывание выполняется более 100мкс, наблюдаю множественные ошибки FR_DISK_ERR при записи блока. Блоки 512 - 8192 пробовал разные, не помогает. Беда в том, что числа INT должны быть преобразованы в текстовый HEX. Это отнимает время. Процессор пашет на 84МГц и ускорять его я не имею право. Хотя резерв есть.

Отключать прерывания при записи блока нельзя. Как - то можно победить сей недуг? Библиотека FATFS R0.12c Среда - Keil 5.17.

 

К слову, если писать без буферов, при большом потоке данных также возникают такие же ошибки. Может библиотека некорректно определять готовность карты принимать данные?

Изменено пользователем Димон Безпарольный

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


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

Отбой! Включил hsd.Init.HardwareFlowControl = SDIO_HARDWARE_FLOW_CONTROL_ENABLE; - полегчало. Ушел разбираться что за змий такой.

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


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

А вот и нет - ничего путного в Сети не нашел на эту тему. Беда. Может кто знает? У всех Disable стоит и никто не парится. 

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


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

Управление количеством транзакций дма со стороны sd, грубо говоря можно корректно обработать массив в 66кб (больше счётчика дма). 

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


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

Ну во-первых не нужно сваливать в одну кучу "прерывания АЦП" и "запись SD"


Напишите стабильно работающую задачу записи SD . Оттестируйте с разными объёмами данных, разными скоростями и периодичностями, соберите статистику неудач в течении суток. Да-да, ошибка SD не должна быть фатальным крахом всей системы, а должна корректно обрабатываться. И лог ошибок должен куда- то сохраняться, например во встроенную память CPU.  И вот только с таким подходом я когда-то сделал стабильную работу SD.
 

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


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

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

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

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

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

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

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

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

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

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