denebopetukius 0 22 марта, 2009 Опубликовано 22 марта, 2009 · Жалоба требуется по SPI передать 32 байта с помощью DMA без прерывания камень bf532 SPI режим один мастер =CPU bf532 слейв - куда передать данные часть инициализации SPI: *pSPI_FLG=0xFF40; //Activate XDCS & DeAssert all *pSPI_CTL=0x1003; //Master, CPOL=0, CPHA=0, MSB First, 8Bit, DMA TX передача с помощью дма: *pDMA5_PERIPHERAL_MAP=0x5000; *pDMA5_CONFIG=FLOW_STOP|RESTART|WDSIZE_8|DI_EN; ssync(); *pDMA5_START_ADDR=(void*)BANK1; // BANK1 - адрес буфера для передачи (в SDRAM) *pDMA5_X_COUNT=32; *pDMA5_X_MODIFY=1; *pDMA5_CONFIG|=DMAEN; ssync(); *pSPI_CTL|=(1<<14); //Enable SPI ssync(); while(*pSPI_STAT&TXS); //Ждём пока буфер передачи станет пустым *pDMA5_IRQ_STATUS=0x0001; //подтверждаем *pSPI_CTL&=(~(1<<14)); //disable SPI ssync(); передачи из буфера в периферийный слейв по SPI нет в чём ошибка? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться