Sign in

username:

password:



Not a member?

Search adsp



Search tips

Subscribe to adsp



adsp by Keywords

AD1819 | AD7332 | ADSP-2106 | ADSP-21060 | ADSP-21065L | ADSP-2116 | ADSP-21160M | ADSP-2181 | ADSP-218x | ADSP-219 | ADSP-2199 | ADSP219 | BF531 | BF532 | BF533 | BF535 | Blackfin | FFT | JTAG | LDF | SDRAM | SHARC | SPORT | UART | VDSP++ | VisualDSP

Discussion Groups

Technical discussions related to Analog Devices DSPs (including Blackfin, TigerSHARC, SHARC and ADSP-21xx DSPs).

  

Post a new Thread

DMA in BF533 - malli_1729 - Aug 3 7:46:43 2007



Hi! 
Iam working Audio codec.. 
Iam giving example coding 

void Init1836(void) 
{ 
int i; 
int j; 
static unsigned char ucActive_LED = 0x01; 

// write to Port A to reset AD1836 
*pFlashA_PortA_Data = 0x00; 

// write to Port A to enable AD1836 
*pFlashA_PortA_Data = ucActive_LED; 

// wait to recover from reset 
for (i=0; i<0xf0000; i++) asm("nop;"); 

// Enable PF4 
*pSPI_FLG = FLS4; 
// Set baud rate SCK = HCLK/(2*SPIBAUD) SCK = 2MHz 
*pSPI_BAUD = 16; 
// configure spi port 
// SPI DMA write, 16-bit data, MSB first, SPI Master 
*pSPI_CTL = TIMOD_DMA_TX | SIZE | MSTR; 

// Set up DMA5 to transmit 
// Map DMA5 to SPI 
*pDMA5_PERIPHERAL_MAP = 0x5000; 

// Configure DMA5 
// 16-bit transfers 
*pDMA5_CONFIG = WDSIZE_16; 
// Start address of data buffer 
*pDMA5_START_ADDR = sCodec1836TxRegs; 
// DMA inner loop count 
*pDMA5_X_COUNT = CODEC_1836_REGS_LENGTH; 
// Inner loop address increment 
*pDMA5_X_MODIFY = 2; 

// enable DMAs 
*pDMA5_CONFIG = (*pDMA5_CONFIG | DMAEN); 
// enable spi 
*pSPI_CTL = (*pSPI_CTL | SPE); 

// wait until dma transfers for spi are finished 
for (j=0; j<0xaff0; j++) asm("nop;"); 

// disable spi 
*pSPI_CTL = 0x0000; 
} 

This is a initialisation code for the AD1836 AUdio codec.. 
Here i have small doubts.. 

Here leave the flash section.. 
then we are enabling the PF4 as as a slave select and we are 
configuring the sck... 
and then "timod=11" i.e dma transmit mode ....... 

here i got problem......... 

In the datasheet they are given that in this mode the transfer is 
initiated by a 
DMA write of SPI_TDBR.......... 
In the code they haven't written any statement to have a write to 
SPI_TDBR..just they are giving where to start and how much increament 
and the 
count values and then they are enabling the DMA.........,,,,,,, 

Actuallly my interpretation wrong or right i don't know... 

I just want how the DMA transfer wil be initiated in this case 
without writing explicitly ionto SPI_TBDR........



(You need to be a member of adsp -- send a blank email to adsp-subscribe@yahoogroups.com )