Перейти к содержанию

Ramil

Members
  • Постов

    42
  • Зарегистрирован

  • Посещение

Информация

  • Пол
    Мужчина
  • Город
    Волгоград

Электроника

  • Стаж в электронике
    6-10 лет
  • Сфера радиоэлектроники
    микроконтроллеры, усилители НЧ,

Посетители профиля

1 406 просмотров профиля

Достижения Ramil

Новобранец

Новобранец (2/14)

  • 10 лет  на форуме
  • 10 постов на форуме
  • Год на форуме
  • Неделя на форуме
  • Месяц на форуме

Последние значки

-3

Репутация

  1. вот мой вариант только под dip корпуса и разъем, куда можно подключить платы расширения, но их пока у меня нет.
  2. В общем вроде как разобрался. Оказывается у меня проблема еще до файловой системы: При обращении к функциям передавая параметру NumberOfBlock значение 0 всё работает замечательно. При других значениях система зависала в дебрях DMA в ожидании завершении операции чтения или записи. Думал передавая ему значение 1,2 и т.д. я задаю адрес блока (сектора) оказывается этот адрес должен быть кратно размеру сектора. то есть надо было писать: Тогда никакого зависания не происходит работает все замечательно. Дальше буду пробовать уже FS. Отпишусь как что то получится.
  3. FS отсюда http://we.easyelectr...2-dlya-avr.html там нет ffconf.h
  4. Какие то комментарии есть в с и h файлах, буду подробнее каждую функцию просматривать, что там происходит.
  5. Ребята. подскажите может кто знает какими функциями какие параметры передать чтоб создать файл на SD карте ? что то не получается меня
  6. Обнаружил что Status = SD_ReadBlock(buf, sector, 512); считывает всего 16 байт, остальное куда девается не понятно. Попробовал считать SD_ReadMultiBlocks((uint8_t *)&StorageA, 0x00, 512, 24); Считалось всё четко! Так что дальше копаю в направлении почему сингл блок неверно читается.
  7. Так тоже не хочет, через дебаггер посмотрел по шагам, в общем после инициализации карты при поиске файловой системы на карте выдает ошибку: /* Ищем файловую систему */ bsect = 0; while(1) { if(sd_readBuf(bsect)) return 1; uint16_t temp = LD_WORD(buf + 510); if(temp == 0xAA55) { if(LD_WORD(buf + BS_FilSysType ) == 0x4146) break; if(LD_WORD(buf + BS_FilSysType32) == 0x4146) break; /* Возможно это MBR */ if(bsect == 0 && buf[MBR_Table+4]) { bsect = LD_DWORD(buf + (MBR_Table + 8)); if(bsect != 0) continue; } } abort_noFS: lastError = ERR_NO_FILESYSTEM; return 1; } temp здесь у меня равен 65535, а должно быть АА55. Буду копать дальше. спасибо!
  8. Сделай подтяжку линий данных и тогда сразу будет успешно проходить инициализацию У меня вот проблема в другом, контроллер STM32F215 считываю и записываю в карту по блокам 512 байт без проблем. также прекрасно работает запись и чтение мультиблока по 51200 байт. Подключил VinxFS, не могу элементарно создать файл на sd карте, код типа того: fs_init(); sprintf((char *)buf, "DCIM/Doc.txt"); fs_create(); fs_write("привет", 6); while(1){}; Файл не появляется, сомнения у меня в том, правильно ли я задаю имя файла в массив buf? Вроде как в h файле написано: uint8_t fs_open0(uint8_t what); /* Открыть/создать файл или папку, имя в buf. Open/create file or foder, name in buf *//* Derived from the function fs_open0 */ /* Производные от функции fs_open0 */ uint8_t fs_open(); /* Открыть файл */ uint8_t fs_opendir(); /* Открыть папку */ #define fs_openany() fs_open0(OPENED_NONE) /* Открыть файл или папку */ #define fs_create() fs_open0(OPENED_FILE) /* Создать файл */ #define fs_createdir() fs_open0(OPENED_DIR) /* Создать папку */ Что я делаю не правильно? непонятно
×
×
  • Создать...