EPROM emulator

Andrew K. Mattei amattei at mindspring.com
Tue Feb 16 20:22:45 GMT 1999


Ludis Langens wrote:
> 
> That's the reason for two banks - one for the ECM to read and one for
> the PIC to write.  This way collisions are impossible.

Ludis, believe it or not, this is very much like what I was thinking -
but I couldn't quite get the point across as effectively. OK, I made a
block diagram of what I was thinking, and scanned it and put it on the
web for shooting bullets in it. Here's what's required in "my design"...

92 gates for tri-state buffers (wow!) (assuming address lines A16-A0,
data lines D7-D0, and multiply by four). PIC has outputs of A16-A0,
D7-D0, control lines for tri-state buffers, control lines for NVSRAM
programming(?), and an input for a manual A/B switch for power-on
default memory bank for the ECM to use. I "guesstimate" about 40-45 I/O
(non-RS232) pins required on the PIC (17 address, 8 data, 10 buffer
enables (could cut back on this by using inverters), 4-5 programming
control lines, 1 power on A/B, and maybe a few more). There are
certainly PICs in this size, though I don't know their costs.

Here's how "my system" would work ;^D. You get in the car and start it
using the program you completed yesterday (on the "power on default"
bank - let's say bank "B"). You have the laptop going, watching your
Diacom (or DaveCom ;^D) through the ALDL cable, and decide to change
your injector pulsewidth a little bit, and maybe something else. You
exit Diacom, and start the ECM software (note: Diacom plugged in
parallel port, emulator in serial). You select the proper value in the
software table on the PC, change it, and perform the "save and update"
maneuver. This will download your new values to bank "A" (the
experimental bank). Not the whole binary file - JUST your changed
value(s). You then command the PIC to switch banks to the "experimental"
bank. The PIC changes the buffer states, and in one clock cycle, your
ECM is now running off of the "new" program. Should you want to set this
to the now "default" memory bank, you can flip the manual switch the
other way. If you like the way the car runs now, hit "update other bank"
in the software and it will update the "B" bank to the new code. If the
car rolls over and dies with the new software, turn off the car, and
when you start it again, it'll be running off of the old code due to the
manual select switch being left in the old position.

Does this match what anyone else wants to do? Am I out in left field on
this? Can I beat a horse to death or what?

See my rough, rough hand-drawn on a napkin block diagram at
http://www.mindspring.com/~amattei/emulator.jpg

Cheers!

-Andrew (still like to see others designs!)



More information about the Gmecm mailing list