2011-06-21 03:53:22     Help with Inter-Device Communication needed

Document created by Aaronwu Employee on Aug 27, 2013
Version 1Show Document
  • View in full screen mode

2011-06-21 03:53:22     Help with Inter-Device Communication needed

Peter Lindner (AUSTRIA)

Message: 101510   




Currently i'm developing a sport driver for a cm-bf527 coremodule from bluetechnix.


on the hardware-side i have an DAC on sport0 and an ADC on sport1.


the problem i have at the moment is, that i want to trigger the ADC conversion with the DMA interrupt of sport 0. for example: DMA writes a value to the DAC, interrupt is thrown, the ADC (hangs on sport1) should start converting and sport1 should start reading the converted value per DMA.


sending and reading over DMA is already functioning... my problem is, that i don't know how to manage the triggering between sport0 and sport1...


i already tried asynchronous notification (via userspace) but this is too slow for my needs :(... the interrupt service handler in userspace is not called frequently enough (think this is a scheduler problem)


does anyone have an idea how i could manage this???


thank you for your help






2011-07-01 05:59:54     Re: Help with Inter-Device Communication needed

Aaron Wu (CHINA)

Message: 101978   


If understand you correctly, you may think about the following scheme:


First you issue a blockable read on ADC, the DMA on SPORT1 for ADC should be disabled by default, so this read process will be blocked by default. Then in the DMA handler of SPORT0 for DAC, you enable the DMA for SPORT1, so ADC will begin to work and when the converstion is done, the read process will be wake up.


Note that if you have more than one caller to enable the DMA of SPORT1, you need to lock it properly.