AnsweredAssumed Answered

IVG10 conflict from USB-DMA and TWI.

Question asked by vito on Aug 13, 2013
Latest reply on Aug 28, 2013 by SteveM

Hi,

 

I have strange problem that I cannot debug. I noticed that when I am doing USB-DMA transfers (in USB bulk mode) and

I am doing TWI transfers - I am getting problems ending up with exception indicating DMA problems/CPLB problems

that cannot be solved by disabling CPLB.

 

I noticed that both (TWI as well as USB DMA INT) use same interrupt vector (IVG10) that goes to adi_int_Nesting_IVG10.

What i noticed is that when TWI transfer is done whlie USB access - stack goes to the

TWI functions -> adi_int_Nesting_IVG10 and then to the USB-DMA.

 

I wanted to ask if there is a way of binding TWI functionality to other vector than IVG10.

Is there a way of using function adi_dev_Open(...) that forces callback to be binded under other vector (like IVG9 or IVG13?).

 


result = adi_dev_Open(


ghDevManager,                    // DevMgr handle


&ADI_USBDRC_Entrypoint,          // pdd entry point


0,                               // device instance


(void*)1,                        // client handle callback identifier


&usbDevHandle,                   // device handle


ADI_DEV_DIRECTION_BIDIRECTIONAL, // data direction for this device


ghDmaManager,                    // handle to DmaMgr for this device


NULL,                            // handle to deferred callback service


usbCallback );                   // client's callback function

 

 

Thank you for your help,

vito

Outcomes