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

 
 
> И снова SD card., в связке с STM32F107VC
Jenya7
сообщение Feb 8 2016, 08:24
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



подключил к проекту FATFS. запустил следующий код.
Код
  DSTATUS status;
  FRESULT result;
  FATFS FATFS_Obj;

  status = disk_initialize(0);
  if (status == RES_OK)
  {
     result = f_mount(&FATFS_Obj, "0", 1);
     if (result == FR_OK)
      {
          FIL file;
          UINT nRead, nWritten;

          result = f_open(&file, "test.txt", FA_CREATE_ALWAYS | FA_WRITE);
          if (result == FR_OK)
          {
             f_write(&file, "hello", 4, &nWritten);
              f_close(&file);
          }

     }
     }

все прошло хорошо до записи в файл f_write(&file, "hello", 4, &nWritten);
тут я вывалился в HardFault_Handler но файл создался. вернулся на следующий день - уже ничего не работает. На status = disk_initialize(0); получаю RES_ERROR.
может у кого нибудь есть опыт работы с SD?

Сообщение отредактировал Jenya7 - Feb 8 2016, 08:39
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
Jenya7
сообщение Feb 8 2016, 12:13
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



мда... ну ладно идем дальше.
у Чена посылка была реализована следующим образом
Код
static BYTE xchg_spi (BYTE dat    /* Data to send */)
{
    uint32_t timer = SD_DELAY;
    SPIx_DR = dat;
    while (SPIx_SR & (1<<7)) { if(!timer--) break; }  //busy flag

    return (BYTE)SPIx_DR;
}

я изменил на
Код
static BYTE xchg_spi (BYTE dat    /* Data to send */)
{
    uint32_t timer = SD_DELAY;
    SPIx_DR = dat;
    while (SPIx_SR & (1<<7)) { if(!timer--) break; }  //busy flag

    //Wait for any data on MISO pin to be received.
    timer = SD_DELAY;
    while (!(SPIx_SR & SPI_I2S_FLAG_RXNE)) { if(!timer--) break; }

    return (BYTE)SPIx_DR;
}

и теперь все нормально везде RES_OK. и в файл пишется без ошибки. но когда сую карту в комп и открываю файл - он пустой.

вобщем я пришел к такому заключению что низкоуровневые функции от Чена для STM32 проблемны. есть у кого нибудь хардварный лейер для STM32F1xx?
Go to the top of the page
 
+Quote Post
hd44780
сообщение Feb 9 2016, 16:57
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Для Ф107 нету, есть для Ф105 (STM32F05RCT6). Читает/пишет норм. Могу дать вместе с прикрученной ФатФс.
Но мой код не очень причёсанный. Выдрал из каких-то китайцев, немного переделал под себя.
Соответственно хардварный лейер у меня не от Чена, а от тех китайцев. Я его вроде и не переделывал, только поменял SPL на регистры. SPL работало норм, но заметно тормозило на высокобитрейтных WAV типа stereo/48kHz (я плеер на VS1053 ваял).

От чена только Fats.
diskio.c тоже мой собственный, я туда ещё USB флэшку загнал (чего USB хосту зря пропадать-то rolleyes.gif ).


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Feb 11 2016, 08:21
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(hd44780 @ Feb 9 2016, 21:57) *
Для Ф107 нету, есть для Ф105 (STM32F05RCT6). Читает/пишет норм. Могу дать вместе с прикрученной ФатФс.
Но мой код не очень причёсанный. Выдрал из каких-то китайцев, немного переделал под себя.
Соответственно хардварный лейер у меня не от Чена, а от тех китайцев. Я его вроде и не переделывал, только поменял SPL на регистры. SPL работало норм, но заметно тормозило на высокобитрейтных WAV типа stereo/48kHz (я плеер на VS1053 ваял).

От чена только Fats.
diskio.c тоже мой собственный, я туда ещё USB флэшку загнал (чего USB хосту зря пропадать-то rolleyes.gif ).

спасибо. нашел какой то пример. подкорректировал. вроде работает.
Go to the top of the page
 
+Quote Post
rat
сообщение Feb 16 2016, 03:28
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 497
Регистрация: 9-06-05
Из: Новосибирск
Пользователь №: 5 852



Цитата(hd44780 @ Feb 9 2016, 22:57) *
Для Ф107 нету, есть для Ф105 (STM32F05RCT6). Читает/пишет норм. Могу дать вместе с прикрученной ФатФс.
Но мой код не очень причёсанный. Выдрал из каких-то китайцев, немного переделал под себя.
Соответственно хардварный лейер у меня не от Чена, а от тех китайцев. Я его вроде и не переделывал, только поменял SPL на регистры. SPL работало норм, но заметно тормозило на высокобитрейтных WAV типа stereo/48kHz (я плеер на VS1053 ваял).

От чена только Fats.
diskio.c тоже мой собственный, я туда ещё USB флэшку загнал (чего USB хосту зря пропадать-то rolleyes.gif ).


Ну так поделитесь, если не коммерческая тайна )
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 12:33
Рейтинг@Mail.ru


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