Freeuser 0 18 мая, 2010 Опубликовано 18 мая, 2010 · Жалоба У меня тоже софтверно сделано, это я просил Вас в ветке для начинающих выложить исходники). Сейчас сижу играюсь с задержками...Если ничего не выйдет, придется отказаться от использования силикона, хотя на складе партия лежит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zheka 1 19 мая, 2010 Опубликовано 19 мая, 2010 · Жалоба Господа, не осилю всей темы. Скажите есть у кого-нибудь проект реализации FAT16 на SD карте для AT91SAM7 для KEIL? ВОспользовавшись поиском я нашел много чего, но либо без реализации FAT, либо под другой камень, либо под другую среду программирования. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
skripach 6 19 мая, 2010 Опубликовано 19 мая, 2010 · Жалоба реализации FAT16 на SD Только песня совсем не о том... Полно может только не Keil Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Paramedic 0 28 октября, 2010 Опубликовано 28 октября, 2010 · Жалоба Народ , а кому-нибудь попадались карты, у которых SPI интерфейс не реализован или реализован криво? Есть девайс, работает с большинством карт по SPI, появилась партия карт miniSD no_name, в ридере на ПК проблем нету, в устройствах которые работают по SPI - не видится, даже не проходит процедура стандартной инициализации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 22 28 октября, 2010 Опубликовано 28 октября, 2010 · Жалоба Народ , а кому-нибудь попадались карты, у которых SPI интерфейс не реализован или реализован криво? Есть девайс, работает с большинством карт по SPI, появилась партия карт miniSD no_name, в ридере на ПК проблем нету, в устройствах которые работают по SPI - не видится, даже не проходит процедура стандартной инициализации. Может, это SDHC? Карты SDHC не совместимы с карт-ридерами и прочими устройствами, изначально рассчитанными только на SD-карты. А вот устройства, способные работать с SDHC-картами, поддерживают также и SD-карты. Ключевым нововведением для SDHC-карт, позволившим им превзойти объем в 4Гб, стало введение посекторной адресации (аналогично жёстким дискам), в то время как обычные SD-карты имеют побайтную адресацию (как оперативная память) и, соответственно, при 32-х разрядном адресе могут иметь объем не более 4Гб. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VslavX 0 28 октября, 2010 Опубликовано 28 октября, 2010 · Жалоба В свое время тоже намучился с CRC. Выбирая между табличным и вычислителным методами пришел к компромиссу. Как мне кажется оптимальным будет вычисление таблицы в ОЗУ и дальнейшая работа с ней. Недавно ковырялся с полями Галуа характеристики 2^m - полиномиальная арифметика, набрел на оптимальный алгоритм редукции на малочлен, подумалось почему бы не применить его и для CRC. В программной реализации для SD/MMC получилось две симпатичные функции, никаких циклов и таблиц: //________________________________________________________________ // // Обновляет контрольную сумму CRC-7 - x^7 + x^3 + 1 // Быстрый нетабличный вариант потетрадного вычисления // HAL_INLINE_FORCED DWORD io_mmc_crc7( DWORD data, DWORD crc) { DWORD tmp; tmp = (crc ^ (data >> 1)) >> 3; crc = (crc << 4) | tmp; crc = crc ^ (tmp << 3); tmp = ((crc >> 3) ^ data) & 0x0F; crc = (crc << 4) | tmp; crc = crc ^ (tmp << 3); crc &= 0x7F; return crc; } //________________________________________________________________ // // Обновляет контрольную сумму CRC-16 - x^16 + x^12 + x^5 + 1 // Быстрый нетабличный вариант потетрадного вычисления // HAL_INLINE_FORCED DWORD io_mmc_crc16( DWORD data, DWORD crc) { DWORD tmp; tmp = ((crc ^ (data << 8)) >> 12); crc = (crc << 4) | tmp; crc = crc ^ (tmp << 5); crc = crc ^ (tmp << 12); tmp = ((crc >> 12) ^ data) & 0x0F; crc = (crc << 4) | tmp; crc = crc ^ (tmp << 5); crc = crc ^ (tmp << 12); return crc & 0xFFFF; } Все проверено на практике - работает :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Paramedic 0 28 октября, 2010 Опубликовано 28 октября, 2010 · Жалоба Может, это SDHC? Нет, не SDHC. Да и в 2-х из 3-х девайсов SDHC поддерживается. Нашёл такое "Some MicroSD cards do not support SPI mode. " http://en.wikipedia.org/wiki/Secure_Digital Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Paramedic 0 29 октября, 2010 Опубликовано 29 октября, 2010 · Жалоба Нашёл такое "Some MicroSD cards do not support SPI mode. " http://en.wikipedia.org/wiki/Secure_Digital Похоже вообще беспредел на счёт SPI в SD: "So far I have only found the cards supplied by Adata do not support SPI and so they will not work if that is the method you are using. " http://www.microchip.com/forums/m349724-print.aspx "The SPI support is an option and may be dropped by some manufacturers. " http://forums.freescale.com/t5/68K-ColdFir...Card/td-p/54401 "So many manufacturers have removed the serial mode completely." http://e2e.ti.com/support/microcontrollers...66/t/49553.aspx Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AltemirX 0 30 октября, 2010 Опубликовано 30 октября, 2010 · Жалоба Вот поэтому перед тем, как закупать в наши девайсы в большом кол-ве microSD, мы потратились на 10-ок различных, оценили глючность/быстродействие/совместимость, где надо немного подрихтовали код и только потом делали закупку. На хорошем счету - Toshiba, Transcend. Kingston - ещё та девица, у кого хочет, у тех и покупает память, маркируя под себя. В итоге - от партии к партии может значительно отличаться скорость и наличие "камушков". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Paramedic 0 31 октября, 2010 Опубликовано 31 октября, 2010 · Жалоба Вот поэтому перед тем, как закупать в наши девайсы в большом кол-ве microSD, мы потратились на 10-ок различных, оценили глючность/быстродействие/совместимость, где надо немного подрихтовали код и только потом делали закупку. На хорошем счету - Toshiba, Transcend. Kingston - ещё та девица, у кого хочет, у тех и покупает память, маркируя под себя. В итоге - от партии к партии может значительно отличаться скорость и наличие "камушков". Мой опыт показывает что даже надписям на карте нельзя верить - что хотят то и пишут китайцы. А среди этого десятка были карты, которые вообще отказались работать по SPI? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AltemirX 0 31 октября, 2010 Опубликовано 31 октября, 2010 · Жалоба Мой опыт показывает что даже надписям на карте нельзя верить - что хотят то и пишут китайцы. А среди этого десятка были карты, которые вообще отказались работать по SPI? Нет, не было. А мы не надписям на карте верили. Считывали CID, CSD, проверяли по ним. Перед закупкой осведомлялись о наличии той же партиии у поставщика. Поставщик надёжный. Для отрекомендованных выше производителей никаких разбросов в пределах партии нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kostyan1 0 1 ноября, 2010 Опубликовано 1 ноября, 2010 · Жалоба Народ, аццы, подскажите плиз в этой теме, чтобы новую не заводить! Я так понимаю в этой ветке в основном народ пользует SD карту в SPI режиме, в котором потребление карты не такое большое... Пользую AT91SAM3U4. Пользую тамошний "High Speed Multimedia Card Interface", который о шести ногах: "CLK, CMD, DAT0, DAT1, DAT2, DAT3". Обратно пользую атмеловский пример работы с карточкой sdmmc_mci.c/sdmmc_mci.h, который идет в поставке с иаром. Вопрос в потреблении. После инициализации и чтении либо записи данных девайс начинает жрать на 20-30 мА больше, что собственно неприемлимо. Если "выключить" карточку командой Cmd12, то повышеное потребление прекращается. Но при этом для дальнейшей работы с карточкой необходимо заново её инициализировать. Выключение + инициализация в сумме занимают приличное время (по ощущениям на глаз). Есть какойто другой, быстрый способ снизить потребление SD карты кроме как командой Cmd12? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prussta 0 1 февраля, 2012 Опубликовано 1 февраля, 2012 · Жалоба Хочу поделиться своими результатами при работе с модулем TE-STM32F103 (красная). Мне нужно было запустить microSD через SDIO. Использую Keil v.4, файлы из библиотеки ST. При инициализации карты получила SD_INVALID_VOLTRANGE. Замерила U - оказалось на карту идет 1,8В! Это все транзистор Q3 оказался! Посадила PB0 на "0" - на карту пошло 3,3В.Это то что нужно). Потом пыталась прикрутить FATFS - но тут что-то не получилось...видела ошибку FR_NO_FILESYSTEM. Не без помощи добрых людей(Спасибо огромное Ивану Кузнецову!) в итоге Fatfs был укращен ))). Если кому нужно, могу поделиться проектом. http://narod.ru/disk/39273363001/microSD_FatFS.rar.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alhen 0 1 февраля, 2012 Опубликовано 1 февраля, 2012 · Жалоба Хочу поделиться своими результатами при работе с модулем TE-STM32F103 (красная). Мне нужно было запустить microSD через SDIO. Спасибо за пример, для меня очень кстати. Мне тоже нужен microSD через SDIO для STM32F103VCT6. Осваивать SD карту, я начал по тому же принципу по которому "ищут не там где потерял, а там где светлее", т.е. через SPI, уж очень много по этой теме информации. А вот с SDIO маловато. :rolleyes: В моем приложении требуется по возможности избегать прерываний (по крайней мере не трогать Systick), в вашем проекте disk_timerproc задушен, а SDIO обробатывается по прерыванию, интересно, можно ли SDIO сделать полингом? А кто-нибудь пробывал делать стейт-машины для SD карт? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 0 1 февраля, 2012 Опубликовано 1 февраля, 2012 · Жалоба Есть какойто другой, быстрый способ снизить потребление SD карты кроме как командой Cmd12? CMD12, если мне не изменяет память, это STOP_TRANSMISSION. После нее не надо делать никакую инициализацию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться