Hi -
I'm interfacing the ADS1278 with a C6713. I started with the project ADS1278-C6713-CCS3v1 which used the data plugin converter to generate the necessary drivers.
Much tweaking later and this 'almost' works in CCS v6. I'm struggling to get the EDMA interrupt to call its ISR.
I've failed to install the DSP/BIOS tools in order to register the interrupt vector (CCS just ignores the install, and says its not there), but I'm hoping to do without it ---- apparently you can register interrupt vectors with PRAGMA routines in CCSv6? I've not found any supporting explanatory documentation or examples.
The relevant code is below.
/* register the transfer complete codes with the EDMA */
/* interrupt dispatcher */
iStatus = DCPDISP_registerIsr((void*)pADS,
ADS1278_readBlockFinished,
pADS->serial->intnum);
if (iStatus != TIDC_NO_ERR)
{
(void)ADS1278_close(pADS);
return iStatus;
}
iStatus = DCPDISP_registerIsr((void*)pADS,
ADS1278_idleLoopFinished,
pADS->iIdleLoopTcc);
if (iStatus != TIDC_NO_ERR)
{
(void)ADS1278_close(pADS);
return iStatus;
}
/* now start the idle-loop and the McBSP */
EDMA_clearChannel(pADS->hEdma);
EDMA_intClear(pADS->serial->intnum);
EDMA_intEnable(pADS->serial->intnum);
EDMA_enableChannel(pADS->hEdma);
MCBSP_start(pADS->serial->hMcbsp,
MCBSP_RCV_START | MCBSP_SRGR_START | MCBSP_SRGR_FRAMESYNC,
0x100);
if (iStatus != TIDC_NO_ERR)
{
(void)ADS1278_close(pADS);
return iStatus;
}
IRQ_enable(IRQ_EVT_EDMAINT);