Цитата(cebotor @ Apr 18 2007, 15:15)

пауза DLYBCS точно не отрабатывается, там наверное и еще чтото ).
подскажите, пожалуста, в чем причина:
на at91sam7x (на 50МГц) настроил DLYBCS = 0, длительность СS =1 мкс.
получаю время от входа в ф-ию передачи по spi до формрования CS ~ 1,2 мкс!!
(такое же время от снятия CS до выхода из ф-ии)
передаю так:
unsigned int SPI0_Send(unsigned int data, unsigned char pcs, unsigned char lastxfer)
{
lastxfer = (unsigned char)lastxfer & (unsigned char)0x1; // get lo 1 bit
// whait for tx register empty & create register content
while(!(SPI0->SPI_SR & AT91C_SPI_TDRE)){};
SPI0->SPI_TDR = (data & 0xffff) | lastxfer << 24 | pcs << 16 ;
// wait for rx register full
while(!(SPI0->SPI_SR & AT91C_SPI_RDRF)){};//do while nonzero
return(0xffff & SPI0->SPI_RDR);
}