Ha anyone DogP perhaps any idea what level I need to get a “1” to for it to be accepted on the data bus from the cartridge?
If I drive my eprom with 3,3V, or perhaps 3,6V would be better… is the output enough to be recognized as a input high on the receiving end?
CMOS levels have something around 3,7V as the lowest value of input high in a 5V system if I remember correctly. Whereas a TTL system accepts anything over 2,0V as “1”.
So if it’s CMOS with TTL levels or TTL I should be all right.
EDIT, seems I was right:
If I use a simple buffer circuit CMOS/TTL levels, it will lift the levels to the right level – but should I worry about delay?
I’m thinking this perhaps:
http://www.futurlec.com/74HCT/74HCT541.shtml
Better go for the SMD, even though it LS:
http://www.futurlec.com/74LS/74LS541SMD.shtml
3.3V should be fine… the CPU specifies 2.2V when running at 5V, and I don’t think any of the other devices on the VB would talk to the ROM, so they shouldn’t matter. Of course you have to be aware that it’s a common bus, so even though the VB may not write the data pins, there will still be other communications on the bus, so there will be 5V signals (so just make sure the data lines are 5V tolerant).
I wouldn’t do a resistor divider for shifting levels though… if there’s ESD diodes internally, a series resistor will (usually) work, otherwise, I’d use series resistors w/ low voltage drop diodes to shunt to Vcc. You could also build in something like: http://www.sparkfun.com/commerce/product_info.php?products_id=8745 , though that’s probably overkill (and I don’t know the performance of it, though I do have a few of them).
Edit: Just saw your edit and reply… that’s for CMOS logic chips (the 74*Cxxx stuff)… typically devices made using the CMOS process have different levels than that (I commonly see 0.5*Vcc to 0.65*Vcc). They seem to be specified like that rather than a specific voltage, because it’s dependent on the Vcc voltage rather than a certain threshold (and CMOS chips are usually pretty tolerant about operating voltages). It seems that the V810 was made to have TTL compatible inputs though, since the threshold is 2.2V @ 5V and 2V @ 3.3V.
DogP
The outputs are “High Z” when they’re not outputting data, and it seems like there should be no other unit writing to the databus when the cartridge rom is set to “chip enable” and “ouput enable”.
So I guess the outputs are sorted out then, good, cause the SOIC20 74LS541 took a lot of space.
Yeah, I know the outputs will be High-Z when disabled, but even at High-Z the maximum voltage levels on a pin has to be followed. If the chip is disabled but the CPU is talking to SRAM, WRAM, or anything else on the bus, the address and data lines will be experiencing 5V levels. This may be a problem if the chip isn’t 5V tolerant.
My point is just that it’s a 5V bus… you can’t assume that the data lines are only outputs from the ROM and inputs to the CPU, like for example if you were connecting a 3.3V<->5V SPI, where you’d only need to protect the 5V output(s) (Tx, when the 3.3V is the master).
DogP
Ahh… a sigh of relief.
5.1. Table 4, Absolute Maximum Ratings
-2.0 < VCC < 5.6 (V)
-2.0 < VCCQ < 5.6 (V)
Voltage on any input/output signal (except VCC, VCCQ)
min: –2.0
max: VCCQ (max) + 2.0
I guess I can run it on 5V then... no I guess that wouldn't be very good, but it can take it if necessary.
"I'd use series resistors w/ low voltage drop diodes to shunt to Vcc"
How does that look, any picture of a schematic?
I couldn’t find a diagram in 3 seconds of searching, so I spent 3 seconds drawing one (as you can tell) 😉 . Basically, the resistor limits the current, the diode conducts when the voltage goes above 3.3V+(diode drop), which makes the input at the chip ~3.6V max when using a diode w/ a low forward voltage drop. The resistor value doesn’t matter too much… 1k to 10k should be good. The ESD diodes internally (if present) act the same as the diode in this circuit, so you may be able to get away with just using series resistors to limit the current.
You could also use a 3.3V zener connected to ground, but my experience w/ them is that they’re very slow and the voltage overshoots.
If you’ve go to do an entire bus, it may be kinda messy to do this though… you should look up other solutions, like a bus switch or other IC meant for translating a large number of lines.
DogP
Attachments:
OK, I’m considering 74LVC125 or 126 also… They’re 5V tolerable 3V circuits.
Found another picture with other methods as well.
http://www.siongboon.com/projects/2006-01-08_more_circuit_schematic/
How about two silicon diodes in series on every address pin?
They have a forward voltage of 1,4V – which gets us in the safe area.
I know people sometimes make 3V out of 5V by connecting three silicon diodes in series…
Something I also have thought of is to connect VSS of the eproms to 1,5V and VCC to 5V. A “zero” from the VB would be at it’s lowest -1,5V which is “OK” since the eproms can handle -2.0V. But it’s normal rate is only -0,5 so it will keep within the absolute maxium ratings but not the normal rating.
Ouputs of the data bus would relative to VB GND be about 5V then… The address bus would get 3,5V from the VB.
- This reply was modified 14 years, 11 months ago by e5frog.
You really shouldn’t operate chips outside their normal operating ranges… the maximum ratings are there to tell you what will damage it. Running chips outside their normal range can cause strange things (the operation isn’t guaranteed outside the operating ranges) and can shorten the life of the chip.
Two diodes could possibly work, though you’d need to characterize the diodes… some may be too slow, and with near zero current, your diode drop will likely be much less than the typical 0.7V (for example a 1N916 has a 0.7V forward drop at 5mA, but 0.275V at 1uA). That also obviously wouldn’t work for bidirectional pins like the data pins.
DogP
All pins are only supposed to work one way, address in and data out.
But, OK, I understand, I guess that’s why I didn’t find any such suggestion on the other sites…
Best case scenario then is if I can have just a single resistor in series (any ideas about a range, 2k2, 3k3, 10k?).
Otherwise it’s a resistor and a diode to 3V3, 23 address pins, #OE, #CE – so just 25 sets then. 😉
I found the datasheets for both Numonyx and the Intel brands of these 28F128J3. Neither says anything about any ESD protection diodes or anything about ESD at all and neither has any schematics of the input nor outputs.
Question then is if I need to do anything to the data bus as well…
I have written to Numonyx and asked about it, otherwise I guess I’ll have to go the safe way. Most other sources don’t worry about there being 5V on the databus, they just say that the output of a 3V system is usually enough for a 5V system.
- This reply was modified 14 years, 11 months ago by e5frog.
Diodes on the databus then?
They’re only going to be used as outputs and the diodes will protect them from 5V levels on the databus…
e5frog wrote:
Best case scenario then is if I can have just a single resistor in series (any ideas about a range, 2k2, 3k3, 10k?).
DogP wrote:
The resistor value doesn’t matter too much… 1k to 10k should be good.
e5frog wrote:
Question then is if I need to do anything to the data bus as well…I have written to Numonyx and asked about it, otherwise I guess I’ll have to go the safe way. Most other sources don’t worry about there being 5V on the databus, they just say that the output of a 3V system is usually enough for a 5V system.
If the chip isn’t 5V tolerant, and there’s 5V levels on the pins as is the case of the VB (even if it’s while the chip is disabled), you definitely need to protect the pins.
e5frog wrote:
Diodes on the databus then?They’re only going to be used as outputs and the diodes will protect them from 5V levels on the databus…
Huh? You mean have the diode so the current can’t flow toward the chip, but can flow out of the chip into the VB? I don’t think that’d be good… one reason is that your levels will drop by the forward voltage (which may drop it below the threshold), and the other is how do you output a 0? If you output a 0, the diode wouldn’t conduct, or would be reverse biased, which would basically mean that the input pin was floating. I think that would also be a problem with the the two diodes method to bring 5V down to 3.3V. For that, you’d need an extra pulldown resistor, and it’d have to be a low enough value that the rise and fall times were acceptable.
If possible, I’d recommend the series resistor, using a resistor network/array (lots of resistors in a convenient package). If you can’t find out from the manufacturer whether the diodes are there, you can test by hooking up a chip, add a series resistor, put a multimeter or scope probe on the chip pin, then ramp up the voltage across the resistor. If the voltage goes up and tops out at ~3.6V when the input is driven above that, then the diodes are there and you’re probably fine. If the voltage keeps going up, then the diodes aren’t there and possibly ruined the chip 😛 .
DogP
I’ll wait for an answer from Numonyx and if the circuits arrive before that I’ll do the test – if I abort before I reach the maximum allowed level of 5,6V I should be safe…
Thanks for the information, I just kind of splurred out a bunch of stuff without even thinking about it.
The diode resistor looked like a good solution:
http://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=65
Image sucks though:
The diode prevents interference from the 5V device and the pull-up to 3.3V holds that signal high until there’s a zero from the 5V device, then the voltage drops to the diode’s forward voltage – if I got it correctly. Schottky diode is recommended.
Any ideas of what value is needed for a dip-switch pull-up resistor? I used 2k2 ohms for the really old TTL-circuits… I’m guessing a higher value is enough. It’s just to hold the address pins high, I’m leaning towards 10kohm?
Yeah, that’s what I was talking about if you were to use the diode… you’d need a pull-up resistor, like shown.
For dip switch pull-ups, I’d probably use 10k… you could probably go higher, but I don’t really see any reason to.
DogP