Здравствуйте форумчане!
Использую отладочную плату STM32F4-Discovery на базе микроконтроллера STM32F407VG, организовал обмен по SDIO (4 бита) с картой SD-micro. Карта подключена через переходник SD-micro=>SD, затем разъём SD, затем провода 4 см одинаковой длины. Подтяжки на CMD и D0..D4 использую внутренние pull-up на GPIO.
Частота клоков 24 МГц (USB-шные 48 Мгц пополам). Карта работает только на чтение, запись не требуется. Прикручена библиотека FatFS для чтения файлов AVI или JPEG.
Так вот, проблема в том, что карта памяти прекрасно работает (данные читаются верно) , когда на линии питания конденсаторы впараллель: 0,1 мкф + тантал 10 мкФ.
Но стоит на питание карты повешать ферритовую бусину или даже ферритовую втулку, то данные начинают читаться неправильно - декодирование JPEG вылазит с артефактами (узоры вместо картинки, части картинки битые, видно декодеру JPEG сносит башню). Вместо бусины ставил резистор 100-220 Ом - карта вообще перестаёт правильно читаться.
Желание поставить бусину или резистор по питанию продиктованы нуждой снизить уровень помех по питанию, потому что использую ЦАП+DMA STM32F407 для вывода звука, в момент работы карты слышны наводки с частотой смены кадров JPEG. А разделить питание на цифровое и аналоговое на DISCOVERY невозможно.
Пара вопросов:
1) Почему SD карта начинает сбоить когда на питании феррит или резистор? Связано ли это с отсутствием согласования волновых сопротивлений трасс SDIO ? Ведь провода висят в воздухе, под ними нет слоя земли.
2) Если будет свой дизайн платы, на которой будет отдельно LDO на аналоговое и земляное питание, удасться побороть шумы на выходе ЦАП ?