Цитата(etoja @ Jan 24 2008, 07:13)

Проверьте:
1)наличие подтягивающих резисторов и антизвоновых конденсаторов на сигнальных линиях карточки памяти, как это указано в прилагаемой документации.
2) наличие керамического конденсатора 1uF параллельно питанию карточки рядом с контактами разъёма карточки.
У меня непрерывная запись в файл длиной 1Гигабайт идёт устойчиво (использую FAT16).
Напишите тестовую программу: непрерывная запись и чтение сектора по абсолютному адресу.
Если она проходит удачно, значит у вас ошибка в реализации FAT.
Хотя может быть просто плохой контакт карточки в разъёме.
Хорошая у вас документация. А в даташите на мой Transcend TS1GUSD вообще рекомендуемой схемы подключения нет.
Резисторы подтягивающие не ставил, т.к. 430 хорошо удерживает свои порты, еще ни разу не видел чтобы они у него плыли. Но попробую, если ничего не поможет. Конденсаторы на линии - это же только для больших частот обмена. Я пробовал запускать на 250 кГц SPI синхросигнала - и все равно то же самое.
Питание я заподозрил с самого начала, хотя там стоит 0,1 + 2,2 мкф параллельно. Даже тектрониксом смотрел насчет проседаания питания в моменты стирания/записи. И ничего не увидел. Но сегодня с утра пропаял конденсаторы еще раз - может поможет?
Ошибки в ФАТ нет, уже проверял. Виснет именно на низкоуровневых функциях чтения/записи сектора. Да и сомнительно, что неправильная реализация ФАТ могла бы так повесить карту.
А вот с контактами это грустно - надо выпаивать разъем, ведь так не проверить контакт. Хотя я шатал плату в момент работы и зависимости между зависанием и механическим воздействием не заметил.