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.

TMS320F28075: Clarify IFxCMD.DATA and IFxMask

Part Number: TMS320F28075

Dear Champs,

I am asking this for our customer.

1. For data transmission, what does it mean by writing 1 onto IFxCMD.DATA? Which of the below is correct? Or else?

1.1 Tell MCU that we have written data and then ask MCU to write from IFxDATAx onto Message RAM.

1.2 Unlock the corresponding location for data of the Message RAM so that we can then write data onto IFxDATA, and then DSP write it onto Message RAM.

2. Following above 1., the user found it seemed the data did not transmit when the user followed the configuration order like TI example codes. But then the user changed the order, it seemed to work. Below is the order by TI example code and the user's. Would you please help comment if the order of TI example code is not correct or is our understanding about TI example wrong? Or is there any comment on the user's order?

3. IFxMask usage

3.1 The ID MCU gets is to "AND" the mask content

3.2 Any bit in 0 is "don't care" (TRM seems to indicate this....)

Which one is correct?

In the user's testing, the ID is 0x030 (11 bits). Its IFxARB is 0x80C0 0000. The corresponding IFxMask is set 0x40C0 0000(0x030), but the user found the data could not be received. But when it was changed to 0x40DC 0000 (0x037->0x030~0x037), then the data could be received.

Therefore, it seems 3.1 is correct usage.

Do you have any comment?

4. Are the upper 16-bit and lower 16 bit of CAN registers are not continuous/back-to-back?

For example, for IFxCMD's lower 16bit is at 100h, but upper 16bit seems in 102h rather than 101h??

Is this what "21.3 Address/Data Bus Bridge" of TRM says?

Would you please help confirm?

Wayne Huang

  • Wayne,

    Will respond to each of customer's query, but have they looked at the examples in my Application Report http://www.ti.com/lit/sprace5? It has many tested examples. 

  • Dear Hareesh,

    Yes, the user has studied and referred to the app note and tested for some time.

    Now, they just want to clarify the detail and get confirmation.

    Wayne

  • 1. For data transmission, what does it mean by writing 1 onto IFxCMD.DATA? Which of the below is correct? Or else?

    1.1 Tell MCU that we have written data and then ask MCU to write from IFxDATAx onto Message RAM.

    1.1 is correct. Note that DIR and MSG_NUM bits have to be the correct value for the data to be copied into the message object.

     

    2. Following above 1., the user found it seemed the data did not transmit when the user followed the configuration order like TI example codes. But then the user changed the order, it seemed to work. Below is the order by TI example code and the user's. Would you please help comment if the order of TI example code is not correct or is our understanding about TI example wrong? Or is there any comment on the user's order?

    Sorry I don’t understand. TI example codes are tested examples. You should write to all IFx registers (arbitration, Mask, Control etc) and then use IFxCMD register to finally transfer the all the information to the mailbox.

     

    3. IFxMask usage

    There is a tested example in SPRACE5 that clearly shows how mask works. Did customer try it? What is the MSGID that is being received?

     

    4. Are the upper 16-bit and lower 16 bit of CAN registers are not continuous/back-to-back?

    Sorry, the question is not clear. Please elaborate.