В моем устройстве обязательно использовать карту памяти, использование устройства без карты бессмысленно. Таков функционал.
А также при попытке включить устройство без карты, контроллер вечно уходит в ресет, при таком раскладе введение карты на горячую, ведёт к запуску устройства.
Карта работает только на чтение, запись не нужна.
А буфер у меня двойной и кольцевой - пока играет одна половина, заполняется вторая. Прерывание по заполнению половины буфера. Никакой порчи данных нет. Играет непрерывно файл звука.
Отдельный кодек нет желания применять, потому что усложняется схема и увеличатся габариты. Интерес использовать встроенный ЦАП от STM32.
Удалось избавиться от помех с помощью:
1) тантала параллельно питанию карты 330 мкФ + керамика 0,1 мкф
2) укорочением длин проводников всех макетных плат
3) соединением земель не в одной точке, а в разных точках отладки DISCOVERY
4) применением отдельного LDO на аналоговую часть STM32, пришлось немного переделать отладочную плату
Теперь SD карта работает нормально даже с ферритовыми бусинами. Причем обе!
Цитата(Genadi Zawidowski @ Feb 25 2018, 07:33)

что-то не то...
Кстати, не забудьте сделать возмождность передегивания питания карты (и обеспесить отсутствие фантомного питания при этом) - тантал там совсем ни для сего не нужен. А вот резистор для обеспечения разряда питания не помешает. Сейчсас применяю для управления питанием карты ключи STMPS2141STR, хотя управляемый стабилизатор тоже ничего...
Убедитесьь, что проблема именно в наводках по питанию - пусть звучт программно генерируемый синус, а чтение с карты просто "в никуда" происходит.
Я например считаю нужно использовать double buffer а не кольцевой (инче не гарантируется непорча данных при получнии новых).
ps: из-за копеешной экономии - чтобы не применять отдельный кодек у которого можно хорошо питание зафильтровать - столько проблем...
На плате внизу - ну просто никаких помех в аудио от цифровой части. Во всяком случае они ниже ушма аналоговой.