ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
1 июля
67921
Котик (05.09.2006 08:20, просмотров: 2740)
Плииз хэлп: Продолжение трабла с SPI у SAM7 САМ7 читает все ок, CS пропаян правильно, если принудительно (ручками) замыкаю CS у salve'а, все в порядке. Не работает NPCS0. Инициализирую:
  AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, 1 << AT91C_ID_PIOA);

  AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, 1 << AT91C_ID_SPI);
  AT91F_SPI_CfgPIO();
  AT91F_SPI_Reset(AT91C_BASE_SPI);
  AT91F_SPI_Enable(AT91C_BASE_SPI);

  AT91F_SPI_CfgMode(AT91C_BASE_SPI, AT91C_SPI_MSTR |   
    AT91C_SPI_MODFDIS | (0xE << 16));
  AT91F_SPI_CfgCs(AT91C_BASE_SPI, 0, AT91C_SPI_CPOL | 
    ((MASTER_CLOCK / (2 * DATAFLASH_CLK)) << 8));
Пишу-читаю:
  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);
  return spib;