Other Parts Discussed in Thread: THS1206
Hello,
I want to use EDMA with the DSK6713 and a THS1206 ADC. The software is based on the driver created with the Data Converter Tool. With single block reads it works fine, but I need to read the signal continuously. So I modified the driver to:
1) continuously write to a single buffer
2) continuously write to ping-pong buffers
I applied a sine signal to the analog inputs of the THS1206. Both ways it didn't work and it always looks the same way. As you can see at the plots below it looks like a chopped sine. The first plot shows the whole buffered signal. The second plot is just a closer look at the same buffer as in the first plot.
The configuration I'm using is the following:
cfgEdmaPing.opt = (unsigned int)(THS1206_EDMAOPT_VALUE | (pAdc->uiIntNum << 16));
cfgEdmaPing.cnt = (unsigned int)(pAdc->uiFifoLvl | (((ulCount / pAdc->uiFifoLvl) - 1) << 16));
cfgEdmaPing.src = (unsigned int)pAdc->pBaseAddr;
cfgEdmaPing.dst = (unsigned int)pDataPing;
cfgEdmaPing.idx = 0x00000000u;
cfgEdmaPing.rld = EDMA_RLD_RMK( EDMA_RLD_ELERLD_OF(pAdc->uiFifoLvl), EDMA_RLD_LINK_OF(pAdc->hDmaPing));
/***************************************************************/
/* DEFINITIONS FOR THE EDMA CHANNEL REGISTERS */
/***************************************************************/
/***************************************************************/
/* define for the channel options parameter register OPT */
/* 0010 1000 0011 0000 0000 0000 0000 0011 */
/* |||| |||| |||| |||| |||| |||| |||| |||| */
/* |||| |||| |||| |||| |||| |||| |||| |||+- FS (yes) */
/* |||| |||| |||| |||| |||| |||| |||| ||+-- LINK (yes) */
/* |||| |||| |||| |||| ++++ ++++ ++++ ++--- RESERVED */
/* |||| |||| |||| ++++--------------------- TCC (set by funct) */
/* |||| |||| |||+-------------------------- TCINT (yes) */
/* |||| |||| |++--------------------------- DUM (increment) */
/* |||| |||| +----------------------------- 2DD (no) */
/* |||| ||++------------------------------- SUM (none) */
/* |||| |+--------------------------------- 2DS (no) */
/* |||+-+---------------------------------- ESIZE (16bit) */
/* +++------------------------------------- PRI (high) */
/***************************************************************/
#define THS1206_EDMAOPT_VALUE (0x28300003u)
If you need more code or information to help just tell me.
I'm very grateful for every hint or solution I can get.
Regards,
Norman

