Есть ли какие ограничения на частоту тактирования в зависимости от класса SD карты? Сталкиваюсь с нестабильностью чтения если выставляю высокую частоту тактирования SPI. На разных картах по разному. Если выставить 18 МГц то одна карта может 10 раз произвести запись блока без ошибок и один с ошибкой. Если понизить частоту до 4 МГц - ошибок вообще не бывает.
Комментарии: 54
Boris
так spi режим там для низких скоростей, он для сервисного режима и в реальной работе карты не участвует
Igor
Инит на низкой скорости происходит без ошибок. Дальше повышаю скорость SPI до 18 МГц. Не стабильная запись. При чем на разных картах по разному
Boris
так оно и по разному что в реальной работе карточки этот spi не участвует т.е. вся работа на волю случая
Anton
Стоит посмотреть в сторону sdio. Желательно в 8бит
Igor
не понял. Что значит не участвует? Я же по SPI запись блока в 512 байт делаю
Unsupported
Почему не использовать SDIO?
Igor
Не на всех МК он есть. Хочу разобрать работу карты по SPI
Boris
то что вы через spi читаете ни о чём не говорит
Sergey
провода не длинноваты?
Igor
примерно 100 мм
Boris
это очень много
Sergey
на 18мгц уже критично расположение проводов относительно земли
Boris
прям вот очень
Sergey
да, проблемы должны быть резисторы в разрыв есть?
Igor
Нет. МК 3В
Boris
ещё проблемы там в том что не все карты расчитаны что по spi их будут мучать на больших скоростях так они не для того, для чего вы подумали
Anton
А что с подтяжками в линии?
Boris
а чтобы имедансовую картину выравнять
Sergey
stm32f103 с прескейлером 2 карточки до 16 гб без проблем прожевывал
Boris
кондери должны быть
Sergey
резисторы давят отражения от концов линии
Igor
На питание?
Boris
на карте иначе может не завестись вообще
Sergey
0.5 мм2 ок, но надо кондеры на разъеме карты. керамику 0.01, 0.1, 1.0, 10.0 для полной уверенности подтяжки тоже на стороне карты лучше разместить
Igor
Ок. Кондер сейчас подпаяю. Подтяжку к 3,3 порядка 50 Ком?
Boris
а лучше взять мк с SDIO блоком и не мучать мозг ни себе ни другим провода в 4 раза укороти сигнальные а лучше раз в 8
Sergey
можно и поменьше, в районе 10к
Igor
Типа такого?
Sergey
ага, я это же нагуглил :) на самом деле помню что проблемы с подтяжками были, но не помню как решил
Anton
А вот тут не факт... У меня пару карт с такими подтяжками не завелись 47к ок будут как по мне Я на самом деле стал встроенные пользовать последнее время... Но карта от камня у меня мм в 10 примерно)))
Boris
ну там до 25 мм всё работает нормально, на 30 мм уже начинаются глюки разные
Igor
Т.е. можно просто Pull Up подтяжку включить? Или все же лучше это на стороне карты подпаять?
Anton
Я просто включаю пуллап)
Sergey
при коротких проводах внутренних хватает, при длинных надо шаманить
Igor
Так. Понятно теперь. Надо было осцилографом сигнал глянуть. Я не верно длину проводков указал. От МК до макетки 100 мм, от макетки до SD карты еще 100 мм и к макетке еще логический анализатор подключен с проводками ро 100 мм
Sergey
вот так в разрыв выглядят логанал все портит но и без него 200 более чем дофига
Boris
ну так это жесть на самом деле, так вообще удивительно что хоть как-то работает
Igor
На 4 МГц тактирования SPI работает без ошибок :)
Boris
повезло что работает а то что без ошибок это так - пока реальные данные отправлять не начал
Igor
Возможно и так. Пока только исследую команды карты Какие номиналы на практике используют в цепи? (с подтяжкой ясно. Поставлю 47к)
Boris
опустим причины столь странных занятий, но провода я всё же бы укоротил как минимум до 40 мм полной длины
Sergey
100 ом в разрыв
Dmytro
Раз зашла тема про карточки, может кто видел: Ищю какую-то очень примитивную програмку или статью по минимальной настройке SDIO в STM32f1, что бы прям посмотреть что записывается в каждый регистр, желательно с описанием зачем и почему Без FatFS и всего такого, чисто настроить SDIO и прочитать/записать один блок не знаю актуально ли это для SPI режима, но в SDIO подтяжки прям обязательно вешать на неиспользуемые линии
Igor
С каким прескалером?
Sergey
2. АРВ1, 72 плл. не помню сколько там частоты на АРВ1
Boris
потому что карта работает через sdio а spi нужен для старта карточки