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

 
 
> STM32 SDIO 4bit SD-card, Подскажите кто делал, в чем может быть проблема
zksystem
сообщение Jul 16 2010, 10:12
Сообщение #1


embedder
***

Группа: Свой
Сообщений: 264
Регистрация: 11-05-05
Из: Казань
Пользователь №: 4 911



Всем привет, подскажите пожалуйста кто реализовывал работу с SD картой через 4bit SDIO на STM32, у меня почему-то зависает напрочь при инициализации SD_EnableWideBusOperation(SDIO_BusWide_4b);


printf("Init SD card:");
Status = SD_Init();
printf("%u\n",Status);

printf("get info status:");
Status = SD_GetCardInfo(&SDCardInfo);
printf("%u\n",Status);

printf("Select card:");
Status = SD_SelectDeselect((uint32_t) (SDCardInfo.RCA << 16));
printf("%u\n",Status);

printf("Set 4bit operation:");
Status = SD_EnableWideBusOperation(SDIO_BusWide_4b); <- дальше этого не идет
printf("%u\n",Status);

printf("Set DMA mode:");
Status = SD_SetDeviceMode(SD_DMA_MODE);
printf("%u\n",Status);


--------------------
Мечты стареют куда быстрее мечтателей… Стивен Кинг. "Ловец снов"
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
011119xx
сообщение May 3 2011, 06:05
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 381
Регистрация: 5-07-05
Из: Уфа
Пользователь №: 6 544



Столкнулся с проблемой чтения блока из карты. Код выглядит так:
Код
    ...То что выше опущено...

    Status = SD_Init();                                            

    if (Status == SD_OK)
      {
        /*----------------- Read CSD/CID MSD registers ------------------*/
        Status = SD_GetCardInfo(&SDCardInfo);
      }

      if (Status == SD_OK)
      {
        /*----------------- Select Card --------------------------------*/
        Status = SD_SelectDeselect((uint32_t) (SDCardInfo.RCA << 16));
      }

      if (Status == SD_OK)
      {
        Status = SD_EnableWideBusOperation(SDIO_BusWide_4b);
      }

      /* Set Device Transfer Mode */
      if (Status == SD_OK)
      {
        Status = SD_SetDeviceMode(SD_DMA_MODE);
      }

      Status = SD_ReadBlock(0, tempbuf1, 512);


Чтения блока не происходит. Происходит зацикливание в функции SD_ReadBlock на строке:
Код
    while (DMA_GetFlagStatus(DMA2_FLAG_TC4) == RESET)
    {}


Обработчик прерывания SDIO определен как:
Код
void SDIO_IRQHandler(void)
{
  /* Process All SDIO Interrupt Sources */
  SD_ProcessIRQSrc();
}


Прерывания инициализированы так:
Код
void NVIC_Configuration(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;

  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);  
    
  /* Configure the NVIC Preemption Priority Bits */
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

  NVIC_InitStructure.NVIC_IRQChannel = SDIO_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
}


Может забыл чего-то еще сделать?
Go to the top of the page
 
+Quote Post
ALXLight
сообщение Mar 23 2012, 11:28
Сообщение #3





Группа: Новичок
Сообщений: 5
Регистрация: 23-03-12
Пользователь №: 70 962



Цитата(011119xx @ May 3 2011, 09:05) *
Чтения блока не происходит. Происходит зацикливание в функции SD_ReadBlock на строке:
Код
    while (DMA_GetFlagStatus(DMA2_FLAG_TC4) == RESET)
    {}

Аналогичная проблема на плате Open103Z (STM32F103ZE). Пытаюсь прикрутить FatFs на карточку, но, видимо, не приходит прерывание. Можно поподробнее расписать от чего может быть такое? Или, если это возможно, кинуть заработавший проект, попробую расковырять сам.
Прошу прощения, если написал фигню, просто в микроконтроллерах я не очень разбираюсь.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- zksystem   STM32 SDIO 4bit SD-card   Jul 16 2010, 10:12
- - zksystem   Вопрос снят, оказывается забыл запаять подтягивающ...   Jul 16 2010, 11:16
|- - klen   Цитата(zksystem @ Jul 16 2010, 15:16) Воп...   Jul 17 2010, 05:01
- - 011119xx   В качестве эксперимента попробовал другой режим: К...   May 4 2011, 08:43
- - 011119xx   Проблема неработоспособности была в том, что вывод...   May 6 2011, 02:42
|- - zksystem   Цитата(011119xx @ May 6 2011, 05:42) Проб...   May 8 2011, 06:49
- - 011119xx   Проблема решена полностью. Работают все режимы. Де...   May 10 2011, 02:57
- - 011119xx   Если использовал стартовый ассемблерный файл, созд...   Mar 23 2012, 11:48
- - ALXLight   Я брал файл с диска от платы. Насчёт startup_stm32...   Mar 23 2012, 12:03
|- - AHTOXA   Цитата(ALXLight @ Mar 23 2012, 18:03) Взя...   Mar 23 2012, 17:53
|- - ALXLight   Цитата(AHTOXA @ Mar 23 2012, 20:53) Дык, ...   Mar 26 2012, 05:57
- - ALXLight   Не нашёл кнопки редактирования, поэтому прошу прощ...   Mar 26 2012, 08:38
|- - AHTOXA   Попробуйте вызвать SD_SetDeviceMode() с другим пар...   Mar 26 2012, 08:43
- - ALXLight   Polling выдаёт ошибку, а interrupt мне не подходит...   Mar 26 2012, 08:46
- - MBR   1. УМВР без подтяжки. Достаточно включить внутренн...   Apr 28 2012, 08:10
- - dezna   пытаюсь "поженить" scmRTOS на stm32f103 ...   Feb 16 2013, 11:32
|- - DmitryM   Цитата(dezna @ Feb 16 2013, 14:32) пытаюс...   Feb 17 2013, 06:34
|- - dezna   Цитата(DmitryM @ Feb 17 2013, 10:34) TCri...   Feb 17 2013, 07:26
|- - DmitryM   деструктор вызовется компилятором при выходе из се...   Feb 18 2013, 06:18
|- - dezna   Цитата(DmitryM @ Feb 18 2013, 10:18) дест...   Feb 18 2013, 06:27
|- - DmitryM   Цитата(dezna @ Feb 18 2013, 09:27) а нель...   Feb 18 2013, 06:56
|- - dezna   Цитата(DmitryM @ Feb 18 2013, 10:56) P.S....   Feb 18 2013, 07:01
- - dezna   что это такое разобрался, но в документации нет пр...   Feb 18 2013, 06:14
- - Allregia   Блин, столкнулся с тем, что SD-коннекторы бывают с...   Feb 21 2013, 08:26
|- - dezna   Цитата(Allregia @ Feb 21 2013, 12:26) Бли...   Feb 21 2013, 11:50
- - Allregia   У меня и так стоят 4 джампера конфигурирования, но...   Feb 21 2013, 19:26
- - A.Lex   Столкнулся с проблемой: Делаю Status = SD_Init()...   Feb 10 2014, 16:17


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 04:21
Рейтинг@Mail.ru


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