Копаюсь с модулем SSP0 на контроллере LPC1111.
Частота камня - 48 МГц, частота SPI - 12 МГц, задержки между байтами 1,17 мкс.
Частота камня - 36 МГц, частота SPI - 18 МГц, задержки между байтами 1,23 мкс.
код простейший, никаких прерываний:
Код
uint8_t SendByteSPI( uint8_t data)
{
LPC_SSP0->DR = data;
while( LPC_SSP0->SR & BIT(4) ) // SPI0 busy
;
return LPC_SSP0->DR;
}
#define SPI_WriteByte(data) SendByteSPI(data)
#define SPI_ReadByte() SendByteSPI(0x00)
uint8_t Mem_ReadByte( uint32_t aunMemAddr )
{
uint8_t ucByteReadMem;
ACTIVE_SPI();
SPI_WriteByte( 0x03 ); // Read Data Bytes
SPI_WriteByte( (uint8_t)(aunMemAddr >> 16 ) );
SPI_WriteByte( (uint8_t)(aunMemAddr >> 8 ) );
SPI_WriteByte( (uint8_t)(aunMemAddr ) );
ucByteReadMem = SPI_ReadByte();
DEACTIVE_SPI();
return ucByteReadMem;
}
Сталкивался кто-нибудь?..