• 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 » Preparing a working project to program into EEPROM
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
  • Preparing a working project to program into EEPROM

    Preparing a working project to program into EEPROM

    This question is answered
    Antony Barton
    Posted by Antony Barton
    on Aug 02 2011 09:52 AM
    Intellectual480 points

    Hi everyone,

    I currently have a fully working project which runs both with the evm5515.gel and with a target configuration with no gel file provided. I set up the PLL in the beginning of my main function (as I need to anyway) and have made no other changes.

    When I try to create a boot image from the .out file produced and then program it onto the EEPROM, it does not work (as covered in another thread, here http://e2e.ti.com/support/dsp/tms320c5000_power-efficient_dsps/f/109/t/125439.aspx).

    Is there anything that I might have missed or have done incorrectly?

    Many thanks,

    Antony

    Edit: I have just checked again and the project does not seem to work with the no-gel file target configuration, I think I may have loaded the other target configuration first to test and then this left everything as it needed to be when I loaded the other.

    I have now added the following lines which seem to get it to work with no gel file intermittently, It as worked once, but now the hwafft function I call in the code seems to return all zeros (that is it actually sets the output vectors to zeros rather than simply doing nothing).

    SYS_PCGCR1 = 0x0000;
    SYS_PCGCR2 = 0x0000;
       
    PER_RSTCOUNT = 0x08;
    PER_RESET = 0x00fb;   
    for (i=0; i< 200; i++);

    IDLE_ICR = 0x000E; 

    EDIT 2: If I 'reset CPU' from the control panel before I load the code, the hwafft function seems to work once again. What is it changing that needs to be changed?

     

    Any ideas?

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    All Replies
    • Steve Tsang
      Posted by Steve Tsang
      on Aug 02 2011 11:00 AM
      Genius12645 points

      Edit 2 indicates that there is/are bit/bits not getting cleared.

      Regards.

      -------------------------------------------------------------------------------------------------------

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

      --------------------------------------------------------------------------------------------------------

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Antony Barton
      Posted by Antony Barton
      on Aug 02 2011 11:12 AM
      Intellectual480 points

      Can you think of any that would cause the hwafft to return only zeros?

      Also, I have just got the program to load onto the NOR flash with everything functioning besides the hwafft.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Antony Barton
      Posted by Antony Barton
      on Aug 02 2011 11:49 AM
      Intellectual480 points

      I have scoured the TMS3320C5515 DSP System user's guide and I haven't found anything besides ISTR which defaults to the right values, and the setting of which does not fix my problem. Is there somewhere else I should be looking?

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Antony Barton
      Posted by Antony Barton
      on Aug 02 2011 12:45 PM
      Intellectual480 points

      I also notice that when I try to look at the registers tab in CCS4 the values seem not to be accurate as they indicate peripherals are disabled when they are in fact working, etc. so it makes it hard to observe bits to know what they are at certain times...

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Antony Barton
      Posted by Antony Barton
      on Aug 03 2011 07:16 AM
      Intellectual480 points

      I wonder if anyone could help me with this as it is standing between me and being able to help my demonstration go well (standalone is always more impressive than seeing something attached to a mass of debugging equipment).

      Everything works perfectly (I2S, LCD, etc.) but the hwafft is returning all zeros. I'm using DSP/BIOS and my startup code at the top of my main function is more or less as follows:

      // PLL set up from RTC
      // bypass PLL
      CONFIG_MSW = 0x0;

      PLL_CNTL2 = 0x8000;
      PLL_CNTL4 = 0x0000;
      PLL_CNTL3 = 0x0806;
      PLL_CNTL1 = 0x87CC;
      while ( (PLL_CNTL3 & 0x0008) == 0);
      // Switch to PLL clk
      CONFIG_MSW = 0x1;
         
      SYS_PCGCR1 = 0x0020;  // Have also tried 0x0000.
      SYS_PCGCR2 = 0x0000;
         
         
      PER_RSTCOUNT = 0x08;
      PER_RESET = 0x00fb;   
      for (i=0; i< 200; i++);

      IDLE_ICR = 0x000E;
      ST0_55 = 0x00;

      Have I missed anything obvious? My code works fine if i load up a target configuration with no gel file IF I reset the cpu, first, but otherwise it will just return zeros.

      Any help would be greatly appreciated!

      Antony

       

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Antony Barton
      Posted by Antony Barton
      on Aug 09 2011 06:06 AM
      Intellectual480 points

      Is there anyone I can talk to that can help me work this out? I still have had no luck, and basically no response here apart from the obvious...

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Antony Barton
      Posted by Antony Barton
      on Aug 18 2011 06:22 AM
      Intellectual480 points

      Can someone please let me know why I am not being helped with this problem and am simply being ignored? 

      I really have tried everything I can think of, and I cannot find anyone else reporting that they have had the same problem so that I can learn more about it...

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Steve Tsang
      Posted by Steve Tsang
      on Aug 22 2011 16:06 PM
      Genius12645 points

      Antony,

      I am trying to help. I have gone through the whole process of getting the files from this release link: http://processors.wiki.ti.com/index.php/File:5515evm.zip

      I created a test to blink the XF D2 led on the EVM. I uesd the programmer_C5515_EVM.out to first program the cleaner.bin file; and then program my own xf_blink.bin file. It works on my EVM to blink the XF led 4 times per interval. I have attached the xf_blink.bin for you to confirm your setup is wroking to isolate your issue. Also be sure to use the GEL file in the release link to set PLL to 12MHz before running the programmer.

      Good luck.

      Steve1680.xf_blink.bin

      -------------------------------------------------------------------------------------------------------

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

      --------------------------------------------------------------------------------------------------------

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Antony Barton
      Posted by Antony Barton
      on Aug 24 2011 10:00 AM
      Intellectual480 points

      Hi Steve,

      Thanks for the response.

      I have tried loading the LED program and it functions properly. The program I am trying to load also functions properly, too, aside from the FFT function which is simply returning zeros - the I2S interrupts operate properly bringing data in, filling buffers and transporting data out, and the LCD code also functions properly (tested independantly, as it has nothing to show but a red line when the HWAFFT gives out zeros).

      This problem does not occur, either when a gel file is used,

      or

      if I perform a cpu reset when connecting to the board before loading the program when a gel file is not used.

      edit - by loading in the above line only i mean running the program via the debugger.

      I have checked through the gel file and anything that I am not doing in my code exists in my code besides the cpu reset - is this something I can/need to put in my code, or is there something that the cpu reset changes that wouldnt normally be reset once the bootloader has completed?

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Steve Tsang
      Posted by Steve Tsang
      on Aug 24 2011 10:16 AM
      Genius12645 points

      Antony,

      This is good info.

      For sure we don't want to use a gel file when boot load a code. So leave this alone.

      Let's focus on second one. The ROM bootloader programs configuration registers during operation and leaves it as it when done. So, I would recommend try adding the cpu reset in your code.

      Regards.

      -------------------------------------------------------------------------------------------------------

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

      --------------------------------------------------------------------------------------------------------

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Antony Barton
      Posted by Antony Barton
      on Aug 24 2011 10:18 AM
      Intellectual480 points

      Would a cpu reset be disruptive when using DSP/BIOS?

      I also need to research how to actually do a cpu reset in code, as I'm fairly certain that inserting "asm("   RESET");" at the top of my main function wont work (surely it will keep resetting, so how can i get it to do it only once?)...

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Antony Barton
      Posted by Antony Barton
      on Aug 25 2011 09:09 AM
      Verified Answer
      Verified by Anonymous
      Intellectual480 points

      OK, I have finally managed to solve my problem and it turns out I wasnt setting the Idle registers properly... To set them properly (everything enabled) I inserted the following lines at the top of my main function (first line was already present):

       IDLE_ICR = 0x000E;
       asm(" nop_16");
       asm(" nop_16");
       asm(" nop_16");
       asm(" nop_16");
       asm(" nop_16");
       asm(" nop_16");
       asm(" idle");

       

      After doing this my code works perfectly.

      Thanks for the time and support.

       

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • dilip kumar
      Posted by dilip kumar
      on Aug 19 2012 10:57 AM
      Prodigy110 points

      Hi Antony,

      I am trying to Flash my eZDSP C5515 and am facing some issues. My code has SPI and UART communications with other MSPs. It works perfectly when i run from CCS but when i flash , it works for sometime and stops. I have included the PLL clock initialization , peripheral reset and the Idle registers initialization in my main function. Please provide any suggestions . I have been stuck with this issue for quite sometime.

      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