من می خوام spi0 رو برای sam7x256 تنظیم کنم
پایه های pa16 تا pa18 و برای CS هم از PA12 و به صورت مستر
کدی که نوشتم اینه :
کد:
AT91C_BASE_PMC->PMC_PCER = (1 << AT91C_ID_SPI0);
AT91C_BASE_PIOA->PIO_PDR = (AT91C_PA16_SPI0_MISO | AT91C_PA17_SPI0_MOSI | AT91C_PA18_SPI0_SPCK);
AT91C_BASE_PIOA->PIO_ASR = (AT91C_PA16_SPI0_MISO | AT91C_PA17_SPI0_MOSI | AT91C_PA18_SPI0_SPCK);
//AT91C_BASE_PIOA->PIO_PER = AT91C_PA12_SPI0_NPCS0; // enable PIO of CS-pin
//AT91C_BASE_PIOA->PIO_SODR = AT91C_PA12_SPI0_NPCS0; // set
//AT91C_BASE_PIOA->PIO_OER = AT91C_PA12_SPI0_NPCS0; // output
// SPI reset
AT91C_BASE_SPI0->SPI_CR = AT91C_SPI_SWRST;
// SPI mode: master, fixed periph. sel., FDIV=0, fault detection disabled
AT91C_BASE_SPI0->SPI_MR = AT91C_SPI_MSTR | AT91C_SPI_PS_FIXED | AT91C_SPI_MODFDIS;
//select cs0
AT91C_BASE_SPI0->SPI_CSR[0]= AT91C_SPI_CPOL | AT91C_SPI_NCPHA | AT91C_SPI_BITS_8 | AT91C_SPI_SCBR | AT91C_SPI_DLYBS | AT91C_SPI_DLYBCT;
// SPI Enable
AT91C_BASE_SPI0->SPI_CR = AT91C_SPI_SPIEN;
ولی با اسلیو نمی تونم ارتباط برقرار کنم
نمی دونم مشکل از تنظیم spi هست یت چیز دیگه
ممنون میشم ببینین درست تنظیم کردم یا نه