Alechek 0 31 июля, 2018 Опубликовано 31 июля, 2018 · Жалоба Да хоть 32кГц, без разницы: это всего лишь частота запуска лютой скорости фронта в линию. И что с того? Ну создали жуткие помехи в радиоэфире. Не вижу причин не работать - когда придет время снимать данные на такой низкой скорости все уже устаканится. Единственное, что приходит на ум - выброс напряжения в момент переходного процесса, превышающий допустимый. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 31 июля, 2018 Опубликовано 31 июля, 2018 · Жалоба ...когда придет время снимать данные ...карта уже выставит их 3 раза из-за "звона" на CLK, например (те самые "пропуски" данных, отмеченные ТС). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 31 июля, 2018 Опубликовано 31 июля, 2018 (изменено) · Жалоба Зачем VERY_HIGH-то? Чтобы гарантированно не работало? Пробовал все линии и по-очереди делать в LOW. Без бусины тоже не работало, даже при CLK < 1 МГц. И это Куб изначально выставил, а не я :) ...карта уже выставит их 3 раза из-за "звона" на CLK, например (те самые "пропуски" данных, отмеченные ТС). Был бы у меня глаз осциллограф, можно было посмотреть форму сигнала...... Соглашусь с ув. aaarrr, ферритовая бусина как раз душит СВЧ-всплески, от которых карта может несанкционированно передёргиваться. Это макет. Сделать короче уже трудновато, много другой периферии висит. На релизе будет печатная плата с земляными полигонами и всё как надо. Но футпринт заложить на резистор/бусину не помешает. Мне удалось повысить SD CLK до 48 МГц - карта работает, прикрутил FatFs (не та, то с Куб-ом идёт, а свою отлаженную версию). MP3-файл декодируется нормально. На 96 МГц уже не работает. Никакими командами перевода в High Speed Mode не пользовался, просто увеличил CLK до 48 МГц. Все три карты работают. Спрашивается, зачем нужна команда для перевода в High Speed Mode, когда она при 3,3V нормально работает на быстром клоке 48..50МГц ? В файле stm32h7xx_hal_sd.c сделать изменения в функции HAL_SD_ConfigWideBusOperation(): //.............. #if 0 /* Check if user Clock div < Normal speed 25Mhz, no change in Clockdiv */ if(hsd->Init.ClockDiv >= SDMMC_NSpeed_CLK_DIV) { Init.ClockDiv = hsd->Init.ClockDiv; } else { if(hsd->SdCard.CardSpeed == CARD_ULTRA_HIGH_SPEED) { Init.ClockDiv = hsd->Init.ClockDiv; } else { /* No High speed SD card */ Init.ClockDiv = SDMMC_NSpeed_CLK_DIV; } } #endif Init.ClockDiv = hsd->Init.ClockDiv; //!!! снимаем ограничение на SD CLK SDMMC_Init(hsd->Instance, Init); //....... Изменено 31 июля, 2018 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 2 августа, 2018 Опубликовано 2 августа, 2018 (изменено) · Жалоба Заимплементировал SDIO в работе декодера видео + FLAC. Переписал Хало-Куб для работы с картами в HIGH_SPEED Mode. У Куба 2 крайности: либо карта в Standard Mode, либо в Ultra High Speed Mode (с понижением питания до 1.8V). Мне же Ultra HS Mode не подошёл, так как питание карты 3.3V. Поэтому сделал поддержку High Speed Mode (3.3V). Частотомер выдал на SDIO CLK 48,6 МГц (вместо теоретических 50 МГц). Подробнее тут: http://vrtp.ru/index.php?showtopic=29688&st=150 Там же исходники (High Speed Mode отключен, включить его - раскомментарить последнюю строку в main.c). Видео в действии: http://www.youtube.com/watch?v=s2a_DqrIFaw Изменено 2 августа, 2018 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 27 сентября, 2018 Опубликовано 27 сентября, 2018 · Жалоба Ферритовую бусину на SDIO CLK убрал на печатной плате (4-слойка, 2 внутренних полигона Vcc и GND), все карты работают. Даже на 48 МГц (HSM) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться