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.

TMS320C6474 AIF Problem

Other Parts Discussed in Thread: TMS320C6474

I'm using TMS320C6474 Evaluation Module.

I want to use AIF to communicate inter DSP.

My code is based on  the AIF examples in CSL ,and I  modify the exmaples to fit my purpose.But I can't get right result.

Something about my project:

  1. It works on OBSAI.
  2. Link speed is 4x.
  3. The total size of data transfered is 614400 chips
  4. The result is that there is always some error data in total,like  10 places,13 places....

I doubt that  the trouble is about TM_DELTA_OFFSET and RM_PI_OFFSET.I don't understand the explanation of them in the AIF user's guide. So I change them random.When I change them ,the results are changed.The worst result is that the data are all wrong, the best result is there are 10 places wrong.

In the CSL examples and the IACLIB(AIF inter DSP communication Library from TI), the two parameters are very different between any projects.I don't kwon how to set these two  parameters.

Is there something to notice in other modoles such as frame synchronization and EDMA?But I didn't find something like bugs in them .

The project is urgent.

Please help me.

  • [:S] still dont understand....

  • I have found my mistake.It's about the LUT(look up table) .

    But I still have a question about the IACLIB(AIF for inter-DSP communication library).
    On the http://wiki.davincidsp.com/index.php/AIF_Inter_DSP_Communication
    It says that "For receiving the Start Packet message Link0, Link1 use Inbound FIFO0 Link2, Link3 use Inbound FIFO1",but I don't know how to config like this.
    Which register is working for this?I can't find the right place to config inbound FIFO for each link In the source code.

    Please help me

    Thank you all.

  • that configuration is done by EDMA source and destination address setup. each inbound FIFO has its own physical address and your packet transfer EDMA configuration can choose source FIFO address by changing source address field.

  • Thank you very much!

    I still have a queation.

    In the CSL examples and IACLIB,
    they make the FIFO0 use address 0x40 and the FIFO1 use address 0x42,
    they make the AxCs use address 0x00 to address 0x15,
    Is those addresses special for FIFO or AxCs?

    Can I use any address from 10-bit-address(which number is 2^10)  for any FIFO or any inbound AxC or any outboud AxC?

    Thank you for your help!

  • 0x40 and 0x42 is not physical address. it is just event number 0x40 is for FIFO0 and 0x41 is for FIFO1

    you can check this in Faraday datasheet or Intc user's guide.

    the physical address of inbound FIFO looks like below.

    #define AIF_ADDR_IN_PS_FIFO_0           0xA4000000
    #define AIF_ADDR_IN_PS_FIFO_1           0xA4400000
    #define AIF_ADDR_IN_PS_FIFO_2           0xA4800000
    #define AIF_ADDR_IN_PS_FIFO_3           0xA4C00000

    Please spend more your time to analyze the source code. all answers are within the codes.

    Hope this could help.

    -Albert

  • Thank you for your reply again.

    There is something I didn't  state clearly.

    The address that I said before are OBSAI addresses.
    They are in the 3-byte head in the 19-byte OBSAI message.
    They are 10-bit addresses in 13 bits in the 3-byte.
    So there are 2^10 addresses.

    In the source code they make them as follows
    AIF_PS_ADDR_LUT_FIFO_0=0x40
    AIF_PS_ADDR_LUT_FIFO_1=0x42
    And they always use the 0x0-0x15 for the AxC outbound and inbound.
    They are hexadecimal but decimalization,they are not event number for intc.

    I want to kwon are they special?Can we use the other addresses in the 10-bit  like we want.

    I can't understand the look up tables configuration clearly, and I will analyze the source code earnestly as you said.

    Thank you for your help.

     

  • AIF uses fixed address from 0x0 ~ 0xF  to support max 16 AxC address, so you can not change it to different one.

    for Packet transfer, we also uses special fixed address LUT for inbound FIFO. 0x40 for FIFO0,  0x42 for FIFO1 and 0x44 for FIFO2

    it looks quite complicate and I don't know the design detail either why they had to use that kind of complex scheme. 

    Our User's guide can't fully explain this but I also think this is TI's internal information, so what we can do is let you know the exact address number for FIFOs.

    I was confused when I talked about event because event number for Inbound packet is 40,41,42.

    Hope this could help to you.

    -Albert   

  • Thank you for your help!

     

  • That is ok when A DSP transmit and B DSP receive,and it's also right when B DSP transmit A DSP receive,but it can't success when they are all transmit and receive.The result is some of the data are wrong ,the number of them is like9,56 etc,and I found the errors comes periodic in all data.

    I think my look up table is right because it succeed when A->B and B-A.

    I guess it's the Pi and delta's mistake.

    I still don't know how to set the Pi_offset and the Delta_offset

    There are many different values in CSL examples and IACLIB.

    I read the AIF user's guide and the OBSAI Specifications,But I still don't know the principle how to set those values......

    Please help me about that.

    Thank you and regards.

  • I think you'd better submitt a SR to our team. application team's support system is basically working by Siebel Service Request.

    Regards,

    Albert

  • I can't find where should i  submitt a SR,
    Could you give me a link for that?

    Your replys are always in time.Thank you for your help,Albert

    Regards

     

     

  • Please ask any TI FAE around you about this. they can submit SR instead of you. Actually, I not supporting customer's issue directly like this way.

    Regards,

    Albert

  • Thank you all

    Regards

  • Hello,

      I'm presently working on the same Evaluation module, i was wondering if you could help me with it. I'm actually implementing a waveform on the module and i need to know how the aif module works with edma and interrupt module. I tried to search some examples but those provided by spectrum digitals (the ones in csl ) are driven by the cpri protocol.

       My question will then be :

       1. could you help me adapt spectrum examples to fix on an obsai protocol?

     

    My project is also urgent,

     

    Thank you