aaarrr, благодарю Вас за советы.
Ситуация проясняется. Busy я определяю как наличие 0xff на DAT0. Рассматриваю процесс записи на осциллографе и вижу, что через ~12 мс после передачи первого блока на DAT0 я действительно вижу 0xff. То есть по моему мнению Busy карта сняла. Далее я отпускаю CS карты и считываю данные следующего для записи блока данных из внешней RAM, которая тоже сидит на том же spi. Далее я снова опускаю CS карты и передаю второй блок, после которого Data Response я уже не получаю. Так вот, если я убираю обращение к внешней RAM - запись на карту восстанавливается, на передачу всех блоков я начинаю получать корректный response.
Сижу ломаю голову, каким образом чтение из внешней RAM влияет на запись в SD. Единственное, что приходит в голову - карта во время чтения из RAM решает чем - то заняться и опускает Busy(карта продолжает тактироваться клоками во время чтения из RAM), о чем я, естественно, не догадываюсь, т.к проверял Busy раньше и уверен, что карта свободна.
--------------------
То, что неясно, следует выяснить. То, что трудно творить, следует делать с великой настойчивостью. Конфуций
|