Как стать автором
Обновить

Комментарии 32

НЛО прилетело и опубликовало эту надпись здесь
да, правильно, феном
Кстати в каком режиме? Все карты нормально после этого работали?
Нет не все, но как оказалось для SD карт наиболее губителен не перегрев при пайке феном, когда карта не запитана, а повышенные температуры во время эксплуатации. Карты начинают «деградировать». Проявляться это может как существенное увеличение времени записи на карту одного блока вплоть до невозможности работы с ней. Здесь один хабравчанин проводил тесты скорости чтения-записи и тока потребления карт памяти. В свое время мной были получены схожие результаты, только опубликованные в статье картинки могли сильно измениться в худшую сторону после тестовых прогонов на высокой температуре. Лечится подбором разных типов карт, причем одни и те-же карты из разных партий могут вести себя по разному. Дешевые noname карты могут показать себя лучше, чем industrial SD card с расширенным температурным диапазоном.
А не было сравнения работы паяной карты и подключенной в разъем? Понятно что при высокой температуре проблем будет больше в любом случае, но сказывается ли как-то на работе карты пайка?
количественного анализа не было, но вполне допускаю, что пайка — не самое разумное решение.
Какую скорость считывания вы смогли реализовать на GL823? И почему перешли на usb3300?
скорость при использовании GL823 составляет ~150 Мбит/сек, на USB3300 не переходил, а согласно рекомендаций уважаемого grafalex и изучения статьи CDC+MSC USB Composite Device на STM32 HAL, портировал его код с STM32F103 на STM32F407 для реализации композитного CDC+MSC device
Если карта получается несъемная, может лучше использовать чип обычного параллельного флэша? Там и скорости хорошие и контроллер с ним работает аппаратно и никакой пляски с SDIO.
Планируется и такая реализация, но в отличии от SD card нужно:
больше ног (для STM32F407 удобно пользовать FSMC, а на 64 пиновом корпусе F405 этого интерфейса уже нет), следить за выравниванием износа (wear-leveling) (в SD этим занимается контроллер карты). Хотя второе замечание для организации логгера с последовательной посекторной записью, вероятно не так актуально, многое зависит от задачи. Например при реализации вышеописанного устройства целостность хранимой информации не столь важна и в значительной мере компенсируется ее избыточностью.
Мб что-то типа 5025700893 от Молекса возьмете? Удобная штука, я для логгеров GPS юзаю.
Есть вариант устройства и с таким коннектором, но, как оказалось, наиболее слабым местом является не столько способ установки карты на плату, сколько сама SD карта в условиях эксплуатации при повышенных температурных, вибрационных и ударных нагрузках…
Не бойтесь BGA и QFN, с ними все получается намного компактнее. А про износ — логгеру не нужна полноценная файловая система, можно просто писать во флэш по-кругу и изнашиваться он будет равномерно. Да и ресурс там сейчас ого-го, еще надо постараться его до дыр затереть)
просто писать во флэш по-кругу
Примерно так и реализовано. Что касается QFN, то такие корпуса используются, BGA — же не знаю как поведут себя при значительных вибрациях и периодических температурных расширениях. Только планировал пробовать в опытной эксплуатации.
Есть NAND c SPI(x1, x2, x4 интерфейсом), с которых можно считывать одновременно по 4 линиям SI. Скорость конечно не как у параллельной NAND, но близка к этому. Из плюсов меньший размер и меньшее количество задействованных ног.
Выше уже quad-spi flash посоветовали, для него много ног не нужно, а скорость будет заметно больше.

ЗЫ: AN4760 Quad-SPI (QSPI) interface on STM32 microcontrollers
Спасибо за совет, есть в наличии N25Q512A (512Mb quad-spi flash), но я их пока не пробовал.

Учитывайте еще, что в зависимости от контроллера, запись на карту может осуществляться блоками приличного объема. Так что при записи фрагмента в килобайт на деле будет перезаписан блок мега 3 (немного далёк от текущих карт памяти). Так что запись 100 килобайт по порциям на физике будет перезапись 300 мег.


Изучите этот вопрос, возможно копеечный чип промежуточного кэша на несколько мег сильно поможет

Блочно происходит стирание. На запись блоки меньше. Кэшировать можно прямо на контроллере, но проблема возникает с исчезновением данных при пропадании питания.
В статье немного сумбура, что в начале AVR, потом STM. И не понятно, как и зачем одно перетекает в другое.
В целом представлено нормальное решение. На просторах интернета натыкался на такое фото, видимо, логи там были подлиннее:

image

Хронологически так и происходило, сначала медленный восьмиразрядный AVR через SPI, потом более быстрый STM через SDIO и в не зависимости от типа и производительности контроллера и используемого интерфейса доступа к памяти — однозначно шустрый доступ к карте через GL823 со стороны компьютера. Именно это я и пытался донести.
Стесняюсь спросить, а SDIO по однобитному интерфейсу работает? А то там тоже есть варианты:

image
Когда говорят «подключить SD card через SPI» это и есть «SDIO по однобитному интерфейсу» (на картинке из CubeMX — SD 1 bit). Для 8-ми битных AVR контроллеров альтернативы не было, для STM32 можно использовать более производительный «SD 4 bits Wide bus»
для STM32 можно использовать более производительный «SD 4 bits Wide bus»

Да, я как раз интересовался, как оно с STM32 работало. На схеме вроде бы 4-битная шина нарисована, а по тексту непонятно было…
Работает только в путь, причем сам STM32 шустрее, чем скорости заявленные в стандартах SD, поэтому однобитный вариант для конкрентных (современных) карт можно подразогнать в 2-4-8 раз.
а по тексту непонятно было…
Вероятно я несколько косноязычен, издержки советского образования ;)
Да 4-битная шина работает, в составе куба масса примеров реализации в том числе и через DMA
Спасибо, теперь все встало на свои места.
У Вас adg774 перекосило (переходное отверстие не закрыто маской).
Я думал этот комментарий будет первым, но первым был про припаянную SD карту ;)
Да и про прямые углы стоило бы упомянуть :)
и про отмывку
со всем полностью согласен
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации