|
Oximtfty
|
|
Помогите разобраться с SDIO на физическом уровне.24.03.2017, 19:09. Показов 7251. Ответов 6
Метки нет (Все метки)
Здравствуйте. Помогите разобраться с SDIO. Ни для кого не секрет, что сейчас полно информации о том, как прикрутить SD карту к аппаратному SDIO на старших линейках STM32. Но.. То-то и оно, что поработав с аппаратным SDIO столкнулся с кучей багов и ошибок. Во первых, определяет не все карточки, во вторых - не со всеми карточками работает корректно. А если с FatFS, то бывают такие ошибки и тормоза, что и в страшном сне не приснится. Короче, что касается аппаратного SDIO - нафиг.!
Ну тут решил разобраться на более низком уровне, как же всё там организовано. В общем, решил с SDIO разобраться на уровне "ногодрыга". С SPI всё понятно, а вот по родному режиму SD карты в плане тайминга и т.д. информации маловато. Нашел организацию тактирования. Тут вроде всё понятно. Тоже самое что и в SPI mode 0: <Изображение удалено> Известно, что частота на этапе инициализации низкая и составляет порядка 400кГц. Также и то, что команда и ответ в режиме SD передаются по одной линии (CMD) <Изображение удалено> Для того чтобы разобраться, решил посмотреть, что же происходит на линиях SCLK и CMD при работе аппаратного SDIO с заведомо рабочей картой. И вот что интересно. Карточка хорошо определяется. Но я не могу никак понять, почему на осциллографе я не вижу ответов на команды (конкретно на CMD8). Ведь используется одна и та же линия - CMD. Клоки команд я хорошо наблюдаю. А вот ответов не вижу. Ну а аппаратный SDIO говорит что ответ получен и определяет карту. Посылаю CMD0. Ответа на неё быть не должно. Затем CMD8.. Вот как идет команда - хорошо на экране видно. А ответа (должен прийти R7) - нет (после команды линия CMD в чистом нуле)!!! Ну а МК мне говорит в это время - что всё ОК, и ответ пришел. Но я его НЕ ВИЖУ и не видел! А он должен быть. И две "1"-цы в ответе точно есть. <Изображение удалено> Может ответы приходят по какой-то другой линии?? Я не понимаю. Почему я не вижу ответ на CMD8 на экране осциллографа, а только команду. :dont_know: Причем команды корректные. Наблюдаю стартовый бит, сам аргумент, контрольную сумму, стоповый бит.. А вот после этого линия CMD на экране пуста... Но ответ каким-то образом приходит. Просьба.Давайте только по теме, без советов - "А чем вас SPI не устраивает?" и т.д. Спасибо. //----------------------------------------- Просто хохма.. Ещё выяснилось вот что. При вставленной карте при получении ответа на команду CMD8 зажигается светодиод (сделал для контроля). Если карты нет, индикация соответственно не работает, т.к. контроллер ответа от карты не получает. Карта то отсутствует. Но вот.. Прикол.. Если карточку вынуть, и коснуться щупом осциллографа к линии CMD, и запустить программу.. То.. Вуаля, светодиод загорается, мол карта (а её там нет) прислала ответ. Я просто в ШОКе!!! Так позвольте выяснить, это как так работает аппаратный SDIO в STM?? Не знаю как, но в очередной раз убедился - однозначно в печь. |
|
| 24.03.2017, 19:09 | |
|
Ответы с готовыми решениями:
6
Работа с диском на физическом уровне График сигнала на физическом уровне лсв
|
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
|
| 24.03.2017, 20:03 | |
|
Вы бы не на аппаратное гнали а на калокуб и спл.
Имхо софт у стм далеко не лучшая сторона.
0
|
|
|
0 / 0 / 0
Регистрация: 24.08.2014
Сообщений: 389
|
||
| 24.03.2017, 20:27 | ||
http://moretosprojects.btogspot.com.br/ ... evice.html
0
|
||
|
Oximtfty
|
||
| 24.03.2017, 21:59 | ||
http://s-engineer.ru/mykrokomtrottir-ra ... -sistemoj/ - почти тоже самое. Нет ответа на MISO. Висит MISO в высоком уровне, хоть что делай. Частоту клоков проверил - 200 кГц (заявлено, что при инициализации от 100 до 400 кГц нужно). Не знаю. Подключаюсь к осциллографу в режиме Триггера - линия MOSI молчит. Вообще делаю так. Отправляю сразу 80 клоков при высоком CS и MOSI. Потом CS прижимаю на землю. Отправляю CMD0 с контрольной суммой на конце (0x4A) и стоповую единичку. И жду. На CMD0 подтверждения выхода в SPI режим нет (линия MISO должна просесть в 0, но не проседает). Все линии данных как и положено подтянуты к питанию. Команды отправляются, но ответа нет. Решил пока SPI глянуть. И вот он у меня тоже не работает. Возможно, узнав причину удастся запустить и SDIO. |
||
|
Oximtfty
|
|
| 24.03.2017, 22:32 | |
|
Разобрал свой кард-ридер. Там всё видно. Попробую скопировать. (в плане тайминги, длительность импульсов и т.д.). Да, ещё я читал, что на работу SD карты очень влияет длина проводов. Вот вопрос - насколько?
|
|
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 553
|
|
| 24.03.2017, 22:50 | |
|
Странно, сколько баловался с SD (и MMC) карточками, никогда особых проблем не было. А уж после перехода с SPI на SDIO вообще красота, последний гораздо удобнее.
На счет таймингов: есть бесплатная дока, она урезанная (Simplified Specification), полная, с таймингами, только за бабло. Немного по аппаратной части есть у NXP, гуглить "AN10911". По поводу проводов и т.д., можно посмотреть в доку "AN4488" (аппнот для STM32F4), там расписаны рекомендации для SDIO интерфейса. На закуску: не повредит заглянуть в errata проца и посмотреть, что там сказано про SDIO. Например, на старых процах не работает HW Flow Control, некоторые это включают и получают веселые глюки...
0
|
|
|
Oximtfty
|
||
| 27.03.2017, 10:31 | ||
Вроде разобрался на выходных с SD на более низком уровне. Наловчился работать с триггером на осциллоскопе с внешнего события. Красота!) Но.. почему не работает аппаратный SDIO, я так и не понял.. У него под настроение. Втыкаю карту, наблюдаю, что CMDREND бит выставляется (т.е. ответ пришел), но в регистрах SDIO_RESP(1-4) пусто. Т.е. ответ он принял, но не прочел, хотя раньше было норм. Раза два карточку переставил - опять работает. Причем на осциллографе я четко наблюдаю, что ответы на команды приходят. Контроллер даже определяет это(ставит статус CMDREND в trui) а регистр SDIO_RESP пустой.! Т.е. ответ пришел, а считать что там я не могу.(( Скажите, кто с аппаратным SDIO работал на STM? Вообще, стоит с ним бороться дальше?? Я уже устал отлавливать его глюки. Или есть смысл запрогить свой драйвер на ПЛИСине, тем более с клоками и всем протоколом на низком уровне я разобрался. |
||
| 27.03.2017, 10:31 | |
|
Помогаю со студенческими работами здесь
7
Моделирование упрощенной реляционной СУБД на физическом уровне Что такое множитель процессора на физическом уровне? Как на физическом уровне работает компоновщик в приведенном случае Как происходит изъятие данных с жёсткого диска на физическом уровне?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|