Warning: touch() [function.touch]: Unable to create file /home/starterkit/starterkit.ru/html/error.log because Permission denied in /home/starterkit/starterkit.ru/html/errorhandler.php on line 51 Проблема с SD карточками - Embedded Linux - Форум - starterkit.ru
хм.. у меня ощущения, что на этом форуме я пишу "в никуда"..
неужто трудно прочитать и попробовать, чем сразу паять.. :/
вот моя запись в блокноте за апрель 2009:
-----------------------------------------------------------------------------------
2. Свежекупленные SD Transcend 45D на 2GB и 4GB наотрез не виделись системой
на уровне физического устройства.
в файле at91_mci.h правим величину делителя
#define AT91_MCI_CLKDIV (0x0f << 0) /* Clock Divider */
/*#define AT91_MCI_CLKDIV (0xff << 0) /* Clock Divider */
-----------------------------------------------------------------------------------
только что прописал 0xff, пересобрал, загрузился - карту не видно..
изменил на 0x0f, ничего больше не трогал: mmc0: new SDHC card at address b368
mmcblk0: mmc0:b368 SDC 1926983680KiB
mmcblk0: p1
ps в логе когда карту не видно:
Sending command 1 as 00001841, arg = 00000000, blocks = 0, length = 0 (MR = 00009B85)
MCI irq: status = 0010C0E4, C07F0001, 00100000
MMC: Response timeout
Completed command
Status = 0010C0E5 [00000000 00000000 00000000 00000000]
Error detected and set to -110 (cmd = 1, retries = 0)
mmc0: req done (CMD1): -110: 00000000 00000000 00000000 00000000
mmc0: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0 timing 0
MMC: Setting controller bus width to 1
ps2 справедливости ради - похоже "съезжают" тайминги, карточка интерфейсом видится, но имеют место быть ошибки
Я пробовал играться, пока результат нулевой. Сейчас попробую конкретно с твоим значением 0x0F. Кстати вопрос на засыпку - ты это значение подобрал случайным образом или же есть определенный алгоритм ?
PS Только вот в чем проблема - это все местные решения под конкретные карточки, а не универсальное. Как вариант конечно можно будет учесть в драйвере изменения делителя в зависимости от полученных экспериментальным путем значений для конкретных СД-шек...
Значение подобрано эксперементально, почитал мануал на АРМ, прикинул где и что можно покрутить в регистрах и докрутил до положительного результата. Увы, дальше в физику проблемы не стал углубляться. Могу только теоретически предположить:
- к физическому и электрическому соединению лично я претензий не имею. Основания: карты работают с ошибками в старом ридере. Опять же, вспомнив Александра (sasami) - у него есть карточка(и), которые в плате работают отлично, но не видятся ни нотбуком, ни ридером.
- скорее проблема "логического" уровня. Как я знаю, стандарт SD - закрытый и платный (те доки, что есть у меня явно неполные). Что, как и на чем реализовано в конкретно этих карточках даже гадать не хочу - это на совести китайцев-производителей. Значит дело во времянках и драйверах - надо смотреть насколько хорошо соблюдаются "стандарты", есть ли возможность подстроить "на лету"..
:) могу еще долго разглагольствовать, но надо ли :)))
Возможные направления поиска, например, по моим картам - префикс в название "бла-бла 45D", еще можно анализировать CSD и CID карточек..
Короче, вопросов больше чем ответов ;)