|
stm32f10x, FatFs + SDIO + SD card + USB, mass storage device |
|
|
|
Sep 5 2012, 09:51
|
Частый гость
 
Группа: Свой
Сообщений: 76
Регистрация: 5-04-12
Из: Томск
Пользователь №: 71 210

|
Здравствуйте! Имеется в наличии отладочная плата от терра электроники на stm32f103, пробую запустить SDIO + SD card + USB. Cкачал с сайта СТ либу usb mass storage device на stm32f10x, поправил под свою плату, запустил, но все работает не совсем так, как хотелось бы. Инициализация карты проходит. В системе появляется съемный диск, размер 0 байт, файловая система RAW, хотя я ее форматировал через FatFs в fat32, размер сектора = 512. При попытке открыть предлагает отформатировать, нажимаю да - появляется окошко, там указан размер карты 3,75гб, стало быть до карты проц достучаться может. Пробую форматировать - вылезает ошибка, не удается завершить форматирование. В чем может быть проблема?
Пробовал уменьшать частоту тактирования карты: увеличил делитель с 1 до 0хА - не помогает.
И еще вопрос, я скачал библиотеку FatFs и прикрутил к ней низкоуровневые функции stm32f10x - заработало, читает и пишет, создает файлы и форматирует. Теперь, чтобы при соединении через USB с компьютером я мог работать на нем с SD картой мне нужно сделать примерно так:
SD карта -> интерфейс обмена данными(SDIO в моем случае) -> драйвер файловой системы(FatFs в моем случае) -> драйвер USB mass storage device -> ПК я правильно понимаю ситуацию?
Сообщение отредактировал spectral1989 - Sep 5 2012, 11:03
|
|
|
|
|
 |
Ответов
|
Sep 6 2012, 03:57
|
Частый гость
 
Группа: Свой
Сообщений: 76
Регистрация: 5-04-12
Из: Томск
Пользователь №: 71 210

|
Проверил на всякий случай питание, все ок! 3,3В Сделал один LUN, почистил ссылки, теперь появляется только один съемный диск. Но он по прежнему не доступен для работы вот кстати еще такая деталь: карта почему-то не инициализируется на значении SDIO_INIT_CLK_DIV = 0xB2, виснет на функции CmdResp3Error, а конкретно тут: Код while (!(status & (SDIO_FLAG_CCRCFAIL | SDIO_FLAG_CMDREND | SDIO_FLAG_CTIMEOUT))) { status = SDIO->STA; } если увеличить делитель SDIO_INIT_CLK_DIV до 0xF2 - инициализация проходит. хотя в соседнем проекте с FatFs на значении по умолчанию не возникает никаких проблем. Файл с низкоуровневыми функциями(инициализация, чтение) один и тот же. проект Keil http://disk.tom.ru/h7r3l2kкарта 4гб нашел спорный момент. почему-то в функции MAL_GetStatus в файле mass_mal.c каждый раз вызывалась инициализация карты. зачем? поправил ее так: Код uint16_t MAL_GetStatus (uint8_t lun) { uint32_t DeviceSizeMul = 0,NumberOfBlocks = 0;;
if (lun == 0) { SD_GetCardInfo(&mSDCardInfo); DeviceSizeMul = (mSDCardInfo.SD_csd.DeviceSizeMul + 2);
if(mSDCardInfo.CardType == SDIO_HIGH_CAPACITY_SD_CARD) { Mass_Block_Count[0] = (mSDCardInfo.SD_csd.DeviceSize + 1) * 1024; } else { NumberOfBlocks = ((1 << (mSDCardInfo.SD_csd.RdBlockLen)) / 512); Mass_Block_Count[0] = ((mSDCardInfo.SD_csd.DeviceSize + 1) * (1 << DeviceSizeMul) << (NumberOfBlocks/2)); } Mass_Block_Size[0] = 512; Mass_Memory_Size[0] = Mass_Block_Count[0] * Mass_Block_Size[0]; // STM_EVAL_LEDOn(LED2); return MAL_OK; } // STM_EVAL_LEDOn(LED2); return MAL_FAIL; } но легче не стало скачал WinHex. Он определяет, что файловая система Fat32, но стартовый сектор почему-то уехал на 1 сектор. Из-за чего это может быть? Скрин прилагается: http://disk.tom.ru/fkzggq1
Сообщение отредактировал spectral1989 - Sep 6 2012, 05:22
|
|
|
|
Сообщений в этой теме
spectral1989 stm32f10x, FatFs + SDIO + SD card + USB Sep 5 2012, 09:51 Alexashka проверьте питание на карте памяти -должно быть 3.3... Sep 5 2012, 19:33 spectral1989 С транзистором я разобрался еще когда FatFs ковыря... Sep 6 2012, 02:12 Alexashka Цитата(spectral1989 @ Sep 6 2012, 07:57) ... Sep 6 2012, 08:18 spectral1989 флаг CMDREND - command responce recieved(CRC check... Sep 6 2012, 09:20 spectral1989 включил hardware flow control и заработало ПК дума... Sep 6 2012, 10:26 Alexashka Цитата(spectral1989 @ Sep 6 2012, 14:26) ... Sep 6 2012, 11:20 spectral1989 3-4с время открытия? а какого объема карту подключ... Sep 7 2012, 02:56 spectral1989 Заметил такой глюк: беру архив около 100мб, копиру... Sep 7 2012, 07:30 Alexashka Цитата(spectral1989 @ Sep 7 2012, 11:30) ... Sep 7 2012, 17:05  Allregia Цитата(Alexashka @ Sep 7 2012, 19:05) Ест... Sep 8 2012, 21:17   Alexashka Цитата(Allregia @ Sep 9 2012, 01:17) Попр... Sep 10 2012, 16:43    Allregia Цитата(Alexashka @ Sep 10 2012, 18:43) По... Sep 11 2012, 08:08     Alexashka Цитата(Allregia @ Sep 11 2012, 12:08) Да,... Sep 12 2012, 04:42      Allregia Цитата(Alexashka @ Sep 12 2012, 06:42) Хм... Sep 12 2012, 07:46       Alexashka Цитата(Allregia @ Sep 12 2012, 11:46) Вы ... Sep 12 2012, 07:59        Allregia Цитата(Alexashka @ Sep 12 2012, 09:59) За... Sep 12 2012, 12:42 spectral1989 купил несколько новых карт: 2, 4, 8гб разного клас... Sep 10 2012, 05:11 spectral1989 собрал заново проект, все заработало. видимо накос... Sep 10 2012, 10:49 Alexashka Кстати, а ктонибудь пробовал функцию удаления файл... Sep 13 2012, 08:59 spectral1989 Итак, собрал проект на stm32f103 в котором есть US... Sep 14 2012, 03:42  Alexashka Цитата(spectral1989 @ Sep 14 2012, 07:42)... Sep 16 2012, 17:33   spectral1989 Цитата(Alexashka @ Sep 16 2012, 21:33) у ... Sep 17 2012, 04:51    Alexashka Цитата(spectral1989 @ Sep 17 2012, 08:51)... Sep 17 2012, 16:29 Allregia Цитата(Alexashka @ Sep 13 2012, 10:59) Кс... Sep 14 2012, 11:04
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|