Вообщем пробую в железе. Карта 256МБ SanDisk.Инициализация SPI проходит нормально, чтение как-то плохо работает.
Читаю по одному сектору: посылаю CMD17, принимаю результат в буфер 512 байт(это для удобства). Сектор 0 (MBR) читается нормально, по нему считаю адрес сектора PBR(чтобы работать с ФАТ16). У меня получился адрес смещения 103. При попытке обратится к сектору 103 карта не отвечает(возвращает ошибку). Я просканировал небольшой диапазон секторов с помошью МК, вот что выходит:
read error, sector#0000001
read error, sector#0000002
read error, sector#0000003
.............................................
read error, sector#0000508
read error, sector#0000509
read error, sector#0000510
read error, sector#0000511
read error, sector#0000513
read error, sector#0000514
Т.е. к нулевому и 512-му сектору доступ нормальный. К остальным - нету.
Затем я использовал команду CMD18 для мультиблочного чтения с сектора 0. Здесь карта честно выдала все свое содержимое(и кажется сделала это без ошибок). Почему нету доступа при одноблочном чтении к остальным секторам кроме 0 и 512?
ЗЫ. За основу кода я взял функцию посылки команд у Чана(elm-chan.org), а прием сектора делаю по описанию
http://piclist.ru/S-64MMC-PIC-RUS/S-64MMC-PIC-RUS.html