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.

Problems with FlexRay on the TMS570LS20216PGE

Other Parts Discussed in Thread: TMS570LS20216

We are having some problems with getting FlexRay working on the TMS570LS20216PGE. We have built our own board using it, and the FlexRay connections, including the same transceiver chip, are derived from the MDK board (which uses the ZWT package). Both boards, ours and the MDK, use a 16MHz external oscillator. We have successfully implemented FlexRay communication between 2 MDK boards and a PC with a FlexRay PCI card; however, when using the same code to program our custom board (with appropriate target config file for the PGE package, and corrected FlexRay message config for its assigned message ID etc.) it is unable to join the FlexRay bus. We have noted the difference in maximum operating frequency and modified the pll setting registers to have 140MHz for the system and FlexRay plls, but is there any other differences between the two packages that will influence the FlexRay operation? Either in hardware set up or software configuration?

The behaviour we are seeing is the PGE package transmits wakeup symbols whether the bus is running (between the other nodes) or not, allowing it to sometimes disrupt the bus by transmitting over other messages (dependent on the timing of when we release it from reset). The network consists of 4 nodes: 2 MDK boards, the FlexCard, and the PGE board. We can start the network successfully with any 2 of the non-PGE nodes and the 3rd non-PGE node successfully joins the running bus. However, the PGE node fails to partake in startup, or in joining a running bus.

As far as we can see the FlexRay transceiver (TJA1080A from NXP) is operating correctly: relaying received messages to the RX pin on the TMS570LS20216PGE correctly, and allowing the wakeup symbols to be transmitted. However, we do notice that on the MDK board the LED on the error pin (ERRN) continuously asserts an error (i.e., is on) from power on onwards (even though the FlexRay on the MDK boards is functioning correctly), while this is not the case on our PGE board.

We also observe that other modules appear to be functioning correctly (RTI, and SPI).

Any suggestions as to what we are missing, and/or how to debug the FlexRay would be greatly appreciated.

  • Hi Paul,

    For PGE board, the Flexray clock (should 80MHz) is from FPLL (configured in PLLCTL3, 0x0040,0900). Configuration PLLCTL1 to 140MHz HCLK doesn't affect flexray clock (80MHz).

    Can you please try 1 MDK board, 1 PGE board, and 1 PC card? What is the termination on your PGE board? The Flexray spec defines that the minimum DC load is 40ohms. If the DC load of your FR network is below this value, please change the termination of your board, or just remove the termination on your PGE board.

    Regards,

    QJ

  • Hi QJ,

    We have already configured PLLCTL3 to provide the 80MHz clock for the FlexRay, we have tried with 0x0040,0900 as that is used in the FlexRay example code you provide, but also with 0x0000,0400 (NR=1, NF=5, R=1). In either case checking in the TRM section 7.11 one of the requirements is not met: with 0x0040,0900 INTCLK is out of range (8MHz, when specified range is 10-100), although this is the configuration we have been using on the MDK boards and is working fine; with 0x0000,0400 PLL output is out of range (80MHz, when specified range is 100-250). It is not actually possible to meet the specified ranges on the PGE package as it states that the maximum frequency of the device must not be exceeded on the PLL output, and as this is 140MHz no configuration can meet all requirements and give 80MHz.

    We have already tried MDK, PGE and PC with the same results as the other configurations (PGE sends wakeup signals regardless of bus state and can't start the bus).

    The termination on the PGE board is identical to that on the MDK, and as the network runs fine with two MDK boards I don't think there is a termination issue. Below is the circuit from the MDK schematics we have copied for our board. The only difference being Wake and VBat are 7V (still within the range specified for the transceiver).

     

    Regards,

    Paul

  • Also the PGE is always connected to the bus (even when powered down) and does not stop the bus from working unless it transmits its startup frames over the top of another frame. So termination should be okay.

    Any suggestion why on the MDK board the transceiver is always exerting an error (ERRNO low, LED on), but still works?

    Regards,

    Paul

  • Hi Paul,

    Termnation on MDK is 95ohms. If 2 MDK are connected together, the termination becomes 47.5ohms. After you add PGE board with 95ohms termination to the bus, the DC load becomes 32ohms which violates the Flexray spec. This is why I asked you to remove the termination on your PGE board, and try again.

    The ERROR LED on indicates a error in device. Please read the error status registers (ESMSR1, ESMSR2, and ESMSR3) to debug the error. Please refer to chapter 25 of TMS570LS20216 TRM for details.

    http://www.ti.com/lit/ug/spnu489c/spnu489c.pdf

    Regards,

    QJ