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.

TMX320C6678L Rev.1.0 hyperlink

hello:

I have two TMX320C6678L Rev.1.0  EVM, and I buy the hyperlink cable from ti estore, I connect the two EVM with the cable, and run the mcsdk

 hyperlink demo in  two EVM,  the hyperlink don't work well,  printf:

" wait to the other side to come up ..."

then I use others' s C6678 EVMs , and they are  not the same revision EVM with TMX320C6678L Rev.1.0  EVM, and I use the same

cable connect the EVM and download the same hyperlink demo,  It can work well

I wonder if the TMX320C6678L Rev.1.0  EVM have problem with hyperlink interface?

Did anyone Encounter the same  problem? 

Thanks!

  • On the back of the board there should be a revision identifier such as Rev A101-1 or Rev A102-1.  Can you tell me which revision of the board you have?

  • thanks for your replay,

    it is the  Rev A102-1.   Is the hyperlink OK?

    thanks!

  • I just wonder

     

    When you connect the others' s C6678 EVMs with the second TMX320C6678L Rev.1.0  EVM, does it work now or not

    (Is the problem with the specific EVM or with the version)

     Ran

  • helo:

    a few  day ago , I went to another company , there I  tested  the hyperlink with their EVM, it can work

    when I came back, test my EVM , it can not work ,I have 3 EVMs.

    the difference is another company's EVMs  have a BlackHawk XDS560V2-USB  Emulator and also have a   XDS100V1 Emulator in the EVM,

     And my EVM has only XDS100V1 Emulator,

    so I wonder my EVM hyperlink has problem. Because others' s C6678 EVMs can work,But my EVM cannot work!

    thanks!

  • hello;

    i want to use the hyperlink interface to transfer data between 2 C6670L boards so, i read the user guide and knew the operation of hyperlink interface and  in the example ;i noticed that all configurations is made but in the example , in (hyplnkExampleAddrMap) in (hyplnkLLDIFace.c) is the address is configured or i have to configure it .

    thanks in  advance 

  • I believe that the example mapps addresses 0x4000 0000 to 0x8000 0000 on the other side, and one segment of 256M

     

    To check it have two boards connected together, open a memory window on one at address 0x4000 0000, in the second one open a memory window at address 0x8000 0000, now change a value on one side using CCS. The corrseponding value on the other side will be changed as well

     

    Try it

     

    Ran

     

  • thanks ran35366 ,but in hyplnkExampleAddrMap if you open it ,it's written 

    /* Make one segment which can see dataBuffer */
    if ((globalAddr >= 0x800000) && (globalAddr < 0xa00000)) {
    /* Address is in L2 */
    globalAddr |= 0x10000000 | (DNUM << 24);
    } else {
    System_printf ("Don't know how to make global address for 0x%08x\n", globalAddr);
    }

    /* Align to 4MB */
    globalAddrBase = globalAddr & ~0x3fffff;
    globalAddrOffset = globalAddr & 0x3fffff;
    RXSegs[0].rxSegVal = globalAddrBase >> 16; /* 4MB */
    RXSegs[0].rxLenVal = 21; /* 4MB */

    is that mean , it's a segment of 4MB not 256MB ?

  • hello  Ran:

    before i make the addresss map,my program block to wait other

    side to wake up,so i  cannot do what you say

    can you give me some advice

    thanks

  • You are right,  it might be only 4M and not 256M

    You need to look at the user guide or the presentation to see what are the code number for different sizes. 

     

     

    If you need more help, please reply back. If this answers the question, please click  Verify Answer  , below.

  • thanks ran for your reply , but are you sure about the address you told me ? , i also will try it and take your advice about connecting the both boards and filling the address but i just want to ensure .

    alex

  • I am not sure,  this is my recollection,  but I may be wrong

    You need to look at the segment table definition and see what segment the code uses. Try the 0x8000 0000 and if it does not work, get back to me

     

    --- If you need more help, please reply. If this answers your question, please Verify Answer below this post ---

  • thanks ran , but how to write values on memory ?

  • hello Ran:

    Have you ignored my questions ? 

    I think  zezo alex  should have a new post , not in my post!

    Thanks!

  • Hello ran;

    i didn't change the values of the memory and depend on the values that actually on the memory .I connect the 2 boards together, but after  ( Peripheral setup ) and before (Set up address mapsrc)  ,it's written 

    Waiting for other side to come up

    In debugging ,I ran the example in the Local device(Tx) and in the remote device(Rx) i only ran it ,too.

    So, is that right or the remote device must be in a specific situation ??

    thanks in advance

  • hello Si Cheng;

    our problem is the same, i thought i am helping you .

  • Hello everyone,

    I'm actually using two EVMC6678 connected together via hyperlink.

    When I tried the example given by Texas few month ago I didn't have any problem to run it.

    Also, I have maybe an advice for you:

    run the example on one board until you see the message "waiting for the other side so come up". And just after seeing this message, run the example on the other board.

    Normaly the boards will detect each other (because the status.link will be set) and they will stop runing into the infinity loop and they should begin to start sending data between each other.

    IF THE PROBLEM STILL OCCUR : if you always see the message "waiting for the other side to come up", press the "suspend" button and set the "status.link" manualy.

    If you press the "resume" button it should stop runing in the infinity loop.

    Hope this will help you...

  • Hello John;

    i am using 2 C6670L kits and i didn't modify the example about hyperlink in the following path (MCSDK\pdk_C6670_1_0_0_17\packages\ti\drv\exampleProjects\hyplnk_exampleProject) so , both kits have same configurations,i did  your procedures but; after seeing the message "waiting for the other side to come up" i ran the other kits but at the Console of both kits written 

    Try to read the remote registers

    and after a long time of waiting , the give me an error but didn't mention it(just written an error)

    So, what is the problem in your opinion ?

  • It's a good point, it means that the "serial.link" has been set and the both boards can see each other through hyperlink.

    Your problem is maybe due to the configuration of the speed of the link. Indeed, if you are using a too long cable, the hyperlink can't reach 12,5 GBaud speed.

    Check the configuration of the SerDes and configure it to a maximum of 6.5 GBaud. (I think there is some #define in order to do it but I'm not sure, I don't remember and I'm not at office for now).

    Hope it helped!

  • hello John;

    i noticed that the switched in both boards are different , so can you tell me the wright positions of the switches , it may be the reason ??

    thanks;

  • It's surely the reason.

    But I'm sorry I'm not at the office for now. But normaly you should have a document given with the board showing the right postion of the switches.

  • i searched in the user guide,Is that what you mean ??

  • Yes, it's exactly that