реклама на сайте
подробности

 
 
> stm32f10x, FatFs + SDIO + SD card + USB, mass storage device
spectral1989
сообщение Sep 5 2012, 09:51
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
spectral1989
сообщение Sep 6 2012, 03:57
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 5-04-12
Из: Томск
Пользователь №: 71 210



Проверил на всякий случай питание, все ок! 3,3В Сделал один LUN, почистил ссылки, теперь появляется только один съемный диск. Но он по прежнему не доступен для работыsad.gif

вот кстати еще такая деталь: карта почему-то не инициализируется на значении 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
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th June 2025 - 00:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.01367 секунд с 7
ELECTRONIX ©2004-2016