ADSP-21569 SPORT Core transfer
Hello,
Can anyone share with me a working example of using SPORT in core transfer mode?
There are examples of using DMA everywhere, but I need to run SPORT in core transfer mode for ADSP21569.
I will be very gratefull for any help!
Best regards,
Franciscus
core transfer
ADSP-21569
cces
Audio Signal Processors
dsp
sport
SHARC Audio Processors/SoCs
SHARC processor
Show More
Hi,
I made a few tries. Below I am attaching my code.
It is about sending 0xaaaa value continuously for testing purposes.
The CLK and FS lines work for me.
Unfortunately, on D0 (line DAI0_PB_05) I still have high impedance.
What could be the reason why the data is not pushed to SPORT1_AD0 line at all?
#define SPORT_DEVICE_1A 1u
/* SPORT Handle */
ADI_SPORT_HANDLE hSPORTDev1ATx;//TX
void SPORT_Test_CoreTransfer(void)
{
*pREG_PADS0_DAI0_IE = BITM_PADS_DAI0_IE_VALUE;
*pREG_PADS0_DAI1_IE = BITM_PADS_DAI1_IE_VALUE;
SRU(SPT1_ACLK_PBEN_O, DAI0_PBEN04_I);
SRU(SPT1_ACLK_O, DAI0_PB04_I);
//
SRU(SPT1_AD0_PBEN_O, DAI0_PBEN05_I);
SRU(SPT1_AD0_O, DAI0_PB05_I);
SRU(SPT1_AFS_PBEN_O, DAI0_PBEN01_I);
SRU(SPT1_AFS_O, DAI0_PB01_I);
adi_sport_Open(SPORT_DEVICE_1A,ADI_HALF_SPORT_A,ADI_SPORT_DIR_TX, ADI_SPORT_SERIAL_MODE, SPORTMemory1A,ADI_SPORT_MEMORY_SIZE,&hSPORTDev1ATx);
adi_sport_ConfigData(hSPORTDev1ATx,ADI_SPORT_DTYPE_ZERO_FILL,31,false,false,false);
adi_sport_ConfigClock(hSPORTDev1ATx,64,true,false,true);
adi_sport_ConfigFrameSync(hSPORTDev1ATx,33,true,true,false,true,true,false);
adi_sport_RegisterCallback(hSPORTDev1ATx,SPORTFramCallbackTx, NULL);
while(1)
{
uint32_t opcode1 = 0xaaaa;
adi_sport_CoreTransfer(hSPORTDev1ATx, &opcode1, 4, ADI_SPORT_CHANNEL_PRIM);
for(int i = 0; i < 100000; i++)
{
}
tfp_printf("Test_SPORT_CoreTransfer\r\n");
}
}
Hi
This query is handled through private support. To avoid duplication of efforts, you can continue the discussions through private support and we will post the final resolution here.
Regards,
Anand Selvaraj
Please log in to reply.