View Single Post
      09-23-2023, 11:02 AM   #2
Aeko
Private
Aeko's Avatar
41
Rep
98
Posts

Drives: '20 M2C, 01 M5
Join Date: Oct 2022
Location: Houston

iTrader: (0)

Technical information related to the project, in case it helps anyone:

BMW Flexray Bus implementation

The FEM typically has 4 "ports" which are tied to 8 sets of pins, or as I'd call it, 8 inputs.

Flexray SSP from an F82:



The Flexray "ports" are labeled FR_B(P/M)_#, where # would be the port identifier in Tool32, e.g. 0x0#. As you can see on the diagram every port is a set of two inputs, except port 0, which is internally terminated.



What does that mean? Every end of the Flexray bus must be terminated with a resistor, as indicated by the rectangle connecting across the pins of each input, left. All ECU modules are internally terminated so that the pairs on each port can send the signals without open wires causing the communication to actually reflect back on the wire and cause interruption.

If the port does not have two ECUs connected to it, one on each input, then a loop must be added as shown on the right.

If the loop is NOT added, you will see an error such as the following:

E6841F - EDC: Flexray: Line Fault

This is because the missing termination causes a lack of signal fidelity, much like trying to watch a video in 240p vs 4k.

Flexray ports in software

As far as the car's software is concerned, it does not particularly matter which ports you are trying to retrofit modules to, so long as the connection is terminated correctly, you only have two devices on a port, and the ports are open.

However, to enable communication on a port, Tool32 must be used. You can get the status of the ports by running the job status_flexray_pfad on ZGW_01. The ZGW resides inside the FEM module on F chassis cars. EIN indicates "open", AUS indicates "closed." If the port is not open you will not see communication to the module you are trying to retrofit. If you open a port and the retrofit's option is not written to the car's VO, you will receive a ZGW Flexray Initialization error. If you attempt to run the intialization in ISTA, the ZGW will simply re-close the port, the error will go away, and you will not be able to communicate with the module.

If the module is correctly wired and terminated (e.g. with a loop if it is a completely open port such as 29&30 on some cars, and looped with 11&12 to 21&22) then you can run steuern_flexray_pfad with the correct arguments to open that specific port. To open port 0x03, for instance, you run steuern_flexray_pfad and in the arguments box you enter "0x03; 0x01" where the format is port; open. 0x01 for open, 0x00 for close. Then hit F5 to run the job. Once you have opened the port you will need to run steuern_reset_learn_flexray in order to have the ZGW relearn what devices are connected via flexray.

One error I'm still trying to figure out is, even after writing the updated VCM to the car and performing the flexray reset learn in Tool32, running the ZGW initialization seems to have no effect. It resets, but does not close the port because the VCM is updated, but the error does not go away.

For example, the following errors indicate the car's FA coding shows that it is expecting the ICM to communicate with the VDC module, but there is no communication over Flexray. This is due to closed ports on the FEM.

D016F2 - Check control display, driving dynamics, receiver ICM, transmitter EDC
D0193C - predefined damper passive component, receiver ICM, transmitter EDC

Investigating these errors in ISTA brings up a guide for troubleshooting "no message" which is likely indicative of a port issue.

Last edited by Aeko; 09-23-2023 at 12:19 PM..
Appreciate 2
(K)1281.00
chris7197365.00