AnsweredAssumed Answered

Regarding System Services in Blackfin 504F

Question asked by on Jun 27, 2014
Latest reply on Jul 1, 2014 by CraigG


  I am trying to use a BF504F  DSP for my application
For with I am using ADC AD7606 and collecting data
using SPORT Interface and DMA… I am trying to use the System Services available
in for this platform to initialize my system appropriately


While Initializing the Interrupt Manager Following are the
Functions I used following APIs


Result = adi_int_Init(NULL, 0, &i, NULL);      //INTIALIZE THE INTERRUPT MANAGER.

Result = adi_int_SICSetIVG(ADI_INT_DMA4_SPORT1_RX, 9);

  Result  = adi_int_CECHook( 9, DMA_Handler, (void*)0x0000005F, FALSE);

Result = adi_int_SICEnable(ADI_INT_DMA4_SPORT1_RX);



‘Result’ is a variable of type ADI_INT_RESULT



Similarly while initializing the DMA Manager in System
Services the following APIs are used


DMA_Result = adi_dma_Init(DMAServiceData,sizeof(DMAServiceData), &j, &DMAManagerHandle, NULL );

  DMA_Result = adi_dma_Open(DMAManagerHandle, ADI_DMA_DMA4,
(void*)0x0000005F, &ChannelHandle4, ADI_DMA_MODE_DESCRIPTOR_LARGE, NULL, DMA4_Callback);  //OPEN DMA 4 SPORT1 RECIEVE FROM



Where the following variable are declared

    static ADI_DMA_MANAGER_HANDLE DMAManagerHandle;         
// handle to the DMA manager

  static ADI_DMA_CHANNEL_HANDLE  ChannelHandle4;    
// handle to the DMA4 Channel


static u8 DMAServiceData[ADI_DMA_BASE_MEMORY + (ADI_DMA_CHANNEL_MEMORY * 2)];             
// memory for 2 channels



My query is that Callback functions are declared for the same Interrupt in the Interrupt Manager  (i.e. adi_int_CECHook() function
namely DMA4_Handler) and in the DMA Manager (i.e. in the adi_dma_Open() api namely DMA4_Callback), what is the difference between the two callback declared…which one is to be used in my application?, where I want live callback
to happen after transfer of 8 x 2 bytes data into the memory location through SPORT1 interface.


   Secondly while intialising the Power System Services… I
received error when I declared the package type as ADI_PWR_PACKAGE_LFCSP which
is the package I am using in BF504F… is it ok to declare LQFP instead even
though I am using LFCSP.