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.

MSPM0G3507: How to determine TX buffer start address

Part Number: MSPM0G3507
Other Parts Discussed in Thread: SYSCONFIG

Dear Champs,

I am asking this for our customer.

In the example "mcan_multi_message_tx_LP_MSPM0G3507_nortos_ticlang"

C:\ti\mspm0_sdk_2_00_01_00\examples\nortos\LP_MSPM0G3507\driverlib\mcan_multi_message_tx

Would you please explain in more detail how to determine Tx buffer start address?

Why and how this "12" is calculated?

Does it have something to do with the 2 (number of dedicated Tx buffer) and 10 (TX FIFO elements)?

  • Hi Wayne,

    Please see section 20.4.15.2 Dedicated Tx Buffers in the device technical reference manual for an explanation of the buffer. The paragraph before table 20-6 explains the start address. Please let me know if you have further questions here. 

    To give a short addition, the 12 is not necessarily calculated as number of TX buffers + number of TX FIFO elements. TX buffer space can be reserved as a dedicated TX buffer, a dedicated TX FIFO, or as both. That is up to the user to decide.

  • Dear Dylan

    I am still confused. 

    Would you please use this example to show us how to get to 12?

  • The example does not necessarily need to use 12, that was chosen on a somewhat arbitrary basis. Within the CAN RAM, you can choose how much space you dedicate to TX Msg Buffers, TX Msg FIFOs, and how much those two overlap. A given space in CAN RAM can be a buffer, a FIFO, or both. It is up to the user to determine what is necessary for their application. There is not a formula or calculation to get a start address of 12.

  • Dear Dylan,

    Based on 20.4.19.1 Message RAM Configuration of TRM, the user is responsible to set start addresses for the memory sections (RX buffers/TX buffers etc) to avoid falsification or loss of data.

    Do you know what 0 means for the start address in Sysconfig?

    Does 0 mean the address 0 from the whole message RAM or does 0 mean the address 0 from each section (RX buffer/TX buffer etc)?

    For example, if I choose 0 for all these sections like below, will the sections conflict with each other or not?

    Does that mean Sysconfig already handles all these start addresses and the user does not need to worry about they conflicting with one another?

  • The start address that you indicate is the start address for the section within CAN RAM. So if you specify that the RX MSG RAM and TX MSG RAM both have a start address of 0, then both with start at CAN RAM address 0 and they will overlap.