реклама на сайте
подробности

 
 
> microSD SDIO STM32, Не работает при большой частоте
MiklPolikov
сообщение Nov 5 2014, 13:18
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



microSD SDIO STM32.
Столкнулся с проблемой : при частоте шины более 3МГц при записи в SDIO выставляется бит ошибки CRC.

Картина одинакова для разных карт класса скорости от 4 до 10 . Чтение происходит стабильно на любой скорости до максимальной 24МГц, при записи стабильно происходит ошибка CRC, если скорость больше 3 МГц. При инициализации в аргументе ACMD41 выставляю бит 28 SDXC Power Control 1b: Maximum Performance.
Пробовал с напряжением питания 3.0 и 3.3В , проверил стабильность питания, ноги процессора настроены на макс.скорость, последовательных резисторов на линиях нет, длинна линий от процессора до карты 1-2см.
В чём может быть причина проблемы ? Может быть есть ещё какая-нибудь настройка карты на макс. скорость ?


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
MiklPolikov
сообщение Feb 19 2015, 00:38
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Вопрос так и не решён.
Подскажите кто-нибудь хотя бы что-нибудь. У кого-нибудь SDIO работает на запись в карту с частотой больше 3МГц ?

Развёл новую плату. И на ней картина в точности такая же ! С частотами больше 3МГц не работает, 3 и меньше работает.
Думаю, дело в какой-то настройке, то ли карты, то ли процессора.
У периферии SDIO есть условие
Frequenc(PCLK2) ≥ 3 ⁄ 8 × Frequency(SDIO_CK)
оно, очевидно, выполняется, т.к. у меня PCLK2 =32МГц


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Feb 20 2015, 09:38
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Удалось найти решение !
Оно в том, что бы отключать клок SDIO на время всех настроек, и включать его когда всё настроено и данные готовы к передаче. Между настройками SDIO и началом передачи данных(т.е. включением клока) нужна небольшая задержка.

1) Выключаем клок SDIO SDIO->CLKCR&=~SDIO_CLKCR_CLKEN;
2) Настраиваем всё что надо в SDIO
3) Включаем DMA
4) Включаем DPSM SDIO->DCTRL|=SDIO_DCTRL_DTEN;
5) Задержка for(i=0;i<100;i++){}
6) Включаем клок SDIO SDIO->CLKCR|=SDIO_CLKCR_CLKEN;

Тема обсуждается тут
http://forum.easyelectronics.ru/viewtopic....=384939#p384939


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 08:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01404 секунд с 7
ELECTRONIX ©2004-2016