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.

VC5401 Interfaced with 8-Bit External EPROM & 16-Bit External RAM.

Other Parts Discussed in Thread: TMS320VC5401

Hi,

 

Just i am working on TMS320VC5401 (Beginner in DSP development).

i have hardware which is fully tested and working.Please find attached PSF Schematic of the Hardware.

 

But when i am try to run my program from (The generated hex file is burn on external 8-bit EPROM) EPROM,

it doesnot work.

 

can any one me suggest how to initalize external RAM & ROM in CCSV4?

How to check booting mode of DSP externally?

 

and also please suggest about hex utility cmd file?

the below is the cmd file which i am using please suggest, if any correction required by this file

 

TEST_CSL_5401.out /* input file   */

-i                      /* select Intel format */

-map DFX_Test.map /* map file for HEX500 */

-o DFX_Test.hex        /* output file   */

-memwidth 16 /* DSP accesses mem as 8/16-bit */

-romwidth 8 /* physical mem width, 8/16-bit */

-fill 0x0FF

-bootorg 0xE000 /* external memory boot address */


SECTIONS

{   

  .bss BOOT

   vecs BOOT

   .stack BOOT

   .sysstack BOOT

   .sysmem BOOT

   .text BOOT

   .data BOOT

   .cinit BOOT

   .const BOOT

   .cio BOOT

   .switch BOOT

   .pinit BOOT

   .args BOOT

}


and below is the Link file

-stack 0x400      /* Primary stack size   */

MEMORY

{

PAGE 0:  /* ---- Unified Program/Data Address Space ---- */

DARAM1 (RWIX) : origin = 0x001000, length = 0x000fff  

DARAM2 (RWIX) : origin = 0x002000, length = 0x000fff 

RAM_EXT (RWIX) : origin = 0x004000, length = 0x009fff  

ROM_EXT (RIX) : origin = 0x00e000, length = 0x000fff

}

SECTIONS

{   

  .bss :>  DARAM1 | DARAM2  PAGE 0 /* Global & static vars        */

  vecs :>  ROM_EXT  PAGE 0, align 128 /* Interrupt vectors           */

  .stack :>  DARAM1 | DARAM2  PAGE 0 /* Primary system stack        */

  .sysstack :>  DARAM1 | DARAM2  PAGE 0 /* Secondary system stack      */

  .sysmem :>  DARAM1 | DARAM2  PAGE 0 /* Dynamic memory (malloc)     */

.text :>  ROM_EXT  PAGE 0 /* Code                        */

.data :>  DARAM1 | DARAM2  PAGE 0 /* Initialized vars            */

.cinit :>  DARAM1 | DARAM2  PAGE 0 /* Auto-initialization tables  */

   .const :>  DARAM1 | DARAM2  PAGE 0 /* Constant data               */

   .cio :>  DARAM1 | DARAM2  PAGE 0 /* C I/O buffers               */

   .switch :>  DARAM1 | DARAM2  PAGE 0 /* Switch statement tables     */

   .pinit :>  DARAM1 | DARAM2  PAGE 0 /* Initialization fn tables    */

   .args :>  DARAM1 | DARAM2  PAGE 0 /* Arguments to main()         */

   vectors (NOLOAD)

}

and also please suggest me if their any simulator which i can use with CCSV4 for TMS320VC5401 DSP.

Thanks in Adavnce,

Regards,

Ashwin Panchal

C5401_PCB_Schematic.pdf
  • Hi,

     

    You have checked your hardware. Does it mean that you can access external EPROM from DSP?

    You probably need to make sure that DSP bootloader accesses external EPROM after reset by watching wave forms using oscilloscope.

    Regards,

    Hyun

  • Hi,

    I have checked my hardware, its right, But that EPROM have another program which was made by years ago by previous enginner and i dont have that code.

    so please suggest me about my above code.

     

    Regards,

    Ashwin Panchal

  • Hi,

    I would like to narrow down where your problem occurs.

    1. Assume your checked your hardware completely.

    2. Have you checked your software working through debugging tool?

    3. Check your bootloader process?

     

    Regards,

    Hyun

     

  • Hi Kim,

     I do not have any debugging tool, so i have made one program that toggling the two GPIO ( IO0 and IO1 ) with XF.

    i need your help for linker file and hex utility command file.

    Please suggest for below linker file is match with my hardware (The Schematic is attached on top of this query)?

    -stack 0x400      /* Primary stack size   */

    MEMORY

    {

    PAGE 0:  /* ---- Unified Program/Data Address Space ---- */

    DARAM1 (RWIX) : origin = 0x001000, length = 0x000fff  

    DARAM2 (RWIX) : origin = 0x002000, length = 0x000fff

    PAGE 1:  /* ---- Unified Program/Data Address Space ---- */

    RAM_EXT (RWIX) : origin = 0x004000, length = 0x009fff  

    ROM_EXT (RIX) : origin = 0x00e000, length = 0x001fff 

    }

     SECTIONS

    {   

       .bss :>  DARAM1 | DARAM2  PAGE 0 /* Global & static vars        */

       vecs :>  ROM_EXT  PAGE 1, align 128 /* Interrupt vectors           */

       .stack :>  DARAM1 | DARAM2  PAGE 0 /* Primary system stack        */

       .sysstack :>  DARAM1 | DARAM2  PAGE 0 /* Secondary system stack      */

       .sysmem :>  DARAM1 | DARAM2  PAGE 0 /* Dynamic memory (malloc)     */

       .text :>  ROM_EXT  PAGE 1 /* Code                        */

       .data :>  DARAM1 | DARAM2  PAGE 0 /* Initialized vars            */

       .cinit :>  DARAM1 | DARAM2  PAGE 0 /* Auto-initialization tables  */

       .const :>  DARAM1 | DARAM2  PAGE 0 /* Constant data               */

       .cio :>  DARAM1 | DARAM2  PAGE 0 /* C I/O buffers               */

       .switch :>  DARAM1 | DARAM2  PAGE 0 /* Switch statement tables     */

       .pinit :>  DARAM1 | DARAM2  PAGE 0 /* Initialization fn tables    */

       .args :>  DARAM1 | DARAM2  PAGE 0 /* Arguments to main()         */

       vectors (NOLOAD)

    }

     

    and also please suggest about below hexutility command file,

    please check and please let me know, is this file is properly configured for to create boot table in external 8-bit EPROM (with 16-Address lines and 8-data lines)

    TEST_CSL_5401.out /* input file   */

    -map DFX_Test.map /* map file for HEX500 */

    -o DFX_Test.hex        /* output file   */

     

    -i                      /* select Intel format */

    -memwidth 16 /* DSP accesses mem as 8/16-bit */

    -romwidth 8 /* physical mem width, 8/16-bit */

    -boot /* Make all sections bootable */

    -bootorg 0xE000 /* Place boot table in EPROM */

    /* starting at address 0xE000 */

    ROMS

    {

    PAGE 0 : ROM : origin = 0x0000, length = 0x20000

    }

     

    and if possible, Can you reply me on same day? i need to wait atleast one day for reply from e2e.ti, so due to this we are not able to launch our product on time. really we are very unhappy from TI-services and bad documentation, for one thing we need to search so many files and also they files have lot of pages, so most of the our time is going on reading that PDF files.

    and also we are not getting proper support from TI-India people , whenever we call them they are telling me simply put your query on e2e.ti and they never me reply, we have also invite to them to once visit for one day in our promises but they are ignoring us.

    If TI will be as like this, then never a new people can able to use TI-product in development.

    as today developer and manufacturer are having so much less time to launch their product in market.

     

    Now, Please suggest for above technical queries as soon as possible.

     

    Thanks & Regards

    Ashwin Panchal

     

  • Hi,

    Your linker file won't compile my example project. Please check with attached example.

    Regards,

    Hyun

    dma1.zip
  • Hello Hyun,

     

    The attached linker command file will not work for VC5401. Will it? It is for 55xx.

     

    c5401 has Internal DARAM blocks at 0x1000 and 0x2000 of 4k Words each. So, if OVLY is set to 0, then same addresses can be used by ext RAM connected to DSP.

     

    Please share a sample linker command file on c5401. And let us know how to add the EXT RAM section in Linker.

     

    Ashwin,

     

    Please use 0x1000 in PAGE 1 as EXTRAM. And see while Hyun gets back.

     

    Thanks!

    Feroz 

  • Hi,

     

    Please download C54X CSL http://focus.ti.com/docs/toolsw/folders/print/sprc132.html. There are a few examples having cmd files.

    Regards,

    Hyun