Data over Pulse Width Modulation?
by Steve Smith

A recent inquiry via Facebook introduced the notion of “data” being transmitted along on a pulse width modulation (PWM) signal wire when fault conditions occur.
As we know, PWM is used to control a variety of actuators across numerous control systems. You can find a summary of PWM control here


Below, we take a look at the PWM signal responsible for controlling the speed of a BMW F31 cooling fan.
In terms of the wiring to the cooling fan assembly with an integrated control unit, it could not be simpler.

We have: 
•    A power supply from a cut-out-relay 
•    A chassis ground wire
•    A PWM signal wire which travels between the cooling fan assembly and the engine ECU 


The engine ECU generates the applicable PWM signal, which is interpreted by the cooling fan assembly and translated into the relevant control of current for the brushless cooling fan motor (BLDC motor).
Note: as the current to the cooling fan motor increases, the cooling fan speed will increase in proportion, generating additional airflow across the radiator assemblies. The following forum post will help you with BLDC motor control.


Below, we have captured a function test procedure, using a scan tool to drive the cooling fan at top speed. We are monitoring the current flow, not only into the cooling fan motor/controller assembly but also via the PWM signal wire using a current clamp and a 0.1-ohm resistor placed in series with the PWM wiring. (See channels A, D and math channel D/0.1) 
 

But why would we monitor the current going through the PWM signal wire and why use a 0.1-ohm resistor? 

Monitoring the current will help us understand how the circuit operates under normal, short-circuit, and open fault conditions. It gives us a clearer understanding of component functionality and fault conditions.

While a current clamp performs reasonably well at very low current levels (minimum 5 mA), we can remove the variables of drift and offset we have discussed at length here using the 0.1-ohm resistor (the volt drop method).

If we move back one buffer from Image 1 above, we can see the precise time the engine ECU increased the negative PWM signal to its maximum value of 93% as a result of the scan tool intervention. 

Note the change in the current flow and the direction of the PWM signal, as the negative duty increases from 7.3% to 93%. You should also note how the cooling fan motor current progressively increases and does not display the dramatic inrush current we see with typical DC motors, thanks to the BLDC motor control. A progressive cooling fan start-up sequence does not only prolong the life of the circuit and the components but also limits the loading on the alternator, which improves fuel economy and reduces emissions. It is a win-win. 

Let us recap here using data from the right-hand viewport in the screenshot above.

Cooling fan off:

  • PWM Signal 7%, the cooling fan controller is in standby mode 
  • PWM current flow + 6.5 mA, current flow from the engine ECU to the cooling fan controller

 

Cooling fan max speed:

  • PWM signal 93%, the cooling fan controller drives the fan at maximum speed
  • PWM current flow – 9.2 mA, the current flow from the cooling fan controller to the engine ECU

 

Some additional information regarding typical PWM negative duty values for fan speed control:

  • PWM signal 11%, the cooling fan controller drives the fan at the minimum speed (this is 33% of fan motor rated speed) 
  • PWM signal 97%, Instruction for self-diagnosis of the cooling fan controller
  • the PWM signal fan speed control, therefore, resides between 11% and 93% negative duty 

Be aware; where the cooling fan may be inoperative and a PWM signal is present, it does not indicate that the fan assembly/controller is faulty. You can qualify the PWM signal by using a negative duty math channel to reveal the intention and control status of the cooling fan circuit based on the acquired percentage values listed above.

You can find more information about math channels in PicoScope 7 Automotive here. The following forum post will help you if you prefer to use PicoScope 6. 

Let us move on to PWM wiring faults. Below is the momentarily open circuit of the PWM signal wire. The test lead on Channel C remains connected to the PWM wire (referenced to ground) from the engine ECU before the open circuit. 

Note how the PWM negative duty math channel has increased to nearly 100%! This is not an instruction from the engine ECU for self-diagnosis of cooling fan controller (mentioned earlier at 97%) as the engine ECU continues to generate a negative duty of approximately 17% with reduced amplitude from 0 V to 3.6 V.

So why has the math channel increased to almost 100%?

The math channel is looking for the crossing point, midway between 0 V and 14.12 V. However, the voltage has momentarily remained below this midpoint and is interpreted as an increasing negative duty. If the voltage were to remain between 0 V and 3.64 V (as it does during the open circuit of the PWM wire), the math channel would begin to recalibrate the midpoint and represent the appropriate negative duty value.

Over and above the anomaly in the negative duty math channel, look at the PWM signal shortly after the open circuit is corrected and note how it appears to include additional data!

On closer examination, you would be forgiven for mistakenly thinking this waveform was a network data stream. Perhaps it is?

Note how the current flow appears stable in the PWM wire during the open circuit above. This indicates that there is no current flow/activity as the circuit is no longer complete between the engine ECU and the fan controller. The signal rulers placed at the min. and max points of the math channel (D/0.1) indicate a switching current flow between 13.21 mA and -155 µA with the PWM wire closed. When open, the value returns to a fixed 13.21 mA, which should be considered as 0 A (no current flow/activity through the inline 0.1-ohm resistor) allowing for an offset error of Channel D.

But why should 13.21 mA be considered as 0 A?

If Channel D is not reading absolute 0 V across the resistor during the open circuit event of the PWM wire, the math channel will, of course, display current value. In the scenario above, 13.31 mA x 0.1 Ohms = 1.3 mV. Such a low voltage (1.3 mV), is most probably the effects of ambient noise about the engine bay, detected by the Channel D test lead across the 0.1-ohm resistor.

To restore the PWM signal to a conventional duty style signal, we erased the fault code (24F400 Electric Fan Open Circuit) that was generated by the open PWM signal. 

Next, we have the PWM signal wire shorted to ground. The current clamp arrow (connected to Channel A) points towards ground indicating the current flow via the PWM wire from the engine ECU to chassis ground.

Once again, note how the PWM signal below carries additional data after the short circuit (S/C) has been corrected.

In the next screenshot, we compare the structure of the PWM signal (using the reference waveform feature) with the “short and open” fault conditions. Note how they differ, suggesting a form of communication over the PWM signal between the engine ECU and the fan controller.

The PWM wire S/C to ground generated the fault code "241800 Electric Fan Short to Ground”. However, restoring the PWM to a conventional style signal did not require the fault code being erased; the signal returned to normal shortly after correcting the S/C.

So what are the benefits of the data above?

Capturing PWM signals with the scope does not only allow for graphing of data using a negative duty math channel but it also reveals the structure of the PWM and the hidden content/data in it. At this stage, more research is required to learn about the varying PWM formations. For now, however, we have learned that there is additional information (contained within PWM signals) we can use for diagnostic evidence or recognition of previous or pending errors. 

PWM current.

Looking at the capture below, we can see the behavior of the current inside the PWM wire during a short circuit to ground.

Note how the current continues to flow via the PWM wire from the engine ECU to ground during the S/C at an identical duty cycle before the S/C event! Measuring just the voltage of the PWM signal at this point would reveal no duty signal (0 V)! However, measuring voltage and current shows that the engine ECU is attempting to control the cooling fan and for current to flow there we need a voltage differential. 0 V is, therefore, not an open circuit in this scenario.

There is more research to be done here, as always, but I hope this helps in the interim.

Comments

Add comment

Your email address will not be published. Required fields are marked *