Ground issue dumping ECU EEPROM, 5V Rail Collapse

@EmilyJane

How exciting and unexpected to actually encounter someone in this community who's put hands on a similar or same device in the actual family.

Perhaps I need to be using a pin that I am not currently using or one of the pins that I am using I am using incorrectly.

I had also seen the part number you listed above , but I was confused by the CAA16, assuming that it referenced a different MCU variant. Therefore I did not look for technical documentation but rather the part number is I described it above

I don't think a data sheet is available for that specific variant anymore. Notice my edit to post #40 about programming.

@EmilyJane

That data sheet is simply unavailable, I've exhausted every source. I find the programming section of that document interesting. My question is what line/pin would act as the Vfpe?

Out of curiosity in your experience with this family a microcontrollers, Beyond Erasure and programming, reading was possible as well, correct? I ask because the programming tools of the past most absolutely did read those blocks of memory.

The other really curious thing is how it was accomplished with one single line from outside of the packaged ECU product later once the addresses were identified

The PE Micro tools we used back in the day don't seem to be so reasonably priced anymore. Maybe you can find one used somewhere. They require a software package to use them so make sure that is available.

As I mentioned in my update to post #40 I'm pretty sure with the BDM dongle, VFPE was not necessary.
Yes, the BDM function is hard coded into the 68hc16 chip. It was primarily used to test and debug the software by stepping through one instruction at a time but additionally could examine and change any of the program or data memory.

If by line you mean the cable to that 8 pin connector then with the BDM dongle attached individual or groups of addresses can be examined and/or changed. You can single step the program and see the data change on i/o ports and in the various registers as well. Quite a powerful tool for program development.

I found the app note I was thinking about that describes how to build your own BDM interface.
AN1230.pdf.zip (404.5 KB)

It's a pretty simple circuit but is designed to interface with a PC printer port which might pose a problem. The app note also includes a C driver package but I'm not sure what all it can do without reading through it. It's possibly you might find some archeological data on software that can use the interface.

@EmilyJane

Wow, I think that AN1230 is actually super helpful.

I feel like the Arduino is doing everything that the LPT 25 pin connector would have been doing, so I'm not sure that's a roadblock, but I am of a vintage where I actually used those 25 pin connectors quite frequently in the 90s. I don't think it'll be a problem. I didn't dive too deep into that, its all pretty thick for a casual skim.

I see in a sort of quick skim a reference to the C driver package. That might help me confirm what I'm doing with the Arduino now. I'm wondering if I might be able to dig that up online somewhere. They make reference to bdmcpu16.c, no hits there, closest was a code on github bdm.c but i dIdnt have an opportunity to check it out yet. C is like Cyrillic to me anyhow so ill def need to lean on someone with more experience for the C stuff if needed.

I appreciate you pointing out those two specific items.

I'm getting way ahead of myself, but the information is just so so useful. Many many thanks!

I googled "arduino BDM Interface" and got some interesting hits as well.

The AN1230 C package appears to implement what was known as a monitor program that allows some program debug and memory examine and change. If one had an old DOS machine with a Borland C compiler, they'd be all set. I would not be surprised at all to find a modern Python implementation that worked in conjunction with an Arduino or Raspberry Pi interface. At any rate it's worth further exploration.

@EmilyJane

Absolutely worth later exploration! I'm able to use DOS software on an old Windows laptop for some of the antiquated software, using a little program called DOSbox that allows DOS within Windows. I've done some neat little projects with that, working on other old programmable race ECUs that were not put into consumer production machines… again, mid-90s stuff.

True, Python would be great!

@EmilyJane apologies I completely missed your post number 44. I'll have to look up the PE micro thing and see.

As for the hard-coded BDM, stepping through line by line would be incredibly powerful, also very interesting.

When I was referring to line, what I was saying was that from the exterior of the ECU (which is how the well-equipped race guys would effect the timing changes, ie no destructive entry to board level MCU connections). The eight pad programming/test array im using on the current board (labeled CN4) are not ā€œavailableā€ on the ECU assembly's exterior. Related to programming egine control/ignition parameters, there is just one line that I believe is a K-line and of course ground, 12 volt power and all the other stuff you would expect. There are lots of unused pins on the exterior that I haven't had an opportunity to map, but I don't think that they represent the eight pins on the test/programming pad array CN4. Apologies, keyboarding is not my most skilled means of communication

Have fun and keep us posted on what you discover!

most def will, TY!

You're welcome!