• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Digital Signal Processors (DSP) » C5000 Ultra Low Power DSP » C5000 Ultra Low Power DSP Forum » 5509a DMA Destination address
Share
C5000 Ultra Low Power DSP
  • Forum
  • Announcements
Options
  • Subscribe via RSS
Top 6 Wiki Links
  • C5000 Main Wiki
  • C5000 Software
  • C5515 Boot-Image Programmer
  • CSL (including CSL 3.00)
  • C5000 Connected Audio Framework
  • Porting C5000 Teaching ROM to C5535 eZdsp
  • 5509a DMA Destination address

    5509a DMA Destination address

    This question is answered
    ami adam
    Posted by ami adam
    on Aug 01 2012 04:52 AM
    Intellectual470 points

    I am using DMA with EMIF, to receive data from a FPGA. In case my buff is full I would like to know where the destination address is pointing to.

    How can I read the current destination address?

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    All Replies
    • Pankaj_j
      Posted by Pankaj_j
      on Aug 12 2012 10:00 AM
      Prodigy190 points

      Look for followings

      Source Address Counter (DMACSAC) and Destination Address Counter (DMACDAC)

      Pankaj

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • ami adam
      Posted by ami adam
      on Aug 14 2012 06:29 AM
      Intellectual470 points

      Thank you!
      at first it did not work because our dsp was configured to 5509 instead of 5509a.
      (DMACSAC and DMACDAC are not supported in the first).
      the dma transfer 1 element - 16 bit, at a time. starting at address 0x08000.
      the buffer size is 0xFFFF.
      I have tried using the DMACDAC with the fallowing code:
      Uint16 dma_addr = DMA_RGETH (hDMA1, DMACDAC);
      by now a follow the pointer by initializing the buffer.
      I do not seem to know how to match the returned value dma_addr to my own results.
      what am is missing?
      is there any code example i can see?

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Pankaj_j
      Posted by Pankaj_j
      on Aug 14 2012 19:31 PM
      Prodigy190 points

      I would recommend to monitor working registers of used DMA channel while debugging.

      I'm not sure if for 5509a support is provided to view peripheral registers. If its not use memory browser from View > Memory Browser

      and monitor relevant DMA channel's source/ destination address OR Source/Destination Address Counter (find address of these Reg in IO space).

      Also might be good idea to monitor Reg updates of these registers while single stepping in debug environment until "DMA_start(hDma);" statement.

      BTW you can find some DMA examples in "\C55xxCSL\examples\c5502\csl\dma"

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • ami adam
      Posted by ami adam
      on Aug 16 2012 03:36 AM
      Intellectual470 points

      Thanks again.
      With debugging over and over I noticed:
      1. the DMACDAC increases by 2. (which means the DMACDAC points to a byte).
      2. the DMACDAC skips from 0x4000 to 0xC000. any idea why this happens ?

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Pankaj_j
      Posted by Pankaj_j
      on Aug 16 2012 13:39 PM
      Prodigy190 points

      Have look in "Synchronizing Channel Activity .." section in DMA ref guide.

      It mentions Non-event driven/event driven ports. In one of case DMA controller fills(read from source) its buffer before sync event and writes to destination on event. This is why address gets skipped while  DMA controller caches bytes from source.

      This can be cross checked by lowering no elements (e.g. 4-5 elements), on debug you would see both addresses will skip at same pace.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • ami adam
      Posted by ami adam
      on Aug 29 2012 02:29 AM
      Verified Answer
      Verified by ami adam
      Intellectual470 points

      I have transferred one element at a time and still had the 'skipping' problem.

      for the time being I reduced buffer size to 0x3FFF and that solved my problems..

      Thanks.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    TI E2E™ Community
    • Support Forums
    • Blogs
    • Videos
    • Groups
    • Site Support & Feedback
    • Settings
    TI E2E™ Community Groups
    • TI University Program
    • Make the Switch
    • Microcontroller Projects
    • Motor Drive & Control
    Other Communities
    • Deyisupport
    • Designsomething.org
    • beagleboard.org
    • TI on Element 14
    • TI on TechXchangeSM
    Other Technical & Support Resources
    • WEBENCH® Design Center
    • Product Information Centers
    • Technical Documents
    • TI Design Network
    • TI Technical Articles
    • TI Training

    All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

    Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

    Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
    TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

    TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
    embedded processors, along with software, tools and the industry’s largest sales/support staff.

    © Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
    Trademarks | Privacy Policy | Terms of Use