Кстати да, igor_t правильную идею подал. Если взять процедуры по ссылке выше, то на чтение/запись байта будет уходить примерно 400 тактов, т.е. даже при тактовой частоте 5МГц это будет 12-13 Кб/сек, а это как минимум в два раза медленнее флоппи-диска. А если мы сделаем "железный" сдвиговый регистр, который будет передавать сразу после OUT с минимальной тактовой частотой 400КГц (которую должны обеспечивать все карты), то это будет минимум 50 Кб/сек.
---------- Post added at 13:47 ---------- Previous post was at 13:42 ----------
Я попробовал реализовать интерфейс SD-карты в своём эмуляторе (уже на сайте). С теми процедурами оно работает (я выкусил их из исходников). Только я не понял, почему там размер блока устанавливается в 128 байт, а позиционирование - кратно 512 байт. Получается, они используют только четверть доступной области, так как позиционировать по другому нельзя. Поленились сделать буфер сектора
А что мешает реализовать интерфейс SPI и I2C чисто аппаратно, как это сплошь и рядом делается в "однокристалках"?
Если ты чего-то не знаешь, то это не значит, что этого не может быть.