Чего то опять затупил ....

Вобщем инициализация SPI осталась таже, что и в начале, только добавил следующие строчки:
Код
AT91F_PDC_EnableRx(AT91C_BASE_PDC_SPI0);
AT91F_PDC_EnableTx(AT91C_BASE_PDC_SPI0);
AT91F_PDC_Open(AT91C_BASE_PDC_SPI0);
Имеются еще два массиваunsigned char SPI_SEND[16]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
unsigned char SPI_IN[16]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
Порядок действия такой:Я получаю через 232 с компа байт (он приходит верно, проверено) и отправляю его в первый буфер флэшки
Код
SPI_SEND[0]=0x84;
SPI_SEND[4]=BUFF_485_IN;
while (!((AT91C_BASE_SPI0->SPI_SR) & AT91C_SPI_TXEMPTY));
AT91F_SPI_CfgPCS(AT91C_BASE_SPI0,0);
AT91F_SPI_SendFrame(AT91C_BASE_SPI0,SPI_SEND,6,0,0);
while(!AT91F_PDC_IsRxEmpty(AT91C_BASE_PDC_SPI0));
BUFF_485_IN - это пришедший байт с компа84 - команда записи в первый буфер флэшки, потом идут 13 незначащих бит и 11 с адресом, куда записывать этот байт в буфере (у меня он равен нулю, ставил и другие). За всеми этими инструкциями идет сам байт.После этого пытаюсь этот байт считать из буфера
Код
SPI_SEND[0]=0x54;
SPI_SEND[4]=0x00;
SPI_SEND[5]=0x00;
while (!((AT91C_BASE_SPI0->SPI_SR) & AT91C_SPI_TXEMPTY));
AT91F_SPI_CfgPCS(AT91C_BASE_SPI0,0);
AT91F_SPI_ReceiveFrame(AT91C_BASE_SPI0,SPI_IN,1,0,0);
AT91F_SPI_SendFrame(AT91C_BASE_SPI0,SPI_SEND,6,0,0);
while(!AT91F_PDC_IsRxEmpty(AT91C_BASE_PDC_SPI0));
54 - команда чтения из буфера 1, затем опять 13 незначащих бит и 11 бит адреса, потом нужно еще один байт незначащий и только потом идет прием моего байта (так я понял из инструкции).Когда я смотрю ноги у флэшки осцилографом, то чипселект, клок и входная нога - данные идут, а на выходной ноге - вечный стояк единицы.Ночные танцы в перьях и с бубном вместо прозрения принесли лишь круглые глаза подруги ....

З.Ы. И еще у меня вопрос по режиам чтения: Насколько я понял, отправляя команду 54 я тем самым указываю, что изначальное состояние клока - низкий уровень, а чипселект высокий, так? (у меня на самом деле все так и есть) Или я чего то не понял?
Сообщение отредактировал Timofey - Oct 20 2006, 06:55