1) SD-карта пишет и читает блоками по 512 байт. После выдачи ей 512 байт на запись происходит пауза, пока контроллер карты запишет данные и ответит.
2) Импульсы перемагничивания имеют длительность 0.1-1.1 мкс. На частоте 40 МГц это будет от 4 до 40 тактов. Внешнее прерывание такое отловит, но всё равно, время мало...
3) Между импульсами перемагничивания 2 мкс.
Выходит следующее. Запускаем SD-карту на выдачу блока 512 байт, считываем его побайтно и выдаём данные. Одновременно ловим прерывание перемагничивание и заполняем буфер на 512 байт. По окончании (если была запись) забрасываем этот блок на SD-карту. При этом нужно постоянно анализировать смену дорожек и поверхности диска (если смена будет когда SD-карта ещё не дочитала блок, нам придётся завершать чтение и дозаписывать карту). Запись блока на SD-карту займёт 512 байт*8 бит в байте/20 000 000 бит в секунду по spi *1000000 микросекунд в секунде= 205 мкс без учёта задержки на ответ контроллера. Это значит, что мы гарантированно пропустим импульс перемагничивания на стыках блоков.
Интересно, как же сделан тогда этот эмулятор от floppydrive.eu безо всякого ОЗУ?
