Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/37: Рейтинг темы: голосов - 37, средняя оценка - 4.59
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??
Не знаю как, но в очередной раз убедился - однозначно в печь.
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.03.2017, 19:09
Ответы с готовыми решениями:

Работа с диском на физическом уровне
Что есть для windows, наподобии dos'овской diskEdit? А если еще и документация есть на русском, то ето уже былобы суперкруто!

График сигнала на физическом уровне лсв
Топология кольцо. Кабель: витая пара 3 категории. Скорость передачи 10 Мбит/с. Как будет выглядеть график U(t) сигнала, проходящего по...

Как работает процессор на физическом уровне?
Всем привет. Понимаю, что процессор состоит из колоссального количества транзисторов, имеющих ничтожно малые размеры измеряемые...

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
Цитата Сообщение от Oximtfty
Так позвольте выяснить, это как так работает аппаратный SDIO в STM??
Не знаю как, но в очередной раз убедился - однозначно в печь.
Ну уж сразу в печь. Наверняка все нормально работает. Отсюда USB host проверял - USB флэшка работала и SDIO должно, автор похоже не врет:
http://moretosprojects.btogspot.com.br/ ... evice.html
0
Oximtfty
24.03.2017, 21:59
Цитата Сообщение от dosykus_2
Вы бы не на аппаратное гнали а на калокуб и спл.
Имхо софт у стм далеко не лучшая сторона.
Вот скажу, что я не пользуюсь ни тем ни другим. Только подсмотреть что-нибудь в плане регистров. А так всё на чистом CMSIS. Я хочу разобраться именно на уровне дергания ногами. Но, уперся и всё тут. Сейчас попробовал инициализацию в SPI
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
Цитата Сообщение от TomityWotf
Странно, сколько баловался с SD (и MMC) карточками, никогда особых проблем не было. А уж после перехода с SPI на SDIO вообще красота, последний гораздо удобнее.
На счет таймингов: есть бесплатная дока, она урезанная (Simplified Specification), полная, с таймингами, только за бабло. Немного по аппаратной части есть у NXP, гуглить "AN10911".
По поводу проводов и т.д., можно посмотреть в доку "AN4488" (аппнот для STM32F4), там расписаны рекомендации для SDIO интерфейса.
На закуску: не повредит заглянуть в errata проца и посмотреть, что там сказано про SDIO. Например, на старых процах не работает HW Flow Control, некоторые это включают и получают веселые глюки...
Да, доки нашел, кое-что даже спираченое от упомянутых у вас NXP
Вроде разобрался на выходных с SD на более низком уровне. Наловчился работать с триггером на осциллоскопе с внешнего события. Красота!)
Но.. почему не работает аппаратный SDIO, я так и не понял.. У него под настроение.
Втыкаю карту, наблюдаю, что CMDREND бит выставляется (т.е. ответ пришел), но в регистрах SDIO_RESP(1-4) пусто.
Т.е. ответ он принял, но не прочел, хотя раньше было норм. Раза два карточку переставил - опять работает. Причем на осциллографе я четко наблюдаю, что ответы на команды приходят. Контроллер даже определяет это(ставит статус CMDREND в trui) а регистр SDIO_RESP пустой.! Т.е. ответ пришел, а считать что там я не могу.((

Скажите, кто с аппаратным SDIO работал на STM? Вообще, стоит с ним бороться дальше??
Я уже устал отлавливать его глюки.
Или есть смысл запрогить свой драйвер на ПЛИСине, тем более с клоками и всем протоколом на низком уровне я разобрался.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.03.2017, 10:31
Помогаю со студенческими работами здесь

Моделирование упрощенной реляционной СУБД на физическом уровне
Здравствуйте, прошу помочь кто чем может ... может кто-то подобное реализовывал ... хорошо бы идеями по ее (СУБД) проектированию ... Время...

Что такое множитель процессора на физическом уровне?
Что это множитель, который при умножении на частоту шины (собственную частоту процессора) даёт текущую частоту проца - это я знаю. А на...

Как на физическом уровне работает компоновщик в приведенном случае
Всем привет! Уважаемые форумчане объясните мне, как, на физическом уровне, работает компоновщик в этом случае: //файл Class.h ...

Как происходит изъятие данных с жёсткого диска на физическом уровне?
И как взаимодействует с др устройствами?

Помогало вам составлять оптимально код на ассемблере, зная на физическом уровне устройство процессора?
при условии что есть абстрактный уровень представления работы эвм для каждого компилятора, а на физическом уровне учитывая физ. логику,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
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
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru