Подскажите плиз чего не так (SAM7S + AT45) Совсем отупел на административных делах :(,
в целом задача запустить сам7+датафлэшину. DF прицелена к SPI, b и ее CS напрямую к NPCS0. Читаю все время FFы, ситуевина осложняется отсутствием осцилоскопа :(
Инициализирую СПИ:
AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, 1 << AT91C_ID_PIOA);
AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, 1 << AT91C_ID_SPI);
AT91F_SPI_CfgPMC();
AT91F_SPI_CfgPIO();
AT91F_SPI_Reset(AT91C_BASE_SPI);
// AT91F_SPI_CfgMode(AT91C_BASE_SPI, AT91C_SPI_MSTR | AT91C_SPI_MODFDIS |
// AT91C_SPI_PCS);
AT91F_SPI_CfgMode(AT91C_BASE_SPI, AT91C_SPI_MSTR);
AT91F_SPI_CfgCs(AT91C_BASE_SPI, 0, AT91C_SPI_CPOL | (AT91C_SPI_DLYBS & 0x100000) |
((MASTER_CLOCK / (2 * DATAFLASH_CLK)) << 8));
AT91F_SPI_Enable(AT91C_BASE_SPI);
// AT91F_PDC_Open(AT91C_BASE_PDC_SPI); // new
p_pSpi->SPI_MR = 0x00000001;
пишу, читаю:
while((p_pSpi->SPI_SR & AT91C_SPI_TDRE) == 0);
p_pSpi->SPI_TDR = (data & 0xFFFF);
while((p_pSpi->SPI_SR & AT91C_SPI_RDRF) == 0);
spib = ((p_pSpi->SPI_RDR) & 0xFFFF);
-
- Снят вопрос :) чипселект не туда разведен :) - Котик(01.09.2006 15:30, )