Sign in

username:

password:



Not a member?

Search c55x



Search tips

Subscribe to c55x



c55x by Keywords

AIC23 | C5509 | CCS | CSL | EMIF | EVM | GEL | GPIO | HPI | Interfacing | JTAG | McBSP | OMAP | Omap15 | OMAP59 | RTDX | SDRAM | TMS320VC5509 | USB | XDS5

Ads

Discussion Groups

Discussion Groups | TMS320C55x | C5510 DMA Flow Control (DREQ/DACK)

Technical discussions about the TI C55x DSPs (including the c5501, c5502, c5503, c5507, c5509, c5510 and OMAP5910).

  

Post a new Thread

C5510 DMA Flow Control (DREQ/DACK) - smiffoz - Apr 21 8:41:27 2006



Hi all,

I'm new to this usergroup, so please forgive any break from etiquette.

I am looking to utilise the DMA controller on the C5510 to perform 
bulk transfers between two peripherals, a Compact Flash card and a USB 
controller chip.

DSPs I have used in the past allow the data transfer flow to/from 
peripherals to be controlled by the DREQ/DACK hardware signals on the 
DSP. However, I cannot seem to see the same flow control available on 
the C5510.

Am I just not looking hard enough, or does this DSP employ a different 
mechanism for DMA flow control ?

Cheers in advance for any response.

Scottie

______________________________
New Year Gift for Members of DSPRelated.com.  Details here.


(You need to be a member of c55x -- send a blank email to c55x-subscribe@yahoogroups.com )

Re: C5510 DMA Flow Control (DREQ/DACK) - Dileepan C - Apr 21 10:30:13 2006

hi Scottie,

There is an on-chip dma controller for c5510.
This is user programmable to transfer data between an
external  device(that is interfaced to dsp through
EMIF) and the internal memory. 
Refer the following docs for details:
DMA refernce guide:
http://focus.ti.com/lit/ug/spru587d/spru587d.pdf
emif reference guide:
http://focus.ti.com/lit/ug/spru590/spru590.pdf

There are no external hardware pins analogous to
DREQ/DACK in c5510dsp chip.

regards,
Dileepan.
--- smiffoz <s...@yahoo.co.uk> wrote:

> Hi all,
> 
> I'm new to this usergroup, so please forgive any
> break from etiquette.
> 
> I am looking to utilise the DMA controller on the
> C5510 to perform 
> bulk transfers between two peripherals, a Compact
> Flash card and a USB 
> controller chip.
> 
> DSPs I have used in the past allow the data transfer
> flow to/from 
> peripherals to be controlled by the DREQ/DACK
> hardware signals on the 
> DSP. However, I cannot seem to see the same flow
> control available on 
> the C5510.
> 
> Am I just not looking hard enough, or does this DSP
> employ a different 
> mechanism for DMA flow control ?
> 
> Cheers in advance for any response.
> 
> Scottie
__________________________________________________

______________________________
New Year Gift for Members of DSPRelated.com.  Details here.


(You need to be a member of c55x -- send a blank email to c55x-subscribe@yahoogroups.com )

Re: C5510 DMA Flow Control (DREQ/DACK) - smiffoz - Apr 24 7:09:58 2006

Hi Dileepan,

Thanks for the response.

On investigating these documents, I noticed that DMA Channel Control 
Register (DMACCR) can be used to specify a sync event e.g. An IRQ 
line, etc. Can this be used to control the transfer flow ?

I am concerned that my external device has a small FIFO buffer and, 
if the 5510 offers no hardware control pins for DMA tranfers, how do 
I stop it writing to the FIFO on the external device when it is 
full ?

Cheers,

Scott

--- In c...@yahoogroups.com, Dileepan C <dileepan_c@...> wrote:
>
> hi Scottie,
> 
> There is an on-chip dma controller for c5510.
> This is user programmable to transfer data between an
> external  device(that is interfaced to dsp through
> EMIF) and the internal memory. 
> Refer the following docs for details:
> DMA refernce guide:
> http://focus.ti.com/lit/ug/spru587d/spru587d.pdf
> emif reference guide:
> http://focus.ti.com/lit/ug/spru590/spru590.pdf
> 
> There are no external hardware pins analogous to
> DREQ/DACK in c5510dsp chip.
> 
> regards,
> Dileepan.
> --- smiffoz <smiffoz@...> wrote:
> 
> > Hi all,
> > 
> > I'm new to this usergroup, so please forgive any
> > break from etiquette.
> > 
> > I am looking to utilise the DMA controller on the
> > C5510 to perform 
> > bulk transfers between two peripherals, a Compact
> > Flash card and a USB 
> > controller chip.
> > 
> > DSPs I have used in the past allow the data transfer
> > flow to/from 
> > peripherals to be controlled by the DREQ/DACK
> > hardware signals on the 
> > DSP. However, I cannot seem to see the same flow
> > control available on 
> > the C5510.
> > 
> > Am I just not looking hard enough, or does this DSP
> > employ a different 
> > mechanism for DMA flow control ?
> > 
> > Cheers in advance for any response.
> > 
> > Scottie

______________________________
New Year Gift for Members of DSPRelated.com.  Details here.


(You need to be a member of c55x -- send a blank email to c55x-subscribe@yahoogroups.com )

Re: Re: C5510 DMA Flow Control (DREQ/DACK) - Jeff Brower - Apr 24 10:57:14 2006

Scott-

> On investigating these documents, I noticed that DMA Channel Control
> Register (DMACCR) can be used to specify a sync event e.g. An IRQ
> line, etc. Can this be used to control the transfer flow ?

Yes.

> I am concerned that my external device has a small FIFO buffer and,
> if the 5510 offers no hardware control pins for DMA tranfers, how do
> I stop it writing to the FIFO on the external device when it is
> full ?

One way is if you connect your peripheral to the C5510 memory interface
(EMIF) as an asynchronous device.  Then you can use ARDY signal to allow
your device to indicate to the C5510 when ready, and if not (busy) then
the C5510 will wait.  DMA transfers between internal C55x memory and EMIF
locations used by your peripheral will take this into account.

This method is only good if your peripheral has a typical parallel "memory
style" interface with R/W line, chip-enable, etc.

-Jeff

> --- In c...@yahoogroups.com, Dileepan C <dileepan_c@...> wrote:
>>
>> hi Scottie,
>>
>> There is an on-chip dma controller for c5510.
>> This is user programmable to transfer data between an
>> external  device(that is interfaced to dsp through
>> EMIF) and the internal memory.
>> Refer the following docs for details:
>> DMA refernce guide:
>> http://focus.ti.com/lit/ug/spru587d/spru587d.pdf
>> emif reference guide:
>> http://focus.ti.com/lit/ug/spru590/spru590.pdf
>>
>> There are no external hardware pins analogous to
>> DREQ/DACK in c5510dsp chip.
>>
>> regards,
>> Dileepan.
>> --- smiffoz <smiffoz@...> wrote:
>>
>> > Hi all,
>> >
>> > I'm new to this usergroup, so please forgive any
>> > break from etiquette.
>> >
>> > I am looking to utilise the DMA controller on the
>> > C5510 to perform
>> > bulk transfers between two peripherals, a Compact
>> > Flash card and a USB
>> > controller chip.
>> >
>> > DSPs I have used in the past allow the data transfer
>> > flow to/from
>> > peripherals to be controlled by the DREQ/DACK
>> > hardware signals on the
>> > DSP. However, I cannot seem to see the same flow
>> > control available on
>> > the C5510.
>> >
>> > Am I just not looking hard enough, or does this DSP
>> > employ a different
>> > mechanism for DMA flow control ?
>> >
>> > Cheers in advance for any response.
>> >
>> > Scottie

______________________________
New Year Gift for Members of DSPRelated.com.  Details here.


(You need to be a member of c55x -- send a blank email to c55x-subscribe@yahoogroups.com )

Re: C5510 DMA Flow Control (DREQ/DACK) - smiffoz - Apr 26 8:50:07 2006

Jeff,

Thanks for the advice, the ARDY signal will come in very useful in 
future. However, for my current system, I wish to perform DMA's 
between two peripherals on the EMIF, both of which have signals to 
indicate their FIFO statusand , as there is only a single ARDY 
signal, I don't think it would work for this particular system.

Going back to the DMA Channel sync event, if I specify that INT5 for 
example, should be used to sync a particular DMA transfer - does 
that mean the DMA channel will check the status of the INT5 signal 
before prior to every read/write transaction ? Or will it only check 
the status once at the start and then perform the entire data 
transfer ?

Also, if the DMA is synced to INT5, would I still have to service 
INT5 normally or, if I masked it, would the DMA channel still 
respond to it status ?

Thanks again for your help,

Scottie

--- In c...@yahoogroups.com, "Jeff Brower" <jbrower@...> wrote:
>
> Scott-
> 
> > On investigating these documents, I noticed that DMA Channel 
Control
> > Register (DMACCR) can be used to specify a sync event e.g. An IRQ
> > line, etc. Can this be used to control the transfer flow ?
> 
> Yes.
> 
> > I am concerned that my external device has a small FIFO buffer 
and,
> > if the 5510 offers no hardware control pins for DMA tranfers, 
how do
> > I stop it writing to the FIFO on the external device when it is
> > full ?
> 
> One way is if you connect your peripheral to the C5510 memory 
interface
> (EMIF) as an asynchronous device.  Then you can use ARDY signal to 
allow
> your device to indicate to the C5510 when ready, and if not (busy) 
then
> the C5510 will wait.  DMA transfers between internal C55x memory 
and EMIF
> locations used by your peripheral will take this into account.
> 
> This method is only good if your peripheral has a typical 
parallel "memory
> style" interface with R/W line, chip-enable, etc.
> 
> -Jeff
> 
> > --- In c...@yahoogroups.com, Dileepan C <dileepan_c@> wrote:
> >>
> >> hi Scottie,
> >>
> >> There is an on-chip dma controller for c5510.
> >> This is user programmable to transfer data between an
> >> external  device(that is interfaced to dsp through
> >> EMIF) and the internal memory.
> >> Refer the following docs for details:
> >> DMA refernce guide:
> >> http://focus.ti.com/lit/ug/spru587d/spru587d.pdf
> >> emif reference guide:
> >> http://focus.ti.com/lit/ug/spru590/spru590.pdf
> >>
> >> There are no external hardware pins analogous to
> >> DREQ/DACK in c5510dsp chip.
> >>
> >> regards,
> >> Dileepan.
> >>
> >>
> >> --- smiffoz <smiffoz@> wrote:
> >>
> >> > Hi all,
> >> >
> >> > I'm new to this usergroup, so please forgive any
> >> > break from etiquette.
> >> >
> >> > I am looking to utilise the DMA controller on the
> >> > C5510 to perform
> >> > bulk transfers between two peripherals, a Compact
> >> > Flash card and a USB
> >> > controller chip.
> >> >
> >> > DSPs I have used in the past allow the data transfer
> >> > flow to/from
> >> > peripherals to be controlled by the DREQ/DACK
> >> > hardware signals on the
> >> > DSP. However, I cannot seem to see the same flow
> >> > control available on
> >> > the C5510.
> >> >
> >> > Am I just not looking hard enough, or does this DSP
> >> > employ a different
> >> > mechanism for DMA flow control ?
> >> >
> >> > Cheers in advance for any response.
> >> >
> >> > Scottie
>

______________________________
New Year Gift for Members of DSPRelated.com.  Details here.


(You need to be a member of c55x -- send a blank email to c55x-subscribe@yahoogroups.com )

Re: Re: C5510 DMA Flow Control (DREQ/DACK) - Jeff Brower - Apr 26 10:51:24 2006

Scott-

> Thanks for the advice, the ARDY signal will come in very useful in
> future. However, for my current system, I wish to perform DMA's
> between two peripherals on the EMIF, both of which have signals to
> indicate their FIFO statusand , as there is only a single ARDY
> signal, I don't think it would work for this particular system.

You have to AND the RDY signals on your peripherals together.  If either one is low,
then the C55x EMIF will wait.  By definition only one of your peripherals can be
accessed by the EMIF at one time.

> Going back to the DMA Channel sync event, if I specify that INT5 for
> example, should be used to sync a particular DMA transfer - does
> that mean the DMA channel will check the status of the INT5 signal
> before prior to every read/write transaction ? Or will it only check
> the status once at the start and then perform the entire data
> transfer ?
> 
> Also, if the DMA is synced to INT5, would I still have to service
> INT5 normally or, if I masked it, would the DMA channel still
> respond to it status ?

I haven't used external DMA on EMIF for a while -- normally I have just SDRAM and
Flash there, and hook the fast "bursty" peripherals to things like McBSP, UTOPIA,
HPI, etc.  However, I would think that in your case you would use an INTn signal to
tell you when a DMA buffer is completed, and let the EMIF handle peripheral
handshaking the way it was designed -- which means in the case of async devices, use
ARDY.

-Jeff

> --- In c...@yahoogroups.com, "Jeff Brower" <jbrower@...> wrote:
> >
> > Scott-
> >
> > > On investigating these documents, I noticed that DMA Channel
> Control
> > > Register (DMACCR) can be used to specify a sync event e.g. An IRQ
> > > line, etc. Can this be used to control the transfer flow ?
> >
> > Yes.
> >
> > > I am concerned that my external device has a small FIFO buffer
> and,
> > > if the 5510 offers no hardware control pins for DMA tranfers,
> how do
> > > I stop it writing to the FIFO on the external device when it is
> > > full ?
> >
> > One way is if you connect your peripheral to the C5510 memory
> interface
> > (EMIF) as an asynchronous device.  Then you can use ARDY signal to
> allow
> > your device to indicate to the C5510 when ready, and if not (busy)
> then
> > the C5510 will wait.  DMA transfers between internal C55x memory
> and EMIF
> > locations used by your peripheral will take this into account.
> >
> > This method is only good if your peripheral has a typical
> parallel "memory
> > style" interface with R/W line, chip-enable, etc.
> >
> > -Jeff
> >
> > > --- In c...@yahoogroups.com, Dileepan C <dileepan_c@> wrote:
> > >>
> > >> hi Scottie,
> > >>
> > >> There is an on-chip dma controller for c5510.
> > >> This is user programmable to transfer data between an
> > >> external  device(that is interfaced to dsp through
> > >> EMIF) and the internal memory.
> > >> Refer the following docs for details:
> > >> DMA refernce guide:
> > >> http://focus.ti.com/lit/ug/spru587d/spru587d.pdf
> > >> emif reference guide:
> > >> http://focus.ti.com/lit/ug/spru590/spru590.pdf
> > >>
> > >> There are no external hardware pins analogous to
> > >> DREQ/DACK in c5510dsp chip.
> > >>
> > >> regards,
> > >> Dileepan.
> > >>
> > >>
> > >> --- smiffoz <smiffoz@> wrote:
> > >>
> > >> > Hi all,
> > >> >
> > >> > I'm new to this usergroup, so please forgive any
> > >> > break from etiquette.
> > >> >
> > >> > I am looking to utilise the DMA controller on the
> > >> > C5510 to perform
> > >> > bulk transfers between two peripherals, a Compact
> > >> > Flash card and a USB
> > >> > controller chip.
> > >> >
> > >> > DSPs I have used in the past allow the data transfer
> > >> > flow to/from
> > >> > peripherals to be controlled by the DREQ/DACK
> > >> > hardware signals on the
> > >> > DSP. However, I cannot seem to see the same flow
> > >> > control available on
> > >> > the C5510.
> > >> >
> > >> > Am I just not looking hard enough, or does this DSP
> > >> > employ a different
> > >> > mechanism for DMA flow control ?
> > >> >
> > >> > Cheers in advance for any response.
> > >> >
> > >> > Scottie
> >

______________________________
New Year Gift for Members of DSPRelated.com.  Details here.


(You need to be a member of c55x -- send a blank email to c55x-subscribe@yahoogroups.com )

Re: Re: C5510 DMA Flow Control (DREQ/DACK) - Scott Smith - Apr 27 6:56:19 2006

Jeff,
   
  Thanks again for your help. AND'ing the RDY signals would work apart from one particular
instance I can think of.
   
  For example, if I am reading from one device (RP) using its 'Data Ready' signal and writing
to another device (WP), using its 'Ready to RX' signal, the data transfer should work well up
until the point where RP spits out its last few bytes and de-asserts 'Data Ready'. This would
cause the EMIFs ARDY to be de-asserted, which could possibly prevent the last few bytes being
written to WP, even although its asserting 'Ready to RX'. Does that hold true ?
   
  You mentioned that you sometimes hang peripherals of the HPI, as I've only ever used a Host
Port in the past to connect to a host processor, I've never considered this an option.
   
  I'm trying to configure a system where I store data on a CompactFlash card and at a later
date, I want to read this data from Compact Flash and upload it to a PC via a USB Peripheral
Controller, using the DMA controller.
   
  I initially envisaged hanging both the Compact Flash and USB Peripheral Controller off of the
C55x EMIF, but maybe I should start looking at the HPI. Do you think it would lend itself well
to such peripherals ?
   
  Cheers again,
   
  Scottie

Jeff Brower <jbrower@xxx> wrote:
  Scott-

> Thanks for the advice, the ARDY signal will come in very useful in
> future. However, for my current system, I wish to perform DMA's
> between two peripherals on the EMIF, both of which have signals to
> indicate their FIFO statusand , as there is only a single ARDY
> signal, I don't think it would work for this particular system.

You have to AND the RDY signals on your peripherals together. If either one is low,
then the C55x EMIF will wait. By definition only one of your peripherals can be
accessed by the EMIF at one time.

> Going back to the DMA Channel sync event, if I specify that INT5 for
> example, should be used to sync a particular DMA transfer - does
> that mean the DMA channel will check the status of the INT5 signal
> before prior to every read/write transaction ? Or will it only check
> the status once at the start and then perform the entire data
> transfer ?
> 
> Also, if the DMA is synced to INT5, would I still have to service
> INT5 normally or, if I masked it, would the DMA channel still
> respond to it status ?

I haven't used external DMA on EMIF for a while -- normally I have just SDRAM and
Flash there, and hook the fast "bursty" peripherals to things like McBSP, UTOPIA,
HPI, etc. However, I would think that in your case you would use an INTn signal to
tell you when a DMA buffer is completed, and let the EMIF handle peripheral
handshaking the way it was designed -- which means in the case of async devices, use
ARDY.

-Jeff

______________________________
New Year Gift for Members of DSPRelated.com.  Details here.


(You need to be a member of c55x -- send a blank email to c55x-subscribe@yahoogroups.com )

Re: Re: C5510 DMA Flow Control (DREQ/DACK) - Jeff Brower - Apr 27 11:04:21 2006

Scott-

>   Thanks again for your help. AND'ing the RDY signals would work apart
> from one particular instance I can think of.
>
>   For example, if I am reading from one device (RP) using its 'Data
> Ready'
> signal and writing to another device (WP), using its 'Ready to RX'
> signal, the data transfer should work well up until the point where RP
> spits out its last few bytes and de-asserts 'Data Ready'. This would
> cause the EMIFs ARDY to be de-asserted, which could possibly prevent the
> last few bytes being written to WP, even although its asserting 'Ready
> to RX'. Does that hold true ?

Hmmm... maybe I'm not understanding something.  Are you trying to get
peripherals to talk to *each other* and *also* talk to the C55x EMIF?  If
so that's a different ballgame.  In that case you need HOLD/HOLDA to allow
peripherals to request the EMIF bus for some time for their own purposes.

If not, then AND'ing RDY signals should be sufficient because your DSP
code "knows" what to expect -- it initiates transfers between with each
peripheral (based on interrupt for RP), so it knows how many words are
needed before it starts something with another peripheral.

>   You mentioned that you sometimes hang peripherals of the HPI, as I've
> only ever used a Host Port in the past to connect to a host processor,
> I've never considered this an option.

HPI is strictly a 'slave' peripheral -- external devices control both
read/write transfers.  What we've done before is hook up DMA controllers,
for example FPGA logic, that can be started at DSP code request (via
interrupt).  The DMA controller reads a pre-defined DSP memory area to
learn the transfer parameters specified the requesting DSP, then uses HPI
to move the data.  Multiple DSPs and multiple peripherals can transfer
data this way.

-Jeff

>   I'm trying to configure a system where I store data on a CompactFlash
> card and at a later date, I want to read this data from Compact Flash
> and upload it to a PC via a USB Peripheral Controller, using the DMA
> controller.
>
>   I initially envisaged hanging both the Compact Flash and USB Peripheral
> Controller off of the C55x EMIF, but maybe I should start looking at the
> HPI. Do you think it would lend itself well to such peripherals ?
>
>   Cheers again,
>
>   Scottie
>
> Jeff Brower <jbrower@xxx> wrote:
>   Scott-
>
>> Thanks for the advice, the ARDY signal will come in very useful in
>> future. However, for my current system, I wish to perform DMA's
>> between two peripherals on the EMIF, both of which have signals to
>> indicate their FIFO statusand , as there is only a single ARDY
>> signal, I don't think it would work for this particular system.
>
> You have to AND the RDY signals on your peripherals together. If either
> one is low,
> then the C55x EMIF will wait. By definition only one of your peripherals
> can be
> accessed by the EMIF at one time.
>
>> Going back to the DMA Channel sync event, if I specify that INT5 for
>> example, should be used to sync a particular DMA transfer - does
>> that mean the DMA channel will check the status of the INT5 signal
>> before prior to every read/write transaction ? Or will it only check
>> the status once at the start and then perform the entire data
>> transfer ?
>>
>> Also, if the DMA is synced to INT5, would I still have to service
>> INT5 normally or, if I masked it, would the DMA channel still
>> respond to it status ?
>
> I haven't used external DMA on EMIF for a while -- normally I have just
> SDRAM and
> Flash there, and hook the fast "bursty" peripherals to things like McBSP,
> UTOPIA,
> HPI, etc. However, I would think that in your case you would use an INTn
> signal to
> tell you when a DMA buffer is completed, and let the EMIF handle
> peripheral
> handshaking the way it was designed -- which means in the case of async
> devices, use
> ARDY.
>
> -Jeff

______________________________
New Year Gift for Members of DSPRelated.com.  Details here.


(You need to be a member of c55x -- send a blank email to c55x-subscribe@yahoogroups.com )