Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: картридер на STM32F103
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Scuby
Здравствуйте
есть потребность реализовать картридер на STM32F103 который читает и пишет карточки SD.
Чтобы не изобретать велосипед хочу спросить, возможно есть готовые проекты или наработки в этом направлении? примеры по работе с SD и USB видел, но не нашел готового решения чтобы было и то и другое сразу в одном примере.
На комментарии типа "дешевле купить картридер" сразу отвечаю: на плате стоит SD карта с которой работает STM32 и есть USB для зарядки аккумулятора и слива информации. Вытаскивать карту не планируется, поэтому готовый картридер не подходит
kovigor
Цитата(Scuby @ Jun 22 2012, 14:18) *
Здравствуйте
есть потребность реализовать картридер на STM32F103 который читает и пишет карточки SD.
Чтобы не изобретать велосипед хочу спросить, возможно есть готовые проекты или наработки в этом направлении? примеры по работе с SD и USB видел, но не нашел готового решения чтобы было и то и другое сразу в одном примере.
На комментарии типа "дешевле купить картридер" сразу отвечаю: на плате стоит SD карта с которой работает STM32 и есть USB для зарядки аккумулятора и слива информации. Вытаскивать карту не планируется, поэтому готовый картридер не подходит


Для STM32F207 такой пример есть, и даже рабочий (я лично пробовал). Наверное, и для STM32F103 тоже есть. Ищите на сайте у ST библиотеку "STM32F105/7, STM32F2 and STM32F4 USB on-the-go Host and device library":

http://www.st.com/internet/mcu/product/245082.jsp
---> Design support
brag
Ну вообще советую разобратся самому с mass storage. если опыта написания usb-device нету, то эту школу желательно пройти. Задача не сложная
kovigor
Цитата(brag @ Jun 22 2012, 20:25) *
Ну вообще советую разобратся самому с mass storage. если опыта написания usb-device нету, то эту школу желательно пройти. Задача не сложная

Задача достаточно сложная. Более чем достаточно. Если нет опыта работы с USB и знаний о ней (довольно серьезных), то решить ее с нуля будет очень трудно. И выбор STM процесс решения только усложнит. Для начального знакомства с USB гораздо лучше подходит AT89C5131 -я еще нигде и никогда не видел более простого и понятного USB-движка. Дальше можно поразбираться с LPC214x, а затем с ATMEL'овскими ARM (7 или 9). STM для старта не годится совершенно, это все равно что обучаться вождению на Феррари ...
Canis Dirus
Цитата(kovigor @ Jun 22 2012, 23:22) *
Для STM32F207 такой пример есть, и даже рабочий (я лично пробовал). Наверное, и для STM32F103 тоже есть. Ищите на сайте у ST библиотеку "STM32F105/7, STM32F2 and STM32F4 USB on-the-go Host and device library":

Топикстартеру тут скорее всего нужны «STM32F10x and STM32L1xx USB full-speed device library» и «STM32 USB-FS-Device development kit» Там одна из демок это как-раз реализация USB mass storage. Лежат вот здесь, в разделе Design Support
brag
kovigor, ну не нзаю.. по началу да, глаза разбегаются при виде кувой кучи регистров, но со временем вроде не все так муторно sm.gif
я сам не помню на чем начинал, но точно помню, что на каком-то ARM7 делал CDC. После прочтения документа usb_20.pdf и даташита все более-менее стало понятно. примеры реализации смотрел, если что не получалось. точно помню, что не под тот чип,а под какой-то вообще Пик.

В самой USB главное хорошо вкурить в стейт-машины ендпоинтов, а там и назначение регистров контроллера станет более-менее понятно.

MSC - отдельная история, тоже в ее стейт-машинах надо разобратся, ну а далее просто набить поддержку необходимых scsi-команд. тут готовый пример может помочь, вроде на кейле под lpc есть, переделать под что-либо другое труда не составит.

С STM32 проблем не возникло(за исключением вызванных моей невнимательностью чтения даташита на СТМ). Библиотек не использовал, все вручную. Да, кода много, где-то 1500 строк на чистом C, но код не сложный, в основном "набивка" дескрипторов и стейт-машин.
Могу дать свою реализацию как пример, только сомневаюсь,что чем-то помогут мои 45кб непонятного гавнокода sm.gif

Мож оно от части и велосипед, зато дает много знаний в теме. Тогда без проблем можно будет реализовать свой кастомный интерфейс и вообще дает понятие об асинхронных последовательных интерфейсах.
aT-DeviLru
Есть пример реализации USB-Mass_Storage-SD Card от китайских товарищей в их отладочной плате POWERAVR-HY-mini-STM32F103VCT6 - http://182.50.148.34/download/boardata/POW...M32F103VCT6.zip. Пример проверял - всё работает.
brag, прикрепите, пожалуйста, свою реализацию USB для ознакомления.
brag
Для практического использования не годится - тянет за собой вызовы ОС, но для ознакомления вполне
MiklPolikov
Великолепная реализация FAT для SD карт любого объёма
http://elm-chan.org/fsw/ff/00index_e.html
Сам пользуюсь и не знаю бед.
Scuby
Цитата(MiklPolikov @ Jun 25 2012, 11:17) *
Великолепная реализация FAT для SD карт любого объёма
http://elm-chan.org/fsw/ff/00index_e.html
Сам пользуюсь и не знаю бед.

да, я тоже пользуюсь когда контроллер сам работает с флешкой. но как понимаю картидер не должен "знать" о существовании файловых систем, это задача операционки компа или я ошибаюсь?
kovigor
Цитата(Scuby @ Jun 25 2012, 10:55) *
но как понимаю картидер не должен "знать" о существовании файловых систем

Да, именно так ...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.