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.

TMS570LS3137: TMS570LS3137

Part Number: TMS570LS3137

Tool/software:

Hello, I have the following questions when using Flexray communication on tms570:

1. How to set the appropriate value for gdStaticSlot? Is it calculated based on gPayloadLengthStatic? The unit of gdStaticSlot is mt, so what is the relationship between mt and double bytes?

2.How can a node send different data in cha and chb within a single static slot? When configuring messages, cha is bound to an input buffer, and chb is bound to another inpu buffer, fid is the same, but ch and ibrh are different, is it right?

3. When receiving data:
a, If cha and chb are configured to send different data, how can they receive data from both cha and chb simultaneously? Both cha and chb will use the same nda bit to indicate whether they have received new data, how to know the relationship between obrs or fid?
b, If cha and chb are configured to send redundant data, how can they be compared? Is it the user software that compares the data to improve integrity? Or it will be automatically compared by the chip. If the comparison is different, the data for that cycle will be discarded.

4.When configuring the message, I found that the configuration of syn and sfi only participates in the calculation of header_crc_calc . The message with ibrh=0 is, and syn=1, sfi=1, which indicates that the slot is a sync send frame?

5. Dynamic frame transmission relies on event triggering and priority is determined by fid, is it right? Just make sure that when sending in the same cycle, there are no dynamic frames sent by two or more nodes that are the same fid? When multiple nodes send multiple data in the same cycle, the smaller fid will send first, and the larger fid will send later. If the current cycle is not completely sent, will the next cycle automatically send it?

I need  help, thank you.

  • Hi Feng,

    I will study your questions and will come back to you later today.

  • 1. How to set the appropriate value for gdStaticSlot? Is it calculated based on gPayloadLengthStatic? The unit of gdStaticSlot is mt, so what is the relationship between mt and double bytes?

    gdStaticSlot is the duration of a static slot (4~661 MT). All static slots consist of an identical number of gdStaticSlot macroticks. It is defined by user. The configuration of the static slot length gdStaticSlot must assure that the frame and the channel idle delimiter and any potential safety margin fit within the static slot under worst-case assumptions.

    It's unit is Macrotick which is composed of an integer number of microticks. 

    gPayloadLengthStatic is the payload length of a static frame (0~127 words). 

    The payload data word is equal to 2*(8 gdBit + cdBSS) = 20 gdBit, where the cdBSS is the duration of the byte start sequence, it is 2gdBit (bit time)

    The FlexRay Frame consists of TSS, FSS, BSS< FES, and header and trailer. 

    aFrameLengthStatic =  gdTSSTransmitter[gdBit] + cdFSS[gdBit] + 80 gdBit + gPayloadLengthStatic[2-byte-word] * 20 gdBit + cdFES[gdBit]

    For 10MBit/s bit rate, the gdBit is typically 1us.

  • 2.How can a node send different data in cha and chb within a single static slot? When configuring messages, cha is bound to an input buffer, and chb is bound to another inpu buffer, fid is the same, but ch and ibrh are different, is it right?

    To transmit data on channel A or channel B, enable it in write header section 1 ((WRHS1). 

    The CH (A or B) and IBRH (message buffer in the message RAM) are different. FID is the slot number for TX, yes it is same for CHA and CHB.