Platform: ADSP-TS101S EZ-KIT lite REV 1.3 / VisualDSP++ 2.0 Problem: DMA & LINK PORTs I have to do some data transfer from one platform (EZ-KIT) to another one. The easiest way to do that is through the link ports, but I have a problem. DSP-B of the transmitting platform generates 32 words and stores them in internal memory, then sets up a chained DMA transfer from internal memory to LINK PORT 0. TCB is chained to itself, obtaining an infinite loop (transmits 32 words, then another 32 words and so on...) : chained_LP0_TX.DP = TCB_INTMEM | TCB_QUAD | TCB_CHAINPTRM2 | TCB_CHAIN | TCB_DMA4DEST | (((long)(&chained_LP0_TX) >> 2) & 0x7fff); The problem arises with the receiving platform (EZ-KIT) : second platform has to receive 256 consecutive word from LINK PORT 0 (DSP-A) and transfer them into SDRAM. Words are taken from the "infinite" stream of data generated by the other platform. Platforms are connected throug link port cable (I use the one indicated on analog site; part number : ADDS-LPCAB-30); link port speed set to CCLK/8. Well, I set up TCB (of the receiver) for a single 256-word DMA transfer and all seemed to be ok. Now, assume that the transmitter is running : - If I connect link port cable BEFORE starting the receiver ("Debug" - > "Run" on VisualDSP), then NO data is received. DMA control register (receiving platform) indicates "DMA transfer in progress", so there's not an error condition. - If I connect link port cable AFTER the receiver is started, then transfer is successfully completed. Have you any suggestion ? Marco Albertini PS: I did same question to Analog's DSP Support, but I'm still waiting for an answer. |
|
prob: TS101S - DMA - LINK PORT
Started by ●October 31, 2003
Reply by ●October 31, 20032003-10-31
On Fri, 31 Oct 2003, albert89k wrote: > Words are taken from the "infinite" stream of data generated by the > other platform. Platforms are connected throug link port cable (I use > the one indicated on analog site; part number : ADDS-LPCAB-30); link > port speed set to CCLK/8. > > Well, I set up TCB (of the receiver) for a single 256-word DMA > transfer and all seemed to be ok. Now, assume that the transmitter is > running : > > - If I connect link port cable BEFORE starting the receiver ("Debug" - > > "Run" on VisualDSP), then NO data is received. DMA control register > (receiving platform) indicates "DMA transfer in progress", so there's > not an error condition. > > - If I connect link port cable AFTER the receiver is started, then > transfer is successfully completed. > > Have you any suggestion ? Try starting the receiver before the transmitter with the cable already connected. It sounds like you are starting the transmitter, so the dma controller is seeing it's lines toggle but it hasn't been programmed yet. What other kind of handshake can you do so the transmitter can know when the receiver is ready? Patience, persistence, truth, Dr. mike |
|
Reply by ●November 5, 20032003-11-05
> > - If I connect link port cable BEFORE starting the receiver ("Debug" - > > > "Run" on VisualDSP), then NO data is received. DMA control register > > (receiving platform) indicates "DMA transfer in progress", so there's > > not an error condition. > > > > - If I connect link port cable AFTER the receiver is started, then > > transfer is successfully completed. > Try starting the receiver before the transmitter with the cable already > connected. It sounds like you are starting the transmitter, so the > dma controller is seeing it's lines toggle but it hasn't been programmed yet. > What other kind of handshake can you do so the transmitter can > know when the receiver is ready? > In my project, transmitter can't know when the receiver is ready. Transmitter provides a continous data stream ( like broadcast telecommunications ;) ), then TX ever starts before receiver. Receiver does not have to take ALL data from transmitter, it needs only 256 words in-a-row and it should start only when it needs those 256 words. |