Oh... then there was something awfully good on my RR, because I had the option to switch between flash and emulated...
HMM!!!!
Oh... then there was something awfully good on my RR, because I had the option to switch between flash and emulated...
HMM!!!!
"All that is needed for the triumph of evil is that good men do nothing..."
Get a 2x4 (I guess a 50.2mm x 100.4mm down under?) guess a and knock me upside the head if you have to, maybe I am a bit dense on this.
They way I understand it, the RR is a flash rom emulator. The PCM doesn't know that there isn't a flash part on there because the RR acts like a flash.
My thoughts were originally that the VIN, LTFT and CASE learn were stored likely in a Serial EEPROM somewhere else on the PCM (or inside the processor), not in the RR, but when I put my RR in the car, ALL data was gone, CASE Learn, VIN (was blank, not just wrong, like I expected, it was actually blanked out), CASE was gone, and who knows on LTFT's (can't really "see" to know...)
Granted, I do not expect the Flash to be written to while the PCM is in operation, just when the car is shutdown (PCM Ignition turned off).
Which brings me back to why I want to know if I can read the entire flash memory out of the PCM with a RR and see those values.
Last edited by N0DIH; December 28th, 2008 at 02:58 PM.
I don't seem to be able to do a case relearn with my RR.
I thought I'd done it in the past....but maybe that was with Mick's RR which had the flash chip in it.
So...it would have been nice to know this 'before' buying the RR guts kit and installing it.
Howard
YOU ONLY NEED TWO TOOLS IN LIFE - WD-40 AND DUCT TAPE. IF IT DOESN'T
MOVE AND SHOULD, USE THE WD-40. IF IT SHOULDN'T MOVE AND DOES, USE THE
DUCT TAPE.
IF YOU CAN'T FIX IT WITH A HAMMER, YOU'VE GOT AN ELECTRICAL PROBLEM.
98 K1500 'HOLDEN' Suburban.
Custom Whipple SC, Mercruiser Marine intake, 0411 PCM, 4L80E w/shift kit
I was able to do a CASE learn on mine with a Tech2, but not with EFILive. I'll have to mess with it again sometime....
That's just the builder in you coming out Jez....I'd call it a 'chunk a wood' Lol!
Howard
YOU ONLY NEED TWO TOOLS IN LIFE - WD-40 AND DUCT TAPE. IF IT DOESN'T
MOVE AND SHOULD, USE THE WD-40. IF IT SHOULDN'T MOVE AND DOES, USE THE
DUCT TAPE.
IF YOU CAN'T FIX IT WITH A HAMMER, YOU'VE GOT AN ELECTRICAL PROBLEM.
98 K1500 'HOLDEN' Suburban.
Custom Whipple SC, Mercruiser Marine intake, 0411 PCM, 4L80E w/shift kit
There are two types of RR units. Early units that retained the flash memory chip and could be switched between running via the flash memory and running off the battery backed RAM chip(s). And then the later units which had the flash chip removed.
- When running via the flash chip, all the normal PCM features are available but none of the RR real-time updates will work.
- When running via the RR's RAM chip, none of the PCM's flash memory write routines will functions correctly but all of the RR real-time features will operate correctly.
The PCM cannot tell the difference between the RAM chip and the flash chip, but ONLY when the PCM is reading the data from the RAM chip. When the PCM attempts to write to the flash chip (which is not present) it uses a very different strategy (as Ross pointed out earlier) than when writing to the RAM chip. It will fail miserably and any and all data that is normally saved between battery power cycles is lost. If the PCM decides to refresh its internal RAM from flash memory at the next ignition on, then any and all data learned by the PCM will be lost.
Getting back to CASE learn... When the PCM learns the CASE, it immediately saves the learned data in its internal CPU RAM (not the RR's RAM) waiting for the ignition off cycle. At ignition off, it attempts to "back-up" the CASE data to the (non existing) flash memory and fails, the failure may or may not clear the CPU RAM copy of the CASE learn data - I don't know. But before the ignition-off occurs the CASE learn data should be valid in the PCM's RAM.
So you *should* be able to perform a CASE learn even with a RR (with no flash chip) fitted to the vehicle. Whether or not the learned data is retained across ignition cycles is unknown. It is definitely not retained across battery power cycles.
Hint: The RR device is designed to be a temporary tuning aid, it is not designed to operate a vehicle indefinitely. Although during testing, I ran an LS1 for 6 months continuously on a RR unit.
Regards
Paul
Before asking for help, please read this.
If your existing PCM had valid CASE learn data, when you read the *.tun file from your PCM, the CASE learn data is stored in the *.tun file.
(You can always put your existing PCM back in the vehicle and do the CASE learn, set the VIN, BCC, oil life etc., then read out the PCM to get a "valid" copy of the CASE data.)
If you full-flash that *.tun file into your RR then the CASE data (along with all the other non-volatile data) will be copied into the RR. A RR full-flash is very different to a normal PCM full flash, in that it writes the CASE data, the VIN, the serial number, the BCC, the oil life, everything. A normal full-flash will leave all that data undisturbed in the target PCM.
So to program all the non-volatile data such as CASE data, the VIN, the serial number, the BCC, the oil life etc, you should:
- Read the *.tun file from the RR to save your RR's current calibrations.
- Do a full flash of the RR with the valid *.tun file from the original PCM from the host vehicle.\, which will program the CASE data, VIN, BCC etc into RR's RAM chip so that the PCM can read it and use it whenever it needs to - including at ignition cycles and battery cycles.
- Do a cal-only flash using the file saved in step 1 which will restore the RR's calibrations, leaving the CASE data, VIN, BCC etc saved in the RR's RAM memory in step 2, untouched.
Regards
Paul
Before asking for help, please read this.
As I said.. I didn't have an issue with my RR with case learn... now I know why... That is very important then.
But my question is.. Why can't the PCM write to those sections itself physically speaking?
"All that is needed for the triumph of evil is that good men do nothing..."
Assume the PCM wanted to set the memory location called value to the value $55.
Example 1 using RAM:
Example 2 using FLASH memory (this is what a PCM does at ignition-off):Code:value = 0x55; //i.e. the CPU simply sets value to $55.
The 0xAAA and 0x55 etc, constants are specifically chosen by the FLASH chip manufacturer (and may be different for different flash chips) because those values are least likely to occur in a malfunctioning/runaway CPU, which could otherwise lead to accidental erasure or corruption of the flash memory.Code:// Save contents of the flash block that contains the memory that // we want to update, to some spare RAM, block sizes are usually multiple Kbs. // address is the address of the first byte of the block of flash memory. // Erase block of Flash memory, using a sequence like this: (address|0xAAA) = 0xAA; (address|0x554) = 0x55; (address|0xAAA) = 0x80; (address|0xAAA) = 0xAA; (address|0x554) = 0x55; // Write 0x55 to appropriate location in the RAM copy of the flash block, // using same strategy in Example 1. // Write each byte of the RAM copy of the flash block back to the flash // memory using a sequence like this: for (i=0 ; i<blockSize ; i++ ) { (address|0xAAA) = 0xAA; (address|0x554) = 0x55; (address|0xAAA) = 0xA0; (address++) = *nextByte++; }
As you can see, writing to Flash memory is a complicated and time consuming task. Which is precisely the reason the PCM only does it after the ignition is turned off and the PCM has acquiesced.
Put a RAM chip in the place of the Flash chip and the RAM chip won't process the address commands like the flash chip does. The RAM chip write control line from the CPU is most likely disabled to prevent any writes taking place from the PCM's CPU. RR's CPU has full access to the RAM chip. Caveat: I don't know for sure, I'm just assuming since the actual hardware implementation is done by Moates.
Regards
Paul
Before asking for help, please read this.