After Remove the block FRM from the car and put it on the table, i will give you step-by-step tutorial on how to reset it with xprog.
- what is the FRM module
- Symptoms of FRM unit damage
- The most important reasons that lead to unit damage
- repair steps
What is the FRM module
The FRM is a control module
located in BMW, and controls many function on it such as power windows, exterior
mirrors, lights, adaptive headlights, and several other functions. For this
reason, when this unit fails, it leads to the failure of many other functions
associated with it.
Symptoms of FRM unit damage
Today we will be dealing with
a common bmw problem, in which the outdoor lighting completely fails (more
precisely, the dipped beam and dimensions are on when the ignition is on, but
we cannot control this), do not work front power windows, central locking,
interior light.
During diagnostics, the FRM unit
does not communicate, in the remaining modules, there are a lot of errors
associated with communication with this unit FRM.
the most important reasons that lead to unit damage
The fact is that the failure of the
FRM3 block occurs due to a failure of the eeprom area in the microcontroller
(MC9S12XEQ364) controlling this unit.
Moreover, eeprom dies gradually
until changes in it reach a critical mass. And then the block works until
it needs data from eprom ... so meaning that any reboot, whether it is
connecting diagnostics or removing the battery terminal (an attempt to start on
a weak battery it could lead to damage to the eeprom area ).
So to restore this FRM unit, you
should reset it by restore the eeprom corrupted from D flash.
The internal memory of the MC9S12XEQ364
microcontroller stores its native eeprom! It is encrypted in a memory area
called D-flash, after reading it, you can completely restore the FRM3 unit to
full working.
repair steps
The main thing is to read the D
flash from microcontroller of FRM module , and by using programs or any service
that can do this you can restore the eeprom from D flash, after that you can
now write this eeprom dump in eeprom area of microcontroller.
At first you need to have a pinout
to read this microcontroller and connect xprog according to it
connect your XPROG tool according pinout connection above ,
and make sure the wires is connected and soldered correctly.
Launch xprog, select the “MC9S12XEQ364”
from the list . We will read d-flash.
After select the microprocessor
click ok then Press the “new” button, then “read”. A partition error will pop
up, don’t be alarmed, it’s the way it should be!.
click "ok". The following window pops up:
without changing anything!("number of sectors for eeprom" = 0; d-flash = 32768; eeprom = 0) click "ok". The process of reading d-flash has begun. Next we restore the eeprom from d-flash , there is many way to restore eeprom from D flash in online service or program working off line..
After prepare your file Open the resulting file in xprog.
Click "devices" and select "MC9S12XEQ364_EEE". Before recording the resulting file, BE SURE TO ERASE THE EEPROM AREA! NECESSARILY!
To do this, press the "erase" button. again a partition error. Only this time you need to specify the size of the eeprom .
- number of sectors for eeprom = 16
- d-flash = 0
- eeprom = 4096.
as I already said in this method, no coding or programming is NEEDED! all encodings remain the same!