Цитата(Aaron @ Jan 24 2012, 15:56)

А у вас SPI на какой частоте работает? AT91C_SPI_MR - у вас FDIV = 0 The SPI operates at MCK. У меня на практике максимум заработало стабильно на MCK/64 (1МГц), правда там проблема была с физическими уровнями CLK, а так-то SPI с программной точки зрения работал хорошо.
Далее, AT91C_SPI_MR->MODFDIS = 0 - Mode fault detection is enabled. Может у вас выскакивает fault?

Проверьте SPI_SR->MODF на всякий случай.
И там же, DLYBCS для начала выставьте в максимальное значение, а далее по мере необходимости уменьшайте.
Ещё, вы прерывания не используете, всё софтварно обрабатываете?
Aaron, спасибо !
Действиельно выскакивает FAULT , хотя под отладкой я этот бит не вижу. И когда он выскакивает, SPIENS переходит в 0 т.е. SPI отключается.
Отключил Fault Detection и всё стало хорошо.
Но теперь другой вопрос : почему происходит FAULT ?
Fault - это когда на NPCS мастера кто-то выставляет свой уровень, т.е. встречаются два мастера.
Но у меня на всех линиях NPCS выбран IO порт , т.е. периферия отключена. По идее SPI не должен при этом конфликтовать
с теми уровнями которые при этом на пинах .