Анатомия и клонирование USB адаптера для SD-карты
… или как снабдить Ваш DIY-проект на MIPS или лёгком ARM быстрой микро-SD карточкой.
Доброго времени суток всему уважаемому сообществу. Хотел бы продолжить свой рассказ про коробочку-прибор, а именно про то, как ей удалось обзавестись микро-SD картой, подключённой к порту USB 2.
Корень всей проблемы был в том, что USB 2, и даже не один, у её процессорного модуля есть, а QSPI (QuadSPI) или карточного интерфейса – увы, нет. Как этот грустный факт связан с SD-картами? Очень просто, любая SD-карта в физической основе своего подключения имеет SPI (SerialPeripheral) интерфейс. Классический SPI для передачи и приёма последовательных данных использует по одной физической линии. Просто и экономно, как с точки зрения денег, так и миллиамперов. Однако недостатки, как известно, есть продолжение достоинств, и для SPI им в первую очередь стала относительно невысокая скорость обмена данными. Для решения этой проблемы был придуман четырёхбитовый режим обмена данными с SD-картой, являющийся близким родственником протокола QSPI. При использовании этого режима хост-контроллер и карточка сначала договариваются о параметрах обмена в однобитном режиме, а потом переходят в четырёхбитный, когда используют не по одной линии для приёма и передачи, а четыре на всё про всё (плюс ещё одну для индикации команды).
Что же делать, если аппаратура напрямую четырёхбитный протокол не поддерживает, а быстрый обмен всё же нужен? Очевидный ответ – снабдить проект мостом «быстрый интерфейс» — «четырехбитовая SD-карта».
Вот для решения этой задачи и была приобретена парочка адаптеров USB-SD и подвергнута препарированию (вивисекция не использовалась – мы же не изверги какие). Перед тем, как разогревать паяльник и фен, была проведена очень важная проверка – увидит ли Debian процессорного модуля предложенный ему свисток-адаптер. Тест прошёл на ура, добро пожаловать в операционную. Купленный свисток выглядит вот так:
И вот так:
После того, как был разобран корпус, стало можно разглядеть печатную плату (со всех её двух сторон).
Схема простенькая, основой её является ИМС GL823F — микроконтроллер с системой команд 8051 и с масочной памятью, оснащённый аппаратным блоком интерфейса USB 2, по всей видимости, не особо высокого качества (почему я так говорю – не вижу точного резистора смещения аналоговой части и кварцевого генератора, что означает восстановление частоты из принимаемого сигнала на основе внутреннего калибруемого генератора). Работать будет, но не HiFi, нет. Всё остальное – минимальный обвес: блокировочные конденсаторы, подтягивающий и токоограничивающий резисторы, LED и разъёмы, вот и вся инженерия.
Сдуваем компоненты феном и разглядываем печатную плату. По многим признакам, плата двухсторонняя с металлизацией отверстий. После недолгого разглядывания платы в микроскоп, срисовывания схемы соединений и сравнения с даташитом на родственные ИМС компании GL, восстанавливаем принципиальную схему.
И вот тут вот начинаем видеть одну небольшую закавыку. В чём же именно? Наша коробочка питается от гарантированного напряжения 3,3В, а схема на GL823 требует 5 вольт. Ну как требует – она так привыкла, потому что именно столько ей даёт USB. Сама микро-SD питается от 3,3В, потому в GL823 добавлен встроенный LDO-стабилизатор. Отсюда вопрос – а если схему питать от 3,3В, то сможет она работать? Если LDO сумеет не уронить сильно напряжение – то сможет, но ведь не все LDO одинаково полезны. Небольшую подсказку даёт даташит – вывод, питающий SD-карту, называется PMOS. Такая аббревиатура не может не радовать – можно предположить, что используется HighSide PMOS схема, в которой падение напряжения на регулирующем элементе может быть очень небольшим. Однако всё это – рассуждения, а единственный решающий аргумент – опыт, он же сын ошибок трудных.
Так какой же именно опыт мы поставим? Давайте попробуем питать ИМС двумя переключаемыми напряжениями – от 5 В USB либо от 3,3В, получаемых отдельным стабилизатором. Вот теперь у нас достаточно знаний, чтобы нарисовать принципиальную схему.
Нумерация компонентов на схеме несколько странная по той причине, что на заводе-изготовителе печатных плат заказывалась мультизаготовка с ещё несколькими тестовыми схемками, и у всех них нумерация компонентов была сквозная. Готовя статью, принципиальную схему я привёл в соответствие с фотографией, и получилось то, что получилось.
Что мы видим на схеме? Понятно, ядром является GL823F. К ней очевидным образом подключается разъём микро-SD. Единственное, что надо отметить – пин 9 у разъёма – это скользящий контакт наличия карты в гнезде, когда карта на месте, он замкнут на землю. С7-С10 – блокировочные конденсаторы на цепях питания. Если хотите немножко повысить помехоустойчивость, то выводы 2 и 16 DD1 можно соединить через ферритовый дроссель. R4 ограничивает ток через HL1, R5 подтягивает линию GPIOк единице в отсутствие карты в гнезде. DA2, C11 и C12 формируют линейный стабилизатор напряжения 3,3В.
Поскольку в тот момент, когда рисовалась схема, с одной стороны, не было понятно, сколько она будет потреблять, а с другой был неприятный опыт использования некоторых USB-флешек (не будет показывать пальцем), потребляющих при записи по 400mA, было принято решение добавить R6. Вообще это стандартный приём – при заметном потреблении в схеме линейного LDO (ключевые слова тут – LowDropout) поставить на входе низкоомный резистор повышенной мощности и часть тепла рассеивать на нём, а не на стабилизаторе. Опыт, однако, показал, что нужды в R6 нет, и ниже на фото платы вы его ещё увидите.
XS4 как раз и предназначен для проведения опыта – переключения питания DD1 между 5 и 3,3 Вольтами. XS2 – стандартный USBB разъём, чтобы можно было перед собой положить, а не лазать к свободным USB-портам под стол к ПК.
Вот что получилось после трассировки, изготовления ПП и монтажа:
Как можно видеть, нижняя сторона платы совершенно незамысловата, да и верхняя не сильно сложнее.
Не собираюсь оттягивать развязку сюжета, сразу скажу, что опыт показал – питать GL823F от источника 3,3 В можно без проблем, переключение XS4 ни на что, кроме потребляемой мощности (не тока) не влияет.
Чтобы убедиться, что сделанная плата работает нормально, было проведено измерение скорости записи и потребляемого при этом тока для трёх различных микро-SD карточек. Фото конкурсантов –в студию!
Оценка потребляемого тока (измерением то, что делалось, мой язык назвать не поворачивается) производилась при помощи такого вот комбинированного измерителя тока-напряжения-количества заряда аккумуляторов. Некоторой неожиданностью для меня, скажу откровенно, оказалось то, что он ещё и USB-данные передаёт.
Использовалось только показание потребляемого тока, цена деления у этого, с позволения сказать, прибора – 0,01А, плюс к тому как минимум ошибка дискретизации 1 единица младшего разряда – ещё 0,01А. Поэтому в таблице приведены только диапазоны показаний, между которыми скакала цифра потребляемого тока. Надеюсь, однако, что тем, кому будет интересно применить GL823 в своих решениях, верхнюю планку потребления оценить всё же будет можно.
Кроме испытаний сделанной платы, для повышения объективности была сделана пара контрольных замеров при помощи другой читалки SD-карт. Вот такой:
Этот образец не препарировался, его я позаимствовал на 5 минут у дочки, и если бы я его распотрошил, то тут же распотрошили бы меня. Одно можно сказать с уверенностью – чип в нём не принадлежит к семейству GL823, члены которого умеют работать столько со стандартом SD, мультистандарт им не по зубам.
Скорости чтения-записи измерялись простейшим способом: один и тот же файл размером 1058268 кБайт записывался на и считывался с испытуемой карты. Контрольный опыт (на другой читалке) проводился только для того, чтобы исключить системные ошибки на один-другой десятичный порядок, данные по нему не обрабатывались, я только убедился, что примерно времена и токи потребления бьются с полученными на предыдущей стадии.
Если Вам захочется применить описываемую схему в своём проекте, то при оценке потребления сделайте поправку на то, что ток питания поступал от напряжения USB 5 Вольт, но GL823 питалась от напряжения 3,3 В, и разница 5-3.3=1.7 (а это 50% от 3.3) просто терялась на DA2. При питании от централизованного (и, я надеюсь, импульсного) источника 3,3 Вольт получится порядочная экономия.
Источник
USB Micro SD Card Reader или универсальная флешка своими руками
Продолжаю цикл обзоров, где для достижения конечной цели нужно немного поработать руками. Героем сегодняшнего обзора стал microSD картридер.
О том, что с ним в итоге произошло, как таким образом можно бороться с маркетингом, а главное — повышать юзабилити — Вы можете прочитать под катом. МНОГО фото!
Более года назад я начал пользоваться телефонами одной только марки — Google. И всё в моём первом нексусе (nexus S) было хорошо, а ещё лучше во втором (galaxy nexus), да вот только отсутствие возможности установки карты памяти немного раздражала. Дальше — больше. «Октябрь месяц на дворе — давайте новый нексус мне!» Так в моём доме появился планшет — Google Nexus 7. На тот момент о версии с 3g или объёмом памяти 32гб ходили только слухи, так что выбирать особо не приходилось.
Идея как-то расширить объём доступной для использования памяти зародилась ещё на этапе покупке. И тут я стал думать. Цеплять флешки через microUSB OTG кабель я даже не рассматривал, решил сделать что-то своё, более компактное.
Основой кончено же должен был стать картридер, заказав его, а также microusb connector (по этому запросу он легко ищется на ebay). Для прочих экспериментов я заказал сразу 10 шт, Вам, наверное и 1 хватит.
Не буду говорить как так вышло, что посылку я получили через 2,5 месяца после заказа — вот, она уже у меня.
Первоначально планировалось с этой самой флешки смотреть фильмы, значит она должна хорошо крепиться и не иметь возможности случайно быть выбита и тем самым убить microusb вход.
И тут мне повезло(?!), под руки попался давно забытый пульт управления плеером от nokia 5800. Как оказалось, его прищепка идеально подходит по длине, чтобы цепляться за прорезь для решётки динамика.
потом нужно было разобраться с коннектором. в качестве провода к нему идеально подошёл шлейф от IDE жёсткого диска.
Также не нужно забывать о необходимости аппаратной поддержки OTG режима. Для этого спаиваем вместе 4 и 5 пин microusb коннектора.
Примеряем прищепку и коннектор на устройстве
Обрезаем корпус картридера так, чтобы он поместился в прищепку
И припаиваем его к USB выходу
Осталось закрепить коннектор холодной сваркой и произвести косметические улучшения (шлифовка, покраска)
После всех описанных действий получаем вот такой эксклюзивный девайс
Результат превзошёл все ожидания. Девайс крепко сидит на устройстве и реально работает. 2 часа времени были потрачены не впустую =)
Прошла неделька — другая, и захотелось мне довести свою инженерную мысль до нового уровня функциональности.
Сказано — сделано. Всё по полной аналогии с предыдущим девайсом, но проще. Я «приварил» коннектор к самому картридеру, сохранив при этом основную функциональность. (его можно подключать к компьютеру)
Теперь ношу этот чудо-девайс всегда с собой. Так сказать универсальная флешка для всех моих мобильных устройств. (ноутбук, планшет, телефон)
«Групповое» фото =)
UPD: чуть не забыл. на фотографиях не видно, но в «прищепке» карта памяти, разумеется, съёмная.
Ну и по традиции для моих обзоров: небольшое видео.
Усё) Есть вопросы — буду рад ответить Вам в комментариях.
Источник