This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Double buffering example from DSK6416 in CCS 5.5

I have few DSK6416 kits in laboratory. They work fine in CCS 3.1 in Windows XP. But the new computers have only 64-bit Windows 7. CCS 3.1 works fine in that environment, but the usb drivers for the DSK does not work. So I've decided to try run the DSK board with newer CCS.


First I've tried the newest CCSv6. It worked fine with simple programs but the SYS/BIOS didn't worked with 6416. I've installed DSP/BIOS 5.42 but it was not recognized by CCSv6. So I've installed CCSv5.5. It woks fine with DSP/BIOS. And after reading some wiki instuctions I've recteated and run almost all my programs from 3.1. CSL and BSL lokks like working fine. DIP switches. LEDs and AIC23 works in "while programs" and under DSP/BIOS with interrupts. But I can't get working double buffering example (dsk_app).


Automatic importing of an old CCS project was completly unsuccessful. So I've created new amost from scratch. I've connected all required libraris to the new project and I've built DSP/BIOS configuration from the beginning, based on CCS3.1 configuration. Application compiles fine, even without warning, but it doesn't work.


More precisely: Periodic tasks works but the main task doesn't. The breakpint in the edmaHwi procedure is never achieved, so it looks like the interrrupt signal from EDMA Controller never occurs.


When I disabled clearing XmtBuffer in the beggining of the program I've heard some random signal on the headphones. So it looks like data are read directly from the memory by the codec using DMA.


I've attached the entire project from my disk. Maybe someone will find some errors. The project uses BSL from Spectrum Digital site and the lib_3x from CSL package available on TI sites.


BTW: Am I limited in any way using Free License version of CCSv5.5 with DSK6416? We have full licence for CCS 3.1 but the upgrade is not planned for these boards.

dsk_app_v5.zip
  • Hi,

    Thanks for your post.

    In my opinion, it would be better to upgrade CCS to v5.5. with full license since free license would not be liable to use all functionality and it is limited. So, you could try full license of ccsv5.5 with DSK6416.

    Also, it is possible to import an old CCS project like v3.3 .pjt file in CCSv5.x and you can check the option in "project" menu in CCS like "Import Legacy CCSv3.3 project". Kindly check this option to import old legacy CCS projects in new version of CCS.

    Table 24 in the C6416 datasheet below lists the source of C64x EDMA synchronization events associated with each of the programmable EDMA channels.

    http://www.ti.com/lit/ds/symlink/tms320c6416t.pdf

    Each of the EDMA channels has one specific event associated with it and please ensure the association of an event to a specific channel is mapped properly since each event associated with a channel is fixed. These specific events are captured in the EDMA event registers (ERL, ERH) and the priority of each event can be specified independently in the transfer parameters stored in the EDMA parameter RAM. For more detailed information on the EDMA module, please refer c6000 EDMA controller user guide as below:

    http://www.ti.com/lit/ug/spru234c/spru234c.pdf

    In the above guide, please check section 3.5.3 for EDMA channel interrupt pending register (CIPR) where in, you could check the specific EDMA channel interrupt enabled in the code is in pending status or not. Kindly check the status of EDMA channel interrupt in the CIP fields of CIPR register. Also, check whether the corresponding interrupt is enabled in EDMA Channel Interrupt Enable Register (CIER). Kindly check section 3.5.4  for the same in the above guide.

    Thanks & regards,

    Sivaraj K

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

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

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

     

     

  • Hi,

    Also, check the C6416 DSL lib. blocks from the below mathworks link:

    http://www.mathworks.in/help/supportpkg/texasinstrumentsc6000/ug/c6416dskadc.html

    Thanks & regards,

    Sivaraj K

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

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

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

  • Hi,


    About license: It looks like CCSv5.5 Free Licence is available for DSK boards. But anyway: I will be able to request my boss for the the money for new license if I get DSK6416 fully working with the Evaluation version.

    Import: I tried to impord the original 3.1 project first. Without success. After your answer I tried again ... withe the same result as my project created from scratch. It compiled and linked sucessufully. Periodic events working properly. But IRQ from EDMA never occurs.


    Matlab: I've looked at the description but I didn't found anything about EDMA. I've already get working LEDs, DIPs and Codec (talkthru with read/write on codec IRQ) with CCSv5.5. The last problem is the example with PING/PONG buffering.

    And all the rest: I'll try to check all your suggestions and I'll let you know about progess.

    Regards,

    Marcin

  • Hello again :)


    After some analysis of your suggestions I found that CIP and CIE registers are set and working. Communicaton between AIC23 and EDMA worked, but I found that bit 8 in IER is not set. It was set properly in CCSv3.1. The solution was simple. It was necassarry to add:

        /* Initiazlize CSL */
        CSL_init();

    in the main function. The function which sets IER register works and the whole application works too :)


    I'm not sure but I think that the initialization of the CSL in the CCSv3.1 with DSP/BIOS 4.90 was made "automagically" in the resulted files of DSP/BIOS configuration. After CSL was removed from DSP/BIOS it need to be initialized independently.


    I've attached a file with dsk_app which compiles and works witn CCSv5.5/DSPBIOSv5.42. There are two versions in the zip file. The dsk_app.zip is the project imported from CCSv3.1 and corrected to work properly with CCSv5.5. The second file dsk_app_v5.zip is the same project but created from scratch based on and using files from original project. Maybe someone finds it useful :)


    PS. Of course to use this project one need to download and install CSL and BSL libraries and then paths in the projects need to be corrected. This wiki page will be helpful for beginners: http://processors.wiki.ti.com/index.php/C6713DSK_in_CCSv5.

    With the Best Regards,

    Marcin K.

    dsk_app_ccs_v5_5.zip