ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
25 ноября
67543
Котик (01.09.2006 15:16, просмотров: 822)
Подскажите плиз чего не так (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);