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.

AIF on C6474

Other Parts Discussed in Thread: TMS320C6474

Hi, I am a beginner of AIF on C674, and I download a example project from http://www.ti.com/general/docs/litabsmultiplefilelist.tsp?literatureNumber= sprab58, to meet my requirements, I changed the code a little bit to fulfill an unidirectional transmission from DSP1 to DSP2, and it works. But when I try to trigger another transmission in which DSP2 transfers those data back to DSP1, it never works. Here is my project, anyone knows where is the problem?

6708.aif_2way_link2.rar

  • Kaiqi Yang,

    I assume the part number typo is in the first line of your text, which should be C6474 not C674 which is another family of devices.

    I apologize that I am not in a position to debug your project. But if you have it working well in one direction, the symmetry should be the perfect example to just implement the same interrupt configurations on DSP1 as done on DSP2.

    If you are in doubt, run the example that works from DSP1 to DSP2 one the opposite devices. You may have to make small changes for the hardware differences in AIF port numbers, but that will also be a good debug experience to help you become an expert of AIF.

    Regards,
    RandyP

  • RandyP:

                  Thanks for your answer! The device number is C6474 and I made a spelling mistake in my former post. And I think my unclear expression makes you misunderstand what I meant. Firstly, as a one-time transmission process, the data transmission from DSP2 to DSP1 is successful which I've done the verification. Secondly, what I want to do is fulfill two successive transmissions, in which DSP1 transfers data to DSP2 firstly and DSP2 transfers those data back to DSP1 after it receives those data, but as the second transmission, the transmission from DSP2 to DSP1 never works. Thirdly, I notice that, in the application report, the author tells me to press the PORz button on the EVM to reset it if I want to rerun the program(the original program is a one-time transmission), is this the possible reason why the second transmission in my project dosen't work well? And why should we reset the EVM before we rerun the program, could you tell me some possible reasons? 

    Regards,

    Kaiqi Yang

  • RandyP:

      By the way, in section 5.2 of "TMS320C6474 DSP Antenna Interface User's Guide", it refers line rates and data rates of SERDES, what the difference between them. And the data rates lists in the table is theoretical or practical?

  • Kaiqi Yang,

    I am glad that you have the transmission working either direction. This does prove out that you have code that will do the operation that you want to do. Now it has to be integrated to build a system. We have only provided the starter code to enable you to run this part.

    There may be other examples for the AIFLIB that will be closer to what you want, but I have [not] looked at it for several years. Are you using the IACLIB or a different library? If you are not using the IACLIB, then it may be a good resource.

    There is good information on line rate vs. data rate on the web, if those terms are not described in our User Guide.

    Regards,
    RandyP

  • RandyP:

    No, I'm not using IACLIB, and I have downloaded the example with IACLIB, but it use OBSAI RP3(CPRI is required in my project). And I will appreciate it If you could offer me the IACLIB example in CPRI version. 

    Now I am pretty sure that the timer couldn't be normally triggered in the second transmission is the reason why the second transmission could not work well. So we need to press the PORz button to reset the EVM board. But I still want to know how to solve the problem, could you give me some advice?

     

  • Kaiqi Yang,

    As I recall, the IACLIB examples did a good job of allowing continuous and repeated communications going both ways, between the two DSPs on the EVM6474 board. You will probably have an easier time modifying the IACLIB example from OBSAI to CPRI that trying to debug your example that you believe has a timer issue. That is the best advice I can offer. I will allow others to join the discussion if they have other advice.

    Regards,
    RandyP

  • RandyP:

    Thanks a lot! I will see what I can do to solve those timer issues and I'm also looking forward for more advice.

    Regards,

    Kaiqi Yang

  • RandyP,

    Thanks for your help and the problem is solved perfectly. But I have another question to ask you. 

    In my project, the FSync module of DSP1 and DSP2 are driven by same differential clock source on the board which is timer0 of DSP1. Here comes the question, if I want to implement inter-DSP communication between two different EVM boards, how to synchronize those two DSPs? 

  • Kaiqi Yang,

    In this time, I assume you have solved your problem with synchronizing the two boards. What did you find out?

    It is my understanding that there is no requirement to synchronize these two clocks. The AIF data transfers should supply the clocking information through the SERDES signalling. Is this what you found, too?

    Regards,
    RandyP