KAlex 0 9 января, 2010 Опубликовано 9 января, 2010 · Жалоба на CMD8 отвечает 00 00 00 02 00 FF С какими параметрами посылается команда? Надо так: 48 00 00 01 AA 87 Карточка рабочая? Есть другая карта? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gnomik_ 0 10 января, 2010 Опубликовано 10 января, 2010 · Жалоба С какими параметрами посылается команда? Надо так: 48 00 00 01 AA 87 Карточка рабочая? Есть другая карта? Карточек 3 штуки(одна-HC). Все на компе пишутся и читаются нормально. Посылаю 255 клоков(сначала 100 клоков посылал) Посылаю CMD0(40 00 00 00 00 95) ответ не проверяю Посылаю 100 клоков Посылаю CMD8 (48 00 00 01 AA 87) жду 0 на CMD читаю ответ 00 00 00 02 00 FF Посылаю 100 клоков Посылаю CMD55 (77 00 00 00 00 65) жду 0 на CMD читаю ответ 2С 00 00 00 00 7F Посылаю 100 клоков Посылаю ACMD41 (69 40 FF 80 00 17) жду 0 на CMD читаю ответ 3F 81 FE 00 03 FF Посылаю 100 клоков........ Пишу по фронту, читаю по спаду, все делаю медленно(частота невелика). Может состояние линий во время пустых клоков у меня не правильное? Какое должно быть? Может с командами чего путаю?... Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 10 января, 2010 Опубликовано 10 января, 2010 · Жалоба А я и не претендовал на истину в последней инстанции. Это для моей конкретной задачи. RAMа много, ROMа мало. Вот и выкручиваюсь как могу. А как, простите, табличные данные оказываются в RAM? Они же из ROM копируются... Так получается, что Вы и RAM и ROM занимаете. Или я что-то не понимаю? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 10 января, 2010 Опубликовано 10 января, 2010 · Жалоба Или я что-то не понимаю? Таки да: таблица генерируется, а не копируется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 10 января, 2010 Опубликовано 10 января, 2010 · Жалоба Таки да: таблица генерируется, а не копируется.Точно! А я не разглядел с первого раза. Оригинальный ход. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 0 11 января, 2010 Опубликовано 11 января, 2010 · Жалоба Точно! А я не разглядел с первого раза. Оригинальный ход. Хм, весьма стандартный ход. Неужели никогда не приходилось генерировать таблицы с предпросчитанными данными для исключения реалтаймовых вычислений? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KAlex 0 11 января, 2010 Опубликовано 11 января, 2010 · Жалоба Без кода программы сказать что либо сложно. Здесь выкладывал исходники для начальной инициализации. Версия рабочая 100%. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gnomik_ 0 11 января, 2010 Опубликовано 11 января, 2010 · Жалоба Без кода программы сказать что либо сложно. Здесь выкладывал исходники для начальной инициализации. Версия рабочая 100%. Спасибо за ссылку. :rolleyes: Пишу все на асме. Весь код кидать сюда наверное смысла нет. Пересмотрю все что написал и напаял. Чего-то надо ворошить. Сама не заработает. Результат отпишу.... Спасибо. :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
head_sk 0 16 января, 2010 Опубликовано 16 января, 2010 · Жалоба Вопрос тем кто реализовывал fatfs от чана на SD-карточках с помощью AT91SAM7 в режиме SPI. Какую максимальную скорость записи в файл удалось получить? Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
plesa 0 17 января, 2010 Опубликовано 17 января, 2010 · Жалоба Доброе время суток.. Пытаюсь запустить известную всем FatFS на 1986ВЕ91Т (ядро Cortex-M3). Карта microSD 2 Gb подключена через SPI. Карта инициализируется, определяется ее тип и т.д., f_mount(..) выполняется успешно. Можно читать файлы и каталоги. Выполняется даже создание файла. НО! При попытке записи, закрытия файла или синхронизации - ошибка FR_DISK_ERR. Причина - в функции xmit_datablock - на переданный для записи блок данных карта отвечает 0xFF. Если файл создать на компьютере, записать в него какие-либо данные, то через f_write() запись пройдет, но только в пределах размера файла, вызов f_sync() или f_close() приведет к той же ошибке... FatFS настроена без ограничений кроме LFN. Попробовал несколько разных microSD карт - на всех одинаковое поведение. Где могут быть грабли? Помогите разобраться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AltemirX 0 6 февраля, 2010 Опубликовано 6 февраля, 2010 · Жалоба Поднят FatFs на LPC2214. Частота SPI - 7.3728МГц, использую microSD Toshiba 2ГБ (FAT16). Всё работает. Провожу слудующий тест на запись: 1. открыл файл 2. f_lseek, 3. f_write 4. f_sync 5. вернуться к п.2 Записываю блок за блоком по 24 байта файл размером в 1МБайт. При таком тесте получаю скорость записи около 1400-2000Байт/с. Понимаю, что записываю блоками менее 512Байт, понимаю ограничение организации файловой системы и самой флэш-памяти. Хотелось бы узнать у уважаемых форумчан результаты аналогичного теста с малыми блоками. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 0 6 февраля, 2010 Опубликовано 6 февраля, 2010 · Жалоба А с какой скоростью у Вас будет идти запись полновесными блоками? К примеру, по 4 - 8 килобайт? Обязательно ли выполнять f_sync для каждых 24 байт? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AltemirX 0 6 февраля, 2010 Опубликовано 6 февраля, 2010 (изменено) · Жалоба sonycman У меня логгер на работе, блоки больше 1040Байт не пробовал. Создам полоценный тест с разными размерами блоков в пн-вт. На 1040Байтах скорость была порядка 28-36КБайт/с. Есть утилита под винды, тестирует любой диск на запись методом: открыть файл, записать, закрыть (в описании сказано, по крайней мере). Она на данной флэхе выдавала похожие результаты: Block= 64 B. Speed=2.112 kB/s. Block=128 B. Speed=4.222 kB/s. Block=256 B. Speed=8.447 kB/s. Block=512 B. Speed=16.833 kB/s. Block= 1 kB. Speed=33.778 kB/s. Block= 2 kB. Speed=67.332 kB/s. Block= 4 kB. Speed=134.629 kB/s. Block= 8 kB. Speed=268.257 kB/s. Block= 16 kB. Speed=546.677 kB/s. Обязательно ли выполнять f_sync для каждых 24 байт? Важно не потерять данные (сохранить как можно большее кол-во записей логгера) при отключении питания, а так же важна надёжность записи. Есть, конечно, варианты, проводить периодически по таймеру f_sync, но опасаюсь. Проблема в том, что поток данных непредсказуем, т.е. неизвестна частота появления событий для логгирования. Есть ещё варианты? Изменено 6 февраля, 2010 пользователем Altemir Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 6 февраля, 2010 Опубликовано 6 февраля, 2010 · Жалоба Хм, весьма стандартный ход. Неужели никогда не приходилось генерировать таблицы с предпросчитанными данными для исключения реалтаймовых вычислений? Да таблицы были (тот же CRC и таблицы НСХ датчиков), но они не были в ROM а не в RAM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Freeuser 0 26 февраля, 2010 Опубликовано 26 февраля, 2010 · Жалоба У меня вопрос по записи данных на карту. Вроде все делаю как в даташите, шлю стартовый бит, команду записи, затем данные, crc16, end-bit, и жду по DAT_0 crc-статус. Но он почему то не приходит! По DAT_0 ловлю стартовый бит(0), который перед crc status должен быть, но ничего нет! Данные на карту записываются. Но если потом послать карте команду чтения, или еще записи, то ничего не происходит. У меня вопрос по записи данных на карту. Вроде все делаю как в даташите, шлю стартовый бит, команду записи, затем данные, crc16, end-bit, и жду по DAT_0 crc-статус. Но он почему то не приходит! По DAT_0 ловлю стартовый бит(0), который перед crc status должен быть, но ничего нет! Данные на карту записываются. Но если потом послать карте команду чтения, или еще записи, то ничего не происходит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться