Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Need help with data bus line shutoff project

Status
Not open for further replies.

quantumkid

New Member
I run my car off a eprom emulator and found out that because of the older design of my vehicle electronics, the emulator is always on and killing my battery. Was originally going to I designed a board that killed ground at "pin 28" to shut if off, but after talking to the emulator developer he recomends I don't do that because the emulator my try to use an address pin for ground. So my only option is to kill all 28 connections (yes, I could just pop the hood and disconnect it every time I drive. But what fun is that).

I designed and built a board that used 4 8bit bus switches (with ~4ohms of resistance per channel) to cut all the connections, but it seems that there is too much resistance and though the emulator will power on it does not communicate.

Here is my redesgn of the board.

**broken link removed**

I know the momentary switched power works properly (the entire left side of the circuit), so i'm not worried about that. I took out the bus switches and replaced them with CY74FCT541ATPC buffer drivers (data sheet) and one more 4PDT relay for 4 of the non data pins.
Since it would be a huge mess with the nets showing I'll just type out how they are connectd. Vcc, Vpp, OE, and CE all connect through the added 4PDT relay. I did this because I not sure how the buffers handle the ostrich power running though them. OE and CE I moved because they don't carry any data and only need voltage (I believe). If anyone thinks I can get away with connecting those four through a buffer let me know because it is cheaper. The address lines (A0-A14) connect from the ECU to the input side of the buffer then output to the Ostrich while all the Output lines (O0-O7) connect from the ostrich to the input side of a buffer then output to the ECU. I connect both the ECU chip ground and the Ostrich ground to ground on the board (If you think that board ground isn't a good idea; I can move it to a relay if I give up the aux switched power). When powered "off" the buffers gates are held at Vhi which should create HiZ on the lines and keep the ostrich from drawing any power from them. I can post a pin out of the headers telling which pin on a 27C256 they represent if someone wants it.

Since I'm rather new at this I would really like to know if I'm using the buffers correctly? Also If anyone sees another issue (Like; I can/should use a buffer for OE and CE or a need to connect ECU chip ground to the emulator ground instead of a common ground) please let me know. Thank you.
 
Why not use flash memory in place of the EPROM ?

This would acutally be between my ECU and an EPROM emulator called an Ostrich (Pretty clool little emulator which has a bluetooth interface so I can make changes to the cars timing, fuel, etc wirelessly through my laptop). The reason I'm building this is so I can power down the Ostrich when the car is not running. Normaly if the car had a actual eprom it would put it in standby which only draws a few uA, but the Ostrich stays on drawing more like 150mA and slowely draining my battery.

Thanks for the reply by the way. I've posted this design on 3 seperate boards and your the first person to reply in half a week. If you don't mind me asking; is my post hard to understand (as in "I dont' know what I'm doing so my post doesn't make sense to those who do.", etc)? Thanks.
 
I'm going to ask a dumb question. Why not just open the power switch powering the Ostrich? Not the ground connection, as you asked the developer, but the high side?

You might answer it is because voltage will still be present on the emulator from the ECU, and that will exceed the Vin<Vcc spec on the emulator. But, that spec most often is only applicable when actual VCC is present to prevent reverse biasing through the substrate. No VCC, no reverse bias.
 
If you don't mind me asking; is my post hard to understand (as in "I dont' know what I'm doing so my post doesn't make sense to those who do.", etc)? Thanks.

No, your post is REALLY hard to understand. I read through it three or four times and still don't know what the hell you're doing up there.

Ok, you've got an EPROM emulator called an "Ostrich" with this cool wireless thing you can use to goof with the engine on the fly from your laptop. So far so good.

Now when the engine's off, the Ostrich is still getting power... through the EPROM socket? Through Vcc or an address line or something? Then you used four 8bit what with 4Ω resistance?

Your schematic shows a lot of disconnected stuff, I can't tell what you're doing there at all, what part of it is your circuit, the car circuit, or the Ostrich circuit.

The '541 will act as a buffer... but if what's happening is that an address or data line is staying at +5V when the engine's off and powering the Ostrich at 100ma through a body-drain diode (ouch!) then you are going to have the same problem with the '541. Are you SURE the power is coming off one of those address or data lines? Seems like that engine computer should be off when the car's off.
 
I'm going to ask a dumb question. Why not just open the power switch powering the Ostrich? Not the ground connection, as you asked the developer, but the high side?

You might answer it is because voltage will still be present on the emulator from the ECU, and that will exceed the Vin<Vcc spec on the emulator. But, that spec most often is only applicable when actual VCC is present to prevent reverse biasing through the substrate. No VCC, no reverse bias.

There is no one power pin. When the car is off the ECU is still sending 5v to the emulator over about 23 of the 28 connection lines. I asked the Ostrich's designer if I could just cut ground, but he "suggested aginst it" as it may cause damage. Thanks for the post.

No, your post is REALLY hard to understand. I read through it three or four times and still don't know what the hell you're doing up there.

Ok, you've got an EPROM emulator called an "Ostrich" with this cool wireless thing you can use to goof with the engine on the fly from your laptop. So far so good.

Now when the engine's off, the Ostrich is still getting power... through the EPROM socket? Through Vcc or an address line or something? Then you used four 8bit what with 4Ω resistance?

Your schematic shows a lot of disconnected stuff, I can't tell what you're doing there at all, what part of it is your circuit, the car circuit, or the Ostrich circuit.

The '541 will act as a buffer... but if what's happening is that an address or data line is staying at +5V when the engine's off and powering the Ostrich at 100ma through a body-drain diode (ouch!) then you are going to have the same problem with the '541. Are you SURE the power is coming off one of those address or data lines? Seems like that engine computer should be off when the car's off.

Thank you for posting. Yes, the Ostrich is power by the ECU though a 28 pin socket to cable converter (actually the socket side is 28 pins and goes to a 34pin "floppy cable"). When the car is powered off, the ECU tries to put the "eprom" (now Ostrich) in standby which sends 5v to all pins except output and ground. The Ostrich's designer seems to have built it so that it will draw power from any pin (I've tried cutting several, but all power providing pins need to be disconnected for it to shut off).

I built a board that used four 8 channel switches (4ohms when powered and HiZ when off), but even with only 4ohms of reistance there appears to not be enough current to power the Ostrich correctly. So I'm rebuilding it with buffers so that I can amp up the signal on the address and output lines going to the Ostrich. When powered on the buffers should provide 32mA per channel to up the signal of the addess and output pins and when off they go to HiZ (suppose to be such high resistance that they are disconnected for all intents and purposes). I added a seperate relay to connect Vcc, VPP, OE, and CE because I don't know if I should buffer those lines (milliohm resistance when connected and total disconnect when off). Also I connect ground to a common ground instead of directly connected (I'm not sure if I should do this though).

Sorry the schematic doesn't show all that much. I used wire nets to keep things clean because of all the connections. Of the two long 34 pin connectors the left is where the cable from the ecu connects and the right is the connection to the Ostrich (there is no part of the ecu or ostrich in the schematic, they just connect via cables to the two 34 pin headders). Starting at Pin7 (because there are only 28 connections) each pin is connected to ether a buffer line or relay then to the same pin on the opposing connector headder. Currently I have Vcc (pin7), Vpp(pin8), OE(pin18), and CE(pin23) conneced through a realy because I don't know if I should buffer them. The address pins from the Ecu connector to the input side of the buffer and out the output to their respective pin on the Ostrich connector. The output pins go from the Ostrich connector to the input on the buffer and out to the Ecu connector. Finally Ground (pin34) is connected on each side to board ground (instead of connected together). I'll see if I can get Eagle to display the wire nets so you can see a bit better.

Thank you for your help. I hope this helps explain it more.
 
Last edited:
The Ostrich's designer seems to have built it so that it will draw power from any pin

No, those are the body-drain-diodes. Nearly every chip has these diodes (internally) going from inputs to the supply voltage. When the supply on the Ostrich falls to about 4.3V, they conduct through the address lines.

I wouldn't suggest cutting ground, either - that could lead to bigger problems.

You do know the '541 address-line chips are going to need to be powered by the standby voltage and not the Ostrich, right? Otherwise they will conduct through the body-drain diodes, then it's back to the original problem.

I asked about your "8 channel switches", and you still have not told me what they are. Am I suppose to guess? 4Ω should not cause a problem on address and data lines, I suspect there is another issue.

Sorry the schematic doesn't show all that much. I used wire nets to keep things clean because of all the connections.

You kept it so clean it isn't really a schematic at ALL - just a few disconnected parts, with no nets on the pins. This is like pointing to a bucket of spigots and asking if you plumbed the taps correctly.

the ECU tries to put the "eprom" (now Ostrich) in standby which sends 5v to all pins except output and ground.
so that I can amp up the signal on the address and output lines going to the Ostrich

By "output" I assume you mean "data" lines. I'm thinking the problem isn't so much that you need to "amp up" the address and data lines, I'm thinking that it may be you need to power up the Ostrich before you power up the ECU. Has the Ostrich got a way to hold the ECU in "reset" before it's ready to go?

What I'm getting at is that if the CPU in the engine controller is trying to read program data before the Ostrich can initialize, it is going to go in the weeds. It will act like a high-speed counter, and when the Ostrich powers up and the relay clicks in the address will be way past the reset vector.
 
Thanks for your reply. I'm powering the buffers from the battery (though a 5v regulator) so that shouldn't be an issue. The switches were FST3345MTC (datasheet).

I'm going to go through and draw in the lines so you can see what I'm doing. I'm too inexperenced at this to communicate in a way that makes sense I think. I'll post back with the complete schematic tomorrow or tuesday.

Thanks again.
 
Last edited:
The address lines seem to be hooked up correctly, I'm a little worried about the data lines. They can be both "inputs" and "outputs" depending on whether the CPU is reading or writing. The way you have yours set up, the '541 on the bottom is always an "output" and this could cause bus contention (two devices trying to write at the same time). Might be better just to leave that one out. If the data on those lines is always 0V when the ECU is off anyway, it seems like it may cause more problems than it solves.

You can still use that chip that way if you connect one of the tristate controls (G1) to the EPROM's chip select (/CS) line, and leave the power control on G2 the way it is.

Is that +12V "switched" - does it drop to 0V when the ignition is off?
Is Vcc for the '541 chips off that 5V regulator?

I looked at the specs on that FST3345MTC and it seems like it should have worked fine. Perhaps the reason that didn't work was because the Ostrich needs to be started before the ECU comes up. Does the Ostrich have a way to hold the processor in reset, or otherwise keep the ECU "off" until it is ready to deliver data? When you run this thing normally, do you bring the Ostrich up first, then start the engine?
 
The address lines seem to be hooked up correctly, I'm a little worried about the data lines. They can be both "inputs" and "outputs" depending on whether the CPU is reading or writing. The way you have yours set up, the '541 on the bottom is always an "output" and this could cause bus contention (two devices trying to write at the same time). Might be better just to leave that one out. If the data on those lines is always 0V when the ECU is off anyway, it seems like it may cause more problems than it solves.

You can still use that chip that way if you connect one of the tristate controls (G1) to the EPROM's chip select (/CS) line, and leave the power control on G2 the way it is.

Is that +12V "switched" - does it drop to 0V when the ignition is off?
Is Vcc for the '541 chips off that 5V regulator?

I looked at the specs on that FST3345MTC and it seems like it should have worked fine. Perhaps the reason that didn't work was because the Ostrich needs to be started before the ECU comes up. Does the Ostrich have a way to hold the processor in reset, or otherwise keep the ECU "off" until it is ready to deliver data? When you run this thing normally, do you bring the Ostrich up first, then start the engine?

I see what your saying about the data out lines needing to be connected to CE so they shut off when the ECU (68HC11) is using the lines as data out, but wouldn't I need to connect both G1 and G2 to CE to get a HiZ on the lines when CE is enabled? Regardless I'll take a look at my power pinout and see if I can just directly connect them (though I do need to start to worry about distance when I get close to 2 feet).

The +12v is not switched, it is directly connected to battery. Also yes the Vcc for the 541's is powered from the 5v regulator (the ground and Vcc pins are "hidden" on the part and I cannot display them).

Power wise; I power up the Ostrich at least 20 sec (or always on if the board isn't in place) before the ECU is initialized. Currently I plug the Ostrich in and reach in the car to start it. I'l hoping to be able to toggle on the ostrich with this board (I have a rfid to trigger that one spst relay at the bottom left, or just hit the momentary switch) so I don't have to open the hood every time and plug/unplug it.

Thanks again for your help. That CE thing on the output lines would have cost me another prototype board at least.
 
Last edited:
Is there any reason why a 2k resistor in each data line wouldn't work? If all 8 data lines were held at 5V and the chip could run at 3V then it will only get 12mA. Increase them to 5K if needed but noise may be a problem.

Mike.
 
He said he tried one with only a 4Ω resistance and got problems. Doesn't seem like 4Ω would be an issue, and even your 2k resistors might not cause problems. I checked the specs on his chip, it was fast enough, still not sure what the problem is there.

wouldn't I need to connect both G1 and G2 to CE to get a HiZ on the lines

I don't think so - any "hi" in is a "HiZ" out, so if
G1 = CE, G2 = Power relay, Yn = output
Code:
G1      G2     Yn       Condition
--------------------------------------
0       0      An       Enable active (low), Power active (low)
0       1      HiZ      Enable active, power down
1       0      HiZ      No enable, power active
1       1      HiZ      No enable, power down
 
I looked at my pinout for which pins are getting power when the ECU is "powered down" and it looks like the output pins (O0-7) are all held at 5v. The only pins not receiving power are pin 34 (14 if it were a chip) which is ground and the higher address pins (A8-A14).

I think I'm going to go through and add a bunch of switches to the board so I can try several different setups with just the one board. Here is what I'm planning on adding; let me know if I'm missing anything or shouldn't do some of them.

Add in a 4th buffer
Add switches to allow Vcc (pin7), Vpp(pin8), CE(pin19), and OE(pin23) though the buffer or through the relay
Add a switch to connect pin 34 (ground) to ether the ground on the board or together
Add a switch to connect G1 to CE or 5v power

What do you think?
 
That sounds good. Put Vcc and Vpp on the relay instead of the buffer, natch. Very sensible to add the extra switches so you can try different setups.
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top