• 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 » ezdspC5535 used as audio effects processor
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
  • Forums

    ezdspC5535 used as audio effects processor

    This question is answered
    michael swanson
    Posted by michael swanson
    on Jan 31 2012 16:01 PM
    Prodigy100 points

    My partner and I are trying to use the ezdspC5535 as an audio effects processor intended for use by musical instruments for our senior project in electrical engineering at the University of Vermont.  We want to use this device for real-time playback of effected audio signals.  We would like to input the signals through the stereo input jack J3 and output them through the stereo output jack J4.  Upon reviewing the documentation associated with the connected audio framework we have come to understand that for real-time playback of audio the signals go through the micro USB port J1.  We want to know if it is possible to change the path from which we input signals for real-time playback.  Ultimately we want to insert our own filter algorithms into the playback path, but we would like our input to be directly from the instrument itself via an 1/8th inch jack not the USB.

    Any advice or help would be greatly appreciated.

    Mike & Mike

    DSPLib USB sample code eZdsp CCS4 DSP Code Composer Studio C5535 eZdsp C5535 playback
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    All Replies
    • Mark Mckeown
      Posted by Mark Mckeown
      on Apr 26 2012 16:02 PM
      Genius10200 points

      Hi Mike & Mike,

      If I2C works for one but not both, you might be running out of clock cycles to complete all processing with enough headroom to read and write from the I2S registers at 48KHz.

      Try to increase the PLL frequency.

          /* Initialize PLL */
          pll_frequency_setup(60); // can go up to 120 MHz

      Measure the frequency of your foreground while loop to see that it matches the sampling frequency of the codec (48KHz probably)

      You can probe XF pin with an O-scope, and use bset and bclr to toggle it. (see code below)

      If the while loop frequency is below 48KHz, then you are dropping samples from I2S, which would cause audio distortion.

      I have been able to reproduce audio distortion due to missed samples at various PLL frequencies with enough "processing delay" (for loop of NOPs)

           while(1)
           {
              //insert "processing delay"
              for(j=0;j<1000;j++)
              {
                  asm(" nop");
              }
              
               //XF on at beginning of codec read
               asm(" bset XF");
               aic3204_codec_read(&left_input, &right_input); // Configured for one interrupt per two channels.
            
               aic3204_codec_write(left_input, right_input);
               //XF off at end of codec write
               //Freq of XF should be 48KHz if enouch cycles are provided to complete "processing" delay and poll I2S in time to avoid missing samples
               asm(" bclr XF");
           }

      Hope this helps,
      Mark

      ---------------------------------------------------------------------------------------------------------
      Please click the Verify Answer button on this post if it answers your question.

      Also see our C5000 Wiki
      ---------------------------------------------------------------------------------------------------------

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • michael swanson
      Posted by michael swanson
      on Apr 27 2012 12:13 PM
      Prodigy100 points

      where is the xf pin?

      thanks

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • michael swanson
      Posted by michael swanson
      on Apr 27 2012 13:32 PM
      Prodigy100 points

      We have attempted to change the PLL clock, but it appears we need it to be even faster than the maximum value.  We also attempted to change the i2c clock to be faster aswell, and have heard some promising results but nothing near what the audio should sound like.  Any help you can provide would be great.  We have been working on this issue for awhile and are just stumped.

      Thanks again,


      Mike & Mike

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Mark Mckeown
      Posted by Mark Mckeown
      on Apr 27 2012 17:13 PM
      Genius10200 points

      Hi Mike & Mike,

      michael swanson
      where is the xf pin?

      You can probe the XF pin where it connects to the XF LED next to the mini-USB connector on the C5535 eZdsp.

      With the software written to poll the I2S registers audio samples are ready, you should see that the loop executes with a frequency of 48KHz.

      There are more efficient ways than polling to read audio samples - interrupt when I2S registers are filled, DMA to copy blocks of I2S samples at a time, even DSP/BIOS RTOS to switch between multiple tasks...

      You might also study Chapter 18 - Assembly language - the PPT Slide 10 for this chapter (Sampling Rate 48000 Hz) has some good info and instructions for profiling your software.

      Are you able to use an oscilloscope and toggle the XF pin to see where your software is spending all of its time?

      Does your software read from the mTouch every loop iteration?

      Regards,
      Mark

      ---------------------------------------------------------------------------------------------------------
      Please click the Verify Answer button on this post if it answers your question.

      Also see our C5000 Wiki
      ---------------------------------------------------------------------------------------------------------

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Andrew Thompson
      Posted by Andrew Thompson
      on May 04 2012 00:25 AM
      Prodigy10 points

      Hello Mike,

      I have been trying to get the ROM Port working but I'm still having issues. I have followed the wiki page to the t and have been searching all over the forums but haven't seen anything relating to the problem I'm experiencing.

      When trying to compile FIR chapter 6 for example, the code compiles (using the adapted files for porting) however when I go to debug and run the program it is stuck at the pll_frequency_setup() function and it never reaches the rest of the lab. All I'm getting on the display is: 

      PLL frequency 100 MHz
      REGISTER --- CONFIG VALUES

      but nothing further. I've let it sit for minutes at a time but I'm pretty sure it is not supposed to take this long for initialization. Any help would be greatly appreciated!

      Cheers,

      Andrew 

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    12
    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